]> code.ossystems Code Review - openembedded-core.git/commitdiff
openssl: Fix build of openssl-native on x86_64 with recent binutils
authorJoshua Lock <josh@linux.intel.com>
Thu, 6 May 2010 23:41:15 +0000 (00:41 +0100)
committerJoshua Lock <josh@linux.intel.com>
Thu, 6 May 2010 23:45:38 +0000 (00:45 +0100)
Apply a patch from upstream that fixes the build, patch should be able to be
dropped when we update openssl version.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
meta/packages/openssl/openssl-0.9.8g/fix-md5-x86_64.patch [new file with mode: 0644]
meta/packages/openssl/openssl_0.9.8g.bb

diff --git a/meta/packages/openssl/openssl-0.9.8g/fix-md5-x86_64.patch b/meta/packages/openssl/openssl-0.9.8g/fix-md5-x86_64.patch
new file mode 100644 (file)
index 0000000..05b48ab
--- /dev/null
@@ -0,0 +1,47 @@
+Fix for building md5-x86_64.pl with recent gcc and binutils (as first discovered
+on my Fedora 13 machine).
+
+Patch taken from upstream bug tracker:
+http://rt.openssl.org/Ticket/Display.html?id=2094&user=guest&pass=guest
+
+This issue is marked as resolved upstream (on 13/11/2009) so we should be able
+to remove this patch when we update openssl.
+
+JL - 07/05/2010
+
+Index: openssl-0.9.8g/crypto/md5/asm/md5-x86_64.pl
+===================================================================
+--- openssl-0.9.8g.orig/crypto/md5/asm/md5-x86_64.pl   2010-05-07 00:24:16.000000000 +0100
++++ openssl-0.9.8g/crypto/md5/asm/md5-x86_64.pl        2010-05-07 00:26:25.639809341 +0100
+@@ -19,6 +19,7 @@
+ sub round1_step
+ {
+     my ($pos, $dst, $x, $y, $z, $k_next, $T_i, $s) = @_;
++    $T_i = unpack("l",pack("l", hex($T_i))); # convert to 32-bit signed decimal
+     $code .= " mov    0*4(%rsi),      %r10d           /* (NEXT STEP) X[0] */\n" if ($pos == -1);
+     $code .= " mov    %edx,           %r11d           /* (NEXT STEP) z' = %edx */\n" if ($pos == -1);
+     $code .= <<EOF;
+@@ -42,6 +43,7 @@
+ sub round2_step
+ {
+     my ($pos, $dst, $x, $y, $z, $k_next, $T_i, $s) = @_;
++    $T_i = unpack("l",pack("l", hex($T_i))); # convert to 32-bit signed decimal
+     $code .= " mov    1*4(%rsi),      %r10d           /* (NEXT STEP) X[1] */\n" if ($pos == -1);
+     $code .= " mov    %ecx,           %r11d           /* (NEXT STEP) y' = %ecx */\n" if ($pos == -1);
+     $code .= <<EOF;
+@@ -65,6 +67,7 @@
+ sub round3_step
+ {
+     my ($pos, $dst, $x, $y, $z, $k_next, $T_i, $s) = @_;
++    $T_i = unpack("l",pack("l", hex($T_i))); # convert to 32-bit signed decimal
+     $code .= " mov    5*4(%rsi),      %r10d           /* (NEXT STEP) X[5] */\n" if ($pos == -1);
+     $code .= " mov    %ecx,           %r11d           /* (NEXT STEP) y' = %ecx */\n" if ($pos == -1);
+     $code .= <<EOF;
+@@ -87,6 +90,7 @@
+ sub round4_step
+ {
+     my ($pos, $dst, $x, $y, $z, $k_next, $T_i, $s) = @_;
++    $T_i = unpack("l",pack("l", hex($T_i))); # convert to 32-bit signed decimal
+     $code .= " mov    0*4(%rsi),      %r10d           /* (NEXT STEP) X[0] */\n" if ($pos == -1);
+     $code .= " mov    \$0xffffffff,   %r11d\n" if ($pos == -1);
+     $code .= " xor    %edx,           %r11d           /* (NEXT STEP) not z' = not %edx*/\n"
index 9abbbdce0505ce9f4b5bc02984919c40630c85ab..01fa6c9d26b4b8a65741fb9925a4a46dcb541153 100644 (file)
@@ -1,9 +1,10 @@
 require openssl.inc
 
-PR = "r10"
+PR = "r11"
 
 SRC_URI += "file://debian.patch;patch=1 \
             file://configure-targets.patch;patch=1 \
+            file://fix-md5-x86_64.patch;patch=1 \
             file://shared-libs.patch;patch=1"
 
 BBCLASSEXTEND = "native"