relocate packages on recipes-base/recipes-enigma2/recipes-wlan.
[vuplus_openvuplus_3.0] / meta-openvuplus / recipes-connectivity / openssl / openssl-0.9.8x / debian / pic.patch
diff --git a/meta-openvuplus/recipes-connectivity/openssl/openssl-0.9.8x/debian/pic.patch b/meta-openvuplus/recipes-connectivity/openssl/openssl-0.9.8x/debian/pic.patch
new file mode 100644 (file)
index 0000000..5fc8f65
--- /dev/null
@@ -0,0 +1,303 @@
+Upstream-Status: Backport [debian]
+
+Index: openssl-0.9.8o/crypto/Makefile
+===================================================================
+--- openssl-0.9.8o.orig/crypto/Makefile        2008-09-17 17:10:55.000000000 +0000
++++ openssl-0.9.8o/crypto/Makefile     2010-06-06 13:09:28.000000000 +0000
+@@ -57,7 +57,7 @@
+       echo "  #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \
+       echo '#endif' ) >buildinf.h
+-x86cpuid-elf.s:       x86cpuid.pl perlasm/x86asm.pl
++x86cpuid-elf.S:       x86cpuid.pl perlasm/x86asm.pl
+       $(PERL) x86cpuid.pl elf $(CFLAGS) $(PROCESSOR) > $@
+ x86cpuid-cof.s: x86cpuid.pl perlasm/x86asm.pl
+       $(PERL) x86cpuid.pl coff $(CFLAGS) $(PROCESSOR) > $@
+@@ -70,7 +70,7 @@
+ uplink-cof.s: ../ms/uplink.pl
+       $(PERL) ../ms/uplink.pl coff > $@
+-x86_64cpuid.s: x86_64cpuid.pl
++x86_64cpuid.S: x86_64cpuid.pl
+       $(PERL) x86_64cpuid.pl $@
+ ia64cpuid.s: ia64cpuid.S
+       $(CC) $(CFLAGS) -E ia64cpuid.S > $@
+Index: openssl-0.9.8o/crypto/x86_64cpuid.pl
+===================================================================
+--- openssl-0.9.8o.orig/crypto/x86_64cpuid.pl  2007-11-11 16:25:00.000000000 +0000
++++ openssl-0.9.8o/crypto/x86_64cpuid.pl       2010-06-06 13:09:28.000000000 +0000
+@@ -95,7 +95,11 @@
+ .size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
+ .section      .init
++#ifdef OPENSSL_PIC
++      call    OPENSSL_cpuid_setup\@PLT
++#else
+       call    OPENSSL_cpuid_setup
++#endif
+ ___
+Index: openssl-0.9.8o/crypto/md5/Makefile
+===================================================================
+--- openssl-0.9.8o.orig/crypto/md5/Makefile    2008-09-17 17:11:02.000000000 +0000
++++ openssl-0.9.8o/crypto/md5/Makefile 2010-06-06 13:09:28.000000000 +0000
+@@ -52,7 +52,8 @@
+ mx86-out.s: asm/md5-586.pl ../perlasm/x86asm.pl
+       (cd asm; $(PERL) md5-586.pl a.out $(CFLAGS) > ../$@)
+-md5-x86_64.s: asm/md5-x86_64.pl;      $(PERL) asm/md5-x86_64.pl $@
++md5-x86_64.s: asm/md5-x86_64.pl
++      $(PERL) asm/md5-x86_64.pl $@
+ files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+Index: openssl-0.9.8o/crypto/des/asm/desboth.pl
+===================================================================
+--- openssl-0.9.8o.orig/crypto/des/asm/desboth.pl      2001-10-24 21:20:56.000000000 +0000
++++ openssl-0.9.8o/crypto/des/asm/desboth.pl   2010-06-06 13:09:28.000000000 +0000
+@@ -16,6 +16,11 @@
+       &push("edi");
++      &call   (&label("pic_point0"));
++      &set_label("pic_point0");
++      &blindpop("ebp");
++      &add    ("ebp", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]");
++
+       &comment("");
+       &comment("Load the data words");
+       &mov($L,&DWP(0,"ebx","",0));
+@@ -47,15 +52,21 @@
+       &mov(&swtmp(2), (DWC(($enc)?"1":"0")));
+       &mov(&swtmp(1), "eax");
+       &mov(&swtmp(0), "ebx");
+-      &call("DES_encrypt2");
++      &exch("ebx", "ebp");
++      &call("DES_encrypt2\@PLT");
++      &exch("ebx", "ebp");
+       &mov(&swtmp(2), (DWC(($enc)?"0":"1")));
+       &mov(&swtmp(1), "edi");
+       &mov(&swtmp(0), "ebx");
+-      &call("DES_encrypt2");
++      &exch("ebx", "ebp");
++      &call("DES_encrypt2\@PLT");
++      &exch("ebx", "ebp");
+       &mov(&swtmp(2), (DWC(($enc)?"1":"0")));
+       &mov(&swtmp(1), "esi");
+       &mov(&swtmp(0), "ebx");
+-      &call("DES_encrypt2");
++      &exch("ebx", "ebp");
++      &call("DES_encrypt2\@PLT");
++      &exch("ebx", "ebp");
+       &stack_pop(3);
+       &mov($L,&DWP(0,"ebx","",0));
+Index: openssl-0.9.8o/crypto/rc4/Makefile
+===================================================================
+--- openssl-0.9.8o.orig/crypto/rc4/Makefile    2008-11-19 16:03:50.000000000 +0000
++++ openssl-0.9.8o/crypto/rc4/Makefile 2010-06-06 13:09:28.000000000 +0000
+@@ -51,7 +51,7 @@
+ rx86-out.s: asm/rc4-586.pl ../perlasm/x86asm.pl
+       (cd asm; $(PERL) rc4-586.pl a.out $(CFLAGS) > ../$@)
+-rc4-x86_64.s: asm/rc4-x86_64.pl;      $(PERL) asm/rc4-x86_64.pl $@
++rc4-x86_64.S: asm/rc4-x86_64.pl;      $(PERL) asm/rc4-x86_64.pl $@
+ rc4-ia64.s: asm/rc4-ia64.S
+       @case `awk '/^#define RC4_INT/{print$$NF}' $(TOP)/include/openssl/opensslconf.h` in \
+Index: openssl-0.9.8o/crypto/rc4/asm/rc4-x86_64.pl
+===================================================================
+--- openssl-0.9.8o.orig/crypto/rc4/asm/rc4-x86_64.pl   2008-09-16 10:47:27.000000000 +0000
++++ openssl-0.9.8o/crypto/rc4/asm/rc4-x86_64.pl        2010-06-06 13:09:28.000000000 +0000
+@@ -270,7 +270,11 @@
+       xor     %r10,%r10
+       xor     %r11,%r11
++#ifdef OPENSSL_PIC
++      mov     OPENSSL_ia32cap_P\@GOTPCREL(%rip),$idx#d
++#else
+       mov     OPENSSL_ia32cap_P(%rip),$idx#d
++#endif
+       bt      \$20,$idx#d
+       jnc     .Lw1stloop
+       bt      \$30,$idx#d
+@@ -338,7 +342,11 @@
+ RC4_options:
+       .picmeup %rax
+       lea     .Lopts-.(%rax),%rax
++#ifdef OPENSSL_PIC
++      mov     OPENSSL_ia32cap_P\@GOTPCREL(%rip),%edx
++#else
+       mov     OPENSSL_ia32cap_P(%rip),%edx
++#endif
+       bt      \$20,%edx
+       jnc     .Ldone
+       add     \$12,%rax
+Index: openssl-0.9.8o/crypto/perlasm/x86unix.pl
+===================================================================
+--- openssl-0.9.8o.orig/crypto/perlasm/x86unix.pl      2008-05-01 23:11:32.000000000 +0000
++++ openssl-0.9.8o/crypto/perlasm/x86unix.pl   2010-06-06 13:09:28.000000000 +0000
+@@ -400,6 +400,29 @@
+       $stack=4;
+       }
++sub main'function_begin_B_static
++      {
++      local($func,$extra)=@_;
++
++      &main'external_label($func);
++      $func=$under.$func;
++
++      local($tmp)=<<"EOF";
++.text
++EOF
++      push(@out,$tmp);
++      if ($main'cpp)
++              { push(@out,"TYPE($func,\@function)\n"); }
++      elsif ($main'coff)
++              { $tmp=push(@out,".def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
++      elsif ($main'aout and !$main'pic)
++              { }
++      else    { push(@out,".type      $func,\@function\n"); }
++      push(@out,".align\t$align\n");
++      push(@out,"$func:\n");
++      $stack=4;
++      }
++
+ sub main'function_end
+       {
+       local($func)=@_;
+@@ -694,7 +717,17 @@
+               {
+               $tmp=<<___;
+ .section      .init
++#ifdef OPENSSL_PIC
++      pushl   %ebx
++      call    .pic_point0
++.pic_point0:
++      popl    %ebx
++      addl    \$_GLOBAL_OFFSET_TABLE_+[.-.pic_point0],%ebx
++      call    $under$f\@PLT
++      popl    %ebx
++#else
+       call    $under$f
++#endif
+       jmp     .Linitalign
+ .align        $align
+ .Linitalign:
+Index: openssl-0.9.8o/crypto/perlasm/cbc.pl
+===================================================================
+--- openssl-0.9.8o.orig/crypto/perlasm/cbc.pl  2005-05-09 21:48:00.000000000 +0000
++++ openssl-0.9.8o/crypto/perlasm/cbc.pl       2010-06-06 13:09:28.000000000 +0000
+@@ -122,7 +122,11 @@
+       &mov(&DWP($data_off,"esp","",0),        "eax"); # put in array for call
+       &mov(&DWP($data_off+4,"esp","",0),      "ebx"); #
+-      &call($enc_func);
++      &call   (&label("pic_point0"));
++      &set_label("pic_point0");
++      &blindpop("ebx");
++      &add    ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]");
++      &call("$enc_func\@PLT");
+       &mov("eax",     &DWP($data_off,"esp","",0));
+       &mov("ebx",     &DWP($data_off+4,"esp","",0));
+@@ -187,7 +191,11 @@
+       &mov(&DWP($data_off,"esp","",0),        "eax"); # put in array for call
+       &mov(&DWP($data_off+4,"esp","",0),      "ebx"); #
+-      &call($enc_func);
++      &call   (&label("pic_point1"));
++      &set_label("pic_point1");
++      &blindpop("ebx");
++      &add    ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point1") . "]");
++      &call("$enc_func\@PLT");
+       &mov("eax",     &DWP($data_off,"esp","",0));
+       &mov("ebx",     &DWP($data_off+4,"esp","",0));
+@@ -220,7 +228,11 @@
+       &mov(&DWP($data_off,"esp","",0),        "eax"); # put back
+       &mov(&DWP($data_off+4,"esp","",0),      "ebx"); #
+-      &call($dec_func);
++      &call   (&label("pic_point2"));
++      &set_label("pic_point2");
++      &blindpop("ebx");
++      &add    ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point2") . "]");
++      &call("$dec_func\@PLT");
+       &mov("eax",     &DWP($data_off,"esp","",0));    # get return
+       &mov("ebx",     &DWP($data_off+4,"esp","",0));  #
+@@ -263,7 +275,11 @@
+       &mov(&DWP($data_off,"esp","",0),        "eax"); # put back
+       &mov(&DWP($data_off+4,"esp","",0),      "ebx"); #
+-      &call($dec_func);
++      &call   (&label("pic_point3"));
++      &set_label("pic_point3");
++      &blindpop("ebx");
++      &add    ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point3") . "]");
++      &call("$dec_func\@PLT");
+       &mov("eax",     &DWP($data_off,"esp","",0));    # get return
+       &mov("ebx",     &DWP($data_off+4,"esp","",0));  #
+Index: openssl-0.9.8o/crypto/perlasm/x86_64-xlate.pl
+===================================================================
+--- openssl-0.9.8o.orig/crypto/perlasm/x86_64-xlate.pl 2010-06-06 13:09:00.000000000 +0000
++++ openssl-0.9.8o/crypto/perlasm/x86_64-xlate.pl      2010-06-06 13:09:28.000000000 +0000
+@@ -435,7 +435,7 @@
+     chomp($line);
+-    $line =~ s|[#!].*$||;     # get rid of asm-style comments...
++#    $line =~ s|[#!].*$||;    # get rid of asm-style comments...
+     $line =~ s|/\*.*\*/||;    # ... and C-style comments...
+     $line =~ s|^\s+||;                # ... and skip white spaces in beginning
+Index: openssl-0.9.8o/crypto/aes/asm/aes-586.pl
+===================================================================
+--- openssl-0.9.8o.orig/crypto/aes/asm/aes-586.pl      2008-12-17 14:14:51.000000000 +0000
++++ openssl-0.9.8o/crypto/aes/asm/aes-586.pl   2010-06-06 13:09:28.000000000 +0000
+@@ -250,7 +250,7 @@
+ sub _data_word() { my $i; while(defined($i=shift)) { &data_word($i,$i); } }
+ &public_label("AES_Te");
+-&function_begin_B("_x86_AES_encrypt");
++&function_begin_B_static("_x86_AES_encrypt");
+       if ($vertical_spin) {
+               # I need high parts of volatile registers to be accessible...
+               &exch   ($s1="edi",$key="ebx");
+@@ -539,7 +539,7 @@
+ }
+ &public_label("AES_Td");
+-&function_begin_B("_x86_AES_decrypt");
++&function_begin_B_static("_x86_AES_decrypt");
+       # note that caller is expected to allocate stack frame for me!
+       &mov    (&DWP(12,"esp"),$key);          # save key
+@@ -1461,15 +1461,22 @@
+ &public_label("AES_Td");
+ &public_label("AES_Te");
+ &function_begin_B("AES_set_decrypt_key");
++      &push   ("ebx");
+       &mov    ("eax",&wparam(0));
+       &mov    ("ecx",&wparam(1));
+       &mov    ("edx",&wparam(2));
+       &sub    ("esp",12);
++
++      &call   (&label("pic_point0")); 
++      &set_label("pic_point0");
++      &blindpop("ebx");
++      &add    ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]");
+       &mov    (&DWP(0,"esp"),"eax");
+       &mov    (&DWP(4,"esp"),"ecx");
+       &mov    (&DWP(8,"esp"),"edx");
+-      &call   ("AES_set_encrypt_key");
++      &call   ("AES_set_encrypt_key\@PLT");
+       &add    ("esp",12);
++      &pop    ("ebx");
+       &cmp    ("eax",0);
+       &je     (&label("proceed"));
+       &ret    ();