Gentoo Archives: gentoo-commits

From: "Mike Frysinger (vapier)" <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in src/patchsets/glibc/2.11.1: 0020_all_glibc-tweak-rfc1918-lookup.patch 0030_all_glibc-respect-env-CPPFLAGS.patch 0044_all_glibc-2.10-resolv-nameserver-fallback.patch 0085_all_glibc-disable-ldconfig.patch 1010_all_glibc-queue-header-updates.patch 1020_all_glibc-longjmp-chk-hidden-fortify.patch 1030_all_glibc-manual-no-perl.patch 1040_all_2.3.3-localedef-fix-trampoline.patch 1055_all_glibc-resolv-dynamic.patch 1060_all_glibc-localedef-mmap.patch 1070_all_glibc-fadvise64_64.patch 1073_all_glibc-ldbl-nexttowardf.patch 1075_all_glibc-section-comments.patch 1080_all_glibc-no-inline-gmon.patch 1085_all_glibc-2.9-check_native-headers.patch 1090_all_glibc-2.3.6-fix-pr631.patch 1095_all_glibc-2.9-assume-pipe2.patch 1100_all_glibc-2.3.3-china.patch 1103_all_glibc-new-valencian-locale.patch 1120_all_glibc-2.11-longjmp-chk-fallback.patch 1130_all_glibc-2.4-undefine-__i686.patch 1160_all_glibc-2.8-nscd-one-fork.patch 1503_hppa_glibc-2.7-hppa-nptl-c arlos.patch 1530_ all_glibc-m68k-sys-user.patch 3000_all_2.3.6-dl_execstack-PaX-support.patch 3010_all_2.3.3_pre20040117-pt_pax.patch 3020_all_glibc-tests-sandbox-libdl-paths.patch 5021_all_2.9-fnmatch.patch 5063_all_glibc-dont-build-timezone.patch 6001_all_alpha-glibc-2.4-xstat.patch 6015_all_alpha-glibc-2.5-no-page-header.patch 6017_all_alpha-glibc-2.8-creat.patch 6018_all_alpha-glibc-2.8-cache-shape.patch 6019_all_alpha-glibc-ptr-mangling.patch 6020_all_alpha-fix-gcc-4.1-warnings.patch 6020_all_alpha-floor_ceil_fix.patch 6021_all_alpha-add-dl-procinfo-support.patch 6022_alpha_alpha-add-fdatasync-support.patch 6023_all_alpha-fcntl-updates.patch 6024_all_alpha-settime-typo.patch 6026_all_alpha-fix-rtld-fPIC.patch 6027_all_alpha-fix-memchr.patch 6028_all_alpha-fix-SOCK_NONBLOCK.patch 6120_all_ppc-glibc-2.9-atomic.patch 6130_all_ppc-glibc-2.11-cell-vector.patch 6220_all_glibc-2.4-arm-cirrus-ep93xx-maverick-crunch-fpu.patch 6240_all_glibc-2.8-nptl-lowlevellock.patch 6418_all_sh-glibc-2.9-set-fp scr-proto.patch 6600_mips_librt-mips.patch 6605_all_glibc-2.4-fpu-cw-mips.patch 6610_all_glibc-r10k-workarounds.patch README.history
Date: Sun, 25 Apr 2010 17:03:19
Message-Id: 20100425164449.646F72C077@corvid.gentoo.org
1 vapier 10/04/25 16:44:49
2
3 Added: 0020_all_glibc-tweak-rfc1918-lookup.patch
4 0030_all_glibc-respect-env-CPPFLAGS.patch
5 0044_all_glibc-2.10-resolv-nameserver-fallback.patch
6 0085_all_glibc-disable-ldconfig.patch
7 1010_all_glibc-queue-header-updates.patch
8 1020_all_glibc-longjmp-chk-hidden-fortify.patch
9 1030_all_glibc-manual-no-perl.patch
10 1040_all_2.3.3-localedef-fix-trampoline.patch
11 1055_all_glibc-resolv-dynamic.patch
12 1060_all_glibc-localedef-mmap.patch
13 1070_all_glibc-fadvise64_64.patch
14 1073_all_glibc-ldbl-nexttowardf.patch
15 1075_all_glibc-section-comments.patch
16 1080_all_glibc-no-inline-gmon.patch
17 1085_all_glibc-2.9-check_native-headers.patch
18 1090_all_glibc-2.3.6-fix-pr631.patch
19 1095_all_glibc-2.9-assume-pipe2.patch
20 1100_all_glibc-2.3.3-china.patch
21 1103_all_glibc-new-valencian-locale.patch
22 1120_all_glibc-2.11-longjmp-chk-fallback.patch
23 1130_all_glibc-2.4-undefine-__i686.patch
24 1160_all_glibc-2.8-nscd-one-fork.patch
25 1503_hppa_glibc-2.7-hppa-nptl-carlos.patch
26 1530_all_glibc-m68k-sys-user.patch
27 3000_all_2.3.6-dl_execstack-PaX-support.patch
28 3010_all_2.3.3_pre20040117-pt_pax.patch
29 3020_all_glibc-tests-sandbox-libdl-paths.patch
30 5021_all_2.9-fnmatch.patch
31 5063_all_glibc-dont-build-timezone.patch
32 6001_all_alpha-glibc-2.4-xstat.patch
33 6015_all_alpha-glibc-2.5-no-page-header.patch
34 6017_all_alpha-glibc-2.8-creat.patch
35 6018_all_alpha-glibc-2.8-cache-shape.patch
36 6019_all_alpha-glibc-ptr-mangling.patch
37 6020_all_alpha-fix-gcc-4.1-warnings.patch
38 6020_all_alpha-floor_ceil_fix.patch
39 6021_all_alpha-add-dl-procinfo-support.patch
40 6022_alpha_alpha-add-fdatasync-support.patch
41 6023_all_alpha-fcntl-updates.patch
42 6024_all_alpha-settime-typo.patch
43 6026_all_alpha-fix-rtld-fPIC.patch
44 6027_all_alpha-fix-memchr.patch
45 6028_all_alpha-fix-SOCK_NONBLOCK.patch
46 6120_all_ppc-glibc-2.9-atomic.patch
47 6130_all_ppc-glibc-2.11-cell-vector.patch
48 6220_all_glibc-2.4-arm-cirrus-ep93xx-maverick-crunch-fpu.patch
49 6240_all_glibc-2.8-nptl-lowlevellock.patch
50 6418_all_sh-glibc-2.9-set-fpscr-proto.patch
51 6600_mips_librt-mips.patch
52 6605_all_glibc-2.4-fpu-cw-mips.patch
53 6610_all_glibc-r10k-workarounds.patch
54 README.history
55 Log:
56 initial 2.11.1 patchset based on last 2.11 patchset
57
58 Revision Changes Path
59 1.1 src/patchsets/glibc/2.11.1/0020_all_glibc-tweak-rfc1918-lookup.patch
60
61 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/0020_all_glibc-tweak-rfc1918-lookup.patch?rev=1.1&view=markup
62 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/0020_all_glibc-tweak-rfc1918-lookup.patch?rev=1.1&content-type=text/plain
63
64 Index: 0020_all_glibc-tweak-rfc1918-lookup.patch
65 ===================================================================
66 http://bugs.gentoo.org/315977
67
68 diff --git a/posix/gai.conf b/posix/gai.conf
69 index 195287e..efba67b 100644
70 --- a/posix/gai.conf
71 +++ b/posix/gai.conf
72 @@ -56,9 +56,7 @@
73 #
74 # scopev4 <mask> <value>
75 # Add another rule to the RFC 3484 scope table for IPv4 addresses.
76 -# By default the scope IDs described in section 3.2 in RFC 3484 are
77 -# used. Changing these defaults should hardly ever be necessary.
78 -# The defaults are equivalent to:
79 +# The definitions in RFC 3484 are equivalent to:
80 #
81 #scopev4 ::ffff:169.254.0.0/112 2
82 #scopev4 ::ffff:127.0.0.0/104 2
83 @@ -66,3 +66,12 @@
84 #scopev4 ::ffff:172.16.0.0/108 5
85 #scopev4 ::ffff:192.168.0.0/112 5
86 #scopev4 ::ffff:0.0.0.0/96 14
87 +#
88 +# For sites which use site-local IPv4 addresses behind NAT there is
89 +# the problem that even if IPv4 addresses are preferred they do not
90 +# have the same scope and are therefore not sorted first. To change
91 +# this use only these rules:
92 +#
93 +scopev4 ::ffff:169.254.0.0/112 2
94 +scopev4 ::ffff:127.0.0.0/104 2
95 +scopev4 ::ffff:0.0.0.0/96 14
96
97
98
99 1.1 src/patchsets/glibc/2.11.1/0030_all_glibc-respect-env-CPPFLAGS.patch
100
101 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/0030_all_glibc-respect-env-CPPFLAGS.patch?rev=1.1&view=markup
102 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/0030_all_glibc-respect-env-CPPFLAGS.patch?rev=1.1&content-type=text/plain
103
104 Index: 0030_all_glibc-respect-env-CPPFLAGS.patch
105 ===================================================================
106 Respect environment CPPFLAGS when we run ./configure so we can inject
107 random -D things without having to set CFLAGS/ASFLAGS
108
109 --- libc/Makeconfig
110 +++ libc/Makeconfig
111 @@ -672,6 +672,7 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+incl
112 $(foreach lib,$(libof-$(basename $(@F))) \
113 $(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \
114 $(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F)) $(CPPFLAGS-$(basename $(@F)))
115 +CPPFLAGS += $(CPPFLAGS-config)
116 override CFLAGS = -std=gnu99 $(gnu89-inline-CFLAGS) \
117 $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
118 $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \
119 --- libc/config.make.in
120 +++ libc/config.make.in
121 @@ -95,6 +95,7 @@ CC = @CC@
122 CXX = @CXX@
123 BUILD_CC = @BUILD_CC@
124 CFLAGS = @CFLAGS@
125 +CPPFLAGS-config = @CPPFLAGS@
126 ASFLAGS-config = @ASFLAGS_config@
127 AR = @AR@
128 RANLIB = @RANLIB@
129
130
131
132 1.1 src/patchsets/glibc/2.11.1/0044_all_glibc-2.10-resolv-nameserver-fallback.patch
133
134 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/0044_all_glibc-2.10-resolv-nameserver-fallback.patch?rev=1.1&view=markup
135 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/0044_all_glibc-2.10-resolv-nameserver-fallback.patch?rev=1.1&content-type=text/plain
136
137 Index: 0044_all_glibc-2.10-resolv-nameserver-fallback.patch
138 ===================================================================
139 http://sourceware.org/bugzilla/show_bug.cgi?id=10851
140
141 2009-11-20 Petr Baudis <pasky@××××.cz>
142
143 [BZ #10851]
144 * resolv/res_init.c (__res_vinit): Initialize nscount again to
145 one so that the default localhost nameserver record is used.
146
147 diff --git a/resolv/res_init.c b/resolv/res_init.c
148 index 40dbe7d..99ef8cf 100644
149 --- a/resolv/res_init.c
150 +++ b/resolv/res_init.c
151 @@ -183,7 +183,7 @@ __res_vinit(res_state statp, int preinit) {
152 #endif
153 statp->nsaddr.sin_family = AF_INET;
154 statp->nsaddr.sin_port = htons(NAMESERVER_PORT);
155 - statp->nscount = 0;
156 + statp->nscount = 1;
157 statp->ndots = 1;
158 statp->pfcode = 0;
159 statp->_vcsock = -1;
160 @@ -420,7 +420,8 @@ __res_vinit(res_state statp, int preinit) {
161 continue;
162 }
163 }
164 - statp->nscount = nservall;
165 + if (nservall > 0)
166 + statp->nscount = nservall;
167 #ifdef _LIBC
168 if (nservall - nserv > 0) {
169 statp->_u._ext.nscount6 = nservall - nserv;
170
171
172
173 1.1 src/patchsets/glibc/2.11.1/0085_all_glibc-disable-ldconfig.patch
174
175 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/0085_all_glibc-disable-ldconfig.patch?rev=1.1&view=markup
176 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/0085_all_glibc-disable-ldconfig.patch?rev=1.1&content-type=text/plain
177
178 Index: 0085_all_glibc-disable-ldconfig.patch
179 ===================================================================
180 do not bother running ldconfig on DESTDIR. it wants to write the temp cache
181 file outside of the chroot. doesnt matter anyways as we wont use the cache
182 results (portage will rebuild cache), so running ldconfig is simply a waste
183 of time.
184
185 --- Makefile
186 +++ Makefile
187 @@ -117,4 +117,5 @@
188
189 install:
190 +dont-bother-with-destdir:
191 -test ! -x $(common-objpfx)elf/ldconfig || LC_ALL=C LANGUAGE=C \
192 $(common-objpfx)elf/ldconfig $(addprefix -r ,$(install_root)) \
193
194
195
196 1.1 src/patchsets/glibc/2.11.1/1010_all_glibc-queue-header-updates.patch
197
198 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1010_all_glibc-queue-header-updates.patch?rev=1.1&view=markup
199 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1010_all_glibc-queue-header-updates.patch?rev=1.1&content-type=text/plain
200
201 Index: 1010_all_glibc-queue-header-updates.patch
202 ===================================================================
203 grab some updates from FreeBSD
204
205 http://bugs.gentoo.org/201979
206
207 --- libc/misc/sys/queue.h
208 +++ libc/misc/sys/queue.h
209 @@ -136,6 +136,11 @@ struct { \
210 (var); \
211 (var) = ((var)->field.le_next))
212
213 +#define LIST_FOREACH_SAFE(var, head, field, tvar) \
214 + for ((var) = LIST_FIRST((head)); \
215 + (var) && ((tvar) = LIST_NEXT((var), field), 1); \
216 + (var) = (tvar))
217 +
218 /*
219 * List access methods.
220 */
221 @@ -197,6 +202,16 @@ struct { \
222 #define SLIST_FOREACH(var, head, field) \
223 for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
224
225 +#define SLIST_FOREACH_SAFE(var, head, field, tvar) \
226 + for ((var) = SLIST_FIRST((head)); \
227 + (var) && ((tvar) = SLIST_NEXT((var), field), 1); \
228 + (var) = (tvar))
229 +
230 +#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \
231 + for ((varp) = &SLIST_FIRST((head)); \
232 + ((var) = *(varp)) != NULL; \
233 + (varp) = &SLIST_NEXT((var), field))
234 +
235 /*
236 * Singly-linked List access methods.
237 */
238 @@ -242,6 +257,12 @@ struct { \
239 (head)->stqh_last = &(elm)->field.stqe_next; \
240 } while (/*CONSTCOND*/0)
241
242 +#define STAILQ_LAST(head, type, field) \
243 + (STAILQ_EMPTY((head)) ? \
244 + NULL : \
245 + ((struct type *)(void *) \
246 + ((char *)((head)->stqh_last) - offsetof(struct type, field))))
247 +
248 #define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
249 if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
250 (head)->stqh_last = &(elm)->field.stqe_next; \
251 @@ -271,6 +292,11 @@ struct { \
252 (var); \
253 (var) = ((var)->field.stqe_next))
254
255 +#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
256 + for ((var) = STAILQ_FIRST((head)); \
257 + (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
258 + (var) = (tvar))
259 +
260
261 /*
262 * Singly-linked Tail queue access methods.
263 @@ -437,10 +463,21 @@ struct { \
264 (var); \
265 (var) = ((var)->field.tqe_next))
266
267 +#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \
268 + for ((var) = TAILQ_FIRST((head)); \
269 + (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
270 + (var) = (tvar))
271 +
272 #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
273 for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \
274 (var); \
275 (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
276 +
277 +#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \
278 + for ((var) = TAILQ_LAST((head), headname); \
279 + (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \
280 + (var) = (tvar))
281 +
282
283 /*
284 * Tail queue access methods.
285
286
287
288 1.1 src/patchsets/glibc/2.11.1/1020_all_glibc-longjmp-chk-hidden-fortify.patch
289
290 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1020_all_glibc-longjmp-chk-hidden-fortify.patch?rev=1.1&view=markup
291 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1020_all_glibc-longjmp-chk-hidden-fortify.patch?rev=1.1&content-type=text/plain
292
293 Index: 1020_all_glibc-longjmp-chk-hidden-fortify.patch
294 ===================================================================
295 http://bugs.gentoo.org/293637
296 http://sourceware.org/ml/libc-alpha/2009-12/msg00010.html
297
298 a bunch of ____longjmp_chk files mix PIC and SHARED code under just PIC.
299 use the HIDDEN_JUMPTARGET() function so the right function is called.
300
301 2009-11-27 Mike Frysinger <vapier@g.o>
302
303 * sysdeps/unix/sysv/linux/i386/____longjmp_chk.S (CALL_FAIL):
304 call HIDDEN_JUMPTARGET(__fortify_fail).
305 * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S (CALL_FAIL):
306 Likewise.
307 * sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S (CALL_FAIL): Delete.
308 (CHECK_RSP): Branch to HIDDEN_JUMPTARGET(__fortify_fail).
309
310 --- a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
311 +++ b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
312 @@ -33,10 +33,10 @@ longjmp_msg:
313 cfi_register(%ebx,%ecx); \
314 LOAD_PIC_REG (bx); \
315 leal longjmp_msg@GOTOFF(%ebx), %eax; \
316 - call __GI___fortify_fail@PLT
317 + call HIDDEN_JUMPTARGET(__fortify_fail)
318 #else
319 # define CALL_FAIL movl $longjmp_msg, %eax; \
320 - call __fortify_fail
321 + call HIDDEN_JUMPTARGET(__fortify_fail)
322 #endif
323
324
325 --- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
326 +++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
327 @@ -31,10 +31,10 @@ longjmp_msg:
328
329 #ifdef PIC
330 # define CALL_FAIL leaq longjmp_msg(%rip), %rdi; \
331 - call __GI___fortify_fail
332 + call HIDDEN_JUMPTARGET(__fortify_fail)
333 #else
334 # define CALL_FAIL movq $longjmp_msg, %rdi; \
335 - call __fortify_fail
336 + call HIDDEN_JUMPTARGET(__fortify_fail)
337 #endif
338
339 #define CHECK_RSP(reg) \
340 --- a/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
341 +++ b/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
342 @@ -30,19 +30,13 @@ longjmp_msg:
343
344 #define __longjmp ____longjmp_chk
345
346 -#ifdef PIC
347 -# define CALL_FAIL __GI___fortify_fail
348 -#else
349 -# define CALL_FAIL __fortify_fail
350 -#endif
351 -
352 #define CHECK_RSP(reg) \
353 cmp.ltu p0, p8 = reg, r12; \
354 (p8) br.cond.dpnt .Lok;; \
355 addl r28 = @ltoffx(longjmp_msg#), r1;; \
356 ld8.mov r28 = [r28], longjmp_msg#;; \
357 ld8 out0 = [r28]; \
358 - br.call.sptk.many b0 = CALL_FAIL#;; \
359 + br.call.sptk.many b0 = HIDDEN_JUMPTARGET(__fortify_fail)#;; \
360 .Lok:
361
362 #include "__longjmp.S"
363
364
365
366 1.1 src/patchsets/glibc/2.11.1/1030_all_glibc-manual-no-perl.patch
367
368 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1030_all_glibc-manual-no-perl.patch?rev=1.1&view=markup
369 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1030_all_glibc-manual-no-perl.patch?rev=1.1&content-type=text/plain
370
371 Index: 1030_all_glibc-manual-no-perl.patch
372 ===================================================================
373 If we're using a cvs snapshot which updates the source files, and
374 perl isn't installed yet, then we can't regen the docs. Not a big
375 deal, so just whine a little and continue on our merry way.
376
377 http://bugs.gentoo.org/60132
378
379 --- libc/manual/Makefile
380 +++ libc/manual/Makefile
381 @@ -104,9 +104,14 @@
382 libm-err.texi: stamp-libm-err
383 stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\
384 $(dir)/libm-test-ulps))
385 +ifneq ($(PERL),no)
386 pwd=`pwd`; \
387 $(PERL) $< $$pwd/.. > libm-err-tmp
388 $(move-if-change) libm-err-tmp libm-err.texi
389 +else
390 + echo "Unable to rebuild math docs, no perl installed"
391 + touch libm-err.texi
392 +endif
393 touch $@
394
395 # Generate Texinfo files from the C source for the example programs.
396
397
398
399 1.1 src/patchsets/glibc/2.11.1/1040_all_2.3.3-localedef-fix-trampoline.patch
400
401 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1040_all_2.3.3-localedef-fix-trampoline.patch?rev=1.1&view=markup
402 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1040_all_2.3.3-localedef-fix-trampoline.patch?rev=1.1&content-type=text/plain
403
404 Index: 1040_all_2.3.3-localedef-fix-trampoline.patch
405 ===================================================================
406 #! /bin/sh -e
407
408 # DP: Description: Fix localedef segfault when run under exec-shield,
409 # PaX or similar. (#231438, #198099)
410 # DP: Dpatch Author: James Troup <james@××××××.org>
411 # DP: Patch Author: (probably) Jakub Jelinek <jakub@××××××.com>
412 # DP: Upstream status: Unknown
413 # DP: Status Details: Unknown
414 # DP: Date: 2004-03-16
415
416 if [ $# -ne 2 ]; then
417 echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
418 exit 1
419 fi
420 case "$1" in
421 -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;;
422 -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;;
423 *)
424 echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
425 exit 1
426 esac
427 exit 0
428
429 --- glibc-2.3.3-net/locale/programs/3level.h 16 Jun 2003 07:19:09 -0000 1.1.1.5
430 +++ glibc-2.3.3-redhat/locale/programs/3level.h 16 Jun 2003 09:32:40 -0000 1.4
431 @@ -204,6 +204,42 @@ CONCAT(TABLE,_iterate) (struct TABLE *t,
432 }
433 }
434 }
435 +
436 +/* GCC ATM seems to do a poor job with pointers to nested functions passed
437 + to inlined functions. Help it a little bit with this hack. */
438 +#define wchead_table_iterate(tp, fn) \
439 +do \
440 + { \
441 + struct wchead_table *t = (tp); \
442 + uint32_t index1; \
443 + for (index1 = 0; index1 < t->level1_size; index1++) \
444 + { \
445 + uint32_t lookup1 = t->level1[index1]; \
446 + if (lookup1 != ((uint32_t) ~0)) \
447 + { \
448 + uint32_t lookup1_shifted = lookup1 << t->q; \
449 + uint32_t index2; \
450 + for (index2 = 0; index2 < (1 << t->q); index2++) \
451 + { \
452 + uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \
453 + if (lookup2 != ((uint32_t) ~0)) \
454 + { \
455 + uint32_t lookup2_shifted = lookup2 << t->p; \
456 + uint32_t index3; \
457 + for (index3 = 0; index3 < (1 << t->p); index3++) \
458 + { \
459 + struct element_t *lookup3 \
460 + = t->level3[index3 + lookup2_shifted]; \
461 + if (lookup3 != NULL) \
462 + fn ((((index1 << t->q) + index2) << t->p) + index3, \
463 + lookup3); \
464 + } \
465 + } \
466 + } \
467 + } \
468 + } \
469 + } while (0)
470 +
471 #endif
472
473 #ifndef NO_FINALIZE
474
475
476
477 1.1 src/patchsets/glibc/2.11.1/1055_all_glibc-resolv-dynamic.patch
478
479 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1055_all_glibc-resolv-dynamic.patch?rev=1.1&view=markup
480 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1055_all_glibc-resolv-dynamic.patch?rev=1.1&content-type=text/plain
481
482 Index: 1055_all_glibc-resolv-dynamic.patch
483 ===================================================================
484 ripped from SuSE
485
486 if /etc/resolv.conf is updated, then make sure applications
487 already running get the updated information.
488
489 http://bugs.gentoo.org/177416
490
491 --- libc/resolv/res_libc.c
492 +++ libc/resolv/res_libc.c
493 @@ -22,6 +22,7 @@
494 #include <arpa/nameser.h>
495 #include <resolv.h>
496 #include <bits/libc-lock.h>
497 +#include <sys/stat.h>
498
499
500 /* The following bit is copied from res_data.c (where it is #ifdef'ed
501 @@ -101,6 +102,20 @@
502 __res_maybe_init (res_state resp, int preinit)
503 {
504 if (resp->options & RES_INIT) {
505 + static time_t last_mtime, last_check;
506 + time_t now;
507 + struct stat statbuf;
508 +
509 + time (&now);
510 + if (now != last_check) {
511 + last_check = now;
512 + if (stat (_PATH_RESCONF, &statbuf) == 0 && last_mtime != statbuf.st_mtime) {
513 + last_mtime = statbuf.st_mtime;
514 + atomicinclock (lock);
515 + atomicinc (__res_initstamp);
516 + atomicincunlock (lock);
517 + }
518 + }
519 if (__res_initstamp != resp->_u._ext.initstamp) {
520 if (resp->nscount > 0) {
521 __res_nclose (resp);
522
523
524
525 1.1 src/patchsets/glibc/2.11.1/1060_all_glibc-localedef-mmap.patch
526
527 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1060_all_glibc-localedef-mmap.patch?rev=1.1&view=markup
528 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1060_all_glibc-localedef-mmap.patch?rev=1.1&content-type=text/plain
529
530 Index: 1060_all_glibc-localedef-mmap.patch
531 ===================================================================
532 sniped from Debian
533 http://bugs.gentoo.org/289615
534
535 2009-10-27 Aurelien Jarno <aurelien@×××××××.net>
536
537 * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory
538 used later with MMAP_FIXED | MMAP_SHARED to cope with different
539 alignment restrictions.
540
541 --- a/locale/programs/locarchive.c
542 +++ b/locale/programs/locarchive.c
543 @@ -134,7 +134,7 @@
544 size_t reserved = RESERVE_MMAP_SIZE;
545 int xflags = 0;
546 if (total < reserved
547 - && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
548 + && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
549 -1, 0)) != MAP_FAILED))
550 xflags = MAP_FIXED;
551 else
552 @@ -397,7 +397,7 @@
553 size_t reserved = RESERVE_MMAP_SIZE;
554 int xflags = 0;
555 if (total < reserved
556 - && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
557 + && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
558 -1, 0)) != MAP_FAILED))
559 xflags = MAP_FIXED;
560 else
561 @@ -615,7 +615,7 @@
562 int xflags = 0;
563 void *p;
564 if (st.st_size < reserved
565 - && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
566 + && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
567 -1, 0)) != MAP_FAILED))
568 xflags = MAP_FIXED;
569 else
570
571
572
573 1.1 src/patchsets/glibc/2.11.1/1070_all_glibc-fadvise64_64.patch
574
575 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1070_all_glibc-fadvise64_64.patch?rev=1.1&view=markup
576 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1070_all_glibc-fadvise64_64.patch?rev=1.1&content-type=text/plain
577
578 Index: 1070_all_glibc-fadvise64_64.patch
579 ===================================================================
580 ripped from Debian
581
582 ---
583 sysdeps/unix/sysv/linux/posix_fadvise.c | 13 +++++++++++++
584 1 file changed, 13 insertions(+)
585
586 --- a/sysdeps/unix/sysv/linux/posix_fadvise.c
587 +++ b/sysdeps/unix/sysv/linux/posix_fadvise.c
588 @@ -35,6 +35,19 @@
589 return INTERNAL_SYSCALL_ERRNO (ret, err);
590 return 0;
591 #else
592 +# ifdef __NR_fadvise64_64
593 + INTERNAL_SYSCALL_DECL (err);
594 + int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd,
595 + __LONG_LONG_PAIR ((long) (offset >> 31),
596 + (long) offset),
597 + __LONG_LONG_PAIR ((long) (len >> 31),
598 + (long) len),
599 + advise);
600 + if (INTERNAL_SYSCALL_ERROR_P (ret, err))
601 + return INTERNAL_SYSCALL_ERRNO (ret, err);
602 + return 0;
603 +# else
604 return ENOSYS;
605 +# endif
606 #endif
607 }
608
609
610
611 1.1 src/patchsets/glibc/2.11.1/1073_all_glibc-ldbl-nexttowardf.patch
612
613 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1073_all_glibc-ldbl-nexttowardf.patch?rev=1.1&view=markup
614 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1073_all_glibc-ldbl-nexttowardf.patch?rev=1.1&content-type=text/plain
615
616 Index: 1073_all_glibc-ldbl-nexttowardf.patch
617 ===================================================================
618 ripped from Debian
619
620 this change was made to generic __nexttowardf, but not the long double version
621
622 2008-05-05 Aurelien Jarno <aurelien@×××××××.net>
623
624 * sysdeps/ieee754/ldbl-128/s_nexttowardf.c: Include float.h.
625 (__nexttowardf): Use math_opt_barrier and
626 math_force_eval macros. If FLT_EVAL_METHOD is not 0, force
627 x to float using asm.
628
629 ---
630 sysdeps/ieee754/ldbl-128/s_nexttowardf.c | 26 ++++++++++++++++----------
631 1 file changed, 16 insertions(+), 10 deletions(-)
632
633 --- a/sysdeps/ieee754/ldbl-128/s_nexttowardf.c
634 +++ b/sysdeps/ieee754/ldbl-128/s_nexttowardf.c
635 @@ -19,7 +19,8 @@
636 #endif
637
638 #include "math.h"
639 -#include "math_private.h"
640 +#include <math_private.h>
641 +#include <float.h>
642
643 #ifdef __STDC__
644 float __nexttowardf(float x, long double y)
645 @@ -44,10 +45,12 @@
646 return x+y;
647 if((long double) x==y) return y; /* x=y, return y */
648 if(ix==0) { /* x == 0 */
649 - float x2;
650 + float u;
651 SET_FLOAT_WORD(x,(u_int32_t)((hy>>32)&0x80000000)|1);/* return +-minsub*/
652 - x2 = x*x;
653 - if(x2==x) return x2; else return x; /* raise underflow flag */
654 + u = math_opt_barrier (x);
655 + u = u * u;
656 + math_force_eval (u); /* raise underflow flag */
657 + return x;
658 }
659 if(hx>=0) { /* x > 0 */
660 if(hy<0||(ix>>23)>(iy>>48)-0x3f80
661 @@ -67,13 +70,16 @@
662 }
663 }
664 hy = hx&0x7f800000;
665 - if(hy>=0x7f800000) return x+x; /* overflow */
666 + if(hy>=0x7f800000) {
667 + x = x+x; /* overflow */
668 + if (FLT_EVAL_METHOD != 0)
669 + /* Force conversion to float. */
670 + asm ("" : "+m"(x));
671 + return x;
672 + }
673 if(hy<0x00800000) { /* underflow */
674 - float x2 = x*x;
675 - if(x2!=x) { /* raise underflow flag */
676 - SET_FLOAT_WORD(x2,hx);
677 - return x2;
678 - }
679 + float u = x*x;
680 + math_force_eval (u); /* raise underflow flag */
681 }
682 SET_FLOAT_WORD(x,hx);
683 return x;
684
685
686
687 1.1 src/patchsets/glibc/2.11.1/1075_all_glibc-section-comments.patch
688
689 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1075_all_glibc-section-comments.patch?rev=1.1&view=markup
690 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1075_all_glibc-section-comments.patch?rev=1.1&content-type=text/plain
691
692 Index: 1075_all_glibc-section-comments.patch
693 ===================================================================
694 http://sources.redhat.com/ml/binutils/2004-04/msg00665.html
695
696 fixes building on some architectures (like m68k/arm/cris/etc...) because
697 it does the right thing
698
699 --- libc/include/libc-symbols.h
700 +++ libc/include/libc-symbols.h
701 @@ -232,12 +232,12 @@
702 # define __make_section_unallocated(section_string)
703 # endif
704
705 -/* Tacking on "\n\t#" to the section name makes gcc put it's bogus
706 +/* Tacking on "\n#APP\n\t#" to the section name makes gcc put it's bogus
707 section attributes on what looks like a comment to the assembler. */
708 # ifdef HAVE_SECTION_QUOTES
709 -# define __sec_comment "\"\n\t#\""
710 +# define __sec_comment "\"\n#APP\n\t#\""
711 # else
712 -# define __sec_comment "\n\t#"
713 +# define __sec_comment "\n#APP\n\t#"
714 # endif
715 # define link_warning(symbol, msg) \
716 __make_section_unallocated (".gnu.warning." #symbol) \
717
718
719
720 1.1 src/patchsets/glibc/2.11.1/1080_all_glibc-no-inline-gmon.patch
721
722 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1080_all_glibc-no-inline-gmon.patch?rev=1.1&view=markup
723 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1080_all_glibc-no-inline-gmon.patch?rev=1.1&content-type=text/plain
724
725 Index: 1080_all_glibc-no-inline-gmon.patch
726 ===================================================================
727 http://bugs.gentoo.org/196245
728 http://sourceware.org/ml/libc-alpha/2006-05/msg00017.html
729
730 Attached is a patch to add __attribute__ ((noinline)) to
731 call_gmon_start.
732
733 Without this patch, the sec script that processed initfini.s removes a
734 part of inlined call_gmon_start, causing undefined label errors.
735
736 This patch solves the problem by forcing gcc not to inline
737 call_gmon_start with __attribute__ ((noinline)).
738
739 Tested by building for arm-none-lixux-gnueabi. OK to apply?
740
741 Kazu Hirata
742
743 2006-05-07 Kazu Hirata &lt;kazu@××××××××××××.com&gt;
744
745 * sysdeps/generic/initfini.c (call_gmon_start): Add
746 __attribute__ ((noinline)).
747
748 Index: sysdeps/generic/initfini.c
749 ===================================================================
750 --- sysdeps/generic/initfini.c 16 Aug 2004 04:50:53 -0000 1.9
751 +++ sysdeps/generic/initfini.c 7 May 2006 15:31:08 -0000
752 @@ -70,7 +70,7 @@
753 /* The beginning of _init: */
754 asm (&quot;\n/*@_init_PROLOG_BEGINS*/&quot;);
755
756 -static void
757 +static void __attribute__ ((noinline))
758 call_gmon_start(void)
759 {
760 extern void __gmon_start__ (void) __attribute__ ((weak)); /*weak_extern (__gmon_start__);*/
761
762
763
764 1.1 src/patchsets/glibc/2.11.1/1085_all_glibc-2.9-check_native-headers.patch
765
766 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1085_all_glibc-2.9-check_native-headers.patch?rev=1.1&view=markup
767 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1085_all_glibc-2.9-check_native-headers.patch?rev=1.1&content-type=text/plain
768
769 Index: 1085_all_glibc-2.9-check_native-headers.patch
770 ===================================================================
771 many ports hit this warning:
772 ../sysdeps/unix/sysv/linux/check_native.c:46: warning: implicit declaration of function 'memset'
773 ../sysdeps/unix/sysv/linux/check_native.c:46: warning: implicit declaration of function 'memset'
774
775 snipped from suse
776
777 --- sysdeps/unix/sysv/linux/check_native.c
778 +++ sysdeps/unix/sysv/linux/check_native.c
779 @@ -23,6 +23,7 @@
780 #include <stddef.h>
781 #include <stdint.h>
782 #include <stdlib.h>
783 +#include <string.h>
784 #include <time.h>
785 #include <unistd.h>
786 #include <net/if.h>
787
788
789
790 1.1 src/patchsets/glibc/2.11.1/1090_all_glibc-2.3.6-fix-pr631.patch
791
792 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1090_all_glibc-2.3.6-fix-pr631.patch?rev=1.1&view=markup
793 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1090_all_glibc-2.3.6-fix-pr631.patch?rev=1.1&content-type=text/plain
794
795 Index: 1090_all_glibc-2.3.6-fix-pr631.patch
796 ===================================================================
797 From dank@×××××.com
798 Wed Jun 15 09:12:43 PDT 2005
799
800 Fixes
801
802 build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r'
803 build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent'
804 ... 53 lines deleted ...
805 build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r'
806 collect2: ld returned 1 exit status
807 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
808
809 when building glibc with --enable-static-nss.
810
811 See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631
812
813 --- glibc-2.3.5/Makeconfig.old Wed Jun 15 08:13:12 2005
814 +++ glibc-2.3.5/Makeconfig Wed Jun 15 08:13:14 2005
815 @@ -487,7 +487,7 @@
816
817 # The static libraries.
818 ifeq (yes,$(build-static))
819 -link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a
820 +link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a
821 else
822 ifeq (yes,$(build-shared))
823 # We can try to link the programs with lib*_pic.a...
824 --- glibc-2.3.5/elf/Makefile.old Wed Jun 15 07:46:49 2005
825 +++ glibc-2.3.5/elf/Makefile Wed Jun 15 08:14:00 2005
826 @@ -115,6 +115,13 @@
827 install-bin-script = ldd
828 endif
829
830 +ifeq (yes,$(build-static-nss))
831 +nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
832 +resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
833 +otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
834 + $(resolvobjdir)/libresolv.a
835 +endif
836 +
837 others = sprof sln
838 install-bin = sprof
839 others-static = sln
840
841 Signed-off-by: Robert P. J. Day <rpjday@××××××××××.com>
842
843
844
845 1.1 src/patchsets/glibc/2.11.1/1095_all_glibc-2.9-assume-pipe2.patch
846
847 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1095_all_glibc-2.9-assume-pipe2.patch?rev=1.1&view=markup
848 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1095_all_glibc-2.9-assume-pipe2.patch?rev=1.1&content-type=text/plain
849
850 Index: 1095_all_glibc-2.9-assume-pipe2.patch
851 ===================================================================
852 http://bugs.gentoo.org/250342
853 http://sources.redhat.com/bugzilla/show_bug.cgi?id=9685
854
855 we cant assume sock_cloexec and pipe2 are bound together as the former defines
856 are found in glibc only while the latter are a combo of kernel headers and
857 glibc. so if we do a runtime detection of SOCK_CLOEXEC, but pipe2() is a stub
858 inside of glibc, we hit a problem. for example:
859
860 #include <grp.h>
861 #include <stdio.h>
862 main()
863 {
864 getgrnam("portage");
865 if (!popen("ls", "r"))
866 perror("popen()");
867 }
868
869 getgrnam() will detect that the kernel supports SOCK_CLOEXEC and then set both
870 __have_sock_cloexec and __have_pipe2 to true. but if glibc was built against
871 older kernel headers where __NR_pipe2 does not exist, glibc will have a ENOSYS
872 stub for it. so popen() will always fail as glibc assumes pipe2() works.
873
874 --- include/unistd.h
875 +++ include/unistd.h
876 @@ -167,9 +167,6 @@
877 extern int __pause_nocancel (void) attribute_hidden;
878
879 extern int __have_sock_cloexec;
880 -/* At lot of other functionality became available at the same time as
881 - SOCK_CLOEXEC. Avoid defining separate variables for all of them
882 - unless it is really necessary. */
883 -#define __have_pipe2 __have_sock_cloexec
884 +extern int __have_pipe2;
885
886 #endif
887 --- socket/have_sock_cloexec.c
888 +++ socket/have_sock_cloexec.c
889 @@ -16,9 +16,14 @@
890 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
891 02111-1307 USA. */
892
893 +#include <fcntl.h>
894 #include <sys/socket.h>
895 #include <kernel-features.h>
896
897 #if defined SOCK_CLOEXEC && !defined __ASSUME_SOCK_CLOEXEC
898 int __have_sock_cloexec;
899 #endif
900 +
901 +#if defined O_CLOEXEC && !defined __ASSUME_PIPE2
902 +int __have_pipe2;
903 +#endif
904
905
906
907 1.1 src/patchsets/glibc/2.11.1/1100_all_glibc-2.3.3-china.patch
908
909 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1100_all_glibc-2.3.3-china.patch?rev=1.1&view=markup
910 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1100_all_glibc-2.3.3-china.patch?rev=1.1&content-type=text/plain
911
912 Index: 1100_all_glibc-2.3.3-china.patch
913 ===================================================================
914 --- localedata/locales/zh_TW
915 +++ localedata/locales/zh_TW
916 @@ -1,7 +1,7 @@
917 comment_char %
918 escape_char /
919 %
920 -% Chinese language locale for Taiwan R.O.C.
921 +% Chinese language locale for Taiwan
922 % charmap: BIG5-CP950
923 %
924 % Original Author:
925 @@ -17,7 +17,7 @@
926 % Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf
927
928 LC_IDENTIFICATION
929 -title "Chinese locale for Taiwan R.O.C."
930 +title "Chinese locale for Taiwan"
931 source ""
932 address ""
933 contact ""
934 @@ -25,7 +25,7 @@
935 tel ""
936 fax ""
937 language "Chinese"
938 -territory "Taiwan R.O.C."
939 +territory "Taiwan"
940 revision "0.2"
941 date "2000-08-02"
942 %
943
944
945
946 1.1 src/patchsets/glibc/2.11.1/1103_all_glibc-new-valencian-locale.patch
947
948 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1103_all_glibc-new-valencian-locale.patch?rev=1.1&view=markup
949 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1103_all_glibc-new-valencian-locale.patch?rev=1.1&content-type=text/plain
950
951 Index: 1103_all_glibc-new-valencian-locale.patch
952 ===================================================================
953 http://bugs.gentoo.org/show_bug.cgi?id=131815
954 http://sourceware.org/bugzilla/show_bug.cgi?id=2522
955
956 --- localedata/SUPPORTED
957 +++ localedata/SUPPORTED
958 @@ -68,6 +68,8 @@
959 ca_ES.UTF-8/UTF-8 \
960 ca_ES/ISO-8859-1 \
961 ca_ES@euro/ISO-8859-15 \
962 +ca_ES.UTF-8@valencia/UTF-8 \
963 +ca_ES@valencia/ISO-8859-15 \
964 ca_FR.UTF-8/UTF-8 \
965 ca_FR/ISO-8859-15 \
966 ca_IT.UTF-8/UTF-8 \
967 --- localedata/locales/ca_ES@valencia
968 +++ localedata/locales/ca_ES@valencia
969 @@ -0,0 +1,96 @@
970 +comment_char %
971 +escape_char /
972 +%
973 +% Valencian (southern Catalan) locale for Spain with Euro
974 +%
975 +% Note that this locale is almost the same as ca_ES@euro. The point of having
976 +% a separate locale is only for PO translations, which have a lot of social
977 +% support and are very appreciated by the Valencian-speaking community.
978 +%
979 +% Contact: Jordi Mallach
980 +% Email: jordi@×××.org
981 +% Tel:
982 +% Fax:
983 +% Language: ca
984 +% Territory: ES
985 +% Option: euro
986 +% Revision: 1.0
987 +% Date: 2006-04-06
988 +% Application: general
989 +% Users: general
990 +% Repertoiremap: mnemonic,ds
991 +% Charset: ISO-8859-15
992 +% Distribution and use is free, also
993 +% for commercial purposes.
994 +
995 +LC_IDENTIFICATION
996 +title "Valencian (southern Catalan) locale for Spain with Euro"
997 +source ""
998 +address ""
999 +contact "Jordi Mallach"
1000 +email "jordi@×××.org"
1001 +tel ""
1002 +fax ""
1003 +language "Catalan"
1004 +territory "Spain"
1005 +revision "1.0"
1006 +date "2006-04-06"
1007 +%
1008 +category "ca_ES@valencia:2006";LC_IDENTIFICATION
1009 +category "ca_ES@valencia:2006";LC_CTYPE
1010 +category "ca_ES@valencia:2006";LC_COLLATE
1011 +category "ca_ES@valencia:2006";LC_MONETARY
1012 +category "ca_ES@valencia:2006";LC_NUMERIC
1013 +category "ca_ES@valencia:2006";LC_TIME
1014 +category "ca_ES@valencia:2006";LC_MESSAGES
1015 +category "ca_ES@valencia:2006";LC_PAPER
1016 +category "ca_ES@valencia:2006";LC_NAME
1017 +category "ca_ES@valencia:2006";LC_ADDRESS
1018 +category "ca_ES@valencia:2006";LC_TELEPHONE
1019 +category "ca_ES@valencia:2006";LC_MEASUREMENT
1020 +
1021 +END LC_IDENTIFICATION
1022 +
1023 +LC_CTYPE
1024 +copy "i18n"
1025 +END LC_CTYPE
1026 +
1027 +LC_COLLATE
1028 +copy "ca_ES"
1029 +END LC_COLLATE
1030 +
1031 +LC_MONETARY
1032 +copy "ca_ES"
1033 +END LC_MONETARY
1034 +
1035 +LC_NUMERIC
1036 +copy "ca_ES"
1037 +END LC_NUMERIC
1038 +
1039 +LC_TIME
1040 +copy "ca_ES"
1041 +END LC_TIME
1042 +
1043 +LC_MESSAGES
1044 +copy "ca_ES"
1045 +END LC_MESSAGES
1046 +
1047 +LC_PAPER
1048 +copy "ca_ES"
1049 +END LC_PAPER
1050 +
1051 +LC_NAME
1052 +copy "ca_ES"
1053 +END LC_NAME
1054 +
1055 +LC_ADDRESS
1056 +copy "ca_ES"
1057 +END LC_ADDRESS
1058 +
1059 +LC_TELEPHONE
1060 +copy "ca_ES"
1061 +END LC_TELEPHONE
1062 +
1063 +LC_MEASUREMENT
1064 +copy "ca_ES"
1065 +END LC_MEASUREMENT
1066
1067
1068
1069 1.1 src/patchsets/glibc/2.11.1/1120_all_glibc-2.11-longjmp-chk-fallback.patch
1070
1071 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1120_all_glibc-2.11-longjmp-chk-fallback.patch?rev=1.1&view=markup
1072 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1120_all_glibc-2.11-longjmp-chk-fallback.patch?rev=1.1&content-type=text/plain
1073
1074 Index: 1120_all_glibc-2.11-longjmp-chk-fallback.patch
1075 ===================================================================
1076 --- debug/____longjmp_chk.c
1077 +++ debug/____longjmp_chk.c
1078 @@ -0,0 +1,7 @@
1079 +/* Stub to make building happy -- no fortify checks, but
1080 + it at least does the correct thing (longjmps). */
1081 +#include <setjmp.h>
1082 +void ____longjmp_chk (__jmp_buf env, int val)
1083 +{
1084 + return __longjmp (env, val);
1085 +}
1086
1087
1088
1089 1.1 src/patchsets/glibc/2.11.1/1130_all_glibc-2.4-undefine-__i686.patch
1090
1091 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1130_all_glibc-2.4-undefine-__i686.patch?rev=1.1&view=markup
1092 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1130_all_glibc-2.4-undefine-__i686.patch?rev=1.1&content-type=text/plain
1093
1094 Index: 1130_all_glibc-2.4-undefine-__i686.patch
1095 ===================================================================
1096 If gcc is configured to generate i686 code or better by default (like
1097 when using the --with-arch=pentium3 configure option), then the __i686
1098 macro will always be defined automatically and thus screw up the
1099 compilation of some .S files.
1100 http://bugs.gentoo.org/131108
1101 http://sourceware.org/ml/libc-alpha/2006-04/msg00090.html
1102
1103 2006-04-25 Mike Frysinger <vapier@g.o>
1104
1105 * sysdeps/i386/sysdep.h (__i686): Undefine.
1106
1107 --- sysdeps/i386/sysdep.h
1108 +++ sysdeps/i386/sysdep.h
1109 @@ -17,6 +17,14 @@
1110 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
1111 02111-1307 USA. */
1112
1113 +/*
1114 + * When building for i686 targets or better, gcc automatically defines
1115 + * '__i686' to '1' for us which causes trouble when using section names
1116 + * like '__i686.get_pc_thunk.reg'. Since we check for __i686__ in the
1117 + * code, killing '__i686' shouldn't be a problem.
1118 + */
1119 +#undef __i686
1120 +
1121 #include <sysdeps/generic/sysdep.h>
1122
1123 #ifdef __ASSEMBLER__
1124
1125 Note: this breaks mips so we wrap it in a hackish __i686__ for now ...
1126
1127 2006-04-25 Mike Frysinger <vapier@g.o>
1128
1129 * sysdeps/pthread/pt-initfini.c: Include sysdep.h.
1130
1131 --- nptl/sysdeps/pthread/pt-initfini.c
1132 +++ nptl/sysdeps/pthread/pt-initfini.c
1133 @@ -45,6 +45,9 @@
1134 /* Embed an #include to pull in the alignment and .end directives. */
1135 asm ("\n#include \"defs.h\"");
1136
1137 +/* Embed an #include to pull in asm settings. */
1138 +asm ("\n#ifdef __i686__\n#include <sysdep.h>\n#endif");
1139 +
1140 /* The initial common code ends here. */
1141 asm ("\n/*@HEADER_ENDS*/");
1142
1143
1144
1145
1146 1.1 src/patchsets/glibc/2.11.1/1160_all_glibc-2.8-nscd-one-fork.patch
1147
1148 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1160_all_glibc-2.8-nscd-one-fork.patch?rev=1.1&view=markup
1149 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1160_all_glibc-2.8-nscd-one-fork.patch?rev=1.1&content-type=text/plain
1150
1151 Index: 1160_all_glibc-2.8-nscd-one-fork.patch
1152 ===================================================================
1153 only fork one to assist in stop-start-daemon assumptions about daemon behavior
1154
1155 http://bugs.gentoo.org/190785
1156
1157 --- libc/nscd/nscd.c
1158 +++ libc/nscd/nscd.c
1159 @@ -178,6 +178,9 @@
1160 if (pid != 0)
1161 exit (0);
1162
1163 + if (write_pid (_PATH_NSCDPID) < 0)
1164 + dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno));
1165 +
1166 int nullfd = open (_PATH_DEVNULL, O_RDWR);
1167 if (nullfd != -1)
1168 {
1169 @@ -227,12 +230,6 @@
1170 for (i = min_close_fd; i < getdtablesize (); i++)
1171 close (i);
1172
1173 - pid = fork ();
1174 - if (pid == -1)
1175 - error (EXIT_FAILURE, errno, _("cannot fork"));
1176 - if (pid != 0)
1177 - exit (0);
1178 -
1179 setsid ();
1180
1181 if (chdir ("/") != 0)
1182 @@ -241,9 +238,6 @@
1183
1184 openlog ("nscd", LOG_CONS | LOG_ODELAY, LOG_DAEMON);
1185
1186 - if (write_pid (_PATH_NSCDPID) < 0)
1187 - dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno));
1188 -
1189 if (!init_logfile ())
1190 dbg_log (_("Could not create log file"));
1191
1192
1193
1194 1.1 src/patchsets/glibc/2.11.1/1503_hppa_glibc-2.7-hppa-nptl-carlos.patch
1195
1196 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1503_hppa_glibc-2.7-hppa-nptl-carlos.patch?rev=1.1&view=markup
1197 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1503_hppa_glibc-2.7-hppa-nptl-carlos.patch?rev=1.1&content-type=text/plain
1198
1199 Index: 1503_hppa_glibc-2.7-hppa-nptl-carlos.patch
1200 ===================================================================
1201 --- elf/rtld.c.orig
1202 +++ elf/rtld.c
1203 @@ -379,14 +379,14 @@
1204 know it is available. We do not have to clear the memory if we
1205 do not have to use the temporary bootstrap_map. Global variables
1206 are initialized to zero by default. */
1207 -#ifndef DONT_USE_BOOTSTRAP_MAP
1208 +#if !defined DONT_USE_BOOTSTRAP_MAP
1209 # ifdef HAVE_BUILTIN_MEMSET
1210 __builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info));
1211 # else
1212 - for (size_t cnt = 0;
1213 - cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]);
1214 - ++cnt)
1215 - bootstrap_map.l_info[cnt] = 0;
1216 + /* Clear the whole bootstrap_map structure */
1217 + for (char *cnt = (char *)&(bootstrap_map);
1218 + cnt < ((char *)&(bootstrap_map) + sizeof (bootstrap_map));
1219 + *cnt++ = '\0');
1220 # endif
1221 # if USE___THREAD
1222 bootstrap_map.l_tls_modid = 0;
1223 --- include/atomic.h.orig
1224 +++ include/atomic.h
1225 @@ -174,7 +174,7 @@
1226 __typeof (*(mem)) __atg5_value = (newvalue); \
1227 \
1228 do \
1229 - __atg5_oldval = *__atg5_memp; \
1230 + __atg5_oldval = *(volatile __typeof (mem))__atg5_memp; \
1231 while (__builtin_expect \
1232 (atomic_compare_and_exchange_bool_acq (__atg5_memp, __atg5_value, \
1233 __atg5_oldval), 0)); \
1234 @@ -195,7 +195,7 @@
1235 __typeof (*(mem)) __atg6_value = (value); \
1236 \
1237 do \
1238 - __atg6_oldval = *__atg6_memp; \
1239 + __atg6_oldval = *(volatile __typeof (mem))__atg6_memp; \
1240 while (__builtin_expect \
1241 (atomic_compare_and_exchange_bool_acq (__atg6_memp, \
1242 __atg6_oldval \
1243 @@ -213,7 +213,7 @@
1244 __typeof (*(mem)) __atg7_value = (value); \
1245 \
1246 do \
1247 - __atg7_oldv = *__atg7_memp; \
1248 + __atg7_oldv = *(volatile __typeof (mem))__atg7_memp; \
1249 while (__builtin_expect \
1250 (catomic_compare_and_exchange_bool_acq (__atg7_memp, \
1251 __atg7_oldv \
1252 @@ -231,7 +231,7 @@
1253 __typeof (mem) __atg8_memp = (mem); \
1254 __typeof (*(mem)) __atg8_value = (value); \
1255 do { \
1256 - __atg8_oldval = *__atg8_memp; \
1257 + __atg8_oldval = *(volatile __typeof (mem))__atg8_memp; \
1258 if (__atg8_oldval >= __atg8_value) \
1259 break; \
1260 } while (__builtin_expect \
1261 @@ -248,7 +248,7 @@
1262 __typeof (mem) __atg9_memp = (mem); \
1263 __typeof (*(mem)) __atg9_value = (value); \
1264 do { \
1265 - __atg9_oldv = *__atg9_memp; \
1266 + __atg9_oldv = *(volatile __typeof (mem))__atg9_memp; \
1267 if (__atg9_oldv >= __atg9_value) \
1268 break; \
1269 } while (__builtin_expect \
1270 @@ -266,7 +266,7 @@
1271 __typeof (mem) __atg10_memp = (mem); \
1272 __typeof (*(mem)) __atg10_value = (value); \
1273 do { \
1274 - __atg10_oldval = *__atg10_memp; \
1275 + __atg10_oldval = *(volatile __typeof (mem))__atg10_memp; \
1276 if (__atg10_oldval <= __atg10_value) \
1277 break; \
1278 } while (__builtin_expect \
1279 @@ -350,7 +350,7 @@
1280 \
1281 do \
1282 { \
1283 - __atg11_oldval = *__atg11_memp; \
1284 + __atg11_oldval = *(volatile __typeof (mem))__atg11_memp; \
1285 if (__builtin_expect (__atg11_oldval <= 0, 0)) \
1286 break; \
1287 } \
1288 @@ -389,7 +389,7 @@
1289 __typeof (*(mem)) __atg14_mask = ((__typeof (*(mem))) 1 << (bit)); \
1290 \
1291 do \
1292 - __atg14_old = (*__atg14_memp); \
1293 + __atg14_old = (*(volatile __typeof (mem))__atg14_memp); \
1294 while (__builtin_expect \
1295 (atomic_compare_and_exchange_bool_acq (__atg14_memp, \
1296 __atg14_old | __atg14_mask,\
1297 @@ -407,7 +407,7 @@
1298 __typeof (*(mem)) __atg15_mask = (mask); \
1299 \
1300 do \
1301 - __atg15_old = (*__atg15_memp); \
1302 + __atg15_old = (*(volatile __typeof (mem))__atg15_memp); \
1303 while (__builtin_expect \
1304 (atomic_compare_and_exchange_bool_acq (__atg15_memp, \
1305 __atg15_old & __atg15_mask, \
1306 @@ -423,7 +423,7 @@
1307 __typeof (*(mem)) __atg16_mask = (mask); \
1308 \
1309 do \
1310 - __atg16_old = (*__atg16_memp); \
1311 + __atg16_old = (*(volatile __typeof (mem))__atg16_memp); \
1312 while (__builtin_expect \
1313 (atomic_compare_and_exchange_bool_acq (__atg16_memp, \
1314 __atg16_old & __atg16_mask,\
1315 @@ -441,7 +441,7 @@
1316 __typeof (*(mem)) __atg17_mask = (mask); \
1317 \
1318 do \
1319 - __atg17_old = (*__atg17_memp); \
1320 + __atg17_old = (*(volatile __typeof (mem))__atg17_memp); \
1321 while (__builtin_expect \
1322 (atomic_compare_and_exchange_bool_acq (__atg17_memp, \
1323 __atg17_old | __atg17_mask, \
1324 @@ -457,7 +457,7 @@
1325 __typeof (*(mem)) __atg18_mask = (mask); \
1326 \
1327 do \
1328 - __atg18_old = (*__atg18_memp); \
1329 + __atg18_old = (*(volatile __typeof (mem))__atg18_memp); \
1330 while (__builtin_expect \
1331 (catomic_compare_and_exchange_bool_acq (__atg18_memp, \
1332 __atg18_old | __atg18_mask,\
1333 @@ -473,7 +473,7 @@
1334 __typeof (*(mem)) __atg19_mask = (mask); \
1335 \
1336 do \
1337 - __atg19_old = (*__atg19_memp); \
1338 + __atg19_old = (*(volatile __typeof (mem))__atg19_memp); \
1339 while (__builtin_expect \
1340 (atomic_compare_and_exchange_bool_acq (__atg19_memp, \
1341 __atg19_old | __atg19_mask,\
1342 --- nptl/Makefile.orig
1343 +++ nptl/Makefile
1344 @@ -263,9 +263,9 @@
1345 # Files which must not be linked with libpthread.
1346 tests-nolibpthread = tst-unload
1347
1348 -# This sets the stack resource limit to 1023kb, which is not a multiple
1349 -# of the page size since every architecture's page size is > 1k.
1350 -tst-oddstacklimit-ENV = ; ulimit -s 1023;
1351 +# This sets the stack resource limit to 8193kb, which is not a multiple
1352 +# of the page size since every architecture's page size is 4096 bytes.
1353 +tst-oddstacklimit-ENV = ; ulimit -s 8193;
1354
1355 distribute = eintr.c tst-cleanup4aux.c
1356
1357 @@ -424,6 +424,35 @@
1358 CFLAGS-tst-cleanupx4.c += -fexceptions
1359 CFLAGS-tst-oncex3.c += -fexceptions
1360 CFLAGS-tst-oncex4.c += -fexceptions
1361 +
1362 +ldflags-libgcc_s = --as-needed -lgcc_s --no-as-needed
1363 +LDFLAGS-tst-cancelx2 += $(ldflags-libgcc_s)
1364 +LDFLAGS-tst-cancelx3 += $(ldflags-libgcc_s)
1365 +LDFLAGS-tst-cancelx4 += $(ldflags-libgcc_s)
1366 +LDFLAGS-tst-cancelx5 += $(ldflags-libgcc_s)
1367 +LDFLAGS-tst-cancelx6 += $(ldflags-libgcc_s)
1368 +LDFLAGS-tst-cancelx7 += $(ldflags-libgcc_s)
1369 +LDFLAGS-tst-cancelx8 += $(ldflags-libgcc_s)
1370 +LDFLAGS-tst-cancelx9 += $(ldflags-libgcc_s)
1371 +LDFLAGS-tst-cancelx10 += $(ldflags-libgcc_s)
1372 +LDFLAGS-tst-cancelx11 += $(ldflags-libgcc_s)
1373 +LDFLAGS-tst-cancelx12 += $(ldflags-libgcc_s)
1374 +LDFLAGS-tst-cancelx13 += $(ldflags-libgcc_s)
1375 +LDFLAGS-tst-cancelx14 += $(ldflags-libgcc_s)
1376 +LDFLAGS-tst-cancelx15 += $(ldflags-libgcc_s)
1377 +LDFLAGS-tst-cancelx16 += $(ldflags-libgcc_s)
1378 +LDFLAGS-tst-cancelx17 += $(ldflags-libgcc_s)
1379 +LDFLAGS-tst-cancelx18 += $(ldflags-libgcc_s)
1380 +LDFLAGS-tst-cancelx20 += $(ldflags-libgcc_s)
1381 +LDFLAGS-tst-cancelx21 += $(ldflags-libgcc_s)
1382 +LDFLAGS-tst-cleanupx0 += $(ldflags-libgcc_s)
1383 +LDFLAGS-tst-cleanupx1 += $(ldflags-libgcc_s)
1384 +LDFLAGS-tst-cleanupx2 += $(ldflags-libgcc_s)
1385 +LDFLAGS-tst-cleanupx3 += $(ldflags-libgcc_s)
1386 +LDFLAGS-tst-cleanupx4 += $(ldflags-libgcc_s)
1387 +LDFLAGS-tst-oncex3 += $(ldflags-libgcc_s)
1388 +LDFLAGS-tst-oncex4 += $(ldflags-libgcc_s)
1389 +
1390 CFLAGS-tst-align.c += $(stack-align-test-flags)
1391 CFLAGS-tst-align3.c += $(stack-align-test-flags)
1392 CFLAGS-tst-initializers1.c = -W -Wall -Werror
1393 --- nptl.orig/pthread_barrier_wait.c
1394 +++ nptl/pthread_barrier_wait.c
1395 @@ -64,7 +64,7 @@
1396 do
1397 lll_futex_wait (&ibarrier->curr_event, event,
1398 ibarrier->private ^ FUTEX_PRIVATE_FLAG);
1399 - while (event == ibarrier->curr_event);
1400 + while (event == *(volatile unsigned int *)&ibarrier->curr_event);
1401 }
1402
1403 /* Make sure the init_count is stored locally or in a register. */
1404 --- nptl/sysdeps/pthread/Makefile.orig
1405 +++ nptl/sysdeps/pthread/Makefile
1406 @@ -41,7 +41,9 @@
1407
1408 ifeq ($(have-forced-unwind),yes)
1409 tests += tst-mqueue8x
1410 +ldflags-libgcc_s = --as-needed -lgcc_s --no-as-needed
1411 CFLAGS-tst-mqueue8x.c += -fexceptions
1412 +LDFLAGS-tst-mqueue8x += $(ldflags-libgcc_s)
1413 endif
1414 endif
1415
1416 --- stdio-common/Makefile.orig
1417 +++ stdio-common/Makefile
1418 @@ -79,7 +79,7 @@
1419 $(SHELL) -e tst-printf.sh $(common-objpfx) '$(run-program-prefix)'
1420 endif
1421
1422 -CFLAGS-vfprintf.c = -Wno-uninitialized
1423 +CFLAGS-vfprintf.c = -Wno-uninitialized -fno-delayed-branch
1424 CFLAGS-vfwprintf.c = -Wno-uninitialized
1425 CFLAGS-tst-printf.c = -Wno-format
1426 CFLAGS-tstdiomisc.c = -Wno-format
1427 --- sunrpc/clnt_udp.c.orig
1428 +++ sunrpc/clnt_udp.c
1429 @@ -419,7 +419,7 @@
1430 while (inlen < 0 && errno == EINTR);
1431 if (inlen < 0)
1432 {
1433 - if (errno == EWOULDBLOCK)
1434 + if (errno == EWOULDBLOCK || errno == EAGAIN)
1435 continue;
1436 cu->cu_error.re_errno = errno;
1437 return (cu->cu_error.re_status = RPC_CANTRECV);
1438
1439
1440
1441 1.1 src/patchsets/glibc/2.11.1/1530_all_glibc-m68k-sys-user.patch
1442
1443 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1530_all_glibc-m68k-sys-user.patch?rev=1.1&view=markup
1444 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/1530_all_glibc-m68k-sys-user.patch?rev=1.1&content-type=text/plain
1445
1446 Index: 1530_all_glibc-m68k-sys-user.patch
1447 ===================================================================
1448 copied from kernel as it is sanitized now
1449
1450 --- libc/ports/sysdeps/unix/sysv/linux/m68k/sys/user.h
1451 +++ libc/ports/sysdeps/unix/sysv/linux/m68k/sys/user.h
1452 @@ -0,0 +1,87 @@
1453 +#ifndef _SYS_USER_H
1454 +#define _SYS_USER_H
1455 +
1456 +/* Core file format: The core file is written in such a way that gdb
1457 + can understand it and provide useful information to the user (under
1458 + linux we use the 'trad-core' bfd). There are quite a number of
1459 + obstacles to being able to view the contents of the floating point
1460 + registers, and until these are solved you will not be able to view the
1461 + contents of them. Actually, you can read in the core file and look at
1462 + the contents of the user struct to find out what the floating point
1463 + registers contain.
1464 + The actual file contents are as follows:
1465 + UPAGE: 1 page consisting of a user struct that tells gdb what is present
1466 + in the file. Directly after this is a copy of the task_struct, which
1467 + is currently not used by gdb, but it may come in useful at some point.
1468 + All of the registers are stored as part of the upage. The upage should
1469 + always be only one page.
1470 + DATA: The data area is stored. We use current->end_text to
1471 + current->brk to pick up all of the user variables, plus any memory
1472 + that may have been malloced. No attempt is made to determine if a page
1473 + is demand-zero or if a page is totally unused, we just cover the entire
1474 + range. All of the addresses are rounded in such a way that an integral
1475 + number of pages is written.
1476 + STACK: We need the stack information in order to get a meaningful
1477 + backtrace. We need to write the data from (esp) to
1478 + current->start_stack, so we round each of these off in order to be able
1479 + to write an integer number of pages.
1480 + The minimum core file size is 3 pages, or 12288 bytes.
1481 +*/
1482 +
1483 +struct user_m68kfp_struct {
1484 + unsigned long fpregs[8*3]; /* fp0-fp7 registers */
1485 + unsigned long fpcntl[3]; /* fp control regs */
1486 +};
1487 +
1488 +/* This is the old layout of "struct pt_regs" as of Linux 1.x, and
1489 + is still the layout used by user (the new pt_regs doesn't have
1490 + all registers). */
1491 +struct user_regs_struct {
1492 + long d1,d2,d3,d4,d5,d6,d7;
1493 + long a0,a1,a2,a3,a4,a5,a6;
1494 + long d0;
1495 + long usp;
1496 + long orig_d0;
1497 + short stkadj;
1498 + short sr;
1499 + long pc;
1500 + short fmtvec;
1501 + short __fill;
1502 +};
1503 +
1504 +
1505 +/* When the kernel dumps core, it starts by dumping the user struct -
1506 + this will be used by gdb to figure out where the data and stack segments
1507 + are within the file, and what virtual addresses to use. */
1508 +struct user{
1509 +/* We start with the registers, to mimic the way that "memory" is returned
1510 + from the ptrace(3,...) function. */
1511 + struct user_regs_struct regs; /* Where the registers are actually stored */
1512 +/* ptrace does not yet supply these. Someday.... */
1513 + int u_fpvalid; /* True if math co-processor being used. */
1514 + /* for this mess. Not yet used. */
1515 + struct user_m68kfp_struct m68kfp; /* Math Co-processor registers. */
1516 +/* The rest of this junk is to help gdb figure out what goes where */
1517 + unsigned long int u_tsize; /* Text segment size (pages). */
1518 + unsigned long int u_dsize; /* Data segment size (pages). */
1519 + unsigned long int u_ssize; /* Stack segment size (pages). */
1520 + unsigned long start_code; /* Starting virtual address of text. */
1521 + unsigned long start_stack; /* Starting virtual address of stack area.
1522 + This is actually the bottom of the stack,
1523 + the top of the stack is always found in the
1524 + esp register. */
1525 + long int signal; /* Signal that caused the core dump. */
1526 + int reserved; /* No longer used */
1527 + struct user_regs_struct *u_ar0;
1528 + /* Used by gdb to help find the values for */
1529 + /* the registers. */
1530 + struct user_m68kfp_struct* u_fpstate; /* Math Co-processor pointer. */
1531 + unsigned long magic; /* To uniquely identify a core file */
1532 + char u_comm[32]; /* User command that was responsible */
1533 +};
1534 +#define NBPG 4096
1535 +#define UPAGES 1
1536 +#define HOST_TEXT_START_ADDR (u.start_code)
1537 +#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
1538 +
1539 +#endif
1540
1541
1542
1543 1.1 src/patchsets/glibc/2.11.1/3000_all_2.3.6-dl_execstack-PaX-support.patch
1544
1545 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/3000_all_2.3.6-dl_execstack-PaX-support.patch?rev=1.1&view=markup
1546 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/3000_all_2.3.6-dl_execstack-PaX-support.patch?rev=1.1&content-type=text/plain
1547
1548 Index: 3000_all_2.3.6-dl_execstack-PaX-support.patch
1549 ===================================================================
1550 With latest versions of glibc, a lot of apps failed on a PaX enabled
1551 system with:
1552 cannot enable executable stack as shared object requires: Permission denied
1553
1554 This is due to PaX 'exec-protecting' the stack, and ld.so then trying
1555 to make the stack executable due to some libraries not containing the
1556 PT_GNU_STACK section. Bug #32960. <azarah@g.o> (12 Nov 2003).
1557
1558 Patch also NPTL. Bug #116086. <kevquinn@g.o> (20 Dec 2005).
1559
1560 --- sysdeps/unix/sysv/linux/dl-execstack.c
1561 +++ sysdeps/unix/sysv/linux/dl-execstack.c
1562 @@ -63,7 +63,10 @@
1563 else
1564 # endif
1565 {
1566 - result = errno;
1567 + if (errno == EACCES) /* PAX is enabled */
1568 + result = 0;
1569 + else
1570 + result = errno;
1571 goto out;
1572 }
1573 }
1574 @@ -89,7 +92,12 @@
1575 page -= size;
1576 else
1577 {
1578 - if (errno != ENOMEM) /* Unexpected failure mode. */
1579 + if (errno == EACCES) /* PAX is enabled */
1580 + {
1581 + result = 0;
1582 + goto out;
1583 + }
1584 + else if (errno != ENOMEM) /* Unexpected failure mode. */
1585 {
1586 result = errno;
1587 goto out;
1588 @@ -115,7 +123,12 @@
1589 page += size;
1590 else
1591 {
1592 - if (errno != ENOMEM) /* Unexpected failure mode. */
1593 + if (errno == EACCES) /* PAX is enabled */
1594 + {
1595 + result = 0;
1596 + goto out;
1597 + }
1598 + else if (errno != ENOMEM) /* Unexpected failure mode. */
1599 {
1600 result = errno;
1601 goto out;
1602 --- nptl/allocatestack.c
1603 +++ nptl/allocatestack.c
1604 @@ -279,7 +279,8 @@
1605 size_t len = pd->stackblock_size - pd->guardsize;
1606 #endif
1607 if (mprotect (stack, len, PROT_READ | PROT_WRITE | PROT_EXEC) != 0)
1608 - return errno;
1609 + if (errno != EACCES) /* PAX is enabled */
1610 + return errno;
1611
1612 return 0;
1613 }
1614
1615
1616
1617 1.1 src/patchsets/glibc/2.11.1/3010_all_2.3.3_pre20040117-pt_pax.patch
1618
1619 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/3010_all_2.3.3_pre20040117-pt_pax.patch?rev=1.1&view=markup
1620 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/3010_all_2.3.3_pre20040117-pt_pax.patch?rev=1.1&content-type=text/plain
1621
1622 Index: 3010_all_2.3.3_pre20040117-pt_pax.patch
1623 ===================================================================
1624 --- elf/elf.h
1625 +++ elf/elf.h
1626 @@ -568,6 +568,7 @@
1627 #define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
1628 #define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
1629 #define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */
1630 +#define PT_PAX_FLAGS 0x65041580 /* Indicates PaX flag markings */
1631 #define PT_LOSUNW 0x6ffffffa
1632 #define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
1633 #define PT_SUNWSTACK 0x6ffffffb /* Stack segment */
1634 @@ -581,6 +582,18 @@
1635 #define PF_X (1 << 0) /* Segment is executable */
1636 #define PF_W (1 << 1) /* Segment is writable */
1637 #define PF_R (1 << 2) /* Segment is readable */
1638 +#define PF_PAGEEXEC (1 << 4) /* Enable PAGEEXEC */
1639 +#define PF_NOPAGEEXEC (1 << 5) /* Disable PAGEEXEC */
1640 +#define PF_SEGMEXEC (1 << 6) /* Enable SEGMEXEC */
1641 +#define PF_NOSEGMEXEC (1 << 7) /* Disable SEGMEXEC */
1642 +#define PF_MPROTECT (1 << 8) /* Enable MPROTECT */
1643 +#define PF_NOMPROTECT (1 << 9) /* Disable MPROTECT */
1644 +#define PF_RANDEXEC (1 << 10) /* Enable RANDEXEC */
1645 +#define PF_NORANDEXEC (1 << 11) /* Disable RANDEXEC */
1646 +#define PF_EMUTRAMP (1 << 12) /* Enable EMUTRAMP */
1647 +#define PF_NOEMUTRAMP (1 << 13) /* Disable EMUTRAMP */
1648 +#define PF_RANDMMAP (1 << 14) /* Enable RANDMMAP */
1649 +#define PF_NORANDMMAP (1 << 15) /* Disable RANDMMAP */
1650 #define PF_MASKOS 0x0ff00000 /* OS-specific */
1651 #define PF_MASKPROC 0xf0000000 /* Processor-specific */
1652
1653
1654
1655
1656 1.1 src/patchsets/glibc/2.11.1/3020_all_glibc-tests-sandbox-libdl-paths.patch
1657
1658 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/3020_all_glibc-tests-sandbox-libdl-paths.patch?rev=1.1&view=markup
1659 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/3020_all_glibc-tests-sandbox-libdl-paths.patch?rev=1.1&content-type=text/plain
1660
1661 Index: 3020_all_glibc-tests-sandbox-libdl-paths.patch
1662 ===================================================================
1663 when glibc runs its tests, it does so by invoking the local library loader.
1664 in Gentoo, we build/run inside of our "sandbox" which itself is linked against
1665 libdl (so that it can load libraries and pull out symbols). the trouble
1666 is that when you upgrade from an older glibc to the new one, often times
1667 internal symbols change name or abi. this is normally OK as you cannot use
1668 libc.so from say version 2.3.6 but libpthread.so from say version 2.5, so
1669 we always say "keep all of the glibc libraries from the same build". but
1670 when glibc runs its tests, it uses dynamic paths to point to its new local
1671 copies of libraries. if the test doesnt use libdl, then glibc doesnt add
1672 its path, and when sandbox triggers the loading of libdl, glibc does so
1673 from the host system system. this gets us into the case of all libraries
1674 are from the locally compiled version of glibc except for libdl.so.
1675
1676 Fix by Wormo
1677
1678 http://bugs.gentoo.org/56898
1679
1680 --- libc/grp/tst_fgetgrent.sh
1681 +++ libc/grp/tst_fgetgrent.sh
1682 @@ -24,7 +24,8 @@
1683 rtld_installed_name=$1; shift
1684
1685 testout=${common_objpfx}/grp/tst_fgetgrent.out
1686 -library_path=${common_objpfx}
1687 +# make sure libdl is also in path in case sandbox is in use
1688 +library_path=${common_objpfx}:${common_objpfx}/dlfcn
1689
1690 result=0
1691
1692 --- libc/iconvdata/run-iconv-test.sh
1693 +++ libc/iconvdata/run-iconv-test.sh
1694 @@ -34,7 +34,7 @@
1695 export GCONV_PATH
1696
1697 # We have to have some directories in the library path.
1698 -LIBPATH=$codir:$codir/iconvdata
1699 +LIBPATH=$codir:$codir/iconvdata:$codir/dlfcn
1700
1701 # How the start the iconv(1) program.
1702 ICONV='$codir/elf/ld.so --library-path $LIBPATH --inhibit-rpath ${from}.so \
1703 --- libc/iconvdata/tst-table.sh
1704 +++ libc/iconvdata/tst-table.sh
1705 @@ -59,8 +59,11 @@
1706 irreversible=${charset}.irreversible
1707 fi
1708
1709 +# make sure libdl is also in path in case sandbox is in use
1710 +library_path=${common_objpfx}:${common_objpfx}/dlfcn
1711 +
1712 # iconv in one direction.
1713 -${common_objpfx}elf/ld.so --library-path $common_objpfx \
1714 +${common_objpfx}elf/ld.so --library-path $library_path \
1715 ${objpfx}tst-table-from ${charset} \
1716 > ${objpfx}tst-${charset}.table
1717
1718 --- libc/intl/tst-codeset.sh
1719 +++ libc/intl/tst-codeset.sh
1720 @@ -37,6 +37,9 @@
1721 LOCPATH=${common_objpfx}localedata
1722 export LOCPATH
1723
1724 +# make sure libdl is also in path in case sandbox is in use
1725 +library_path=${common_objpfx}:${common_objpfx}/dlfcn
1726 +
1727 ${common_objpfx}elf/ld.so --library-path $common_objpfx \
1728 ${objpfx}tst-codeset > ${objpfx}tst-codeset.out
1729
1730 --- libc/intl/tst-gettext.sh
1731 +++ libc/intl/tst-gettext.sh
1732 @@ -51,9 +51,12 @@
1733 LOCPATH=${common_objpfx}localedata
1734 export LOCPATH
1735
1736 +# make sure libdl is also in path in case sandbox is in use
1737 +library_path=${common_objpfx}:${common_objpfx}/dlfcn
1738 +
1739 # Now run the test.
1740 MALLOC_TRACE=$malloc_trace LOCPATH=${objpfx}localedir:$LOCPATH \
1741 -${common_objpfx}elf/ld.so --library-path $common_objpfx \
1742 +${common_objpfx}elf/ld.so --library-path $library_path \
1743 ${objpfx}tst-gettext > ${objpfx}tst-gettext.out ${objpfx}domaindir
1744
1745 exit $?
1746 --- libc/intl/tst-gettext2.sh
1747 +++ libc/intl/tst-gettext2.sh
1748 @@ -65,8 +65,11 @@
1749 LOCPATH=${objpfx}domaindir
1750 export LOCPATH
1751
1752 +# make sure libdl is also in path in case sandbox is in use
1753 +library_path=${common_objpfx}:${common_objpfx}/dlfcn
1754 +
1755 # Now run the test.
1756 -${common_objpfx}elf/ld.so --library-path $common_objpfx \
1757 +${common_objpfx}elf/ld.so --library-path $library_path \
1758 ${objpfx}tst-gettext2 > ${objpfx}tst-gettext2.out ${objpfx}domaindir &&
1759 cmp ${objpfx}tst-gettext2.out - <<EOF
1760 String1 - Lang1: 1st string
1761 --- libc/intl/tst-translit.sh
1762 +++ libc/intl/tst-translit.sh
1763 @@ -36,7 +36,10 @@
1764 LOCPATH=${common_objpfx}localedata
1765 export LOCPATH
1766
1767 -${common_objpfx}elf/ld.so --library-path $common_objpfx \
1768 +# make sure libdl is also in path in case sandbox is in use
1769 +library_path=${common_objpfx}:${common_objpfx}/dlfcn
1770 +
1771 +${common_objpfx}elf/ld.so --library-path $library_path \
1772 ${objpfx}tst-translit > ${objpfx}tst-translit.out ${objpfx}domaindir
1773
1774 exit $?
1775 --- libc/malloc/tst-mtrace.sh
1776 +++ libc/malloc/tst-mtrace.sh
1777 @@ -24,9 +24,12 @@
1778 status=0
1779 trap "rm -f ${common_objpfx}malloc/tst-mtrace.leak; exit 1" 1 2 15
1780
1781 +# make sure libdl is also in path in case sandbox is in use
1782 +library_path=${common_objpfx}:${common_objpfx}/dlfcn
1783 +
1784 MALLOC_TRACE=${common_objpfx}malloc/tst-mtrace.leak \
1785 LOCPATH=${common_objpfx}localedata GCONV_PATH=${common_objpfx}iconvdata \
1786 -${common_objpfx}elf/ld.so --library-path $common_objpfx \
1787 +${common_objpfx}elf/ld.so --library-path $library_path \
1788 ${common_objpfx}malloc/tst-mtrace || status=1
1789
1790 if test $status -eq 0 && test -f ${common_objpfx}malloc/mtrace; then
1791 --- libc/nptl/tst-tls6.sh
1792 +++ libc/nptl/tst-tls6.sh
1793 @@ -5,8 +5,8 @@
1794 rtld_installed_name=$1; shift
1795 logfile=$common_objpfx/nptl/tst-tls6.out
1796
1797 -# We have to find libc and nptl
1798 -library_path=${common_objpfx}:${common_objpfx}nptl
1799 +# We have to find libc and nptl (also libdl in case sandbox is in use)
1800 +library_path=${common_objpfx}:${common_objpfx}nptl:${common_objpfx}/dlfcn
1801 tst_tls5="${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
1802 ${common_objpfx}/nptl/tst-tls5"
1803
1804 --- libc/posix/globtest.sh
1805 +++ libc/posix/globtest.sh
1806 @@ -18,7 +18,7 @@
1807 esac
1808
1809 # We have to find the libc and the NSS modules.
1810 -library_path=${common_objpfx}:${common_objpfx}nss:${common_objpfx}nis:${common_objpfx}db2:${common_objpfx}hesiod
1811 +library_path=${common_objpfx}:${common_objpfx}nss:${common_objpfx}nis:${common_objpfx}db2:${common_objpfx}hesiod:${common_objpfx}/dlfcn
1812
1813 # Since we use `sort' we must make sure to use the same locale everywhere.
1814 LC_ALL=C
1815 --- libc/posix/tst-getconf.sh
1816 +++ libc/posix/tst-getconf.sh
1817 @@ -10,7 +10,10 @@
1818 else
1819 rtld_installed_name=$1; shift
1820 runit() {
1821 - ${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} "$@"
1822 +
1823 + # make sure libdl is also in path in case sandbox is in use
1824 + library_path=${common_objpfx}:${common_objpfx}/dlfcn
1825 + ${elf_objpfx}${rtld_installed_name} --library-path ${library_path} "$@"
1826 }
1827 fi
1828
1829 --- libc/posix/wordexp-tst.sh
1830 +++ libc/posix/wordexp-tst.sh
1831 @@ -19,8 +19,11 @@
1832 "
1833 export IFS
1834
1835 +# make sure libdl is also in path in case sandbox is in use
1836 +library_path=${common_objpfx}:${common_objpfx}/dlfcn
1837 +
1838 failed=0
1839 -${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} \
1840 +${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
1841 ${common_objpfx}posix/wordexp-test '$*' > ${testout}1
1842 cat <<"EOF" | cmp - ${testout}1 >> $logfile || failed=1
1843 wordexp returned 0
1844
1845
1846
1847 1.1 src/patchsets/glibc/2.11.1/5021_all_2.9-fnmatch.patch
1848
1849 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/5021_all_2.9-fnmatch.patch?rev=1.1&view=markup
1850 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/5021_all_2.9-fnmatch.patch?rev=1.1&content-type=text/plain
1851
1852 Index: 5021_all_2.9-fnmatch.patch
1853 ===================================================================
1854 http://sourceware.org/ml/libc-hacker/2002-11/msg00071.html
1855
1856 When fnmatch detects an invalid multibyte character it should fall back to
1857 single byte matching, so that "*" has a chance to match such a string.
1858
1859 Andreas.
1860
1861 2005-04-12 Andreas Schwab <schwab@××××.de>
1862
1863 * posix/fnmatch.c (fnmatch): If conversion to wide character
1864 fails fall back to single byte matching.
1865
1866 Index: posix/fnmatch.c
1867 ===================================================================
1868 --- posix/fnmatch.c.orig 2007-05-18 10:40:34.000000000 +0200
1869 +++ posix/fnmatch.c 2007-05-18 13:21:47.199478000 +0200
1870 @@ -327,6 +327,7 @@
1871 # if HANDLE_MULTIBYTE
1872 if (__builtin_expect (MB_CUR_MAX, 1) != 1)
1873 {
1874 + const char *orig_pattern = pattern;
1875 mbstate_t ps;
1876 size_t n;
1877 const char *p;
1878 @@ -378,10 +379,8 @@
1879 wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
1880 n = mbsrtowcs (wstring, &p, n + 1, &ps);
1881 if (__builtin_expect (n == (size_t) -1, 0))
1882 - /* Something wrong.
1883 - XXX Do we have to set `errno' to something which mbsrtows hasn't
1884 - already done? */
1885 - return -1;
1886 + /* Something wrong. Fall back to single byte matching. */
1887 + goto try_singlebyte;
1888 if (p)
1889 memset (&ps, '\0', sizeof (ps));
1890 }
1891 @@ -389,10 +388,8 @@
1892 {
1893 n = mbsrtowcs (NULL, &string, 0, &ps);
1894 if (__builtin_expect (n == (size_t) -1, 0))
1895 - /* Something wrong.
1896 - XXX Do we have to set `errno' to something which mbsrtows hasn't
1897 - already done? */
1898 - return -1;
1899 + /* Something wrong. Fall back to single byte matching. */
1900 + goto try_singlebyte;
1901 wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
1902 assert (mbsinit (&ps));
1903 (void) mbsrtowcs (wstring, &string, n + 1, &ps);
1904 @@ -400,6 +397,9 @@
1905
1906 return internal_fnwmatch (wpattern, wstring, wstring + n,
1907 flags & FNM_PERIOD, flags, NULL);
1908 +
1909 + try_singlebyte:
1910 + pattern = orig_pattern;
1911 }
1912 # endif /* mbstate_t and mbsrtowcs or _LIBC. */
1913
1914
1915
1916
1917 1.1 src/patchsets/glibc/2.11.1/5063_all_glibc-dont-build-timezone.patch
1918
1919 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/5063_all_glibc-dont-build-timezone.patch?rev=1.1&view=markup
1920 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/5063_all_glibc-dont-build-timezone.patch?rev=1.1&content-type=text/plain
1921
1922 Index: 5063_all_glibc-dont-build-timezone.patch
1923 ===================================================================
1924 timezone data has been split into the package sys-libs/timezone-data
1925
1926 --- glibc/Makeconfig
1927 +++ glibc/Makeconfig
1928 @@ -922,1 +922,1 @@
1929 - crypt nss localedata timezone rt conform debug \
1930 + crypt nss localedata rt conform debug \
1931
1932
1933
1934 1.1 src/patchsets/glibc/2.11.1/6001_all_alpha-glibc-2.4-xstat.patch
1935
1936 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6001_all_alpha-glibc-2.4-xstat.patch?rev=1.1&view=markup
1937 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6001_all_alpha-glibc-2.4-xstat.patch?rev=1.1&content-type=text/plain
1938
1939 Index: 6001_all_alpha-glibc-2.4-xstat.patch
1940 ===================================================================
1941 http://sources.redhat.com/bugzilla/show_bug.cgi?id=1026
1942 http://sourceware.org/ml/libc-alpha/2005-02/msg00122.html
1943
1944 2005-02-26 GOTO Masanori <gotom@×××××××××.jp>
1945
1946 * sysdeps/unix/sysv/linux/kernel-features.h: Define
1947 __ASSUME_STAT64_SYSCALL.
1948 * sysdeps/unix/sysv/linux/alpha/fxstat.c: Check
1949 __ASSUME_STAT64_SYSCALL.
1950 * sysdeps/unix/sysv/linux/alpha/fxstatat.c: Likewise.
1951 * sysdeps/unix/sysv/linux/alpha/lxstat.c: Likewise.
1952 * sysdeps/unix/sysv/linux/alpha/xstat.c: Likewise.
1953 * sysdeps/unix/sysv/linux/alpha/xstatconv.c: Don't define
1954 __libc_missing_axp_stat64 when it's not needed.
1955 * sysdeps/unix/sysv/linux/alpha/xstatconv.h: Likewise.
1956
1957 --- sysdeps/unix/sysv/linux/kernel-features.h
1958 +++ sysdeps/unix/sysv/linux/kernel-features.h
1959 @@ -412,6 +412,11 @@
1960 # define __ASSUME_GETDENTS32_D_TYPE 1
1961 #endif
1962
1963 +/* Starting with version 2.6.4, alpha stat64 syscalls are available. */
1964 +#if __LINUX_KERNEL_VERSION >= 0x020604 && defined __alpha__
1965 +# define __ASSUME_STAT64_SYSCALL 1
1966 +#endif
1967 +
1968 /* Starting with version 2.5.3, the initial location returned by `brk'
1969 after exec is always rounded up to the next page. */
1970 #if __LINUX_KERNEL_VERSION >= 132355
1971 --- ports/sysdeps/unix/sysv/linux/alpha/fxstat.c
1972 +++ ports/sysdeps/unix/sysv/linux/alpha/fxstat.c
1973 @@ -35,27 +35,39 @@ int
1974 __fxstat (int vers, int fd, struct stat *buf)
1975 {
1976 INTERNAL_SYSCALL_DECL (err);
1977 - int result, errno_out;
1978 + int result;
1979 struct kernel_stat kbuf;
1980
1981 +#if __ASSUME_STAT64_SYSCALL > 0
1982 + if (vers == _STAT_VER_KERNEL64)
1983 + {
1984 + result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf);
1985 + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
1986 + return result;
1987 + __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
1988 + return -1;
1989 + }
1990 +#elif defined __NR_fstat64
1991 if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
1992 {
1993 + int errno_out;
1994 result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf);
1995 if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
1996 return result;
1997 errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
1998 if (errno_out != ENOSYS)
1999 - goto fail;
2000 + {
2001 + __set_errno (errno_out);
2002 + return -1;
2003 + }
2004 __libc_missing_axp_stat64 = 1;
2005 }
2006 +#endif
2007
2008 result = INTERNAL_SYSCALL (fstat, err, 2, fd, &kbuf);
2009 if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
2010 return __xstat_conv (vers, &kbuf, buf);
2011 - errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
2012 -
2013 - fail:
2014 - __set_errno (errno_out);
2015 + __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
2016 return -1;
2017 }
2018 hidden_def (__fxstat)
2019 --- ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
2020 +++ ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
2021 @@ -65,6 +65,20 @@ __fxstatat (int vers, int fd, const char
2022 int result, errno_out;
2023 struct kernel_stat kst;
2024
2025 +#if __ASSUME_STAT64_SYSCALL > 0
2026 + if (vers == _STAT_VER_KERNEL64)
2027 + {
2028 + if (flag & AT_SYMLINK_NOFOLLOW)
2029 + result = INTERNAL_SYSCALL (lstat64, err, 2, file, st);
2030 + else
2031 + result = INTERNAL_SYSCALL (stat64, err, 2, file, st);
2032 +
2033 + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
2034 + return result;
2035 + errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
2036 + goto fail;
2037 + }
2038 +#elif defined __NR_stat64
2039 if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
2040 {
2041 if (flag & AT_SYMLINK_NOFOLLOW)
2042 @@ -79,6 +93,7 @@ __fxstatat (int vers, int fd, const char
2043 goto fail;
2044 __libc_missing_axp_stat64 = 1;
2045 }
2046 +#endif
2047
2048 if (flag & AT_SYMLINK_NOFOLLOW)
2049 result = INTERNAL_SYSCALL (lstat, err, 2, file, &kst);
2050 --- ports/sysdeps/unix/sysv/linux/alpha/lxstat.c
2051 +++ ports/sysdeps/unix/sysv/linux/alpha/lxstat.c
2052 @@ -35,27 +35,39 @@ int
2053 __lxstat (int vers, const char *name, struct stat *buf)
2054 {
2055 INTERNAL_SYSCALL_DECL (err);
2056 - int result, errno_out;
2057 + int result;
2058 struct kernel_stat kbuf;
2059
2060 +#if __ASSUME_STAT64_SYSCALL > 0
2061 + if (vers == _STAT_VER_KERNEL64)
2062 + {
2063 + result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf);
2064 + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
2065 + return result;
2066 + __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
2067 + return -1;
2068 + }
2069 +#elif defined __NR_lstat64
2070 if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
2071 {
2072 + int errno_out;
2073 result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf);
2074 if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
2075 return result;
2076 errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
2077 if (errno_out != ENOSYS)
2078 - goto fail;
2079 + {
2080 + __set_errno (errno_out);
2081 + return -1;
2082 + }
2083 __libc_missing_axp_stat64 = 1;
2084 }
2085 +#endif
2086
2087 result = INTERNAL_SYSCALL (lstat, err, 2, name, &kbuf);
2088 if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
2089 return __xstat_conv (vers, &kbuf, buf);
2090 - errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
2091 -
2092 - fail:
2093 - __set_errno (errno_out);
2094 + __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
2095 return -1;
2096 }
2097 hidden_def (__lxstat)
2098 --- ports/sysdeps/unix/sysv/linux/alpha/xstat.c
2099 +++ ports/sysdeps/unix/sysv/linux/alpha/xstat.c
2100 @@ -35,27 +35,39 @@ int
2101 __xstat (int vers, const char *name, struct stat *buf)
2102 {
2103 INTERNAL_SYSCALL_DECL (err);
2104 - int result, errno_out;
2105 + int result;
2106 struct kernel_stat kbuf;
2107
2108 +#if __ASSUME_STAT64_SYSCALL > 0
2109 + if (vers == _STAT_VER_KERNEL64)
2110 + {
2111 + result = INTERNAL_SYSCALL (stat64, err, 2, name, buf);
2112 + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
2113 + return result;
2114 + __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
2115 + return -1;
2116 + }
2117 +#elif defined __NR_stat64
2118 if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
2119 {
2120 + int errno_out;
2121 result = INTERNAL_SYSCALL (stat64, err, 2, name, buf);
2122 if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
2123 return result;
2124 errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
2125 if (errno_out != ENOSYS)
2126 - goto fail;
2127 + {
2128 + __set_errno (errno_out);
2129 + return -1;
2130 + }
2131 __libc_missing_axp_stat64 = 1;
2132 }
2133 +#endif
2134
2135 result = INTERNAL_SYSCALL (stat, err, 2, name, &kbuf);
2136 if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
2137 return __xstat_conv (vers, &kbuf, buf);
2138 - errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
2139 -
2140 - fail:
2141 - __set_errno (errno_out);
2142 + __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
2143 return -1;
2144 }
2145 hidden_def (__xstat)
2146 --- ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c
2147 +++ ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c
2148 @@ -22,9 +22,14 @@
2149 #include <sys/stat.h>
2150 #include <kernel_stat.h>
2151 #include <xstatconv.h>
2152 +#include <sys/syscall.h>
2153
2154
2155 +#ifdef __NR_stat64
2156 +# if __ASSUME_STAT64_SYSCALL == 0
2157 int __libc_missing_axp_stat64;
2158 +# endif
2159 +#endif
2160
2161 int
2162 __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
2163 --- ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h
2164 +++ ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h
2165 @@ -18,7 +18,12 @@
2166 02111-1307 USA. */
2167
2168 #include <kernel-features.h>
2169 +#include <sys/syscall.h>
2170
2171 +#ifdef __NR_stat64
2172 +# if __ASSUME_STAT64_SYSCALL == 0
2173 extern int __libc_missing_axp_stat64 attribute_hidden;
2174 +# endif
2175 +#endif
2176 extern int __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
2177 attribute_hidden;
2178
2179
2180
2181 1.1 src/patchsets/glibc/2.11.1/6015_all_alpha-glibc-2.5-no-page-header.patch
2182
2183 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6015_all_alpha-glibc-2.5-no-page-header.patch?rev=1.1&view=markup
2184 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6015_all_alpha-glibc-2.5-no-page-header.patch?rev=1.1&content-type=text/plain
2185
2186 Index: 6015_all_alpha-glibc-2.5-no-page-header.patch
2187 ===================================================================
2188 2008-06-07 Mike Frysinger <vapier@g.o>
2189
2190 * sysdeps/unix/sysv/linux/alpha/sys/user.h: Copy page.h definitions
2191 from the kernel header to sys/user.h and remove the #include of
2192 sys/user.h.
2193
2194 --- ports/sysdeps/unix/sysv/linux/alpha/sys/user.h
2195 +++ ports/sysdeps/unix/sysv/linux/alpha/sys/user.h
2196 @@ -23,7 +23,6 @@
2197 only. Don't read too much into it. Don't use it for anything other
2198 than gdb/strace unless you know what you are doing. */
2199
2200 -#include <asm/page.h>
2201 #include <asm/reg.h>
2202
2203 struct user
2204 @@ -41,6 +40,9 @@ struct user
2205 char u_comm[32]; /* user command name */
2206 };
2207
2208 +#define PAGE_SHIFT 13
2209 +#define PAGE_SIZE (1 << PAGE_SHIFT)
2210 +#define PAGE_MASK (~(PAGE_SIZE-1))
2211 #define NBPG PAGE_SIZE
2212 #define UPAGES 1
2213 #define HOST_TEXT_START_ADDR (u.start_code)
2214
2215
2216
2217 1.1 src/patchsets/glibc/2.11.1/6017_all_alpha-glibc-2.8-creat.patch
2218
2219 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6017_all_alpha-glibc-2.8-creat.patch?rev=1.1&view=markup
2220 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6017_all_alpha-glibc-2.8-creat.patch?rev=1.1&content-type=text/plain
2221
2222 Index: 6017_all_alpha-glibc-2.8-creat.patch
2223 ===================================================================
2224 alpha does not have a __NR_creat
2225
2226 http://bugs.gentoo.org/227275
2227 http://sourceware.org/bugzilla/show_bug.cgi?id=6650
2228
2229 --- libc/sysdeps/unix/sysv/linux/wordsize-64/creat64.c
2230 +++ libc/sysdeps/unix/sysv/linux/wordsize-64/creat64.c
2231 @@ -1 +1,5 @@
2232 /* Defined as alias for the syscall. */
2233 +#include <sysdep.h>
2234 +#ifndef __NR_creat
2235 +#include "../../../../../io/creat64.c"
2236 +#endif
2237
2238
2239
2240 1.1 src/patchsets/glibc/2.11.1/6018_all_alpha-glibc-2.8-cache-shape.patch
2241
2242 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6018_all_alpha-glibc-2.8-cache-shape.patch?rev=1.1&view=markup
2243 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6018_all_alpha-glibc-2.8-cache-shape.patch?rev=1.1&content-type=text/plain
2244
2245 Index: 6018_all_alpha-glibc-2.8-cache-shape.patch
2246 ===================================================================
2247 older verisons of glibc would build dl-sysdep as shared-only and dl-support as
2248 static-only. alpha hooks in a cache variable via dl-auxv.h. newer versions of
2249 glibc build dl-sysdep as both shared and static which means we now have symbol
2250 duplication for static builds with dl-sysdep and dl-support. since dl-sysdep
2251 is both shared/static, there is no point in hooking dl-support anymore, so we
2252 can punt it.
2253
2254 --- ports/sysdeps/unix/sysv/linux/alpha/dl-support.c
2255 +++ ports/sysdeps/unix/sysv/linux/alpha/dl-support.c
2256 @@ -1,2 +0,0 @@
2257 -#include "dl-auxv.h"
2258 -#include <elf/dl-support.c>
2259
2260
2261
2262 1.1 src/patchsets/glibc/2.11.1/6019_all_alpha-glibc-ptr-mangling.patch
2263
2264 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6019_all_alpha-glibc-ptr-mangling.patch?rev=1.1&view=markup
2265 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6019_all_alpha-glibc-ptr-mangling.patch?rev=1.1&content-type=text/plain
2266
2267 Index: 6019_all_alpha-glibc-ptr-mangling.patch
2268 ===================================================================
2269 http://bugs.gentoo.org/201910
2270
2271 For every arch, PTR_MANGLE and PTR_DEMANGLE defines are in
2272 sysdeps/unix/sysv/linux/<arch>/sysdep.h. But for alpha this is not true. The
2273 defines are in sysdeps/unix/alpha/sysdep.h and unix/sysv/linux/alpha/sysdep.h
2274 includes the first.
2275
2276 This is a patch that fixes the issue and let alpha build, at the expense of
2277 disabling MANGLING in the non PIC case, but googling showed that the issue is
2278 known, and that nobody really cares about it.
2279
2280 Info from: http://sourceware.org/bugzilla/show_bug.cgi?id=5216
2281
2282 --- ports/sysdeps/unix/alpha/sysdep.h
2283 +++ ports/sysdeps/unix/alpha/sysdep.h
2284 @@ -397,42 +397,4 @@ __LABEL(name) \
2285 _sc_ret = _sc_0, _sc_err = _sc_19; \
2286 }
2287
2288 -/* Pointer mangling support. Note that tls access is slow enough that
2289 - we don't deoptimize things by placing the pointer check value there. */
2290 -
2291 -#include <stdint.h>
2292 -
2293 -#if defined NOT_IN_libc && defined IS_IN_rtld
2294 -# ifdef __ASSEMBLER__
2295 -# define PTR_MANGLE(dst, src, tmp) \
2296 - ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \
2297 - ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \
2298 - xor src, tmp, dst
2299 -# define PTR_MANGLE2(dst, src, tmp) \
2300 - xor src, tmp, dst
2301 -# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
2302 -# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
2303 -# else
2304 -extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
2305 -# define PTR_MANGLE(var) \
2306 - (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
2307 -# define PTR_DEMANGLE(var) PTR_MANGLE(var)
2308 -# endif
2309 -#elif defined PIC
2310 -# ifdef __ASSEMBLER__
2311 -# define PTR_MANGLE(dst, src, tmp) \
2312 - ldq tmp, __pointer_chk_guard; \
2313 - xor src, tmp, dst
2314 -# define PTR_MANGLE2(dst, src, tmp) \
2315 - xor src, tmp, dst
2316 -# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
2317 -# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
2318 -# else
2319 -extern uintptr_t __pointer_chk_guard attribute_relro;
2320 -# define PTR_MANGLE(var) \
2321 - (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard)
2322 -# define PTR_DEMANGLE(var) PTR_MANGLE(var)
2323 -# endif
2324 -#endif
2325 -
2326 #endif /* ASSEMBLER */
2327
2328 --- ports/sysdeps/unix/sysv/linux/alpha/sysdep.h
2329 +++ ports/sysdeps/unix/sysv/linux/alpha/sysdep.h
2330 @@ -98,4 +98,46 @@
2331 INTERNAL_SYSCALL1(name, err_out, nr, args); \
2332 })
2333
2334 +/* Pointer mangling support. Note that tls access is slow enough that
2335 + we don't deoptimize things by placing the pointer check value there. */
2336 +
2337 +#if defined NOT_IN_libc && defined IS_IN_rtld
2338 +# ifdef __ASSEMBLER__
2339 +# define PTR_MANGLE(dst, src, tmp) \
2340 + ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \
2341 + ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \
2342 + xor src, tmp, dst
2343 +# define PTR_MANGLE2(dst, src, tmp) \
2344 + xor src, tmp, dst
2345 +# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
2346 +# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
2347 +# else
2348 +extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
2349 +# define PTR_MANGLE(var) \
2350 + (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
2351 +# define PTR_DEMANGLE(var) PTR_MANGLE(var)
2352 +# endif
2353 +#elif defined PIC
2354 +# ifdef __ASSEMBLER__
2355 +# define PTR_MANGLE(dst, src, tmp) \
2356 + ldq tmp, __pointer_chk_guard; \
2357 + xor src, tmp, dst
2358 +# define PTR_MANGLE2(dst, src, tmp) \
2359 + xor src, tmp, dst
2360 +# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
2361 +# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
2362 +# else
2363 +extern uintptr_t __pointer_chk_guard attribute_relro;
2364 +# define PTR_MANGLE(var) \
2365 + (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard)
2366 +# define PTR_DEMANGLE(var) PTR_MANGLE(var)
2367 +# endif
2368 +#else
2369 +/* Pointer mangling is not yet supported for static libc on alpha. */
2370 +# ifndef __ASSEMBLER__
2371 +# define PTR_MANGLE(var) (void) (var)
2372 +# define PTR_DEMANGLE(var) (void) (var)
2373 +# endif
2374 +#endif
2375 +
2376 #endif /* _LINUX_ALPHA_SYSDEP_H */
2377
2378
2379
2380 1.1 src/patchsets/glibc/2.11.1/6020_all_alpha-fix-gcc-4.1-warnings.patch
2381
2382 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6020_all_alpha-fix-gcc-4.1-warnings.patch?rev=1.1&view=markup
2383 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6020_all_alpha-fix-gcc-4.1-warnings.patch?rev=1.1&content-type=text/plain
2384
2385 Index: 6020_all_alpha-fix-gcc-4.1-warnings.patch
2386 ===================================================================
2387 2006-05-30 Falk Hueffner <falk@××××××.org>
2388
2389 * sysdeps/unix/sysv/linux/alpha/ioperm.c: force the architecture
2390 to ev6 in assembly code.
2391
2392 {standard input}: Assembler messages:
2393 {standard input}:341: Error: macro requires $at register while noat in effect
2394 {standard input}:374: Error: macro requires $at register while noat in effect
2395 {standard input}:438: Error: macro requires $at register while noat in effect
2396 {standard input}:471: Error: macro requires $at register while noat in effect
2397 make[3]: *** [/tmp/buildd/glibc-2.3.6/build-tree/alpha-libc/misc/ioperm.o] Error 1
2398
2399 Hrm. gcc puts .arch ev4 into the .s, and this overrides -mev6 for as.
2400 I cannot really think of anything better than
2401
2402 ---
2403 ports/sysdeps/unix/sysv/linux/alpha/ioperm.c | 8 ++++----
2404 1 file changed, 4 insertions(+), 4 deletions(-)
2405
2406 --- ports/sysdeps/unix/sysv/linux/alpha/ioperm.c
2407 +++ ports/sysdeps/unix/sysv/linux/alpha/ioperm.c
2408 @@ -178,13 +178,13 @@
2409 static inline void
2410 stb_mb(unsigned char val, unsigned long addr)
2411 {
2412 - __asm__("stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val));
2413 + __asm__(".arch ev6; stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val));
2414 }
2415
2416 static inline void
2417 stw_mb(unsigned short val, unsigned long addr)
2418 {
2419 - __asm__("stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val));
2420 + __asm__(".arch ev6; stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val));
2421 }
2422
2423 static inline void
2424 @@ -356,7 +356,7 @@
2425 unsigned long int addr = dense_port_to_cpu_addr (port);
2426 unsigned char r;
2427
2428 - __asm__ ("ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr));
2429 + __asm__ (".arch ev6; ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr));
2430 return r;
2431 }
2432
2433 @@ -366,7 +366,7 @@
2434 unsigned long int addr = dense_port_to_cpu_addr (port);
2435 unsigned short r;
2436
2437 - __asm__ ("ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr));
2438 + __asm__ (".arch ev6; ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr));
2439 return r;
2440 }
2441
2442
2443
2444
2445 1.1 src/patchsets/glibc/2.11.1/6020_all_alpha-floor_ceil_fix.patch
2446
2447 file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6020_all_alpha-floor_ceil_fix.patch?rev=1.1&view=markup
2448 plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/glibc/2.11.1/6020_all_alpha-floor_ceil_fix.patch?rev=1.1&content-type=text/plain
2449
2450 Index: 6020_all_alpha-floor_ceil_fix.patch
2451 ===================================================================
2452 http://sources.redhat.com/bugzilla/show_bug.cgi?id=5350
2453 https://bugs.gentoo.org/264335
2454
2455 --- ports/sysdeps/alpha/fpu/s_ceil.c
2456 +++ ports/sysdeps/alpha/fpu/s_ceil.c
2457 @@ -27,20 +27,25 @@
2458 double
2459 __ceil (double x)
2460 {
2461 - double two52 = copysign (0x1.0p52, x);
2462 - double r, tmp;
2463 -
2464 - __asm (
2465 + if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */
2466 + {
2467 + double tmp1, new_x;
2468 +
2469 + new_x = -x;
2470 + __asm (
2471 #ifdef _IEEE_FP_INEXACT
2472 - "addt/suim %2, %3, %1\n\tsubt/suim %1, %3, %0"
2473 + "cvttq/svim %2,%1\n\t"
2474 #else
2475 - "addt/sum %2, %3, %1\n\tsubt/sum %1, %3, %0"
2476 + "cvttq/svm %2,%1\n\t"
2477 #endif
2478 - : "=&f"(r), "=&f"(tmp)
2479 - : "f"(-x), "f"(-two52));
2480 + "cvtqt/m %1,%0\n\t"
2481 + : "=f"(new_x), "=&f"(tmp1)
2482 + : "f"(new_x));
2483
2484 - /* Fix up the negation we did above, as well as handling -0 properly. */
2485 - return copysign (r, x);
2486 + /* Fix up the negation we did above, as well as handling -0 properly. */
2487 + x = copysign(new_x, x);
2488 + }
2489 + return x;
2490 }
2491
2492 weak_alias (__ceil, ceil)
2493 --- ports/sysdeps/alpha/fpu/s_ceilf.c
2494 +++ ports/sysdeps/alpha/fpu/s_ceilf.c
2495 @@ -26,20 +26,30 @@
2496 float
2497 __ceilf (float x)
2498 {
2499 - float two23 = copysignf (0x1.0p23, x);