1 |
vapier 11/06/01 18:46:47 |
2 |
|
3 |
Added: 0020_all_glibc-tweak-rfc1918-lookup.patch |
4 |
0030_all_glibc-respect-env-CPPFLAGS.patch |
5 |
0055_all_glibc-2.12-static-shared-getpagesize.patch |
6 |
0061_all_glibc-2.13-static-memset.patch |
7 |
0085_all_glibc-disable-ldconfig.patch |
8 |
1005_all_glibc-sigaction.patch |
9 |
1010_all_glibc-queue-header-updates.patch |
10 |
1020_all_glibc-longjmp-chk-hidden-fortify.patch |
11 |
1030_all_glibc-manual-no-perl.patch |
12 |
1040_all_2.3.3-localedef-fix-trampoline.patch |
13 |
1055_all_glibc-resolv-dynamic.patch |
14 |
1060_all_glibc-localedef-mmap.patch |
15 |
1070_all_glibc-fadvise64_64.patch |
16 |
1075_all_glibc-section-comments.patch |
17 |
1080_all_glibc-no-inline-gmon.patch |
18 |
1085_all_glibc-2.9-check_native-headers.patch |
19 |
1090_all_glibc-2.3.6-fix-pr631.patch |
20 |
1095_all_glibc-2.14-assume-pipe2-dup3.patch |
21 |
1100_all_glibc-2.3.3-china.patch |
22 |
1103_all_glibc-new-valencian-locale.patch |
23 |
1120_all_glibc-2.11-longjmp-chk-fallback.patch |
24 |
1130_all_glibc-2.4-undefine-__i686.patch |
25 |
1160_all_glibc-2.8-nscd-one-fork.patch |
26 |
3000_all_2.3.6-dl_execstack-PaX-support.patch |
27 |
3010_all_2.3.3_pre20040117-pt_pax.patch |
28 |
3020_all_glibc-tests-sandbox-libdl-paths.patch |
29 |
5063_all_glibc-dont-build-timezone.patch |
30 |
6120_all_ppc-glibc-2.9-atomic.patch |
31 |
6130_all_ppc-glibc-2.11-cell-vector.patch |
32 |
README.history |
33 |
Log: |
34 |
initial 2.14 patchset based on last 2.13 patchset |
35 |
|
36 |
Revision Changes Path |
37 |
1.1 src/patchsets/glibc/2.14/0020_all_glibc-tweak-rfc1918-lookup.patch |
38 |
|
39 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/0020_all_glibc-tweak-rfc1918-lookup.patch?rev=1.1&view=markup |
40 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/0020_all_glibc-tweak-rfc1918-lookup.patch?rev=1.1&content-type=text/plain |
41 |
|
42 |
Index: 0020_all_glibc-tweak-rfc1918-lookup.patch |
43 |
=================================================================== |
44 |
http://bugs.gentoo.org/315977 |
45 |
|
46 |
diff --git a/posix/gai.conf b/posix/gai.conf |
47 |
index 195287e..efba67b 100644 |
48 |
--- a/posix/gai.conf |
49 |
+++ b/posix/gai.conf |
50 |
@@ -56,9 +56,7 @@ |
51 |
# |
52 |
# scopev4 <mask> <value> |
53 |
# Add another rule to the RFC 3484 scope table for IPv4 addresses. |
54 |
-# By default the scope IDs described in section 3.2 in RFC 3484 are |
55 |
-# used. Changing these defaults should hardly ever be necessary. |
56 |
-# The defaults are equivalent to: |
57 |
+# The definitions in RFC 3484 are equivalent to: |
58 |
# |
59 |
#scopev4 ::ffff:169.254.0.0/112 2 |
60 |
#scopev4 ::ffff:127.0.0.0/104 2 |
61 |
@@ -72,6 +70,6 @@ |
62 |
# have the same scope and are therefore not sorted first. To change |
63 |
# this use only these rules: |
64 |
# |
65 |
-#scopev4 ::ffff:169.254.0.0/112 2 |
66 |
-#scopev4 ::ffff:127.0.0.0/104 2 |
67 |
-#scopev4 ::ffff:0.0.0.0/96 14 |
68 |
+scopev4 ::ffff:169.254.0.0/112 2 |
69 |
+scopev4 ::ffff:127.0.0.0/104 2 |
70 |
+scopev4 ::ffff:0.0.0.0/96 14 |
71 |
|
72 |
|
73 |
|
74 |
1.1 src/patchsets/glibc/2.14/0030_all_glibc-respect-env-CPPFLAGS.patch |
75 |
|
76 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/0030_all_glibc-respect-env-CPPFLAGS.patch?rev=1.1&view=markup |
77 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/0030_all_glibc-respect-env-CPPFLAGS.patch?rev=1.1&content-type=text/plain |
78 |
|
79 |
Index: 0030_all_glibc-respect-env-CPPFLAGS.patch |
80 |
=================================================================== |
81 |
Respect environment CPPFLAGS when we run ./configure so we can inject |
82 |
random -D things without having to set CFLAGS/ASFLAGS |
83 |
|
84 |
--- libc/Makeconfig |
85 |
+++ libc/Makeconfig |
86 |
@@ -672,6 +672,7 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+incl |
87 |
$(foreach lib,$(libof-$(basename $(@F))) \ |
88 |
$(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \ |
89 |
$(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F)) $(CPPFLAGS-$(basename $(@F))) |
90 |
+CPPFLAGS += $(CPPFLAGS-config) |
91 |
override CFLAGS = -std=gnu99 $(gnu89-inline-CFLAGS) \ |
92 |
$(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \ |
93 |
$(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \ |
94 |
--- libc/config.make.in |
95 |
+++ libc/config.make.in |
96 |
@@ -95,6 +95,7 @@ CC = @CC@ |
97 |
CXX = @CXX@ |
98 |
BUILD_CC = @BUILD_CC@ |
99 |
CFLAGS = @CFLAGS@ |
100 |
+CPPFLAGS-config = @CPPFLAGS@ |
101 |
ASFLAGS-config = @ASFLAGS_config@ |
102 |
AR = @AR@ |
103 |
RANLIB = @RANLIB@ |
104 |
|
105 |
|
106 |
|
107 |
1.1 src/patchsets/glibc/2.14/0055_all_glibc-2.12-static-shared-getpagesize.patch |
108 |
|
109 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/0055_all_glibc-2.12-static-shared-getpagesize.patch?rev=1.1&view=markup |
110 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/0055_all_glibc-2.12-static-shared-getpagesize.patch?rev=1.1&content-type=text/plain |
111 |
|
112 |
Index: 0055_all_glibc-2.12-static-shared-getpagesize.patch |
113 |
=================================================================== |
114 |
http://thread.gmane.org/gmane.comp.lib.glibc.user/579 |
115 |
http://sources.redhat.com/bugzilla/show_bug.cgi?id=11929 |
116 |
http://bugs.gentoo.org/332927 |
117 |
|
118 |
a simple statically linked app fails with glibc-2.12: |
119 |
$ cat test.c |
120 |
main(){getpwnam("root");} |
121 |
$ gcc -static test.c |
122 |
$ ./a.out |
123 |
a.out: ../sysdeps/unix/sysv/linux/getpagesize.c:32: __getpagesize: |
124 |
Assertion `_rtld_global_ro._dl_pagesize != 0' failed. |
125 |
Aborted (core dumped) |
126 |
|
127 |
the crux of the matter seems to be the fact that static apps with |
128 |
glibc will dynamically load nss shared libraries when necessary. the |
129 |
static code will initialize GLRO(dl_pagesize) just fine from the |
130 |
kernel auxv, but this being the static code paths, GLRO(dl_pagesize) |
131 |
expands into _dl_pagesize. when the nss shared libraries are loaded |
132 |
up, the ldso is also mapped in, but it doesnt process the kernel auxv |
133 |
(_dl_sysdep_start() is not called). so the shared library |
134 |
GLRO(dl_pagesize) expands into _rtld_global_ro._dl_pagesize and that |
135 |
field stays at 0. |
136 |
|
137 |
then when the nss shared libs process the request and gets to the |
138 |
standard "passwd" database, it calls the shared lib versions of |
139 |
malloc/stdio which rely on the __getpagesize() function. but this |
140 |
being in the shared library, it reads the shared GLRO(dl_pagesize) |
141 |
which is 0, and the assert() is triggered. |
142 |
|
143 |
i think running nscd makes things work because its nss module that |
144 |
talks to the nscd daemon doesnt call any routines that implicitly rely |
145 |
on __getpagesize(). |
146 |
|
147 |
this all started happening after this commit: |
148 |
From 8f4a5048eea6536ee85c0f2670adbb97d71e427d Mon Sep 17 00:00:00 2001 |
149 |
From: Ulrich Drepper <drepper@××××××.com> |
150 |
Date: Sat, 27 Mar 2010 06:19:50 -0700 |
151 |
Subject: [PATCH] Optimize __getpagesize a bit. |
152 |
|
153 |
if we look at the ia64 port, we see that it has had similar logic for |
154 |
its __getpagesize function forever. so take its DL_STATIC_INIT code |
155 |
and move it up to the common linux tree. |
156 |
|
157 |
2010-08-18 Mike Frysinger <vapier@g.o> |
158 |
|
159 |
* sysdeps/unix/sysv/linux/ia64/Makefile: Move dl-static addition to |
160 |
sysdep vars for subdir==elf to ... |
161 |
* sysdeps/unix/sysv/linux/Makefile: ... here. |
162 |
* sysdeps/unix/sysv/linux/ia64/dl-static.c: Move file to ... |
163 |
* sysdeps/unix/sysv/linux/dl-static.c: ... here. |
164 |
* sysdeps/unix/sysv/linux/ia64/ldsodefs.h: Delete, and move the |
165 |
DL_STATIC_INIT defines to ... |
166 |
* sysdeps/unix/sysv/linux/ldsodefs.h: ... here. |
167 |
* sysdeps/unix/sysv/linux/ia64/getpagesize.c: Delete. |
168 |
|
169 |
diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile |
170 |
index d9a35a7..3bb1ce0 100644 |
171 |
--- a/sysdeps/unix/sysv/linux/ia64/Makefile |
172 |
+++ b/sysdeps/unix/sysv/linux/ia64/Makefile |
173 |
@@ -12,12 +12,6 @@ sysdep_headers += sys/io.h |
174 |
sysdep_routines += ioperm clone2 |
175 |
endif |
176 |
|
177 |
-ifeq ($(subdir),elf) |
178 |
-sysdep-dl-routines += dl-static |
179 |
-sysdep_routines += $(sysdep-dl-routines) |
180 |
-sysdep-rtld-routines += $(sysdep-dl-routines) |
181 |
-endif |
182 |
- |
183 |
ifeq ($(subdir),rt) |
184 |
librt-routines += rt-sysdep |
185 |
endif |
186 |
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile |
187 |
index 4302bd3..37c56a3 100644 |
188 |
--- a/sysdeps/unix/sysv/linux/Makefile |
189 |
+++ b/sysdeps/unix/sysv/linux/Makefile |
190 |
@@ -147,8 +147,10 @@ sysdep_routines += xstatconv internal_statvfs internal_statvfs64 \ |
191 |
endif |
192 |
|
193 |
ifeq ($(subdir),elf) |
194 |
-sysdep-rtld-routines += dl-brk dl-sbrk dl-getcwd dl-openat64 dl-opendir \ |
195 |
- dl-fxstatat64 |
196 |
+sysdep-dl-routines += dl-static |
197 |
+sysdep_routines += dl-static |
198 |
+sysdep-rtld-routines += dl-brk dl-sbrk dl-getcwd dl-openat64 dl-opendir \ |
199 |
+ dl-fxstatat64 dl-static |
200 |
|
201 |
CPPFLAGS-lddlibc4 += -DNOT_IN_libc |
202 |
endif |
203 |
diff --git a/sysdeps/unix/sysv/linux/ia64/dl-static.c b/sysdeps/unix/sysv/linux/ia64/dl-static.c |
204 |
deleted file mode 100644 |
205 |
index 4efc077..0000000 |
206 |
--- a/sysdeps/unix/sysv/linux/ia64/dl-static.c |
207 |
+++ /dev/null |
208 |
@@ -1,69 +0,0 @@ |
209 |
-/* Variable initialization. IA-64 version. |
210 |
- Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. |
211 |
- This file is part of the GNU C Library. |
212 |
- |
213 |
- The GNU C Library is free software; you can redistribute it and/or |
214 |
- modify it under the terms of the GNU Lesser General Public |
215 |
- License as published by the Free Software Foundation; either |
216 |
- version 2.1 of the License, or (at your option) any later version. |
217 |
- |
218 |
- The GNU C Library is distributed in the hope that it will be useful, |
219 |
- but WITHOUT ANY WARRANTY; without even the implied warranty of |
220 |
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
221 |
- Lesser General Public License for more details. |
222 |
- |
223 |
- You should have received a copy of the GNU Lesser General Public |
224 |
- License along with the GNU C Library; if not, write to the Free |
225 |
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
226 |
- 02111-1307 USA. */ |
227 |
- |
228 |
-#include <ldsodefs.h> |
229 |
- |
230 |
-#ifdef SHARED |
231 |
- |
232 |
-void |
233 |
-_dl_var_init (void *array[]) |
234 |
-{ |
235 |
- /* It has to match "variables" below. */ |
236 |
- enum |
237 |
- { |
238 |
- DL_PAGESIZE = 0, |
239 |
- DL_CLKTCK |
240 |
- }; |
241 |
- |
242 |
- GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]); |
243 |
- GLRO(dl_clktck) = *((int *) array[DL_CLKTCK]); |
244 |
-} |
245 |
- |
246 |
-#else |
247 |
-#include <bits/libc-lock.h> |
248 |
- |
249 |
-__libc_lock_define_initialized_recursive (static, _dl_static_lock) |
250 |
- |
251 |
-static void *variables[] = |
252 |
-{ |
253 |
- &GLRO(dl_pagesize), |
254 |
- &GLRO(dl_clktck) |
255 |
-}; |
256 |
- |
257 |
-void |
258 |
-_dl_static_init (struct link_map *map) |
259 |
-{ |
260 |
- const ElfW(Sym) *ref = NULL; |
261 |
- lookup_t loadbase; |
262 |
- void (*f) (void *[]); |
263 |
- |
264 |
- __libc_lock_lock_recursive (_dl_static_lock); |
265 |
- |
266 |
- loadbase = _dl_lookup_symbol_x ("_dl_var_init", map, &ref, |
267 |
- map->l_local_scope, NULL, 0, 1, NULL); |
268 |
- if (ref != NULL) |
269 |
- { |
270 |
- f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref); |
271 |
- f (variables); |
272 |
- } |
273 |
- |
274 |
- __libc_lock_unlock_recursive (_dl_static_lock); |
275 |
-} |
276 |
- |
277 |
-#endif |
278 |
diff --git a/sysdeps/unix/sysv/linux/dl-static.c b/sysdeps/unix/sysv/linux/dl-static.c |
279 |
new file mode 100644 |
280 |
index 0000000..fa70811 |
281 |
--- /dev/null |
282 |
+++ b/sysdeps/unix/sysv/linux/dl-static.c |
283 |
@@ -0,0 +1,69 @@ |
284 |
+/* Variable initialization. |
285 |
+ Copyright (C) 2001, 2002, 2003, 2004, 2010 Free Software Foundation, Inc. |
286 |
+ This file is part of the GNU C Library. |
287 |
+ |
288 |
+ The GNU C Library is free software; you can redistribute it and/or |
289 |
+ modify it under the terms of the GNU Lesser General Public |
290 |
+ License as published by the Free Software Foundation; either |
291 |
+ version 2.1 of the License, or (at your option) any later version. |
292 |
+ |
293 |
+ The GNU C Library is distributed in the hope that it will be useful, |
294 |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of |
295 |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
296 |
+ Lesser General Public License for more details. |
297 |
+ |
298 |
+ You should have received a copy of the GNU Lesser General Public |
299 |
+ License along with the GNU C Library; if not, write to the Free |
300 |
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
301 |
+ 02111-1307 USA. */ |
302 |
+ |
303 |
+#include <ldsodefs.h> |
304 |
+ |
305 |
+#ifdef SHARED |
306 |
+ |
307 |
+void |
308 |
+_dl_var_init (void *array[]) |
309 |
+{ |
310 |
+ /* It has to match "variables" below. */ |
311 |
+ enum |
312 |
+ { |
313 |
+ DL_PAGESIZE = 0, |
314 |
+ DL_CLKTCK |
315 |
+ }; |
316 |
+ |
317 |
+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]); |
318 |
+ GLRO(dl_clktck) = *((int *) array[DL_CLKTCK]); |
319 |
+} |
320 |
+ |
321 |
+#else |
322 |
+#include <bits/libc-lock.h> |
323 |
+ |
324 |
+__libc_lock_define_initialized_recursive (static, _dl_static_lock) |
325 |
+ |
326 |
+static void *variables[] = |
327 |
+{ |
328 |
+ &GLRO(dl_pagesize), |
329 |
+ &GLRO(dl_clktck) |
330 |
+}; |
331 |
+ |
332 |
+void |
333 |
+_dl_static_init (struct link_map *map) |
334 |
+{ |
335 |
+ const ElfW(Sym) *ref = NULL; |
336 |
+ lookup_t loadbase; |
337 |
+ void (*f) (void *[]); |
338 |
+ |
339 |
+ __libc_lock_lock_recursive (_dl_static_lock); |
340 |
+ |
341 |
+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", map, &ref, |
342 |
+ map->l_local_scope, NULL, 0, 1, NULL); |
343 |
+ if (ref != NULL) |
344 |
+ { |
345 |
+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref); |
346 |
+ f (variables); |
347 |
+ } |
348 |
+ |
349 |
+ __libc_lock_unlock_recursive (_dl_static_lock); |
350 |
+} |
351 |
+ |
352 |
+#endif |
353 |
diff --git a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h b/sysdeps/unix/sysv/linux/ia64/ldsodefs.h |
354 |
deleted file mode 100644 |
355 |
index 31af624..0000000 |
356 |
--- a/sysdeps/unix/sysv/linux/ia64/ldsodefs.h |
357 |
+++ /dev/null |
358 |
@@ -1,33 +0,0 @@ |
359 |
-/* Run-time dynamic linker data structures for loaded ELF shared objects. IA64. |
360 |
- Copyright (C) 2001 Free Software Foundation, Inc. |
361 |
- This file is part of the GNU C Library. |
362 |
- |
363 |
- The GNU C Library is free software; you can redistribute it and/or |
364 |
- modify it under the terms of the GNU Lesser General Public |
365 |
- License as published by the Free Software Foundation; either |
366 |
- version 2.1 of the License, or (at your option) any later version. |
367 |
- |
368 |
- The GNU C Library is distributed in the hope that it will be useful, |
369 |
- but WITHOUT ANY WARRANTY; without even the implied warranty of |
370 |
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
371 |
- Lesser General Public License for more details. |
372 |
- |
373 |
- You should have received a copy of the GNU Lesser General Public |
374 |
- License along with the GNU C Library; if not, write to the Free |
375 |
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
376 |
- 02111-1307 USA. */ |
377 |
- |
378 |
-#ifndef _LDSODEFS_H |
379 |
- |
380 |
-/* Get the real definitions. */ |
381 |
-#include_next <ldsodefs.h> |
382 |
- |
383 |
-/* Now define our stuff. */ |
384 |
- |
385 |
-/* We need special support to initialize DSO loaded for statically linked |
386 |
- binaries. */ |
387 |
-extern void _dl_static_init (struct link_map *map); |
388 |
-#undef DL_STATIC_INIT |
389 |
-#define DL_STATIC_INIT(map) _dl_static_init (map) |
390 |
- |
391 |
-#endif /* ldsodefs.h */ |
392 |
diff --git a/sysdeps/unix/sysv/linux/ldsodefs.h b/sysdeps/unix/sysv/linux/ldsodefs.h |
393 |
index 5d5b1b4..ecb5d4f 100644 |
394 |
--- a/sysdeps/unix/sysv/linux/ldsodefs.h |
395 |
+++ b/sysdeps/unix/sysv/linux/ldsodefs.h |
396 |
@@ -36,6 +36,12 @@ extern void _dl_aux_init (ElfW(auxv_t) *av) internal_function; |
397 |
/* Initialization which is normally done by the dynamic linker. */ |
398 |
extern void _dl_non_dynamic_init (void) internal_function; |
399 |
|
400 |
+/* We need special support to initialize DSO loaded for statically linked |
401 |
+ binaries. */ |
402 |
+extern void _dl_static_init (struct link_map *map); |
403 |
+#undef DL_STATIC_INIT |
404 |
+#define DL_STATIC_INIT(map) _dl_static_init (map) |
405 |
+ |
406 |
/* We can assume that the kernel always provides the AT_UID, AT_EUID, |
407 |
AT_GID, and AT_EGID values in the auxiliary vector from 2.4.0 or so on. */ |
408 |
#if __ASSUME_AT_XID |
409 |
diff --git a/sysdeps/unix/sysv/linux/ia64/getpagesize.c b/sysdeps/unix/sysv/linux/ia64/getpagesize.c |
410 |
deleted file mode 100644 |
411 |
index 1155dfd..0000000 |
412 |
--- a/sysdeps/unix/sysv/linux/ia64/getpagesize.c |
413 |
+++ /dev/null |
414 |
@@ -1,39 +0,0 @@ |
415 |
-/* Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. |
416 |
- This file is part of the GNU C Library. |
417 |
- |
418 |
- The GNU C Library is free software; you can redistribute it and/or |
419 |
- modify it under the terms of the GNU Lesser General Public |
420 |
- License as published by the Free Software Foundation; either |
421 |
- version 2.1 of the License, or (at your option) any later version. |
422 |
- |
423 |
- The GNU C Library is distributed in the hope that it will be useful, |
424 |
- but WITHOUT ANY WARRANTY; without even the implied warranty of |
425 |
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
426 |
- Lesser General Public License for more details. |
427 |
- |
428 |
- You should have received a copy of the GNU Lesser General Public |
429 |
- License along with the GNU C Library; if not, write to the Free |
430 |
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
431 |
- 02111-1307 USA. */ |
432 |
- |
433 |
-#include <assert.h> |
434 |
-#include <unistd.h> |
435 |
-#include <sys/param.h> |
436 |
- |
437 |
-#include <ldsodefs.h> |
438 |
-#include <sysdep.h> |
439 |
-#include <sys/syscall.h> |
440 |
- |
441 |
-/* Return the system page size. The return value will depend on how |
442 |
- the kernel is configured. A program must use this call to |
443 |
- determine the page size to ensure proper alignment for calls such |
444 |
- as mmap and friends. --davidm 99/11/30 */ |
445 |
- |
446 |
-int |
447 |
-__getpagesize () |
448 |
-{ |
449 |
- assert (GLRO(dl_pagesize) != 0); |
450 |
- return GLRO(dl_pagesize); |
451 |
-} |
452 |
-libc_hidden_def (__getpagesize) |
453 |
-weak_alias (__getpagesize, getpagesize) |
454 |
|
455 |
|
456 |
|
457 |
1.1 src/patchsets/glibc/2.14/0061_all_glibc-2.13-static-memset.patch |
458 |
|
459 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/0061_all_glibc-2.13-static-memset.patch?rev=1.1&view=markup |
460 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/0061_all_glibc-2.13-static-memset.patch?rev=1.1&content-type=text/plain |
461 |
|
462 |
Index: 0061_all_glibc-2.13-static-memset.patch |
463 |
=================================================================== |
464 |
http://bugs.gentoo.org/353816 |
465 |
http://sourceware.org/ml/libc-alpha/2011-02/msg00152.html |
466 |
|
467 |
From 87fac357a6243982ce21cb71e21bbe0d35234eed Mon Sep 17 00:00:00 2001 |
468 |
From: Mike Frysinger <vapier@g.o> |
469 |
Date: Tue, 22 Feb 2011 13:26:19 -0500 |
470 |
Subject: [PATCH] memset: fix define usage for shared libs |
471 |
|
472 |
The proper define to check "am I in a shared lib" is "SHARED", not "PIC". |
473 |
The two new memset_chk functions incorrectly depend on "PIC". |
474 |
|
475 |
Signed-off-by: Mike Frysinger <vapier@g.o> |
476 |
|
477 |
2011-02-22 Mike Frysinger <vapier@g.o> |
478 |
|
479 |
* sysdeps/i386/i686/memset_chk.S: Change PIC to SHARED. |
480 |
* sysdeps/x86_64/memset_chk.S: Likewise. |
481 |
--- |
482 |
sysdeps/i386/i686/memset_chk.S | 2 +- |
483 |
sysdeps/x86_64/memset_chk.S | 2 +- |
484 |
2 files changed, 2 insertions(+), 2 deletions(-) |
485 |
|
486 |
diff --git a/sysdeps/i386/i686/memset_chk.S b/sysdeps/i386/i686/memset_chk.S |
487 |
index cd93d5e..e7511a0 100644 |
488 |
--- a/sysdeps/i386/i686/memset_chk.S |
489 |
+++ b/sysdeps/i386/i686/memset_chk.S |
490 |
@@ -20,7 +20,7 @@ |
491 |
#include <sysdep.h> |
492 |
#include "asm-syntax.h" |
493 |
|
494 |
-#ifndef PIC |
495 |
+#ifndef SHARED |
496 |
/* For libc.so this is defined in memset.S. |
497 |
For libc.a, this is a separate source to avoid |
498 |
memset bringing in __chk_fail and all routines |
499 |
diff --git a/sysdeps/x86_64/memset_chk.S b/sysdeps/x86_64/memset_chk.S |
500 |
index c1c8c23..2c4fffc 100644 |
501 |
--- a/sysdeps/x86_64/memset_chk.S |
502 |
+++ b/sysdeps/x86_64/memset_chk.S |
503 |
@@ -20,7 +20,7 @@ |
504 |
#include <sysdep.h> |
505 |
#include "asm-syntax.h" |
506 |
|
507 |
-#ifndef PIC |
508 |
+#ifndef SHARED |
509 |
/* For libc.so this is defined in memset.S. |
510 |
For libc.a, this is a separate source to avoid |
511 |
memset bringing in __chk_fail and all routines |
512 |
-- |
513 |
1.7.4.1 |
514 |
|
515 |
|
516 |
|
517 |
|
518 |
1.1 src/patchsets/glibc/2.14/0085_all_glibc-disable-ldconfig.patch |
519 |
|
520 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/0085_all_glibc-disable-ldconfig.patch?rev=1.1&view=markup |
521 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/0085_all_glibc-disable-ldconfig.patch?rev=1.1&content-type=text/plain |
522 |
|
523 |
Index: 0085_all_glibc-disable-ldconfig.patch |
524 |
=================================================================== |
525 |
do not bother running ldconfig on DESTDIR. it wants to write the temp cache |
526 |
file outside of the chroot. doesnt matter anyways as we wont use the cache |
527 |
results (portage will rebuild cache), so running ldconfig is simply a waste |
528 |
of time. |
529 |
|
530 |
--- a/Makefile |
531 |
+++ b/Makefile |
532 |
@@ -117,4 +117,5 @@ |
533 |
|
534 |
install: |
535 |
+dont-bother-with-destdir: |
536 |
-test ! -x $(common-objpfx)elf/ldconfig || LC_ALL=C LANGUAGE=C \ |
537 |
$(common-objpfx)elf/ldconfig $(addprefix -r ,$(install_root)) \ |
538 |
|
539 |
|
540 |
|
541 |
1.1 src/patchsets/glibc/2.14/1005_all_glibc-sigaction.patch |
542 |
|
543 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1005_all_glibc-sigaction.patch?rev=1.1&view=markup |
544 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1005_all_glibc-sigaction.patch?rev=1.1&content-type=text/plain |
545 |
|
546 |
Index: 1005_all_glibc-sigaction.patch |
547 |
=================================================================== |
548 |
http://bugs.gentoo.org/283470 |
549 |
|
550 |
work around ... not entirely sure what is going on here. |
551 |
|
552 |
2011-03-01 squeezy <vina@××××××××××.eu> |
553 |
|
554 |
#283470 |
555 |
* sysdeps/unix/sysv/linux/x86_64/sigaction.c fix the __restore_rt symbol |
556 |
|
557 |
--- libc/sysdeps/unix/sysv/linux/x86_64/sigaction.c |
558 |
+++ libc/sysdeps/unix/sysv/linux/x86_64/sigaction.c |
559 |
@@ -40,7 +40,7 @@ |
560 |
|
561 |
/* Using the hidden attribute here does not change the code but it |
562 |
helps to avoid warnings. */ |
563 |
-extern void restore_rt (void) asm ("__restore_rt") attribute_hidden; |
564 |
+extern void restore_rt (void) asm ("__restore_rt") __attribute__((__visibility__("hidden"))); |
565 |
|
566 |
|
567 |
/* If ACT is not NULL, change the action for SIG to *ACT. |
568 |
|
569 |
|
570 |
|
571 |
1.1 src/patchsets/glibc/2.14/1010_all_glibc-queue-header-updates.patch |
572 |
|
573 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1010_all_glibc-queue-header-updates.patch?rev=1.1&view=markup |
574 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1010_all_glibc-queue-header-updates.patch?rev=1.1&content-type=text/plain |
575 |
|
576 |
Index: 1010_all_glibc-queue-header-updates.patch |
577 |
=================================================================== |
578 |
grab some updates from FreeBSD |
579 |
|
580 |
http://bugs.gentoo.org/201979 |
581 |
|
582 |
--- libc/misc/sys/queue.h |
583 |
+++ libc/misc/sys/queue.h |
584 |
@@ -136,6 +136,11 @@ struct { \ |
585 |
(var); \ |
586 |
(var) = ((var)->field.le_next)) |
587 |
|
588 |
+#define LIST_FOREACH_SAFE(var, head, field, tvar) \ |
589 |
+ for ((var) = LIST_FIRST((head)); \ |
590 |
+ (var) && ((tvar) = LIST_NEXT((var), field), 1); \ |
591 |
+ (var) = (tvar)) |
592 |
+ |
593 |
/* |
594 |
* List access methods. |
595 |
*/ |
596 |
@@ -197,6 +202,16 @@ struct { \ |
597 |
#define SLIST_FOREACH(var, head, field) \ |
598 |
for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next) |
599 |
|
600 |
+#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ |
601 |
+ for ((var) = SLIST_FIRST((head)); \ |
602 |
+ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ |
603 |
+ (var) = (tvar)) |
604 |
+ |
605 |
+#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ |
606 |
+ for ((varp) = &SLIST_FIRST((head)); \ |
607 |
+ ((var) = *(varp)) != NULL; \ |
608 |
+ (varp) = &SLIST_NEXT((var), field)) |
609 |
+ |
610 |
/* |
611 |
* Singly-linked List access methods. |
612 |
*/ |
613 |
@@ -242,6 +257,12 @@ struct { \ |
614 |
(head)->stqh_last = &(elm)->field.stqe_next; \ |
615 |
} while (/*CONSTCOND*/0) |
616 |
|
617 |
+#define STAILQ_LAST(head, type, field) \ |
618 |
+ (STAILQ_EMPTY((head)) ? \ |
619 |
+ NULL : \ |
620 |
+ ((struct type *)(void *) \ |
621 |
+ ((char *)((head)->stqh_last) - offsetof(struct type, field)))) |
622 |
+ |
623 |
#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ |
624 |
if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\ |
625 |
(head)->stqh_last = &(elm)->field.stqe_next; \ |
626 |
@@ -271,6 +292,11 @@ struct { \ |
627 |
(var); \ |
628 |
(var) = ((var)->field.stqe_next)) |
629 |
|
630 |
+#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ |
631 |
+ for ((var) = STAILQ_FIRST((head)); \ |
632 |
+ (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ |
633 |
+ (var) = (tvar)) |
634 |
+ |
635 |
|
636 |
/* |
637 |
* Singly-linked Tail queue access methods. |
638 |
@@ -437,10 +463,21 @@ struct { \ |
639 |
(var); \ |
640 |
(var) = ((var)->field.tqe_next)) |
641 |
|
642 |
+#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ |
643 |
+ for ((var) = TAILQ_FIRST((head)); \ |
644 |
+ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ |
645 |
+ (var) = (tvar)) |
646 |
+ |
647 |
#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ |
648 |
for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \ |
649 |
(var); \ |
650 |
(var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last))) |
651 |
+ |
652 |
+#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ |
653 |
+ for ((var) = TAILQ_LAST((head), headname); \ |
654 |
+ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ |
655 |
+ (var) = (tvar)) |
656 |
+ |
657 |
|
658 |
/* |
659 |
* Tail queue access methods. |
660 |
|
661 |
|
662 |
|
663 |
1.1 src/patchsets/glibc/2.14/1020_all_glibc-longjmp-chk-hidden-fortify.patch |
664 |
|
665 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1020_all_glibc-longjmp-chk-hidden-fortify.patch?rev=1.1&view=markup |
666 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1020_all_glibc-longjmp-chk-hidden-fortify.patch?rev=1.1&content-type=text/plain |
667 |
|
668 |
Index: 1020_all_glibc-longjmp-chk-hidden-fortify.patch |
669 |
=================================================================== |
670 |
http://bugs.gentoo.org/293637 |
671 |
http://sourceware.org/ml/libc-alpha/2009-12/msg00010.html |
672 |
|
673 |
a bunch of ____longjmp_chk files mix PIC and SHARED code under just PIC. |
674 |
use the HIDDEN_JUMPTARGET() function so the right function is called. |
675 |
|
676 |
2009-11-27 Mike Frysinger <vapier@g.o> |
677 |
|
678 |
* sysdeps/unix/sysv/linux/i386/____longjmp_chk.S (CALL_FAIL): |
679 |
call HIDDEN_JUMPTARGET(__fortify_fail). |
680 |
* sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S (CALL_FAIL): |
681 |
Likewise. |
682 |
* sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S (CALL_FAIL): Delete. |
683 |
(CHECK_RSP): Branch to HIDDEN_JUMPTARGET(__fortify_fail). |
684 |
|
685 |
--- a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S |
686 |
+++ b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S |
687 |
@@ -33,10 +33,10 @@ longjmp_msg: |
688 |
cfi_register(%ebx,%ecx); \ |
689 |
LOAD_PIC_REG (bx); \ |
690 |
leal longjmp_msg@GOTOFF(%ebx), %eax; \ |
691 |
- call __GI___fortify_fail@PLT |
692 |
+ call HIDDEN_JUMPTARGET(__fortify_fail) |
693 |
#else |
694 |
# define CALL_FAIL movl $longjmp_msg, %eax; \ |
695 |
- call __fortify_fail |
696 |
+ call HIDDEN_JUMPTARGET(__fortify_fail) |
697 |
#endif |
698 |
|
699 |
|
700 |
--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S |
701 |
+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S |
702 |
@@ -33,15 +33,15 @@ longjmp_msg: |
703 |
cfi_remember_state; \ |
704 |
cfi_def_cfa_offset(16); \ |
705 |
leaq longjmp_msg(%rip), %rdi; \ |
706 |
- call __GI___fortify_fail; \ |
707 |
+ call HIDDEN_JUMPTARGET(__fortify_fail); \ |
708 |
nop; \ |
709 |
cfi_restore_state |
710 |
#else |
711 |
# define CALL_FAIL subq $8, %rsp; \ |
712 |
cfi_remember_state; \ |
713 |
cfi_def_cfa_offset(16); \ |
714 |
movq $longjmp_msg, %rdi; \ |
715 |
- call __fortify_fail; \ |
716 |
+ call HIDDEN_JUMPTARGET(__fortify_fail); \ |
717 |
nop; \ |
718 |
cfi_restore_state |
719 |
#endif |
720 |
--- a/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S |
721 |
+++ b/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S |
722 |
@@ -30,19 +30,13 @@ longjmp_msg: |
723 |
|
724 |
#define __longjmp ____longjmp_chk |
725 |
|
726 |
-#ifdef PIC |
727 |
-# define CALL_FAIL __GI___fortify_fail |
728 |
-#else |
729 |
-# define CALL_FAIL __fortify_fail |
730 |
-#endif |
731 |
- |
732 |
#define CHECK_RSP(reg) \ |
733 |
cmp.ltu p0, p8 = reg, r12; \ |
734 |
(p8) br.cond.dpnt .Lok;; \ |
735 |
addl r28 = @ltoffx(longjmp_msg#), r1;; \ |
736 |
ld8.mov r28 = [r28], longjmp_msg#;; \ |
737 |
ld8 out0 = [r28]; \ |
738 |
- br.call.sptk.many b0 = CALL_FAIL#;; \ |
739 |
+ br.call.sptk.many b0 = HIDDEN_JUMPTARGET(__fortify_fail)#;; \ |
740 |
.Lok: |
741 |
|
742 |
#include "__longjmp.S" |
743 |
|
744 |
|
745 |
|
746 |
1.1 src/patchsets/glibc/2.14/1030_all_glibc-manual-no-perl.patch |
747 |
|
748 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1030_all_glibc-manual-no-perl.patch?rev=1.1&view=markup |
749 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1030_all_glibc-manual-no-perl.patch?rev=1.1&content-type=text/plain |
750 |
|
751 |
Index: 1030_all_glibc-manual-no-perl.patch |
752 |
=================================================================== |
753 |
If we're using a cvs snapshot which updates the source files, and |
754 |
perl isn't installed yet, then we can't regen the docs. Not a big |
755 |
deal, so just whine a little and continue on our merry way. |
756 |
|
757 |
http://bugs.gentoo.org/60132 |
758 |
|
759 |
--- libc/manual/Makefile |
760 |
+++ libc/manual/Makefile |
761 |
@@ -104,9 +104,14 @@ |
762 |
libm-err.texi: stamp-libm-err |
763 |
stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ |
764 |
$(dir)/libm-test-ulps)) |
765 |
+ifneq ($(PERL),no) |
766 |
pwd=`pwd`; \ |
767 |
$(PERL) $< $$pwd/.. > libm-err-tmp |
768 |
$(move-if-change) libm-err-tmp libm-err.texi |
769 |
+else |
770 |
+ echo "Unable to rebuild math docs, no perl installed" |
771 |
+ touch libm-err.texi |
772 |
+endif |
773 |
touch $@ |
774 |
|
775 |
# Generate Texinfo files from the C source for the example programs. |
776 |
|
777 |
|
778 |
|
779 |
1.1 src/patchsets/glibc/2.14/1040_all_2.3.3-localedef-fix-trampoline.patch |
780 |
|
781 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1040_all_2.3.3-localedef-fix-trampoline.patch?rev=1.1&view=markup |
782 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1040_all_2.3.3-localedef-fix-trampoline.patch?rev=1.1&content-type=text/plain |
783 |
|
784 |
Index: 1040_all_2.3.3-localedef-fix-trampoline.patch |
785 |
=================================================================== |
786 |
#! /bin/sh -e |
787 |
|
788 |
# DP: Description: Fix localedef segfault when run under exec-shield, |
789 |
# PaX or similar. (#231438, #198099) |
790 |
# DP: Dpatch Author: James Troup <james@××××××.org> |
791 |
# DP: Patch Author: (probably) Jakub Jelinek <jakub@××××××.com> |
792 |
# DP: Upstream status: Unknown |
793 |
# DP: Status Details: Unknown |
794 |
# DP: Date: 2004-03-16 |
795 |
|
796 |
if [ $# -ne 2 ]; then |
797 |
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" |
798 |
exit 1 |
799 |
fi |
800 |
case "$1" in |
801 |
-patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;; |
802 |
-unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;; |
803 |
*) |
804 |
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" |
805 |
exit 1 |
806 |
esac |
807 |
exit 0 |
808 |
|
809 |
--- glibc-2.3.3-net/locale/programs/3level.h 16 Jun 2003 07:19:09 -0000 1.1.1.5 |
810 |
+++ glibc-2.3.3-redhat/locale/programs/3level.h 16 Jun 2003 09:32:40 -0000 1.4 |
811 |
@@ -204,6 +204,42 @@ CONCAT(TABLE,_iterate) (struct TABLE *t, |
812 |
} |
813 |
} |
814 |
} |
815 |
+ |
816 |
+/* GCC ATM seems to do a poor job with pointers to nested functions passed |
817 |
+ to inlined functions. Help it a little bit with this hack. */ |
818 |
+#define wchead_table_iterate(tp, fn) \ |
819 |
+do \ |
820 |
+ { \ |
821 |
+ struct wchead_table *t = (tp); \ |
822 |
+ uint32_t index1; \ |
823 |
+ for (index1 = 0; index1 < t->level1_size; index1++) \ |
824 |
+ { \ |
825 |
+ uint32_t lookup1 = t->level1[index1]; \ |
826 |
+ if (lookup1 != ((uint32_t) ~0)) \ |
827 |
+ { \ |
828 |
+ uint32_t lookup1_shifted = lookup1 << t->q; \ |
829 |
+ uint32_t index2; \ |
830 |
+ for (index2 = 0; index2 < (1 << t->q); index2++) \ |
831 |
+ { \ |
832 |
+ uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \ |
833 |
+ if (lookup2 != ((uint32_t) ~0)) \ |
834 |
+ { \ |
835 |
+ uint32_t lookup2_shifted = lookup2 << t->p; \ |
836 |
+ uint32_t index3; \ |
837 |
+ for (index3 = 0; index3 < (1 << t->p); index3++) \ |
838 |
+ { \ |
839 |
+ struct element_t *lookup3 \ |
840 |
+ = t->level3[index3 + lookup2_shifted]; \ |
841 |
+ if (lookup3 != NULL) \ |
842 |
+ fn ((((index1 << t->q) + index2) << t->p) + index3, \ |
843 |
+ lookup3); \ |
844 |
+ } \ |
845 |
+ } \ |
846 |
+ } \ |
847 |
+ } \ |
848 |
+ } \ |
849 |
+ } while (0) |
850 |
+ |
851 |
#endif |
852 |
|
853 |
#ifndef NO_FINALIZE |
854 |
|
855 |
|
856 |
|
857 |
1.1 src/patchsets/glibc/2.14/1055_all_glibc-resolv-dynamic.patch |
858 |
|
859 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1055_all_glibc-resolv-dynamic.patch?rev=1.1&view=markup |
860 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1055_all_glibc-resolv-dynamic.patch?rev=1.1&content-type=text/plain |
861 |
|
862 |
Index: 1055_all_glibc-resolv-dynamic.patch |
863 |
=================================================================== |
864 |
ripped from SuSE |
865 |
|
866 |
if /etc/resolv.conf is updated, then make sure applications |
867 |
already running get the updated information. |
868 |
|
869 |
http://bugs.gentoo.org/177416 |
870 |
|
871 |
--- libc/resolv/res_libc.c |
872 |
+++ libc/resolv/res_libc.c |
873 |
@@ -22,6 +22,7 @@ |
874 |
#include <arpa/nameser.h> |
875 |
#include <resolv.h> |
876 |
#include <bits/libc-lock.h> |
877 |
+#include <sys/stat.h> |
878 |
|
879 |
|
880 |
/* The following bit is copied from res_data.c (where it is #ifdef'ed |
881 |
@@ -101,6 +102,20 @@ |
882 |
__res_maybe_init (res_state resp, int preinit) |
883 |
{ |
884 |
if (resp->options & RES_INIT) { |
885 |
+ static time_t last_mtime, last_check; |
886 |
+ time_t now; |
887 |
+ struct stat statbuf; |
888 |
+ |
889 |
+ time (&now); |
890 |
+ if (now != last_check) { |
891 |
+ last_check = now; |
892 |
+ if (stat (_PATH_RESCONF, &statbuf) == 0 && last_mtime != statbuf.st_mtime) { |
893 |
+ last_mtime = statbuf.st_mtime; |
894 |
+ atomicinclock (lock); |
895 |
+ atomicinc (__res_initstamp); |
896 |
+ atomicincunlock (lock); |
897 |
+ } |
898 |
+ } |
899 |
if (__res_initstamp != resp->_u._ext.initstamp) { |
900 |
if (resp->nscount > 0) { |
901 |
__res_nclose (resp); |
902 |
|
903 |
|
904 |
|
905 |
1.1 src/patchsets/glibc/2.14/1060_all_glibc-localedef-mmap.patch |
906 |
|
907 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1060_all_glibc-localedef-mmap.patch?rev=1.1&view=markup |
908 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1060_all_glibc-localedef-mmap.patch?rev=1.1&content-type=text/plain |
909 |
|
910 |
Index: 1060_all_glibc-localedef-mmap.patch |
911 |
=================================================================== |
912 |
sniped from Debian |
913 |
http://bugs.gentoo.org/289615 |
914 |
|
915 |
2009-10-27 Aurelien Jarno <aurelien@×××××××.net> |
916 |
|
917 |
* locale/programs/locarchive.c: use MMAP_SHARED to reserve memory |
918 |
used later with MMAP_FIXED | MMAP_SHARED to cope with different |
919 |
alignment restrictions. |
920 |
|
921 |
--- a/locale/programs/locarchive.c |
922 |
+++ b/locale/programs/locarchive.c |
923 |
@@ -134,7 +134,7 @@ |
924 |
size_t reserved = RESERVE_MMAP_SIZE; |
925 |
int xflags = 0; |
926 |
if (total < reserved |
927 |
- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, |
928 |
+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, |
929 |
-1, 0)) != MAP_FAILED)) |
930 |
xflags = MAP_FIXED; |
931 |
else |
932 |
@@ -397,7 +397,7 @@ |
933 |
size_t reserved = RESERVE_MMAP_SIZE; |
934 |
int xflags = 0; |
935 |
if (total < reserved |
936 |
- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, |
937 |
+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, |
938 |
-1, 0)) != MAP_FAILED)) |
939 |
xflags = MAP_FIXED; |
940 |
else |
941 |
@@ -615,7 +615,7 @@ |
942 |
int xflags = 0; |
943 |
void *p; |
944 |
if (st.st_size < reserved |
945 |
- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, |
946 |
+ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, |
947 |
-1, 0)) != MAP_FAILED)) |
948 |
xflags = MAP_FIXED; |
949 |
else |
950 |
|
951 |
|
952 |
|
953 |
1.1 src/patchsets/glibc/2.14/1070_all_glibc-fadvise64_64.patch |
954 |
|
955 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1070_all_glibc-fadvise64_64.patch?rev=1.1&view=markup |
956 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1070_all_glibc-fadvise64_64.patch?rev=1.1&content-type=text/plain |
957 |
|
958 |
Index: 1070_all_glibc-fadvise64_64.patch |
959 |
=================================================================== |
960 |
ripped from Debian |
961 |
|
962 |
--- |
963 |
sysdeps/unix/sysv/linux/posix_fadvise.c | 13 +++++++++++++ |
964 |
1 file changed, 13 insertions(+) |
965 |
|
966 |
--- a/sysdeps/unix/sysv/linux/posix_fadvise.c |
967 |
+++ b/sysdeps/unix/sysv/linux/posix_fadvise.c |
968 |
@@ -35,6 +35,19 @@ |
969 |
return INTERNAL_SYSCALL_ERRNO (ret, err); |
970 |
return 0; |
971 |
#else |
972 |
+# ifdef __NR_fadvise64_64 |
973 |
+ INTERNAL_SYSCALL_DECL (err); |
974 |
+ int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, |
975 |
+ __LONG_LONG_PAIR ((long) (offset >> 31), |
976 |
+ (long) offset), |
977 |
+ __LONG_LONG_PAIR ((long) (len >> 31), |
978 |
+ (long) len), |
979 |
+ advise); |
980 |
+ if (INTERNAL_SYSCALL_ERROR_P (ret, err)) |
981 |
+ return INTERNAL_SYSCALL_ERRNO (ret, err); |
982 |
+ return 0; |
983 |
+# else |
984 |
return ENOSYS; |
985 |
+# endif |
986 |
#endif |
987 |
} |
988 |
|
989 |
|
990 |
|
991 |
1.1 src/patchsets/glibc/2.14/1075_all_glibc-section-comments.patch |
992 |
|
993 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1075_all_glibc-section-comments.patch?rev=1.1&view=markup |
994 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1075_all_glibc-section-comments.patch?rev=1.1&content-type=text/plain |
995 |
|
996 |
Index: 1075_all_glibc-section-comments.patch |
997 |
=================================================================== |
998 |
http://sources.redhat.com/ml/binutils/2004-04/msg00665.html |
999 |
|
1000 |
fixes building on some architectures (like m68k/arm/cris/etc...) because |
1001 |
it does the right thing |
1002 |
|
1003 |
--- libc/include/libc-symbols.h |
1004 |
+++ libc/include/libc-symbols.h |
1005 |
@@ -232,12 +232,12 @@ |
1006 |
# define __make_section_unallocated(section_string) |
1007 |
# endif |
1008 |
|
1009 |
-/* Tacking on "\n\t#" to the section name makes gcc put it's bogus |
1010 |
+/* Tacking on "\n#APP\n\t#" to the section name makes gcc put it's bogus |
1011 |
section attributes on what looks like a comment to the assembler. */ |
1012 |
# ifdef HAVE_SECTION_QUOTES |
1013 |
-# define __sec_comment "\"\n\t#\"" |
1014 |
+# define __sec_comment "\"\n#APP\n\t#\"" |
1015 |
# else |
1016 |
-# define __sec_comment "\n\t#" |
1017 |
+# define __sec_comment "\n#APP\n\t#" |
1018 |
# endif |
1019 |
# define link_warning(symbol, msg) \ |
1020 |
__make_section_unallocated (".gnu.warning." #symbol) \ |
1021 |
|
1022 |
|
1023 |
|
1024 |
1.1 src/patchsets/glibc/2.14/1080_all_glibc-no-inline-gmon.patch |
1025 |
|
1026 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1080_all_glibc-no-inline-gmon.patch?rev=1.1&view=markup |
1027 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1080_all_glibc-no-inline-gmon.patch?rev=1.1&content-type=text/plain |
1028 |
|
1029 |
Index: 1080_all_glibc-no-inline-gmon.patch |
1030 |
=================================================================== |
1031 |
http://bugs.gentoo.org/196245 |
1032 |
http://sourceware.org/ml/libc-alpha/2006-05/msg00017.html |
1033 |
|
1034 |
Attached is a patch to add __attribute__ ((noinline)) to |
1035 |
call_gmon_start. |
1036 |
|
1037 |
Without this patch, the sec script that processed initfini.s removes a |
1038 |
part of inlined call_gmon_start, causing undefined label errors. |
1039 |
|
1040 |
This patch solves the problem by forcing gcc not to inline |
1041 |
call_gmon_start with __attribute__ ((noinline)). |
1042 |
|
1043 |
Tested by building for arm-none-lixux-gnueabi. OK to apply? |
1044 |
|
1045 |
Kazu Hirata |
1046 |
|
1047 |
2006-05-07 Kazu Hirata <kazu@××××××××××××.com> |
1048 |
|
1049 |
* sysdeps/generic/initfini.c (call_gmon_start): Add |
1050 |
__attribute__ ((noinline)). |
1051 |
|
1052 |
Index: sysdeps/generic/initfini.c |
1053 |
=================================================================== |
1054 |
--- a/sysdeps/generic/initfini.c 16 Aug 2004 04:50:53 -0000 1.9 |
1055 |
+++ b/sysdeps/generic/initfini.c 7 May 2006 15:31:08 -0000 |
1056 |
@@ -70,7 +70,7 @@ |
1057 |
/* The beginning of _init: */ |
1058 |
asm ("\n/*@_init_PROLOG_BEGINS*/"); |
1059 |
|
1060 |
-static void |
1061 |
+static void __attribute__ ((noinline)) |
1062 |
call_gmon_start(void) |
1063 |
{ |
1064 |
extern void __gmon_start__ (void) __attribute__ ((weak)); /*weak_extern (__gmon_start__);*/ |
1065 |
|
1066 |
|
1067 |
|
1068 |
1.1 src/patchsets/glibc/2.14/1085_all_glibc-2.9-check_native-headers.patch |
1069 |
|
1070 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1085_all_glibc-2.9-check_native-headers.patch?rev=1.1&view=markup |
1071 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1085_all_glibc-2.9-check_native-headers.patch?rev=1.1&content-type=text/plain |
1072 |
|
1073 |
Index: 1085_all_glibc-2.9-check_native-headers.patch |
1074 |
=================================================================== |
1075 |
many ports hit this warning: |
1076 |
../sysdeps/unix/sysv/linux/check_native.c:46: warning: implicit declaration of function 'memset' |
1077 |
../sysdeps/unix/sysv/linux/check_native.c:46: warning: implicit declaration of function 'memset' |
1078 |
|
1079 |
snipped from suse |
1080 |
|
1081 |
--- a/sysdeps/unix/sysv/linux/check_native.c |
1082 |
+++ b/sysdeps/unix/sysv/linux/check_native.c |
1083 |
@@ -23,6 +23,7 @@ |
1084 |
#include <stddef.h> |
1085 |
#include <stdint.h> |
1086 |
#include <stdlib.h> |
1087 |
+#include <string.h> |
1088 |
#include <time.h> |
1089 |
#include <unistd.h> |
1090 |
#include <net/if.h> |
1091 |
|
1092 |
|
1093 |
|
1094 |
1.1 src/patchsets/glibc/2.14/1090_all_glibc-2.3.6-fix-pr631.patch |
1095 |
|
1096 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1090_all_glibc-2.3.6-fix-pr631.patch?rev=1.1&view=markup |
1097 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1090_all_glibc-2.3.6-fix-pr631.patch?rev=1.1&content-type=text/plain |
1098 |
|
1099 |
Index: 1090_all_glibc-2.3.6-fix-pr631.patch |
1100 |
=================================================================== |
1101 |
From dank@×××××.com |
1102 |
Wed Jun 15 09:12:43 PDT 2005 |
1103 |
|
1104 |
Fixes |
1105 |
|
1106 |
build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r' |
1107 |
build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent' |
1108 |
... 53 lines deleted ... |
1109 |
build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r' |
1110 |
collect2: ld returned 1 exit status |
1111 |
make[2]: *** [/build/gcc-3.4.3-glibc-2.3.5-hdrs-2.6.11.2/i686-unknown-linux-gnu/build-glibc/elf/ldconfig] Error 1 |
1112 |
|
1113 |
when building glibc with --enable-static-nss. |
1114 |
|
1115 |
See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631 |
1116 |
|
1117 |
--- glibc-2.3.5/Makeconfig.old Wed Jun 15 08:13:12 2005 |
1118 |
+++ glibc-2.3.5/Makeconfig Wed Jun 15 08:13:14 2005 |
1119 |
@@ -487,7 +487,7 @@ |
1120 |
|
1121 |
# The static libraries. |
1122 |
ifeq (yes,$(build-static)) |
1123 |
-link-libc-static = -Wl,--start-group $(common-objpfx)libc.a $(static-gnulib) -Wl,--end-group |
1124 |
+link-libc-static = -Wl,--start-group $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a -Wl,--end-group |
1125 |
else |
1126 |
ifeq (yes,$(build-shared)) |
1127 |
# We can try to link the programs with lib*_pic.a... |
1128 |
--- glibc-2.3.5/elf/Makefile.old Wed Jun 15 07:46:49 2005 |
1129 |
+++ glibc-2.3.5/elf/Makefile Wed Jun 15 08:14:00 2005 |
1130 |
@@ -115,6 +115,13 @@ |
1131 |
install-bin-script = ldd |
1132 |
endif |
1133 |
|
1134 |
+ifeq (yes,$(build-static-nss)) |
1135 |
+nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss) |
1136 |
+resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv) |
1137 |
+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \ |
1138 |
+ $(resolvobjdir)/libresolv.a |
1139 |
+endif |
1140 |
+ |
1141 |
others = sprof sln |
1142 |
install-bin = sprof |
1143 |
others-static = sln |
1144 |
|
1145 |
Signed-off-by: Robert P. J. Day <rpjday@××××××××××.com> |
1146 |
|
1147 |
|
1148 |
|
1149 |
1.1 src/patchsets/glibc/2.14/1095_all_glibc-2.14-assume-pipe2-dup3.patch |
1150 |
|
1151 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1095_all_glibc-2.14-assume-pipe2-dup3.patch?rev=1.1&view=markup |
1152 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1095_all_glibc-2.14-assume-pipe2-dup3.patch?rev=1.1&content-type=text/plain |
1153 |
|
1154 |
Index: 1095_all_glibc-2.14-assume-pipe2-dup3.patch |
1155 |
=================================================================== |
1156 |
http://bugs.gentoo.org/250342 |
1157 |
http://sources.redhat.com/bugzilla/show_bug.cgi?id=9685 |
1158 |
|
1159 |
we cant assume sock_cloexec and pipe2 are bound together as the former defines |
1160 |
are found in glibc only while the latter are a combo of kernel headers and |
1161 |
glibc. so if we do a runtime detection of SOCK_CLOEXEC, but pipe2() is a stub |
1162 |
inside of glibc, we hit a problem. for example: |
1163 |
|
1164 |
#include <grp.h> |
1165 |
#include <stdio.h> |
1166 |
main() |
1167 |
{ |
1168 |
getgrnam("portage"); |
1169 |
if (!popen("ls", "r")) |
1170 |
perror("popen()"); |
1171 |
} |
1172 |
|
1173 |
getgrnam() will detect that the kernel supports SOCK_CLOEXEC and then set both |
1174 |
__have_sock_cloexec and __have_pipe2 to true. but if glibc was built against |
1175 |
older kernel headers where __NR_pipe2 does not exist, glibc will have a ENOSYS |
1176 |
stub for it. so popen() will always fail as glibc assumes pipe2() works. |
1177 |
|
1178 |
--- a/include/unistd.h |
1179 |
+++ b/include/unistd.h |
1180 |
@@ -167,10 +167,7 @@ |
1181 |
extern int __pause_nocancel (void) attribute_hidden; |
1182 |
|
1183 |
extern int __have_sock_cloexec; |
1184 |
-/* At lot of other functionality became available at the same time as |
1185 |
- SOCK_CLOEXEC. Avoid defining separate variables for all of them |
1186 |
- unless it is really necessary. */ |
1187 |
-#define __have_pipe2 __have_sock_cloexec |
1188 |
-#define __have_dup3 __have_sock_cloexec |
1189 |
+extern int __have_pipe2; |
1190 |
+extern int __have_dup3; |
1191 |
|
1192 |
#endif |
1193 |
--- a/socket/have_sock_cloexec.c |
1194 |
+++ b/socket/have_sock_cloexec.c |
1195 |
@@ -16,9 +16,18 @@ |
1196 |
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
1197 |
02111-1307 USA. */ |
1198 |
|
1199 |
+#include <fcntl.h> |
1200 |
#include <sys/socket.h> |
1201 |
#include <kernel-features.h> |
1202 |
|
1203 |
#if defined SOCK_CLOEXEC && !defined __ASSUME_SOCK_CLOEXEC |
1204 |
int __have_sock_cloexec; |
1205 |
#endif |
1206 |
+ |
1207 |
+#if defined O_CLOEXEC && !defined __ASSUME_PIPE2 |
1208 |
+int __have_pipe2; |
1209 |
+#endif |
1210 |
+ |
1211 |
+#if defined O_CLOEXEC && !defined __ASSUME_DUP3 |
1212 |
+int __have_dup3; |
1213 |
+#endif |
1214 |
|
1215 |
|
1216 |
|
1217 |
1.1 src/patchsets/glibc/2.14/1100_all_glibc-2.3.3-china.patch |
1218 |
|
1219 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1100_all_glibc-2.3.3-china.patch?rev=1.1&view=markup |
1220 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1100_all_glibc-2.3.3-china.patch?rev=1.1&content-type=text/plain |
1221 |
|
1222 |
Index: 1100_all_glibc-2.3.3-china.patch |
1223 |
=================================================================== |
1224 |
--- a/localedata/locales/zh_TW |
1225 |
+++ b/localedata/locales/zh_TW |
1226 |
@@ -1,7 +1,7 @@ |
1227 |
comment_char % |
1228 |
escape_char / |
1229 |
% |
1230 |
-% Chinese language locale for Taiwan R.O.C. |
1231 |
+% Chinese language locale for Taiwan |
1232 |
% charmap: BIG5-CP950 |
1233 |
% |
1234 |
% Original Author: |
1235 |
@@ -17,7 +17,7 @@ |
1236 |
% Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf |
1237 |
|
1238 |
LC_IDENTIFICATION |
1239 |
-title "Chinese locale for Taiwan R.O.C." |
1240 |
+title "Chinese locale for Taiwan" |
1241 |
source "" |
1242 |
address "" |
1243 |
contact "" |
1244 |
@@ -25,7 +25,7 @@ |
1245 |
tel "" |
1246 |
fax "" |
1247 |
language "Chinese" |
1248 |
-territory "Taiwan R.O.C." |
1249 |
+territory "Taiwan" |
1250 |
revision "0.2" |
1251 |
date "2000-08-02" |
1252 |
% |
1253 |
|
1254 |
|
1255 |
|
1256 |
1.1 src/patchsets/glibc/2.14/1103_all_glibc-new-valencian-locale.patch |
1257 |
|
1258 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1103_all_glibc-new-valencian-locale.patch?rev=1.1&view=markup |
1259 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1103_all_glibc-new-valencian-locale.patch?rev=1.1&content-type=text/plain |
1260 |
|
1261 |
Index: 1103_all_glibc-new-valencian-locale.patch |
1262 |
=================================================================== |
1263 |
http://bugs.gentoo.org/show_bug.cgi?id=131815 |
1264 |
http://sourceware.org/bugzilla/show_bug.cgi?id=2522 |
1265 |
|
1266 |
--- localedata/SUPPORTED |
1267 |
+++ localedata/SUPPORTED |
1268 |
@@ -68,6 +68,8 @@ |
1269 |
ca_ES.UTF-8/UTF-8 \ |
1270 |
ca_ES/ISO-8859-1 \ |
1271 |
ca_ES@euro/ISO-8859-15 \ |
1272 |
+ca_ES.UTF-8@valencia/UTF-8 \ |
1273 |
+ca_ES@valencia/ISO-8859-15 \ |
1274 |
ca_FR.UTF-8/UTF-8 \ |
1275 |
ca_FR/ISO-8859-15 \ |
1276 |
ca_IT.UTF-8/UTF-8 \ |
1277 |
--- localedata/locales/ca_ES@valencia |
1278 |
+++ localedata/locales/ca_ES@valencia |
1279 |
@@ -0,0 +1,96 @@ |
1280 |
+comment_char % |
1281 |
+escape_char / |
1282 |
+% |
1283 |
+% Valencian (southern Catalan) locale for Spain with Euro |
1284 |
+% |
1285 |
+% Note that this locale is almost the same as ca_ES@euro. The point of having |
1286 |
+% a separate locale is only for PO translations, which have a lot of social |
1287 |
+% support and are very appreciated by the Valencian-speaking community. |
1288 |
+% |
1289 |
+% Contact: Jordi Mallach |
1290 |
+% Email: jordi@×××.org |
1291 |
+% Tel: |
1292 |
+% Fax: |
1293 |
+% Language: ca |
1294 |
+% Territory: ES |
1295 |
+% Option: euro |
1296 |
+% Revision: 1.0 |
1297 |
+% Date: 2006-04-06 |
1298 |
+% Application: general |
1299 |
+% Users: general |
1300 |
+% Repertoiremap: mnemonic,ds |
1301 |
+% Charset: ISO-8859-15 |
1302 |
+% Distribution and use is free, also |
1303 |
+% for commercial purposes. |
1304 |
+ |
1305 |
+LC_IDENTIFICATION |
1306 |
+title "Valencian (southern Catalan) locale for Spain with Euro" |
1307 |
+source "" |
1308 |
+address "" |
1309 |
+contact "Jordi Mallach" |
1310 |
+email "jordi@×××.org" |
1311 |
+tel "" |
1312 |
+fax "" |
1313 |
+language "Catalan" |
1314 |
+territory "Spain" |
1315 |
+revision "1.0" |
1316 |
+date "2006-04-06" |
1317 |
+% |
1318 |
+category "ca_ES@valencia:2006";LC_IDENTIFICATION |
1319 |
+category "ca_ES@valencia:2006";LC_CTYPE |
1320 |
+category "ca_ES@valencia:2006";LC_COLLATE |
1321 |
+category "ca_ES@valencia:2006";LC_MONETARY |
1322 |
+category "ca_ES@valencia:2006";LC_NUMERIC |
1323 |
+category "ca_ES@valencia:2006";LC_TIME |
1324 |
+category "ca_ES@valencia:2006";LC_MESSAGES |
1325 |
+category "ca_ES@valencia:2006";LC_PAPER |
1326 |
+category "ca_ES@valencia:2006";LC_NAME |
1327 |
+category "ca_ES@valencia:2006";LC_ADDRESS |
1328 |
+category "ca_ES@valencia:2006";LC_TELEPHONE |
1329 |
+category "ca_ES@valencia:2006";LC_MEASUREMENT |
1330 |
+ |
1331 |
+END LC_IDENTIFICATION |
1332 |
+ |
1333 |
+LC_CTYPE |
1334 |
+copy "i18n" |
1335 |
+END LC_CTYPE |
1336 |
+ |
1337 |
+LC_COLLATE |
1338 |
+copy "ca_ES" |
1339 |
+END LC_COLLATE |
1340 |
+ |
1341 |
+LC_MONETARY |
1342 |
+copy "ca_ES" |
1343 |
+END LC_MONETARY |
1344 |
+ |
1345 |
+LC_NUMERIC |
1346 |
+copy "ca_ES" |
1347 |
+END LC_NUMERIC |
1348 |
+ |
1349 |
+LC_TIME |
1350 |
+copy "ca_ES" |
1351 |
+END LC_TIME |
1352 |
+ |
1353 |
+LC_MESSAGES |
1354 |
+copy "ca_ES" |
1355 |
+END LC_MESSAGES |
1356 |
+ |
1357 |
+LC_PAPER |
1358 |
+copy "ca_ES" |
1359 |
+END LC_PAPER |
1360 |
+ |
1361 |
+LC_NAME |
1362 |
+copy "ca_ES" |
1363 |
+END LC_NAME |
1364 |
+ |
1365 |
+LC_ADDRESS |
1366 |
+copy "ca_ES" |
1367 |
+END LC_ADDRESS |
1368 |
+ |
1369 |
+LC_TELEPHONE |
1370 |
+copy "ca_ES" |
1371 |
+END LC_TELEPHONE |
1372 |
+ |
1373 |
+LC_MEASUREMENT |
1374 |
+copy "ca_ES" |
1375 |
+END LC_MEASUREMENT |
1376 |
|
1377 |
|
1378 |
|
1379 |
1.1 src/patchsets/glibc/2.14/1120_all_glibc-2.11-longjmp-chk-fallback.patch |
1380 |
|
1381 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1120_all_glibc-2.11-longjmp-chk-fallback.patch?rev=1.1&view=markup |
1382 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1120_all_glibc-2.11-longjmp-chk-fallback.patch?rev=1.1&content-type=text/plain |
1383 |
|
1384 |
Index: 1120_all_glibc-2.11-longjmp-chk-fallback.patch |
1385 |
=================================================================== |
1386 |
--- debug/____longjmp_chk.c |
1387 |
+++ debug/____longjmp_chk.c |
1388 |
@@ -0,0 +1,7 @@ |
1389 |
+/* Stub to make building happy -- no fortify checks, but |
1390 |
+ it at least does the correct thing (longjmps). */ |
1391 |
+#include <setjmp.h> |
1392 |
+void ____longjmp_chk (__jmp_buf env, int val) |
1393 |
+{ |
1394 |
+ return __longjmp (env, val); |
1395 |
+} |
1396 |
|
1397 |
|
1398 |
|
1399 |
1.1 src/patchsets/glibc/2.14/1130_all_glibc-2.4-undefine-__i686.patch |
1400 |
|
1401 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1130_all_glibc-2.4-undefine-__i686.patch?rev=1.1&view=markup |
1402 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1130_all_glibc-2.4-undefine-__i686.patch?rev=1.1&content-type=text/plain |
1403 |
|
1404 |
Index: 1130_all_glibc-2.4-undefine-__i686.patch |
1405 |
=================================================================== |
1406 |
If gcc is configured to generate i686 code or better by default (like |
1407 |
when using the --with-arch=pentium3 configure option), then the __i686 |
1408 |
macro will always be defined automatically and thus screw up the |
1409 |
compilation of some .S files. |
1410 |
http://bugs.gentoo.org/131108 |
1411 |
http://sourceware.org/ml/libc-alpha/2006-04/msg00090.html |
1412 |
|
1413 |
2006-04-25 Mike Frysinger <vapier@g.o> |
1414 |
|
1415 |
* sysdeps/i386/sysdep.h (__i686): Undefine. |
1416 |
|
1417 |
--- sysdeps/i386/sysdep.h |
1418 |
+++ sysdeps/i386/sysdep.h |
1419 |
@@ -17,6 +17,14 @@ |
1420 |
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
1421 |
02111-1307 USA. */ |
1422 |
|
1423 |
+/* |
1424 |
+ * When building for i686 targets or better, gcc automatically defines |
1425 |
+ * '__i686' to '1' for us which causes trouble when using section names |
1426 |
+ * like '__i686.get_pc_thunk.reg'. Since we check for __i686__ in the |
1427 |
+ * code, killing '__i686' shouldn't be a problem. |
1428 |
+ */ |
1429 |
+#undef __i686 |
1430 |
+ |
1431 |
#include <sysdeps/generic/sysdep.h> |
1432 |
|
1433 |
#ifdef __ASSEMBLER__ |
1434 |
|
1435 |
Note: this breaks mips so we wrap it in a hackish __i686__ for now ... |
1436 |
|
1437 |
2006-04-25 Mike Frysinger <vapier@g.o> |
1438 |
|
1439 |
* sysdeps/pthread/pt-initfini.c: Include sysdep.h. |
1440 |
|
1441 |
--- nptl/sysdeps/pthread/pt-initfini.c |
1442 |
+++ nptl/sysdeps/pthread/pt-initfini.c |
1443 |
@@ -45,6 +45,9 @@ |
1444 |
/* Embed an #include to pull in the alignment and .end directives. */ |
1445 |
asm ("\n#include \"defs.h\""); |
1446 |
|
1447 |
+/* Embed an #include to pull in asm settings. */ |
1448 |
+asm ("\n#ifdef __i686__\n#include <sysdep.h>\n#endif"); |
1449 |
+ |
1450 |
/* The initial common code ends here. */ |
1451 |
asm ("\n/*@HEADER_ENDS*/"); |
1452 |
|
1453 |
|
1454 |
|
1455 |
|
1456 |
1.1 src/patchsets/glibc/2.14/1160_all_glibc-2.8-nscd-one-fork.patch |
1457 |
|
1458 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1160_all_glibc-2.8-nscd-one-fork.patch?rev=1.1&view=markup |
1459 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/1160_all_glibc-2.8-nscd-one-fork.patch?rev=1.1&content-type=text/plain |
1460 |
|
1461 |
Index: 1160_all_glibc-2.8-nscd-one-fork.patch |
1462 |
=================================================================== |
1463 |
only fork one to assist in stop-start-daemon assumptions about daemon behavior |
1464 |
|
1465 |
http://bugs.gentoo.org/190785 |
1466 |
|
1467 |
--- libc/nscd/nscd.c |
1468 |
+++ libc/nscd/nscd.c |
1469 |
@@ -178,6 +178,9 @@ |
1470 |
if (pid != 0) |
1471 |
exit (0); |
1472 |
|
1473 |
+ if (write_pid (_PATH_NSCDPID) < 0) |
1474 |
+ dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno)); |
1475 |
+ |
1476 |
int nullfd = open (_PATH_DEVNULL, O_RDWR); |
1477 |
if (nullfd != -1) |
1478 |
{ |
1479 |
@@ -227,12 +230,6 @@ |
1480 |
for (i = min_close_fd; i < getdtablesize (); i++) |
1481 |
close (i); |
1482 |
|
1483 |
- pid = fork (); |
1484 |
- if (pid == -1) |
1485 |
- error (EXIT_FAILURE, errno, _("cannot fork")); |
1486 |
- if (pid != 0) |
1487 |
- exit (0); |
1488 |
- |
1489 |
setsid (); |
1490 |
|
1491 |
if (chdir ("/") != 0) |
1492 |
@@ -241,9 +238,6 @@ |
1493 |
|
1494 |
openlog ("nscd", LOG_CONS | LOG_ODELAY, LOG_DAEMON); |
1495 |
|
1496 |
- if (write_pid (_PATH_NSCDPID) < 0) |
1497 |
- dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno)); |
1498 |
- |
1499 |
if (!init_logfile ()) |
1500 |
dbg_log (_("Could not create log file")); |
1501 |
|
1502 |
|
1503 |
|
1504 |
1.1 src/patchsets/glibc/2.14/3000_all_2.3.6-dl_execstack-PaX-support.patch |
1505 |
|
1506 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/3000_all_2.3.6-dl_execstack-PaX-support.patch?rev=1.1&view=markup |
1507 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/3000_all_2.3.6-dl_execstack-PaX-support.patch?rev=1.1&content-type=text/plain |
1508 |
|
1509 |
Index: 3000_all_2.3.6-dl_execstack-PaX-support.patch |
1510 |
=================================================================== |
1511 |
With latest versions of glibc, a lot of apps failed on a PaX enabled |
1512 |
system with: |
1513 |
cannot enable executable stack as shared object requires: Permission denied |
1514 |
|
1515 |
This is due to PaX 'exec-protecting' the stack, and ld.so then trying |
1516 |
to make the stack executable due to some libraries not containing the |
1517 |
PT_GNU_STACK section. Bug #32960. <azarah@g.o> (12 Nov 2003). |
1518 |
|
1519 |
Patch also NPTL. Bug #116086. <kevquinn@g.o> (20 Dec 2005). |
1520 |
|
1521 |
--- sysdeps/unix/sysv/linux/dl-execstack.c |
1522 |
+++ sysdeps/unix/sysv/linux/dl-execstack.c |
1523 |
@@ -63,7 +63,10 @@ |
1524 |
else |
1525 |
# endif |
1526 |
{ |
1527 |
- result = errno; |
1528 |
+ if (errno == EACCES) /* PAX is enabled */ |
1529 |
+ result = 0; |
1530 |
+ else |
1531 |
+ result = errno; |
1532 |
goto out; |
1533 |
} |
1534 |
} |
1535 |
@@ -89,7 +92,12 @@ |
1536 |
page -= size; |
1537 |
else |
1538 |
{ |
1539 |
- if (errno != ENOMEM) /* Unexpected failure mode. */ |
1540 |
+ if (errno == EACCES) /* PAX is enabled */ |
1541 |
+ { |
1542 |
+ result = 0; |
1543 |
+ goto out; |
1544 |
+ } |
1545 |
+ else if (errno != ENOMEM) /* Unexpected failure mode. */ |
1546 |
{ |
1547 |
result = errno; |
1548 |
goto out; |
1549 |
@@ -115,7 +123,12 @@ |
1550 |
page += size; |
1551 |
else |
1552 |
{ |
1553 |
- if (errno != ENOMEM) /* Unexpected failure mode. */ |
1554 |
+ if (errno == EACCES) /* PAX is enabled */ |
1555 |
+ { |
1556 |
+ result = 0; |
1557 |
+ goto out; |
1558 |
+ } |
1559 |
+ else if (errno != ENOMEM) /* Unexpected failure mode. */ |
1560 |
{ |
1561 |
result = errno; |
1562 |
goto out; |
1563 |
--- nptl/allocatestack.c |
1564 |
+++ nptl/allocatestack.c |
1565 |
@@ -279,7 +279,8 @@ |
1566 |
size_t len = pd->stackblock_size - pd->guardsize; |
1567 |
#endif |
1568 |
if (mprotect (stack, len, PROT_READ | PROT_WRITE | PROT_EXEC) != 0) |
1569 |
- return errno; |
1570 |
+ if (errno != EACCES) /* PAX is enabled */ |
1571 |
+ return errno; |
1572 |
|
1573 |
return 0; |
1574 |
} |
1575 |
|
1576 |
|
1577 |
|
1578 |
1.1 src/patchsets/glibc/2.14/3010_all_2.3.3_pre20040117-pt_pax.patch |
1579 |
|
1580 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/3010_all_2.3.3_pre20040117-pt_pax.patch?rev=1.1&view=markup |
1581 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/3010_all_2.3.3_pre20040117-pt_pax.patch?rev=1.1&content-type=text/plain |
1582 |
|
1583 |
Index: 3010_all_2.3.3_pre20040117-pt_pax.patch |
1584 |
=================================================================== |
1585 |
--- elf/elf.h |
1586 |
+++ elf/elf.h |
1587 |
@@ -568,6 +568,7 @@ |
1588 |
#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */ |
1589 |
#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */ |
1590 |
#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */ |
1591 |
+#define PT_PAX_FLAGS 0x65041580 /* Indicates PaX flag markings */ |
1592 |
#define PT_LOSUNW 0x6ffffffa |
1593 |
#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */ |
1594 |
#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */ |
1595 |
@@ -581,6 +582,18 @@ |
1596 |
#define PF_X (1 << 0) /* Segment is executable */ |
1597 |
#define PF_W (1 << 1) /* Segment is writable */ |
1598 |
#define PF_R (1 << 2) /* Segment is readable */ |
1599 |
+#define PF_PAGEEXEC (1 << 4) /* Enable PAGEEXEC */ |
1600 |
+#define PF_NOPAGEEXEC (1 << 5) /* Disable PAGEEXEC */ |
1601 |
+#define PF_SEGMEXEC (1 << 6) /* Enable SEGMEXEC */ |
1602 |
+#define PF_NOSEGMEXEC (1 << 7) /* Disable SEGMEXEC */ |
1603 |
+#define PF_MPROTECT (1 << 8) /* Enable MPROTECT */ |
1604 |
+#define PF_NOMPROTECT (1 << 9) /* Disable MPROTECT */ |
1605 |
+#define PF_RANDEXEC (1 << 10) /* Enable RANDEXEC */ |
1606 |
+#define PF_NORANDEXEC (1 << 11) /* Disable RANDEXEC */ |
1607 |
+#define PF_EMUTRAMP (1 << 12) /* Enable EMUTRAMP */ |
1608 |
+#define PF_NOEMUTRAMP (1 << 13) /* Disable EMUTRAMP */ |
1609 |
+#define PF_RANDMMAP (1 << 14) /* Enable RANDMMAP */ |
1610 |
+#define PF_NORANDMMAP (1 << 15) /* Disable RANDMMAP */ |
1611 |
#define PF_MASKOS 0x0ff00000 /* OS-specific */ |
1612 |
#define PF_MASKPROC 0xf0000000 /* Processor-specific */ |
1613 |
|
1614 |
|
1615 |
|
1616 |
|
1617 |
1.1 src/patchsets/glibc/2.14/3020_all_glibc-tests-sandbox-libdl-paths.patch |
1618 |
|
1619 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/3020_all_glibc-tests-sandbox-libdl-paths.patch?rev=1.1&view=markup |
1620 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/3020_all_glibc-tests-sandbox-libdl-paths.patch?rev=1.1&content-type=text/plain |
1621 |
|
1622 |
Index: 3020_all_glibc-tests-sandbox-libdl-paths.patch |
1623 |
=================================================================== |
1624 |
when glibc runs its tests, it does so by invoking the local library loader. |
1625 |
in Gentoo, we build/run inside of our "sandbox" which itself is linked against |
1626 |
libdl (so that it can load libraries and pull out symbols). the trouble |
1627 |
is that when you upgrade from an older glibc to the new one, often times |
1628 |
internal symbols change name or abi. this is normally OK as you cannot use |
1629 |
libc.so from say version 2.3.6 but libpthread.so from say version 2.5, so |
1630 |
we always say "keep all of the glibc libraries from the same build". but |
1631 |
when glibc runs its tests, it uses dynamic paths to point to its new local |
1632 |
copies of libraries. if the test doesnt use libdl, then glibc doesnt add |
1633 |
its path, and when sandbox triggers the loading of libdl, glibc does so |
1634 |
from the host system system. this gets us into the case of all libraries |
1635 |
are from the locally compiled version of glibc except for libdl.so. |
1636 |
|
1637 |
Fix by Wormo |
1638 |
|
1639 |
http://bugs.gentoo.org/56898 |
1640 |
|
1641 |
--- libc/grp/tst_fgetgrent.sh |
1642 |
+++ libc/grp/tst_fgetgrent.sh |
1643 |
@@ -24,7 +24,8 @@ |
1644 |
rtld_installed_name=$1; shift |
1645 |
|
1646 |
testout=${common_objpfx}/grp/tst_fgetgrent.out |
1647 |
-library_path=${common_objpfx} |
1648 |
+# make sure libdl is also in path in case sandbox is in use |
1649 |
+library_path=${common_objpfx}:${common_objpfx}/dlfcn |
1650 |
|
1651 |
result=0 |
1652 |
|
1653 |
--- libc/iconvdata/run-iconv-test.sh |
1654 |
+++ libc/iconvdata/run-iconv-test.sh |
1655 |
@@ -34,7 +34,7 @@ |
1656 |
export GCONV_PATH |
1657 |
|
1658 |
# We have to have some directories in the library path. |
1659 |
-LIBPATH=$codir:$codir/iconvdata |
1660 |
+LIBPATH=$codir:$codir/iconvdata:$codir/dlfcn |
1661 |
|
1662 |
# How the start the iconv(1) program. |
1663 |
ICONV='$codir/elf/ld.so --library-path $LIBPATH --inhibit-rpath ${from}.so \ |
1664 |
--- libc/iconvdata/tst-table.sh |
1665 |
+++ libc/iconvdata/tst-table.sh |
1666 |
@@ -59,8 +59,11 @@ |
1667 |
irreversible=${charset}.irreversible |
1668 |
fi |
1669 |
|
1670 |
+# make sure libdl is also in path in case sandbox is in use |
1671 |
+library_path=${common_objpfx}:${common_objpfx}/dlfcn |
1672 |
+ |
1673 |
# iconv in one direction. |
1674 |
-${common_objpfx}elf/ld.so --library-path $common_objpfx \ |
1675 |
+${common_objpfx}elf/ld.so --library-path $library_path \ |
1676 |
${objpfx}tst-table-from ${charset} \ |
1677 |
> ${objpfx}tst-${charset}.table |
1678 |
|
1679 |
--- libc/intl/tst-codeset.sh |
1680 |
+++ libc/intl/tst-codeset.sh |
1681 |
@@ -37,6 +37,9 @@ |
1682 |
LOCPATH=${common_objpfx}localedata |
1683 |
export LOCPATH |
1684 |
|
1685 |
+# make sure libdl is also in path in case sandbox is in use |
1686 |
+library_path=${common_objpfx}:${common_objpfx}/dlfcn |
1687 |
+ |
1688 |
${common_objpfx}elf/ld.so --library-path $common_objpfx \ |
1689 |
${objpfx}tst-codeset > ${objpfx}tst-codeset.out |
1690 |
|
1691 |
--- libc/intl/tst-gettext.sh |
1692 |
+++ libc/intl/tst-gettext.sh |
1693 |
@@ -51,9 +51,12 @@ |
1694 |
LOCPATH=${common_objpfx}localedata |
1695 |
export LOCPATH |
1696 |
|
1697 |
+# make sure libdl is also in path in case sandbox is in use |
1698 |
+library_path=${common_objpfx}:${common_objpfx}/dlfcn |
1699 |
+ |
1700 |
# Now run the test. |
1701 |
MALLOC_TRACE=$malloc_trace LOCPATH=${objpfx}localedir:$LOCPATH \ |
1702 |
-${common_objpfx}elf/ld.so --library-path $common_objpfx \ |
1703 |
+${common_objpfx}elf/ld.so --library-path $library_path \ |
1704 |
${objpfx}tst-gettext > ${objpfx}tst-gettext.out ${objpfx}domaindir |
1705 |
|
1706 |
exit $? |
1707 |
--- libc/intl/tst-gettext2.sh |
1708 |
+++ libc/intl/tst-gettext2.sh |
1709 |
@@ -65,8 +65,11 @@ |
1710 |
LOCPATH=${objpfx}domaindir |
1711 |
export LOCPATH |
1712 |
|
1713 |
+# make sure libdl is also in path in case sandbox is in use |
1714 |
+library_path=${common_objpfx}:${common_objpfx}/dlfcn |
1715 |
+ |
1716 |
# Now run the test. |
1717 |
-${common_objpfx}elf/ld.so --library-path $common_objpfx \ |
1718 |
+${common_objpfx}elf/ld.so --library-path $library_path \ |
1719 |
${objpfx}tst-gettext2 > ${objpfx}tst-gettext2.out ${objpfx}domaindir && |
1720 |
cmp ${objpfx}tst-gettext2.out - <<EOF |
1721 |
String1 - Lang1: 1st string |
1722 |
--- libc/intl/tst-translit.sh |
1723 |
+++ libc/intl/tst-translit.sh |
1724 |
@@ -36,7 +36,10 @@ |
1725 |
LOCPATH=${common_objpfx}localedata |
1726 |
export LOCPATH |
1727 |
|
1728 |
-${common_objpfx}elf/ld.so --library-path $common_objpfx \ |
1729 |
+# make sure libdl is also in path in case sandbox is in use |
1730 |
+library_path=${common_objpfx}:${common_objpfx}/dlfcn |
1731 |
+ |
1732 |
+${common_objpfx}elf/ld.so --library-path $library_path \ |
1733 |
${objpfx}tst-translit > ${objpfx}tst-translit.out ${objpfx}domaindir |
1734 |
|
1735 |
exit $? |
1736 |
--- libc/malloc/tst-mtrace.sh |
1737 |
+++ libc/malloc/tst-mtrace.sh |
1738 |
@@ -24,9 +24,12 @@ |
1739 |
status=0 |
1740 |
trap "rm -f ${common_objpfx}malloc/tst-mtrace.leak; exit 1" 1 2 15 |
1741 |
|
1742 |
+# make sure libdl is also in path in case sandbox is in use |
1743 |
+library_path=${common_objpfx}:${common_objpfx}/dlfcn |
1744 |
+ |
1745 |
MALLOC_TRACE=${common_objpfx}malloc/tst-mtrace.leak \ |
1746 |
LOCPATH=${common_objpfx}localedata GCONV_PATH=${common_objpfx}iconvdata \ |
1747 |
-${common_objpfx}elf/ld.so --library-path $common_objpfx \ |
1748 |
+${common_objpfx}elf/ld.so --library-path $library_path \ |
1749 |
${common_objpfx}malloc/tst-mtrace || status=1 |
1750 |
|
1751 |
if test $status -eq 0 && test -f ${common_objpfx}malloc/mtrace; then |
1752 |
--- libc/nptl/tst-tls6.sh |
1753 |
+++ libc/nptl/tst-tls6.sh |
1754 |
@@ -5,8 +5,8 @@ |
1755 |
rtld_installed_name=$1; shift |
1756 |
logfile=$common_objpfx/nptl/tst-tls6.out |
1757 |
|
1758 |
-# We have to find libc and nptl |
1759 |
-library_path=${common_objpfx}:${common_objpfx}nptl |
1760 |
+# We have to find libc and nptl (also libdl in case sandbox is in use) |
1761 |
+library_path=${common_objpfx}:${common_objpfx}nptl:${common_objpfx}/dlfcn |
1762 |
tst_tls5="${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \ |
1763 |
${common_objpfx}/nptl/tst-tls5" |
1764 |
|
1765 |
--- libc/posix/globtest.sh |
1766 |
+++ libc/posix/globtest.sh |
1767 |
@@ -18,7 +18,7 @@ |
1768 |
esac |
1769 |
|
1770 |
# We have to find the libc and the NSS modules. |
1771 |
-library_path=${common_objpfx}:${common_objpfx}nss:${common_objpfx}nis:${common_objpfx}db2:${common_objpfx}hesiod |
1772 |
+library_path=${common_objpfx}:${common_objpfx}nss:${common_objpfx}nis:${common_objpfx}db2:${common_objpfx}hesiod:${common_objpfx}/dlfcn |
1773 |
|
1774 |
# Since we use `sort' we must make sure to use the same locale everywhere. |
1775 |
LC_ALL=C |
1776 |
--- libc/posix/tst-getconf.sh |
1777 |
+++ libc/posix/tst-getconf.sh |
1778 |
@@ -10,7 +10,10 @@ |
1779 |
else |
1780 |
rtld_installed_name=$1; shift |
1781 |
runit() { |
1782 |
- ${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} "$@" |
1783 |
+ |
1784 |
+ # make sure libdl is also in path in case sandbox is in use |
1785 |
+ library_path=${common_objpfx}:${common_objpfx}/dlfcn |
1786 |
+ ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} "$@" |
1787 |
} |
1788 |
fi |
1789 |
|
1790 |
--- libc/posix/wordexp-tst.sh |
1791 |
+++ libc/posix/wordexp-tst.sh |
1792 |
@@ -19,8 +19,11 @@ |
1793 |
" |
1794 |
export IFS |
1795 |
|
1796 |
+# make sure libdl is also in path in case sandbox is in use |
1797 |
+library_path=${common_objpfx}:${common_objpfx}/dlfcn |
1798 |
+ |
1799 |
failed=0 |
1800 |
-${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} \ |
1801 |
+${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \ |
1802 |
${common_objpfx}posix/wordexp-test '$*' > ${testout}1 |
1803 |
cat <<"EOF" | cmp - ${testout}1 >> $logfile || failed=1 |
1804 |
wordexp returned 0 |
1805 |
|
1806 |
|
1807 |
|
1808 |
1.1 src/patchsets/glibc/2.14/5063_all_glibc-dont-build-timezone.patch |
1809 |
|
1810 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/5063_all_glibc-dont-build-timezone.patch?rev=1.1&view=markup |
1811 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/5063_all_glibc-dont-build-timezone.patch?rev=1.1&content-type=text/plain |
1812 |
|
1813 |
Index: 5063_all_glibc-dont-build-timezone.patch |
1814 |
=================================================================== |
1815 |
timezone data has been split into the package sys-libs/timezone-data |
1816 |
|
1817 |
--- glibc/Makeconfig |
1818 |
+++ glibc/Makeconfig |
1819 |
@@ -922,1 +922,1 @@ |
1820 |
- crypt nss localedata timezone rt conform debug \ |
1821 |
+ crypt nss localedata rt conform debug \ |
1822 |
|
1823 |
|
1824 |
|
1825 |
1.1 src/patchsets/glibc/2.14/6120_all_ppc-glibc-2.9-atomic.patch |
1826 |
|
1827 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/6120_all_ppc-glibc-2.9-atomic.patch?rev=1.1&view=markup |
1828 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/6120_all_ppc-glibc-2.9-atomic.patch?rev=1.1&content-type=text/plain |
1829 |
|
1830 |
Index: 6120_all_ppc-glibc-2.9-atomic.patch |
1831 |
=================================================================== |
1832 |
sniped from suse |
1833 |
|
1834 |
Index: sysdeps/powerpc/bits/atomic.h |
1835 |
=================================================================== |
1836 |
RCS file: /cvs/glibc/libc/sysdeps/powerpc/bits/atomic.h,v |
1837 |
retrieving revision 1.17 |
1838 |
diff -u -a -p -r1.17 atomic.h |
1839 |
--- a/sysdeps/powerpc/bits/atomic.h 26 Mar 2007 20:15:28 -0000 1.17 |
1840 |
+++ b/sysdeps/powerpc/bits/atomic.h 31 May 2008 08:50:56 -0000 |
1841 |
@@ -85,14 +85,14 @@ typedef uintmax_t uatomic_max_t; |
1842 |
__typeof (*(mem)) __tmp; \ |
1843 |
__typeof (mem) __memp = (mem); \ |
1844 |
__asm __volatile ( \ |
1845 |
- "1: lwarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ |
1846 |
+ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ |
1847 |
" cmpw %0,%2\n" \ |
1848 |
" bne 2f\n" \ |
1849 |
- " stwcx. %3,0,%1\n" \ |
1850 |
+ " stwcx. %3,%y1\n" \ |
1851 |
" bne- 1b\n" \ |
1852 |
"2: " __ARCH_ACQ_INSTR \ |
1853 |
- : "=&r" (__tmp) \ |
1854 |
- : "b" (__memp), "r" (oldval), "r" (newval) \ |
1855 |
+ : "=&r" (__tmp), "+Z" (*__memp) \ |
1856 |
+ : "r" (oldval), "r" (newval) \ |
1857 |
: "cr0", "memory"); \ |
1858 |
__tmp; \ |
1859 |
}) |
1860 |
@@ -102,14 +102,14 @@ typedef uintmax_t uatomic_max_t; |
1861 |
__typeof (*(mem)) __tmp; \ |
1862 |
__typeof (mem) __memp = (mem); \ |
1863 |
__asm __volatile (__ARCH_REL_INSTR "\n" \ |
1864 |
- "1: lwarx %0,0,%1" MUTEX_HINT_REL "\n" \ |
1865 |
+ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ |
1866 |
" cmpw %0,%2\n" \ |
1867 |
" bne 2f\n" \ |
1868 |
- " stwcx. %3,0,%1\n" \ |
1869 |
+ " stwcx. %3,%y1\n" \ |
1870 |
" bne- 1b\n" \ |
1871 |
"2: " \ |
1872 |
- : "=&r" (__tmp) \ |
1873 |
- : "b" (__memp), "r" (oldval), "r" (newval) \ |
1874 |
+ : "=&r" (__tmp), "+Z" (__memp) \ |
1875 |
+ : "r" (oldval), "r" (newval) \ |
1876 |
: "cr0", "memory"); \ |
1877 |
__tmp; \ |
1878 |
}) |
1879 |
@@ -118,12 +118,12 @@ typedef uintmax_t uatomic_max_t; |
1880 |
({ \ |
1881 |
__typeof (*mem) __val; \ |
1882 |
__asm __volatile ( \ |
1883 |
- "1: lwarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ |
1884 |
- " stwcx. %3,0,%2\n" \ |
1885 |
+ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ |
1886 |
+ " stwcx. %2,%y1\n" \ |
1887 |
" bne- 1b\n" \ |
1888 |
" " __ARCH_ACQ_INSTR \ |
1889 |
- : "=&r" (__val), "=m" (*mem) \ |
1890 |
- : "b" (mem), "r" (value), "m" (*mem) \ |
1891 |
+ : "=&r" (__val), "+Z" (*mem) \ |
1892 |
+ : "r" (value) \ |
1893 |
: "cr0", "memory"); \ |
1894 |
__val; \ |
1895 |
}) |
1896 |
@@ -132,11 +132,11 @@ typedef uintmax_t uatomic_max_t; |
1897 |
({ \ |
1898 |
__typeof (*mem) __val; \ |
1899 |
__asm __volatile (__ARCH_REL_INSTR "\n" \ |
1900 |
- "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" \ |
1901 |
- " stwcx. %3,0,%2\n" \ |
1902 |
+ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ |
1903 |
+ " stwcx. %2,%y1\n" \ |
1904 |
" bne- 1b" \ |
1905 |
- : "=&r" (__val), "=m" (*mem) \ |
1906 |
- : "b" (mem), "r" (value), "m" (*mem) \ |
1907 |
+ : "=&r" (__val), "+Z" (*mem) \ |
1908 |
+ : "r" (value) \ |
1909 |
: "cr0", "memory"); \ |
1910 |
__val; \ |
1911 |
}) |
1912 |
@@ -144,12 +144,12 @@ typedef uintmax_t uatomic_max_t; |
1913 |
#define __arch_atomic_exchange_and_add_32(mem, value) \ |
1914 |
({ \ |
1915 |
__typeof (*mem) __val, __tmp; \ |
1916 |
- __asm __volatile ("1: lwarx %0,0,%3\n" \ |
1917 |
- " add %1,%0,%4\n" \ |
1918 |
- " stwcx. %1,0,%3\n" \ |
1919 |
+ __asm __volatile ("1: lwarx %0,%y2\n" \ |
1920 |
+ " add %1,%0,%3\n" \ |
1921 |
+ " stwcx. %1,%y2\n" \ |
1922 |
" bne- 1b" \ |
1923 |
- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ |
1924 |
- : "b" (mem), "r" (value), "m" (*mem) \ |
1925 |
+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem) \ |
1926 |
+ : "r" (value) \ |
1927 |
: "cr0", "memory"); \ |
1928 |
__val; \ |
1929 |
}) |
1930 |
@@ -157,12 +157,12 @@ typedef uintmax_t uatomic_max_t; |
1931 |
#define __arch_atomic_increment_val_32(mem) \ |
1932 |
({ \ |
1933 |
__typeof (*(mem)) __val; \ |
1934 |
- __asm __volatile ("1: lwarx %0,0,%2\n" \ |
1935 |
+ __asm __volatile ("1: lwarx %0,%y1\n" \ |
1936 |
" addi %0,%0,1\n" \ |
1937 |
- " stwcx. %0,0,%2\n" \ |
1938 |
+ " stwcx. %0,%y1\n" \ |
1939 |
" bne- 1b" \ |
1940 |
- : "=&b" (__val), "=m" (*mem) \ |
1941 |
- : "b" (mem), "m" (*mem) \ |
1942 |
+ : "=&b" (__val), "+Z" (*mem) \ |
1943 |
+ : \ |
1944 |
: "cr0", "memory"); \ |
1945 |
__val; \ |
1946 |
}) |
1947 |
@@ -170,27 +170,27 @@ typedef uintmax_t uatomic_max_t; |
1948 |
#define __arch_atomic_decrement_val_32(mem) \ |
1949 |
({ \ |
1950 |
__typeof (*(mem)) __val; \ |
1951 |
- __asm __volatile ("1: lwarx %0,0,%2\n" \ |
1952 |
+ __asm __volatile ("1: lwarx %0,%y1\n" \ |
1953 |
" subi %0,%0,1\n" \ |
1954 |
- " stwcx. %0,0,%2\n" \ |
1955 |
+ " stwcx. %0,%y1\n" \ |
1956 |
" bne- 1b" \ |
1957 |
- : "=&b" (__val), "=m" (*mem) \ |
1958 |
- : "b" (mem), "m" (*mem) \ |
1959 |
+ : "=&b" (__val), "+Z" (*mem) \ |
1960 |
+ : \ |
1961 |
: "cr0", "memory"); \ |
1962 |
__val; \ |
1963 |
}) |
1964 |
|
1965 |
#define __arch_atomic_decrement_if_positive_32(mem) \ |
1966 |
({ int __val, __tmp; \ |
1967 |
- __asm __volatile ("1: lwarx %0,0,%3\n" \ |
1968 |
+ __asm __volatile ("1: lwarx %0,%y2\n" \ |
1969 |
" cmpwi 0,%0,0\n" \ |
1970 |
" addi %1,%0,-1\n" \ |
1971 |
" ble 2f\n" \ |
1972 |
- " stwcx. %1,0,%3\n" \ |
1973 |
+ " stwcx. %1,%y2\n" \ |
1974 |
" bne- 1b\n" \ |
1975 |
"2: " __ARCH_ACQ_INSTR \ |
1976 |
- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ |
1977 |
- : "b" (mem), "m" (*mem) \ |
1978 |
+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem) \ |
1979 |
+ : \ |
1980 |
: "cr0", "memory"); \ |
1981 |
__val; \ |
1982 |
}) |
1983 |
Index: sysdeps/powerpc/powerpc32/bits/atomic.h |
1984 |
=================================================================== |
1985 |
RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc32/bits/atomic.h,v |
1986 |
retrieving revision 1.6 |
1987 |
diff -u -a -p -r1.6 atomic.h |
1988 |
--- a/sysdeps/powerpc/powerpc32/bits/atomic.h 26 Mar 2007 20:15:45 -0000 1.6 |
1989 |
+++ b/sysdeps/powerpc/powerpc32/bits/atomic.h 31 May 2008 08:50:56 -0000 |
1990 |
@@ -44,14 +44,14 @@ |
1991 |
({ \ |
1992 |
unsigned int __tmp; \ |
1993 |
__asm __volatile ( \ |
1994 |
- "1: lwarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ |
1995 |
+ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ |
1996 |
" subf. %0,%2,%0\n" \ |
1997 |
" bne 2f\n" \ |
1998 |
- " stwcx. %3,0,%1\n" \ |
1999 |
+ " stwcx. %3,%y1\n" \ |
2000 |
" bne- 1b\n" \ |
2001 |
"2: " __ARCH_ACQ_INSTR \ |
2002 |
- : "=&r" (__tmp) \ |
2003 |
- : "b" (mem), "r" (oldval), "r" (newval) \ |
2004 |
+ : "=&r" (__tmp), "+Z" (*(mem)) \ |
2005 |
+ : "r" (oldval), "r" (newval) \ |
2006 |
: "cr0", "memory"); \ |
2007 |
__tmp != 0; \ |
2008 |
}) |
2009 |
@@ -60,14 +60,14 @@ |
2010 |
({ \ |
2011 |
unsigned int __tmp; \ |
2012 |
__asm __volatile (__ARCH_REL_INSTR "\n" \ |
2013 |
- "1: lwarx %0,0,%1" MUTEX_HINT_REL "\n" \ |
2014 |
+ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ |
2015 |
" subf. %0,%2,%0\n" \ |
2016 |
" bne 2f\n" \ |
2017 |
- " stwcx. %3,0,%1\n" \ |
2018 |
+ " stwcx. %3,%y1\n" \ |
2019 |
" bne- 1b\n" \ |
2020 |
"2: " \ |
2021 |
- : "=&r" (__tmp) \ |
2022 |
- : "b" (mem), "r" (oldval), "r" (newval) \ |
2023 |
+ : "=&r" (__tmp), "+Z" (*(mem)) \ |
2024 |
+ : "r" (oldval), "r" (newval) \ |
2025 |
: "cr0", "memory"); \ |
2026 |
__tmp != 0; \ |
2027 |
}) |
2028 |
Index: sysdeps/powerpc/powerpc64/bits/atomic.h |
2029 |
=================================================================== |
2030 |
RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc64/bits/atomic.h,v |
2031 |
retrieving revision 1.8 |
2032 |
diff -u -a -p -r1.8 atomic.h |
2033 |
--- a/sysdeps/powerpc/powerpc64/bits/atomic.h 26 Mar 2007 20:16:03 -0000 1.8 |
2034 |
+++ b/sysdeps/powerpc/powerpc64/bits/atomic.h 31 May 2008 08:50:56 -0000 |
2035 |
@@ -44,14 +44,14 @@ |
2036 |
({ \ |
2037 |
unsigned int __tmp, __tmp2; \ |
2038 |
__asm __volatile (" clrldi %1,%1,32\n" \ |
2039 |
- "1: lwarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ |
2040 |
+ "1: lwarx %0,%y2" MUTEX_HINT_ACQ "\n" \ |
2041 |
" subf. %0,%1,%0\n" \ |
2042 |
" bne 2f\n" \ |
2043 |
- " stwcx. %4,0,%2\n" \ |
2044 |
+ " stwcx. %4,%y2\n" \ |
2045 |
" bne- 1b\n" \ |
2046 |
"2: " __ARCH_ACQ_INSTR \ |
2047 |
- : "=&r" (__tmp), "=r" (__tmp2) \ |
2048 |
- : "b" (mem), "1" (oldval), "r" (newval) \ |
2049 |
+ : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem)) \ |
2050 |
+ : "1" (oldval), "r" (newval) \ |
2051 |
: "cr0", "memory"); \ |
2052 |
__tmp != 0; \ |
2053 |
}) |
2054 |
@@ -61,14 +61,14 @@ |
2055 |
unsigned int __tmp, __tmp2; \ |
2056 |
__asm __volatile (__ARCH_REL_INSTR "\n" \ |
2057 |
" clrldi %1,%1,32\n" \ |
2058 |
- "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" \ |
2059 |
+ "1: lwarx %0,%y2" MUTEX_HINT_REL "\n" \ |
2060 |
" subf. %0,%1,%0\n" \ |
2061 |
" bne 2f\n" \ |
2062 |
- " stwcx. %4,0,%2\n" \ |
2063 |
+ " stwcx. %4,%y2\n" \ |
2064 |
" bne- 1b\n" \ |
2065 |
"2: " \ |
2066 |
- : "=&r" (__tmp), "=r" (__tmp2) \ |
2067 |
- : "b" (mem), "1" (oldval), "r" (newval) \ |
2068 |
+ : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem)) \ |
2069 |
+ : "1" (oldval), "r" (newval) \ |
2070 |
: "cr0", "memory"); \ |
2071 |
__tmp != 0; \ |
2072 |
}) |
2073 |
@@ -82,14 +82,14 @@ |
2074 |
({ \ |
2075 |
unsigned long __tmp; \ |
2076 |
__asm __volatile ( \ |
2077 |
- "1: ldarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ |
2078 |
+ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ |
2079 |
" subf. %0,%2,%0\n" \ |
2080 |
" bne 2f\n" \ |
2081 |
- " stdcx. %3,0,%1\n" \ |
2082 |
+ " stdcx. %3,%y1\n" \ |
2083 |
" bne- 1b\n" \ |
2084 |
"2: " __ARCH_ACQ_INSTR \ |
2085 |
- : "=&r" (__tmp) \ |
2086 |
- : "b" (mem), "r" (oldval), "r" (newval) \ |
2087 |
+ : "=&r" (__tmp), "+Z" (*(mem)) \ |
2088 |
+ : "r" (oldval), "r" (newval) \ |
2089 |
: "cr0", "memory"); \ |
2090 |
__tmp != 0; \ |
2091 |
}) |
2092 |
@@ -98,14 +98,14 @@ |
2093 |
({ \ |
2094 |
unsigned long __tmp; \ |
2095 |
__asm __volatile (__ARCH_REL_INSTR "\n" \ |
2096 |
- "1: ldarx %0,0,%2" MUTEX_HINT_REL "\n" \ |
2097 |
+ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ |
2098 |
" subf. %0,%2,%0\n" \ |
2099 |
" bne 2f\n" \ |
2100 |
- " stdcx. %3,0,%1\n" \ |
2101 |
+ " stdcx. %3,%y1\n" \ |
2102 |
" bne- 1b\n" \ |
2103 |
"2: " \ |
2104 |
- : "=&r" (__tmp) \ |
2105 |
- : "b" (mem), "r" (oldval), "r" (newval) \ |
2106 |
+ : "=&r" (__tmp), "+Z" (*(mem)) \ |
2107 |
+ : "r" (oldval), "r" (newval) \ |
2108 |
: "cr0", "memory"); \ |
2109 |
__tmp != 0; \ |
2110 |
}) |
2111 |
@@ -115,14 +115,14 @@ |
2112 |
__typeof (*(mem)) __tmp; \ |
2113 |
__typeof (mem) __memp = (mem); \ |
2114 |
__asm __volatile ( \ |
2115 |
- "1: ldarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ |
2116 |
+ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ |
2117 |
" cmpd %0,%2\n" \ |
2118 |
" bne 2f\n" \ |
2119 |
- " stdcx. %3,0,%1\n" \ |
2120 |
+ " stdcx. %3,%y1\n" \ |
2121 |
" bne- 1b\n" \ |
2122 |
"2: " __ARCH_ACQ_INSTR \ |
2123 |
- : "=&r" (__tmp) \ |
2124 |
- : "b" (__memp), "r" (oldval), "r" (newval) \ |
2125 |
+ : "=&r" (__tmp), "+Z" (*__memp) \ |
2126 |
+ : "r" (oldval), "r" (newval) \ |
2127 |
: "cr0", "memory"); \ |
2128 |
__tmp; \ |
2129 |
}) |
2130 |
@@ -132,14 +132,14 @@ |
2131 |
__typeof (*(mem)) __tmp; \ |
2132 |
__typeof (mem) __memp = (mem); \ |
2133 |
__asm __volatile (__ARCH_REL_INSTR "\n" \ |
2134 |
- "1: ldarx %0,0,%1" MUTEX_HINT_REL "\n" \ |
2135 |
+ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ |
2136 |
" cmpd %0,%2\n" \ |
2137 |
" bne 2f\n" \ |
2138 |
- " stdcx. %3,0,%1\n" \ |
2139 |
+ " stdcx. %3,%y1\n" \ |
2140 |
" bne- 1b\n" \ |
2141 |
"2: " \ |
2142 |
- : "=&r" (__tmp) \ |
2143 |
- : "b" (__memp), "r" (oldval), "r" (newval) \ |
2144 |
+ : "=&r" (__tmp), "+Z" (*__memp) \ |
2145 |
+ : "r" (oldval), "r" (newval) \ |
2146 |
: "cr0", "memory"); \ |
2147 |
__tmp; \ |
2148 |
}) |
2149 |
@@ -148,12 +148,12 @@ |
2150 |
({ \ |
2151 |
__typeof (*mem) __val; \ |
2152 |
__asm __volatile (__ARCH_REL_INSTR "\n" \ |
2153 |
- "1: ldarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ |
2154 |
- " stdcx. %3,0,%2\n" \ |
2155 |
+ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ |
2156 |
+ " stdcx. %2,%y1\n" \ |
2157 |
" bne- 1b\n" \ |
2158 |
" " __ARCH_ACQ_INSTR \ |
2159 |
- : "=&r" (__val), "=m" (*mem) \ |
2160 |
- : "b" (mem), "r" (value), "m" (*mem) \ |
2161 |
+ : "=&r" (__val), "+Z" (*(mem)) \ |
2162 |
+ : "r" (value) \ |
2163 |
: "cr0", "memory"); \ |
2164 |
__val; \ |
2165 |
}) |
2166 |
@@ -162,11 +162,11 @@ |
2167 |
({ \ |
2168 |
__typeof (*mem) __val; \ |
2169 |
__asm __volatile (__ARCH_REL_INSTR "\n" \ |
2170 |
- "1: ldarx %0,0,%2" MUTEX_HINT_REL "\n" \ |
2171 |
- " stdcx. %3,0,%2\n" \ |
2172 |
+ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ |
2173 |
+ " stdcx. %2,%y1\n" \ |
2174 |
" bne- 1b" \ |
2175 |
- : "=&r" (__val), "=m" (*mem) \ |
2176 |
- : "b" (mem), "r" (value), "m" (*mem) \ |
2177 |
+ : "=&r" (__val), "+Z" (*(mem)) \ |
2178 |
+ : "r" (value) \ |
2179 |
: "cr0", "memory"); \ |
2180 |
__val; \ |
2181 |
}) |
2182 |
@@ -174,12 +174,12 @@ |
2183 |
#define __arch_atomic_exchange_and_add_64(mem, value) \ |
2184 |
({ \ |
2185 |
__typeof (*mem) __val, __tmp; \ |
2186 |
- __asm __volatile ("1: ldarx %0,0,%3\n" \ |
2187 |
- " add %1,%0,%4\n" \ |
2188 |
- " stdcx. %1,0,%3\n" \ |
2189 |
+ __asm __volatile ("1: ldarx %0,%y2\n" \ |
2190 |
+ " add %1,%0,%3\n" \ |
2191 |
+ " stdcx. %1,%y2\n" \ |
2192 |
" bne- 1b" \ |
2193 |
- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ |
2194 |
- : "b" (mem), "r" (value), "m" (*mem) \ |
2195 |
+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem)) \ |
2196 |
+ : "r" (value) \ |
2197 |
: "cr0", "memory"); \ |
2198 |
__val; \ |
2199 |
}) |
2200 |
@@ -187,12 +187,12 @@ |
2201 |
#define __arch_atomic_increment_val_64(mem) \ |
2202 |
({ \ |
2203 |
__typeof (*(mem)) __val; \ |
2204 |
- __asm __volatile ("1: ldarx %0,0,%2\n" \ |
2205 |
+ __asm __volatile ("1: ldarx %0,%y1\n" \ |
2206 |
" addi %0,%0,1\n" \ |
2207 |
- " stdcx. %0,0,%2\n" \ |
2208 |
+ " stdcx. %0,%y1\n" \ |
2209 |
" bne- 1b" \ |
2210 |
- : "=&b" (__val), "=m" (*mem) \ |
2211 |
- : "b" (mem), "m" (*mem) \ |
2212 |
+ : "=&b" (__val), "+Z" (*(mem)) \ |
2213 |
+ : \ |
2214 |
: "cr0", "memory"); \ |
2215 |
__val; \ |
2216 |
}) |
2217 |
@@ -200,27 +200,27 @@ |
2218 |
#define __arch_atomic_decrement_val_64(mem) \ |
2219 |
({ \ |
2220 |
__typeof (*(mem)) __val; \ |
2221 |
- __asm __volatile ("1: ldarx %0,0,%2\n" \ |
2222 |
+ __asm __volatile ("1: ldarx %0,%y1\n" \ |
2223 |
" subi %0,%0,1\n" \ |
2224 |
- " stdcx. %0,0,%2\n" \ |
2225 |
+ " stdcx. %0,%y1\n" \ |
2226 |
" bne- 1b" \ |
2227 |
- : "=&b" (__val), "=m" (*mem) \ |
2228 |
- : "b" (mem), "m" (*mem) \ |
2229 |
+ : "=&b" (__val), "+Z" (*(mem)) \ |
2230 |
+ : \ |
2231 |
: "cr0", "memory"); \ |
2232 |
__val; \ |
2233 |
}) |
2234 |
|
2235 |
#define __arch_atomic_decrement_if_positive_64(mem) \ |
2236 |
({ int __val, __tmp; \ |
2237 |
- __asm __volatile ("1: ldarx %0,0,%3\n" \ |
2238 |
+ __asm __volatile ("1: ldarx %0,%y2\n" \ |
2239 |
" cmpdi 0,%0,0\n" \ |
2240 |
" addi %1,%0,-1\n" \ |
2241 |
" ble 2f\n" \ |
2242 |
- " stdcx. %1,0,%3\n" \ |
2243 |
+ " stdcx. %1,%y2\n" \ |
2244 |
" bne- 1b\n" \ |
2245 |
"2: " __ARCH_ACQ_INSTR \ |
2246 |
- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ |
2247 |
- : "b" (mem), "m" (*mem) \ |
2248 |
+ : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem)) \ |
2249 |
+ : \ |
2250 |
: "cr0", "memory"); \ |
2251 |
__val; \ |
2252 |
}) |
2253 |
|
2254 |
|
2255 |
|
2256 |
1.1 src/patchsets/glibc/2.14/6130_all_ppc-glibc-2.11-cell-vector.patch |
2257 |
|
2258 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/6130_all_ppc-glibc-2.11-cell-vector.patch?rev=1.1&view=markup |
2259 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/6130_all_ppc-glibc-2.11-cell-vector.patch?rev=1.1&content-type=text/plain |
2260 |
|
2261 |
Index: 6130_all_ppc-glibc-2.11-cell-vector.patch |
2262 |
=================================================================== |
2263 |
http://sourceware.org/ml/libc-alpha/2009-11/msg00017.html |
2264 |
|
2265 |
From: Petr Baudis <pasky at suse dot cz> |
2266 |
To: libc-alpha at sourceware dot org |
2267 |
Date: Fri, 6 Nov 2009 12:03:59 +0100 |
2268 |
Subject: Fix compilation with Altivec |
2269 |
|
2270 |
(This is essentially the same as Andreas Schwab's similar change in Oct |
2271 |
2004. glibc-2.11 fails to build with -mcpu=cell, where __vector is |
2272 |
gcc-reserved keyword.) |
2273 |
|
2274 |
2009-11-06 Petr Baudis <pasky@××××.cz> |
2275 |
|
2276 |
* include/sys/uio.h: Change __vector to __iovec to avoid clash |
2277 |
with altivec. |
2278 |
|
2279 |
diff --git a/include/sys/uio.h b/include/sys/uio.h |
2280 |
index 8c2b016..bfaec59 100644 |
2281 |
--- a/include/sys/uio.h |
2282 |
+++ b/include/sys/uio.h |
2283 |
@@ -2,12 +2,12 @@ |
2284 |
#include <misc/sys/uio.h> |
2285 |
|
2286 |
/* Now define the internal interfaces. */ |
2287 |
-extern ssize_t __readv (int __fd, __const struct iovec *__vector, |
2288 |
+extern ssize_t __readv (int __fd, __const struct iovec *__iovec, |
2289 |
int __count); |
2290 |
-extern ssize_t __libc_readv (int __fd, __const struct iovec *__vector, |
2291 |
+extern ssize_t __libc_readv (int __fd, __const struct iovec *__iovec, |
2292 |
int __count); |
2293 |
-extern ssize_t __writev (int __fd, __const struct iovec *__vector, |
2294 |
+extern ssize_t __writev (int __fd, __const struct iovec *__iovec, |
2295 |
int __count); |
2296 |
-extern ssize_t __libc_writev (int __fd, __const struct iovec *__vector, |
2297 |
+extern ssize_t __libc_writev (int __fd, __const struct iovec *__iovec, |
2298 |
int __count); |
2299 |
#endif |
2300 |
|
2301 |
|
2302 |
|
2303 |
1.1 src/patchsets/glibc/2.14/README.history |
2304 |
|
2305 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/README.history?rev=1.1&view=markup |
2306 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.14/README.history?rev=1.1&content-type=text/plain |
2307 |
|
2308 |
Index: README.history |
2309 |
=================================================================== |
2310 |
1 01.06.2011 |
2311 |
+ 0020_all_glibc-tweak-rfc1918-lookup.patch |
2312 |
+ 0030_all_glibc-respect-env-CPPFLAGS.patch |
2313 |
+ 0055_all_glibc-2.12-static-shared-getpagesize.patch |
2314 |
+ 0061_all_glibc-2.13-static-memset.patch |
2315 |
+ 0085_all_glibc-disable-ldconfig.patch |
2316 |
+ 1005_all_glibc-sigaction.patch |
2317 |
+ 1010_all_glibc-queue-header-updates.patch |
2318 |
+ 1020_all_glibc-longjmp-chk-hidden-fortify.patch |
2319 |
+ 1030_all_glibc-manual-no-perl.patch |
2320 |
+ 1040_all_2.3.3-localedef-fix-trampoline.patch |
2321 |
+ 1055_all_glibc-resolv-dynamic.patch |
2322 |
+ 1060_all_glibc-localedef-mmap.patch |
2323 |
+ 1070_all_glibc-fadvise64_64.patch |
2324 |
+ 1075_all_glibc-section-comments.patch |
2325 |
+ 1080_all_glibc-no-inline-gmon.patch |
2326 |
+ 1085_all_glibc-2.9-check_native-headers.patch |
2327 |
+ 1090_all_glibc-2.3.6-fix-pr631.patch |
2328 |
+ 1095_all_glibc-2.14-assume-pipe2-dup3.patch |
2329 |
+ 1100_all_glibc-2.3.3-china.patch |
2330 |
+ 1103_all_glibc-new-valencian-locale.patch |
2331 |
+ 1120_all_glibc-2.11-longjmp-chk-fallback.patch |
2332 |
+ 1130_all_glibc-2.4-undefine-__i686.patch |
2333 |
+ 1160_all_glibc-2.8-nscd-one-fork.patch |
2334 |
+ 3000_all_2.3.6-dl_execstack-PaX-support.patch |
2335 |
+ 3010_all_2.3.3_pre20040117-pt_pax.patch |
2336 |
+ 3020_all_glibc-tests-sandbox-libdl-paths.patch |
2337 |
+ 5063_all_glibc-dont-build-timezone.patch |
2338 |
+ 6120_all_ppc-glibc-2.9-atomic.patch |
2339 |
+ 6130_all_ppc-glibc-2.11-cell-vector.patch |