--- /dev/null
+Ripped from fedora
+
+--- openssl-0.9.7e/Configure
++++ openssl-0.9.7e/Configure
+@@ -1161,15 +1161,21 @@
+
+ $bn_obj = $bn_asm unless $bn_obj ne "";
+
++my $fips_des_obj;
++my $fips_sha1_obj;
+ if ($fips)
+ {
++ if ($des_obj =~ /\-elf\.o$/ && $no_shared) # FIPS DES module is not PIC
++ {
++ $fips_des_obj='asm/fips-dx86-elf.o';
++ $openssl_other_defines.="#define OPENSSL_FIPS_DES_ASM\n";
++ }
++ else { $fips_des_obj=$fips_des_enc; }
++ $fips_sha1_obj='asm/sx86-elf.o' if ($sha1_obj =~ /\-elf\.o$/);
+ $des_obj=$sha1_obj="";
+ $openssl_other_defines.="#define OPENSSL_FIPS\n";
+ }
+-$des_obj=$des_enc unless (!$fips && $des_obj =~ /\.o$/);
+-my $fips_des_obj='asm/fips-dx86-elf.o';
+-$fips_des_obj=$fips_des_enc unless $processor eq '386';
+-my $fips_sha1_obj='asm/sx86-elf.o' if $processor eq '386';
++$des_obj=$des_enc unless ($des_obj =~ /\.o$/);
+ $bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);
+ $cast_obj=$cast_enc unless ($cast_obj =~ /\.o$/);
+ $rc4_obj=$rc4_enc unless ($rc4_obj =~ /\.o$/);
+--- openssl-0.9.7e/Makefile.org
++++ openssl-0.9.7e/Makefile.org
+@@ -176,8 +176,8 @@
+ # we might set SHLIB_MARK to '$(SHARED_LIBS)'.
+ SHLIB_MARK=
+
+-DIRS= crypto fips ssl $(SHLIB_MARK) sigs apps test tools
+-SHLIBDIRS= fips crypto ssl
++DIRS= crypto ssl $(SHLIB_MARK) sigs apps test tools
++SHLIBDIRS= crypto ssl
+
+ # dirs in crypto to build
+ SDIRS= objects \