summaryrefslogtreecommitdiffstats
path: root/meta/recipes-connectivity/openssl/openssl-0.9.8t/debian/pic.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-connectivity/openssl/openssl-0.9.8t/debian/pic.patch')
-rw-r--r--meta/recipes-connectivity/openssl/openssl-0.9.8t/debian/pic.patch303
1 files changed, 303 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8t/debian/pic.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8t/debian/pic.patch
new file mode 100644
index 0000000000..5fc8f658f0
--- /dev/null
+++ b/meta/recipes-connectivity/openssl/openssl-0.9.8t/debian/pic.patch
@@ -0,0 +1,303 @@
1Upstream-Status: Backport [debian]
2
3Index: openssl-0.9.8o/crypto/Makefile
4===================================================================
5--- openssl-0.9.8o.orig/crypto/Makefile 2008-09-17 17:10:55.000000000 +0000
6+++ openssl-0.9.8o/crypto/Makefile 2010-06-06 13:09:28.000000000 +0000
7@@ -57,7 +57,7 @@
8 echo " #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \
9 echo '#endif' ) >buildinf.h
10
11-x86cpuid-elf.s: x86cpuid.pl perlasm/x86asm.pl
12+x86cpuid-elf.S: x86cpuid.pl perlasm/x86asm.pl
13 $(PERL) x86cpuid.pl elf $(CFLAGS) $(PROCESSOR) > $@
14 x86cpuid-cof.s: x86cpuid.pl perlasm/x86asm.pl
15 $(PERL) x86cpuid.pl coff $(CFLAGS) $(PROCESSOR) > $@
16@@ -70,7 +70,7 @@
17 uplink-cof.s: ../ms/uplink.pl
18 $(PERL) ../ms/uplink.pl coff > $@
19
20-x86_64cpuid.s: x86_64cpuid.pl
21+x86_64cpuid.S: x86_64cpuid.pl
22 $(PERL) x86_64cpuid.pl $@
23 ia64cpuid.s: ia64cpuid.S
24 $(CC) $(CFLAGS) -E ia64cpuid.S > $@
25Index: openssl-0.9.8o/crypto/x86_64cpuid.pl
26===================================================================
27--- openssl-0.9.8o.orig/crypto/x86_64cpuid.pl 2007-11-11 16:25:00.000000000 +0000
28+++ openssl-0.9.8o/crypto/x86_64cpuid.pl 2010-06-06 13:09:28.000000000 +0000
29@@ -95,7 +95,11 @@
30 .size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
31
32 .section .init
33+#ifdef OPENSSL_PIC
34+ call OPENSSL_cpuid_setup\@PLT
35+#else
36 call OPENSSL_cpuid_setup
37+#endif
38
39 ___
40
41Index: openssl-0.9.8o/crypto/md5/Makefile
42===================================================================
43--- openssl-0.9.8o.orig/crypto/md5/Makefile 2008-09-17 17:11:02.000000000 +0000
44+++ openssl-0.9.8o/crypto/md5/Makefile 2010-06-06 13:09:28.000000000 +0000
45@@ -52,7 +52,8 @@
46 mx86-out.s: asm/md5-586.pl ../perlasm/x86asm.pl
47 (cd asm; $(PERL) md5-586.pl a.out $(CFLAGS) > ../$@)
48
49-md5-x86_64.s: asm/md5-x86_64.pl; $(PERL) asm/md5-x86_64.pl $@
50+md5-x86_64.s: asm/md5-x86_64.pl
51+ $(PERL) asm/md5-x86_64.pl $@
52
53 files:
54 $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
55Index: openssl-0.9.8o/crypto/des/asm/desboth.pl
56===================================================================
57--- openssl-0.9.8o.orig/crypto/des/asm/desboth.pl 2001-10-24 21:20:56.000000000 +0000
58+++ openssl-0.9.8o/crypto/des/asm/desboth.pl 2010-06-06 13:09:28.000000000 +0000
59@@ -16,6 +16,11 @@
60
61 &push("edi");
62
63+ &call (&label("pic_point0"));
64+ &set_label("pic_point0");
65+ &blindpop("ebp");
66+ &add ("ebp", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]");
67+
68 &comment("");
69 &comment("Load the data words");
70 &mov($L,&DWP(0,"ebx","",0));
71@@ -47,15 +52,21 @@
72 &mov(&swtmp(2), (DWC(($enc)?"1":"0")));
73 &mov(&swtmp(1), "eax");
74 &mov(&swtmp(0), "ebx");
75- &call("DES_encrypt2");
76+ &exch("ebx", "ebp");
77+ &call("DES_encrypt2\@PLT");
78+ &exch("ebx", "ebp");
79 &mov(&swtmp(2), (DWC(($enc)?"0":"1")));
80 &mov(&swtmp(1), "edi");
81 &mov(&swtmp(0), "ebx");
82- &call("DES_encrypt2");
83+ &exch("ebx", "ebp");
84+ &call("DES_encrypt2\@PLT");
85+ &exch("ebx", "ebp");
86 &mov(&swtmp(2), (DWC(($enc)?"1":"0")));
87 &mov(&swtmp(1), "esi");
88 &mov(&swtmp(0), "ebx");
89- &call("DES_encrypt2");
90+ &exch("ebx", "ebp");
91+ &call("DES_encrypt2\@PLT");
92+ &exch("ebx", "ebp");
93
94 &stack_pop(3);
95 &mov($L,&DWP(0,"ebx","",0));
96Index: openssl-0.9.8o/crypto/rc4/Makefile
97===================================================================
98--- openssl-0.9.8o.orig/crypto/rc4/Makefile 2008-11-19 16:03:50.000000000 +0000
99+++ openssl-0.9.8o/crypto/rc4/Makefile 2010-06-06 13:09:28.000000000 +0000
100@@ -51,7 +51,7 @@
101 rx86-out.s: asm/rc4-586.pl ../perlasm/x86asm.pl
102 (cd asm; $(PERL) rc4-586.pl a.out $(CFLAGS) > ../$@)
103
104-rc4-x86_64.s: asm/rc4-x86_64.pl; $(PERL) asm/rc4-x86_64.pl $@
105+rc4-x86_64.S: asm/rc4-x86_64.pl; $(PERL) asm/rc4-x86_64.pl $@
106
107 rc4-ia64.s: asm/rc4-ia64.S
108 @case `awk '/^#define RC4_INT/{print$$NF}' $(TOP)/include/openssl/opensslconf.h` in \
109Index: openssl-0.9.8o/crypto/rc4/asm/rc4-x86_64.pl
110===================================================================
111--- openssl-0.9.8o.orig/crypto/rc4/asm/rc4-x86_64.pl 2008-09-16 10:47:27.000000000 +0000
112+++ openssl-0.9.8o/crypto/rc4/asm/rc4-x86_64.pl 2010-06-06 13:09:28.000000000 +0000
113@@ -270,7 +270,11 @@
114 xor %r10,%r10
115 xor %r11,%r11
116
117+#ifdef OPENSSL_PIC
118+ mov OPENSSL_ia32cap_P\@GOTPCREL(%rip),$idx#d
119+#else
120 mov OPENSSL_ia32cap_P(%rip),$idx#d
121+#endif
122 bt \$20,$idx#d
123 jnc .Lw1stloop
124 bt \$30,$idx#d
125@@ -338,7 +342,11 @@
126 RC4_options:
127 .picmeup %rax
128 lea .Lopts-.(%rax),%rax
129+#ifdef OPENSSL_PIC
130+ mov OPENSSL_ia32cap_P\@GOTPCREL(%rip),%edx
131+#else
132 mov OPENSSL_ia32cap_P(%rip),%edx
133+#endif
134 bt \$20,%edx
135 jnc .Ldone
136 add \$12,%rax
137Index: openssl-0.9.8o/crypto/perlasm/x86unix.pl
138===================================================================
139--- openssl-0.9.8o.orig/crypto/perlasm/x86unix.pl 2008-05-01 23:11:32.000000000 +0000
140+++ openssl-0.9.8o/crypto/perlasm/x86unix.pl 2010-06-06 13:09:28.000000000 +0000
141@@ -400,6 +400,29 @@
142 $stack=4;
143 }
144
145+sub main'function_begin_B_static
146+ {
147+ local($func,$extra)=@_;
148+
149+ &main'external_label($func);
150+ $func=$under.$func;
151+
152+ local($tmp)=<<"EOF";
153+.text
154+EOF
155+ push(@out,$tmp);
156+ if ($main'cpp)
157+ { push(@out,"TYPE($func,\@function)\n"); }
158+ elsif ($main'coff)
159+ { $tmp=push(@out,".def\t$func;\t.scl\t2;\t.type\t32;\t.endef\n"); }
160+ elsif ($main'aout and !$main'pic)
161+ { }
162+ else { push(@out,".type $func,\@function\n"); }
163+ push(@out,".align\t$align\n");
164+ push(@out,"$func:\n");
165+ $stack=4;
166+ }
167+
168 sub main'function_end
169 {
170 local($func)=@_;
171@@ -694,7 +717,17 @@
172 {
173 $tmp=<<___;
174 .section .init
175+#ifdef OPENSSL_PIC
176+ pushl %ebx
177+ call .pic_point0
178+.pic_point0:
179+ popl %ebx
180+ addl \$_GLOBAL_OFFSET_TABLE_+[.-.pic_point0],%ebx
181+ call $under$f\@PLT
182+ popl %ebx
183+#else
184 call $under$f
185+#endif
186 jmp .Linitalign
187 .align $align
188 .Linitalign:
189Index: openssl-0.9.8o/crypto/perlasm/cbc.pl
190===================================================================
191--- openssl-0.9.8o.orig/crypto/perlasm/cbc.pl 2005-05-09 21:48:00.000000000 +0000
192+++ openssl-0.9.8o/crypto/perlasm/cbc.pl 2010-06-06 13:09:28.000000000 +0000
193@@ -122,7 +122,11 @@
194 &mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call
195 &mov(&DWP($data_off+4,"esp","",0), "ebx"); #
196
197- &call($enc_func);
198+ &call (&label("pic_point0"));
199+ &set_label("pic_point0");
200+ &blindpop("ebx");
201+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]");
202+ &call("$enc_func\@PLT");
203
204 &mov("eax", &DWP($data_off,"esp","",0));
205 &mov("ebx", &DWP($data_off+4,"esp","",0));
206@@ -187,7 +191,11 @@
207 &mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call
208 &mov(&DWP($data_off+4,"esp","",0), "ebx"); #
209
210- &call($enc_func);
211+ &call (&label("pic_point1"));
212+ &set_label("pic_point1");
213+ &blindpop("ebx");
214+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point1") . "]");
215+ &call("$enc_func\@PLT");
216
217 &mov("eax", &DWP($data_off,"esp","",0));
218 &mov("ebx", &DWP($data_off+4,"esp","",0));
219@@ -220,7 +228,11 @@
220 &mov(&DWP($data_off,"esp","",0), "eax"); # put back
221 &mov(&DWP($data_off+4,"esp","",0), "ebx"); #
222
223- &call($dec_func);
224+ &call (&label("pic_point2"));
225+ &set_label("pic_point2");
226+ &blindpop("ebx");
227+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point2") . "]");
228+ &call("$dec_func\@PLT");
229
230 &mov("eax", &DWP($data_off,"esp","",0)); # get return
231 &mov("ebx", &DWP($data_off+4,"esp","",0)); #
232@@ -263,7 +275,11 @@
233 &mov(&DWP($data_off,"esp","",0), "eax"); # put back
234 &mov(&DWP($data_off+4,"esp","",0), "ebx"); #
235
236- &call($dec_func);
237+ &call (&label("pic_point3"));
238+ &set_label("pic_point3");
239+ &blindpop("ebx");
240+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point3") . "]");
241+ &call("$dec_func\@PLT");
242
243 &mov("eax", &DWP($data_off,"esp","",0)); # get return
244 &mov("ebx", &DWP($data_off+4,"esp","",0)); #
245Index: openssl-0.9.8o/crypto/perlasm/x86_64-xlate.pl
246===================================================================
247--- openssl-0.9.8o.orig/crypto/perlasm/x86_64-xlate.pl 2010-06-06 13:09:00.000000000 +0000
248+++ openssl-0.9.8o/crypto/perlasm/x86_64-xlate.pl 2010-06-06 13:09:28.000000000 +0000
249@@ -435,7 +435,7 @@
250
251 chomp($line);
252
253- $line =~ s|[#!].*$||; # get rid of asm-style comments...
254+# $line =~ s|[#!].*$||; # get rid of asm-style comments...
255 $line =~ s|/\*.*\*/||; # ... and C-style comments...
256 $line =~ s|^\s+||; # ... and skip white spaces in beginning
257
258Index: openssl-0.9.8o/crypto/aes/asm/aes-586.pl
259===================================================================
260--- openssl-0.9.8o.orig/crypto/aes/asm/aes-586.pl 2008-12-17 14:14:51.000000000 +0000
261+++ openssl-0.9.8o/crypto/aes/asm/aes-586.pl 2010-06-06 13:09:28.000000000 +0000
262@@ -250,7 +250,7 @@
263 sub _data_word() { my $i; while(defined($i=shift)) { &data_word($i,$i); } }
264
265 &public_label("AES_Te");
266-&function_begin_B("_x86_AES_encrypt");
267+&function_begin_B_static("_x86_AES_encrypt");
268 if ($vertical_spin) {
269 # I need high parts of volatile registers to be accessible...
270 &exch ($s1="edi",$key="ebx");
271@@ -539,7 +539,7 @@
272 }
273
274 &public_label("AES_Td");
275-&function_begin_B("_x86_AES_decrypt");
276+&function_begin_B_static("_x86_AES_decrypt");
277 # note that caller is expected to allocate stack frame for me!
278 &mov (&DWP(12,"esp"),$key); # save key
279
280@@ -1461,15 +1461,22 @@
281 &public_label("AES_Td");
282 &public_label("AES_Te");
283 &function_begin_B("AES_set_decrypt_key");
284+ &push ("ebx");
285 &mov ("eax",&wparam(0));
286 &mov ("ecx",&wparam(1));
287 &mov ("edx",&wparam(2));
288 &sub ("esp",12);
289+
290+ &call (&label("pic_point0"));
291+ &set_label("pic_point0");
292+ &blindpop("ebx");
293+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]");
294 &mov (&DWP(0,"esp"),"eax");
295 &mov (&DWP(4,"esp"),"ecx");
296 &mov (&DWP(8,"esp"),"edx");
297- &call ("AES_set_encrypt_key");
298+ &call ("AES_set_encrypt_key\@PLT");
299 &add ("esp",12);
300+ &pop ("ebx");
301 &cmp ("eax",0);
302 &je (&label("proceed"));
303 &ret ();