1 commit 5ccf88c235e060c2c61c69011161a31c3873e690
2 Author: Jim Meyering <meyering@redhat.com>
3 Date: Fri May 15 16:47:36 2009 +0200
5 rename each .cvsignore file to .gitignore
6 (cherry picked from commit 2e180a26222caf478f29e272c9d1b5d9c6299752)
8 diff --git a/.cvsignore b/.cvsignore
9 deleted file mode 100644
10 index 213609f..0000000
14 -*.d *.o *.so *.po *.go *.bo stamp.* *.stamp *.ustamp *.udeps
15 -*.gz *.Z *.tar *.tgz *.bz2
17 -TODO AUTHORS copyr-* copying.*
22 -sun[43]* i[345]86* hp300*
24 -ieeetest hppa-sysdeps regex
35 -libc.prj .libc.prcs_aux
43 diff --git a/.gitignore b/.gitignore
45 index 0000000..213609f
49 +*.d *.o *.so *.po *.go *.bo stamp.* *.stamp *.ustamp *.udeps
50 +*.gz *.Z *.tar *.tgz *.bz2
52 +TODO AUTHORS copyr-* copying.*
57 +sun[43]* i[345]86* hp300*
59 +ieeetest hppa-sysdeps regex
70 +libc.prj .libc.prcs_aux
78 diff --git a/assert/.cvsignore b/assert/.cvsignore
79 deleted file mode 100644
80 index 3fc9f4c..0000000
81 --- a/assert/.cvsignore
84 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
87 -TODO COPYING* AUTHORS copyr-* copying.*
90 diff --git a/assert/.gitignore b/assert/.gitignore
92 index 0000000..3fc9f4c
94 +++ b/assert/.gitignore
96 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
99 +TODO COPYING* AUTHORS copyr-* copying.*
102 diff --git a/csu/.cvsignore b/csu/.cvsignore
103 deleted file mode 100644
104 index da6e41b..0000000
108 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
109 -*.gz *.Z *.tar *.tgz
111 -TODO COPYING* AUTHORS copyr-* copying.*
115 diff --git a/csu/.gitignore b/csu/.gitignore
117 index 0000000..da6e41b
121 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
122 +*.gz *.Z *.tar *.tgz
124 +TODO COPYING* AUTHORS copyr-* copying.*
128 diff --git a/ctype/.cvsignore b/ctype/.cvsignore
129 deleted file mode 100644
130 index 3fc9f4c..0000000
131 --- a/ctype/.cvsignore
134 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
135 -*.gz *.Z *.tar *.tgz
137 -TODO COPYING* AUTHORS copyr-* copying.*
140 diff --git a/ctype/.gitignore b/ctype/.gitignore
142 index 0000000..3fc9f4c
144 +++ b/ctype/.gitignore
146 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
147 +*.gz *.Z *.tar *.tgz
149 +TODO COPYING* AUTHORS copyr-* copying.*
152 diff --git a/dirent/.cvsignore b/dirent/.cvsignore
153 deleted file mode 100644
154 index 3fc9f4c..0000000
155 --- a/dirent/.cvsignore
158 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
159 -*.gz *.Z *.tar *.tgz
161 -TODO COPYING* AUTHORS copyr-* copying.*
164 diff --git a/dirent/.gitignore b/dirent/.gitignore
166 index 0000000..3fc9f4c
168 +++ b/dirent/.gitignore
170 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
171 +*.gz *.Z *.tar *.tgz
173 +TODO COPYING* AUTHORS copyr-* copying.*
176 diff --git a/elf/.cvsignore b/elf/.cvsignore
177 deleted file mode 100644
178 index 3fc9f4c..0000000
182 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
183 -*.gz *.Z *.tar *.tgz
185 -TODO COPYING* AUTHORS copyr-* copying.*
188 diff --git a/elf/.gitignore b/elf/.gitignore
190 index 0000000..3fc9f4c
194 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
195 +*.gz *.Z *.tar *.tgz
197 +TODO COPYING* AUTHORS copyr-* copying.*
200 diff --git a/gmon/.cvsignore b/gmon/.cvsignore
201 deleted file mode 100644
202 index 3fc9f4c..0000000
203 --- a/gmon/.cvsignore
206 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
207 -*.gz *.Z *.tar *.tgz
209 -TODO COPYING* AUTHORS copyr-* copying.*
212 diff --git a/gmon/.gitignore b/gmon/.gitignore
214 index 0000000..3fc9f4c
216 +++ b/gmon/.gitignore
218 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
219 +*.gz *.Z *.tar *.tgz
221 +TODO COPYING* AUTHORS copyr-* copying.*
224 diff --git a/gnulib/.cvsignore b/gnulib/.cvsignore
225 deleted file mode 100644
226 index 3fc9f4c..0000000
227 --- a/gnulib/.cvsignore
230 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
231 -*.gz *.Z *.tar *.tgz
233 -TODO COPYING* AUTHORS copyr-* copying.*
236 diff --git a/gnulib/.gitignore b/gnulib/.gitignore
238 index 0000000..3fc9f4c
240 +++ b/gnulib/.gitignore
242 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
243 +*.gz *.Z *.tar *.tgz
245 +TODO COPYING* AUTHORS copyr-* copying.*
248 diff --git a/grp/.cvsignore b/grp/.cvsignore
249 deleted file mode 100644
250 index 3fc9f4c..0000000
254 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
255 -*.gz *.Z *.tar *.tgz
257 -TODO COPYING* AUTHORS copyr-* copying.*
260 diff --git a/grp/.gitignore b/grp/.gitignore
262 index 0000000..3fc9f4c
266 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
267 +*.gz *.Z *.tar *.tgz
269 +TODO COPYING* AUTHORS copyr-* copying.*
272 diff --git a/hurd/.cvsignore b/hurd/.cvsignore
273 deleted file mode 100644
274 index 3fc9f4c..0000000
275 --- a/hurd/.cvsignore
278 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
279 -*.gz *.Z *.tar *.tgz
281 -TODO COPYING* AUTHORS copyr-* copying.*
284 diff --git a/hurd/.gitignore b/hurd/.gitignore
286 index 0000000..3fc9f4c
288 +++ b/hurd/.gitignore
290 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
291 +*.gz *.Z *.tar *.tgz
293 +TODO COPYING* AUTHORS copyr-* copying.*
296 diff --git a/inet/.cvsignore b/inet/.cvsignore
297 deleted file mode 100644
298 index 3fc9f4c..0000000
299 --- a/inet/.cvsignore
302 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
303 -*.gz *.Z *.tar *.tgz
305 -TODO COPYING* AUTHORS copyr-* copying.*
308 diff --git a/inet/.gitignore b/inet/.gitignore
310 index 0000000..3fc9f4c
312 +++ b/inet/.gitignore
314 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
315 +*.gz *.Z *.tar *.tgz
317 +TODO COPYING* AUTHORS copyr-* copying.*
320 diff --git a/intl/.cvsignore b/intl/.cvsignore
321 deleted file mode 100644
322 index 3fc9f4c..0000000
323 --- a/intl/.cvsignore
326 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
327 -*.gz *.Z *.tar *.tgz
329 -TODO COPYING* AUTHORS copyr-* copying.*
332 diff --git a/intl/.gitignore b/intl/.gitignore
334 index 0000000..3fc9f4c
336 +++ b/intl/.gitignore
338 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
339 +*.gz *.Z *.tar *.tgz
341 +TODO COPYING* AUTHORS copyr-* copying.*
344 diff --git a/io/.cvsignore b/io/.cvsignore
345 deleted file mode 100644
346 index 3fc9f4c..0000000
350 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
351 -*.gz *.Z *.tar *.tgz
353 -TODO COPYING* AUTHORS copyr-* copying.*
356 diff --git a/io/.gitignore b/io/.gitignore
358 index 0000000..3fc9f4c
362 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
363 +*.gz *.Z *.tar *.tgz
365 +TODO COPYING* AUTHORS copyr-* copying.*
368 diff --git a/libio/.cvsignore b/libio/.cvsignore
369 deleted file mode 100644
370 index 602b74c..0000000
371 --- a/libio/.cvsignore
374 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
375 -*.gz *.Z *.tar *.tgz
377 -TODO COPYING* AUTHORS copyr-* copying.*
382 diff --git a/libio/.gitignore b/libio/.gitignore
384 index 0000000..602b74c
386 +++ b/libio/.gitignore
388 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
389 +*.gz *.Z *.tar *.tgz
391 +TODO COPYING* AUTHORS copyr-* copying.*
396 diff --git a/locale/.cvsignore b/locale/.cvsignore
397 deleted file mode 100644
398 index 3fc9f4c..0000000
399 --- a/locale/.cvsignore
402 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
403 -*.gz *.Z *.tar *.tgz
405 -TODO COPYING* AUTHORS copyr-* copying.*
408 diff --git a/locale/.gitignore b/locale/.gitignore
410 index 0000000..3fc9f4c
412 +++ b/locale/.gitignore
414 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
415 +*.gz *.Z *.tar *.tgz
417 +TODO COPYING* AUTHORS copyr-* copying.*
420 diff --git a/mach/.cvsignore b/mach/.cvsignore
421 deleted file mode 100644
422 index 3fc9f4c..0000000
423 --- a/mach/.cvsignore
426 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
427 -*.gz *.Z *.tar *.tgz
429 -TODO COPYING* AUTHORS copyr-* copying.*
432 diff --git a/mach/.gitignore b/mach/.gitignore
434 index 0000000..3fc9f4c
436 +++ b/mach/.gitignore
438 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
439 +*.gz *.Z *.tar *.tgz
441 +TODO COPYING* AUTHORS copyr-* copying.*
444 diff --git a/manual/.cvsignore b/manual/.cvsignore
445 deleted file mode 100644
446 index 54abbbb..0000000
447 --- a/manual/.cvsignore
450 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
451 -*.gz *.Z *.tar *.tgz *.bz2
453 -TODO COPYING* AUTHORS copyr-* copying.*
456 -*.dvi* *.info* *.c.texi *.ps *.pdf
457 -*.toc *.aux *.log *.tmp
458 -*.cp *.cps *.fn *.fns *.vr *.vrs *.tp *.tps *.ky *.kys *.pg *.pgs
460 -texis top-menu.texi chapters.texi summary.texi stamp-*
461 -distinfo dir-add.texinfo dir-add.texi
464 diff --git a/manual/.gitignore b/manual/.gitignore
466 index 0000000..54abbbb
468 +++ b/manual/.gitignore
470 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
471 +*.gz *.Z *.tar *.tgz *.bz2
473 +TODO COPYING* AUTHORS copyr-* copying.*
476 +*.dvi* *.info* *.c.texi *.ps *.pdf
477 +*.toc *.aux *.log *.tmp
478 +*.cp *.cps *.fn *.fns *.vr *.vrs *.tp *.tps *.ky *.kys *.pg *.pgs
480 +texis top-menu.texi chapters.texi summary.texi stamp-*
481 +distinfo dir-add.texinfo dir-add.texi
484 diff --git a/math/.cvsignore b/math/.cvsignore
485 deleted file mode 100644
486 index 3fc9f4c..0000000
487 --- a/math/.cvsignore
490 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
491 -*.gz *.Z *.tar *.tgz
493 -TODO COPYING* AUTHORS copyr-* copying.*
496 diff --git a/math/.gitignore b/math/.gitignore
498 index 0000000..3fc9f4c
500 +++ b/math/.gitignore
502 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
503 +*.gz *.Z *.tar *.tgz
505 +TODO COPYING* AUTHORS copyr-* copying.*
508 diff --git a/misc/.cvsignore b/misc/.cvsignore
509 deleted file mode 100644
510 index 3fc9f4c..0000000
511 --- a/misc/.cvsignore
514 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
515 -*.gz *.Z *.tar *.tgz
517 -TODO COPYING* AUTHORS copyr-* copying.*
520 diff --git a/misc/.gitignore b/misc/.gitignore
522 index 0000000..3fc9f4c
524 +++ b/misc/.gitignore
526 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
527 +*.gz *.Z *.tar *.tgz
529 +TODO COPYING* AUTHORS copyr-* copying.*
532 diff --git a/po/.cvsignore b/po/.cvsignore
533 deleted file mode 100644
534 index 37752e3..0000000
540 diff --git a/po/.gitignore b/po/.gitignore
542 index 0000000..37752e3
548 diff --git a/posix/.cvsignore b/posix/.cvsignore
549 deleted file mode 100644
550 index 3fc9f4c..0000000
551 --- a/posix/.cvsignore
554 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
555 -*.gz *.Z *.tar *.tgz
557 -TODO COPYING* AUTHORS copyr-* copying.*
560 diff --git a/posix/.gitignore b/posix/.gitignore
562 index 0000000..3fc9f4c
564 +++ b/posix/.gitignore
566 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
567 +*.gz *.Z *.tar *.tgz
569 +TODO COPYING* AUTHORS copyr-* copying.*
572 diff --git a/pwd/.cvsignore b/pwd/.cvsignore
573 deleted file mode 100644
574 index 3fc9f4c..0000000
578 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
579 -*.gz *.Z *.tar *.tgz
581 -TODO COPYING* AUTHORS copyr-* copying.*
584 diff --git a/pwd/.gitignore b/pwd/.gitignore
586 index 0000000..3fc9f4c
590 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
591 +*.gz *.Z *.tar *.tgz
593 +TODO COPYING* AUTHORS copyr-* copying.*
596 diff --git a/resolv/.cvsignore b/resolv/.cvsignore
597 deleted file mode 100644
598 index 3fc9f4c..0000000
599 --- a/resolv/.cvsignore
602 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
603 -*.gz *.Z *.tar *.tgz
605 -TODO COPYING* AUTHORS copyr-* copying.*
608 diff --git a/resolv/.gitignore b/resolv/.gitignore
610 index 0000000..3fc9f4c
612 +++ b/resolv/.gitignore
614 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
615 +*.gz *.Z *.tar *.tgz
617 +TODO COPYING* AUTHORS copyr-* copying.*
620 diff --git a/resource/.cvsignore b/resource/.cvsignore
621 deleted file mode 100644
622 index 3fc9f4c..0000000
623 --- a/resource/.cvsignore
626 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
627 -*.gz *.Z *.tar *.tgz
629 -TODO COPYING* AUTHORS copyr-* copying.*
632 diff --git a/resource/.gitignore b/resource/.gitignore
634 index 0000000..3fc9f4c
636 +++ b/resource/.gitignore
638 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
639 +*.gz *.Z *.tar *.tgz
641 +TODO COPYING* AUTHORS copyr-* copying.*
644 diff --git a/setjmp/.cvsignore b/setjmp/.cvsignore
645 deleted file mode 100644
646 index 3fc9f4c..0000000
647 --- a/setjmp/.cvsignore
650 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
651 -*.gz *.Z *.tar *.tgz
653 -TODO COPYING* AUTHORS copyr-* copying.*
656 diff --git a/setjmp/.gitignore b/setjmp/.gitignore
658 index 0000000..3fc9f4c
660 +++ b/setjmp/.gitignore
662 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
663 +*.gz *.Z *.tar *.tgz
665 +TODO COPYING* AUTHORS copyr-* copying.*
668 diff --git a/signal/.cvsignore b/signal/.cvsignore
669 deleted file mode 100644
670 index 3fc9f4c..0000000
671 --- a/signal/.cvsignore
674 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
675 -*.gz *.Z *.tar *.tgz
677 -TODO COPYING* AUTHORS copyr-* copying.*
680 diff --git a/signal/.gitignore b/signal/.gitignore
682 index 0000000..3fc9f4c
684 +++ b/signal/.gitignore
686 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
687 +*.gz *.Z *.tar *.tgz
689 +TODO COPYING* AUTHORS copyr-* copying.*
692 diff --git a/socket/.cvsignore b/socket/.cvsignore
693 deleted file mode 100644
694 index 3fc9f4c..0000000
695 --- a/socket/.cvsignore
698 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
699 -*.gz *.Z *.tar *.tgz
701 -TODO COPYING* AUTHORS copyr-* copying.*
704 diff --git a/socket/.gitignore b/socket/.gitignore
706 index 0000000..3fc9f4c
708 +++ b/socket/.gitignore
710 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
711 +*.gz *.Z *.tar *.tgz
713 +TODO COPYING* AUTHORS copyr-* copying.*
716 diff --git a/stdio-common/.cvsignore b/stdio-common/.cvsignore
717 deleted file mode 100644
718 index 602b74c..0000000
719 --- a/stdio-common/.cvsignore
722 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
723 -*.gz *.Z *.tar *.tgz
725 -TODO COPYING* AUTHORS copyr-* copying.*
730 diff --git a/stdio-common/.gitignore b/stdio-common/.gitignore
732 index 0000000..602b74c
734 +++ b/stdio-common/.gitignore
736 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
737 +*.gz *.Z *.tar *.tgz
739 +TODO COPYING* AUTHORS copyr-* copying.*
744 diff --git a/stdlib/.cvsignore b/stdlib/.cvsignore
745 deleted file mode 100644
746 index 602b74c..0000000
747 --- a/stdlib/.cvsignore
750 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
751 -*.gz *.Z *.tar *.tgz
753 -TODO COPYING* AUTHORS copyr-* copying.*
758 diff --git a/stdlib/.gitignore b/stdlib/.gitignore
760 index 0000000..602b74c
762 +++ b/stdlib/.gitignore
764 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
765 +*.gz *.Z *.tar *.tgz
767 +TODO COPYING* AUTHORS copyr-* copying.*
772 diff --git a/string/.cvsignore b/string/.cvsignore
773 deleted file mode 100644
774 index 3fc9f4c..0000000
775 --- a/string/.cvsignore
778 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
779 -*.gz *.Z *.tar *.tgz
781 -TODO COPYING* AUTHORS copyr-* copying.*
784 diff --git a/string/.gitignore b/string/.gitignore
786 index 0000000..3fc9f4c
788 +++ b/string/.gitignore
790 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
791 +*.gz *.Z *.tar *.tgz
793 +TODO COPYING* AUTHORS copyr-* copying.*
796 diff --git a/sunrpc/.cvsignore b/sunrpc/.cvsignore
797 deleted file mode 100644
798 index b2e79b5..0000000
799 --- a/sunrpc/.cvsignore
802 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
803 -*.gz *.Z *.tar *.tgz
805 -TODO COPYING* AUTHORS copyr-* copying.*
810 diff --git a/sunrpc/.gitignore b/sunrpc/.gitignore
812 index 0000000..b2e79b5
814 +++ b/sunrpc/.gitignore
816 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
817 +*.gz *.Z *.tar *.tgz
819 +TODO COPYING* AUTHORS copyr-* copying.*
824 diff --git a/sysdeps/mach/hurd/.cvsignore b/sysdeps/mach/hurd/.cvsignore
825 deleted file mode 100644
826 index 1f69fd9..0000000
827 --- a/sysdeps/mach/hurd/.cvsignore
830 -*.gz *.Z *.tar *.tgz
832 -TODO COPYING* AUTHORS copyr-* copying.*
834 diff --git a/sysdeps/mach/hurd/.gitignore b/sysdeps/mach/hurd/.gitignore
836 index 0000000..1f69fd9
838 +++ b/sysdeps/mach/hurd/.gitignore
840 +*.gz *.Z *.tar *.tgz
842 +TODO COPYING* AUTHORS copyr-* copying.*
844 diff --git a/sysdeps/unix/common/.cvsignore b/sysdeps/unix/common/.cvsignore
845 deleted file mode 100644
846 index 1f69fd9..0000000
847 --- a/sysdeps/unix/common/.cvsignore
850 -*.gz *.Z *.tar *.tgz
852 -TODO COPYING* AUTHORS copyr-* copying.*
854 diff --git a/sysdeps/unix/common/.gitignore b/sysdeps/unix/common/.gitignore
856 index 0000000..1f69fd9
858 +++ b/sysdeps/unix/common/.gitignore
860 +*.gz *.Z *.tar *.tgz
862 +TODO COPYING* AUTHORS copyr-* copying.*
864 diff --git a/sysvipc/.cvsignore b/sysvipc/.cvsignore
865 deleted file mode 100644
866 index 3fc9f4c..0000000
867 --- a/sysvipc/.cvsignore
870 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
871 -*.gz *.Z *.tar *.tgz
873 -TODO COPYING* AUTHORS copyr-* copying.*
876 diff --git a/sysvipc/.gitignore b/sysvipc/.gitignore
878 index 0000000..3fc9f4c
880 +++ b/sysvipc/.gitignore
882 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
883 +*.gz *.Z *.tar *.tgz
885 +TODO COPYING* AUTHORS copyr-* copying.*
888 diff --git a/termios/.cvsignore b/termios/.cvsignore
889 deleted file mode 100644
890 index 3fc9f4c..0000000
891 --- a/termios/.cvsignore
894 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
895 -*.gz *.Z *.tar *.tgz
897 -TODO COPYING* AUTHORS copyr-* copying.*
900 diff --git a/termios/.gitignore b/termios/.gitignore
902 index 0000000..3fc9f4c
904 +++ b/termios/.gitignore
906 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
907 +*.gz *.Z *.tar *.tgz
909 +TODO COPYING* AUTHORS copyr-* copying.*
912 diff --git a/time/.cvsignore b/time/.cvsignore
913 deleted file mode 100644
914 index 3fc9f4c..0000000
915 --- a/time/.cvsignore
918 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
919 -*.gz *.Z *.tar *.tgz
921 -TODO COPYING* AUTHORS copyr-* copying.*
924 diff --git a/time/.gitignore b/time/.gitignore
926 index 0000000..3fc9f4c
928 +++ b/time/.gitignore
930 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
931 +*.gz *.Z *.tar *.tgz
933 +TODO COPYING* AUTHORS copyr-* copying.*
936 diff --git a/wcsmbs/.cvsignore b/wcsmbs/.cvsignore
937 deleted file mode 100644
938 index 3fc9f4c..0000000
939 --- a/wcsmbs/.cvsignore
942 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
943 -*.gz *.Z *.tar *.tgz
945 -TODO COPYING* AUTHORS copyr-* copying.*
948 diff --git a/wcsmbs/.gitignore b/wcsmbs/.gitignore
950 index 0000000..3fc9f4c
952 +++ b/wcsmbs/.gitignore
954 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
955 +*.gz *.Z *.tar *.tgz
957 +TODO COPYING* AUTHORS copyr-* copying.*
960 diff --git a/wctype/.cvsignore b/wctype/.cvsignore
961 deleted file mode 100644
962 index 3fc9f4c..0000000
963 --- a/wctype/.cvsignore
966 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
967 -*.gz *.Z *.tar *.tgz
969 -TODO COPYING* AUTHORS copyr-* copying.*
972 diff --git a/wctype/.gitignore b/wctype/.gitignore
974 index 0000000..3fc9f4c
976 +++ b/wctype/.gitignore
978 +*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
979 +*.gz *.Z *.tar *.tgz
981 +TODO COPYING* AUTHORS copyr-* copying.*
984 commit b0a411e5ddb4d0e7e9eca017fd6e8c3c060071cb
985 Author: Ulrich Drepper <drepper@redhat.com>
986 Date: Fri May 15 13:02:02 2009 -0700
988 Ignore Emacs backup files.
989 (cherry picked from commit f1342e0be8e222dbca077beca94b5937564e8c4b)
991 diff --git a/.gitignore b/.gitignore
992 index 213609f..1518b6a 100644
997 *.d *.o *.so *.po *.go *.bo stamp.* *.stamp *.ustamp *.udeps
998 *.gz *.Z *.tar *.tgz *.bz2
1000 commit 85734801890201249fcf5270ca50ae0dbac77c94
1001 Author: Ulrich Drepper <drepper@redhat.com>
1002 Date: Fri May 15 19:47:10 2009 -0700
1004 Cleanup some .gitignore files.
1005 (cherry picked from commit 9a1fbe861d8ae41976f926a211d59098a030878f)
1007 diff --git a/.gitignore b/.gitignore
1008 index 1518b6a..d903bc6 100644
1013 -*.d *.o *.so *.po *.go *.bo stamp.* *.stamp *.ustamp *.udeps
1014 -*.gz *.Z *.tar *.tgz *.bz2
1031 -TODO AUTHORS copyr-* copying.*
1040 -sun[43]* i[345]86* hp300*
1045 -ieeetest hppa-sysdeps regex
1052 @@ -20,8 +40,10 @@ analysis
1056 -libc.prj .libc.prcs_aux
1065 diff --git a/manual/.gitignore b/manual/.gitignore
1066 index 54abbbb..27f045c 100644
1067 --- a/manual/.gitignore
1068 +++ b/manual/.gitignore
1070 -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
1071 -*.gz *.Z *.tar *.tgz *.bz2
1073 -TODO COPYING* AUTHORS copyr-* copying.*
1097 -*.dvi* *.info* *.c.texi *.ps *.pdf
1098 -*.toc *.aux *.log *.tmp
1099 -*.cp *.cps *.fn *.fns *.vr *.vrs *.tp *.tps *.ky *.kys *.pg *.pgs
1101 -texis top-menu.texi chapters.texi summary.texi stamp-*
1102 -distinfo dir-add.texinfo dir-add.texi
1113 commit f84a1e419017b86b4745ae983854b3d57e8c55f1
1114 Author: Ulrich Drepper <drepper@redhat.com>
1115 Date: Fri May 15 10:12:35 2009 -0700
1117 No cancel signal in unsafe places.
1119 When disabling async cancellation we cannot return from the function
1120 call if the thread is canceled. This happens when the cancel bits
1121 have been set before async cancel is disabled but the signal hasn't
1122 been sent/received yet. Delay for as long as necessary since
1123 otherwise the signal might be received in an unsafe context.
1124 (cherry picked from commit 1a7f254b4b0590bfab1baa1400705265b1b23b97)
1126 diff --git a/nptl/ChangeLog b/nptl/ChangeLog
1127 index b83dfd0..74a2a73 100644
1128 diff --git a/nptl/cancellation.c b/nptl/cancellation.c
1129 index 81134a6..4d528cf 100644
1130 --- a/nptl/cancellation.c
1131 +++ b/nptl/cancellation.c
1132 @@ -70,15 +70,17 @@ __pthread_disable_asynccancel (int oldtype)
1135 struct pthread *self = THREAD_SELF;
1138 #ifdef THREAD_ATOMIC_AND
1139 THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK);
1140 + newval = THREAD_GETMEM (self, cancelhandling);
1142 int oldval = THREAD_GETMEM (self, cancelhandling);
1146 - int newval = oldval & ~CANCELTYPE_BITMASK;
1147 + newval = oldval & ~CANCELTYPE_BITMASK;
1149 if (newval == oldval)
1151 @@ -92,4 +94,14 @@ __pthread_disable_asynccancel (int oldtype)
1156 + /* We cannot return when we are being canceled. Upon return the
1157 + thread might be things which would have to be undone. The
1158 + following loop should loop until the cancellation signal is
1160 + while (__builtin_expect (newval & CANCELED_BITMASK, 0))
1162 + lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE);
1163 + newval = THREAD_GETMEM (self, cancelhandling);
1166 diff --git a/nptl/libc-cancellation.c b/nptl/libc-cancellation.c
1167 index cf24f1c..35ac82b 100644
1168 --- a/nptl/libc-cancellation.c
1169 +++ b/nptl/libc-cancellation.c
1170 @@ -86,15 +86,17 @@ __libc_disable_asynccancel (int oldtype)
1173 struct pthread *self = THREAD_SELF;
1176 #ifdef THREAD_ATOMIC_AND
1177 THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK);
1178 + newval = THREAD_GETMEM (self, cancelhandling);
1180 int oldval = THREAD_GETMEM (self, cancelhandling);
1184 - int newval = oldval & ~CANCELTYPE_BITMASK;
1185 + newval = oldval & ~CANCELTYPE_BITMASK;
1187 if (newval == oldval)
1189 @@ -108,6 +110,16 @@ __libc_disable_asynccancel (int oldtype)
1194 + /* We cannot return when we are being canceled. Upon return the
1195 + thread might be things which would have to be undone. The
1196 + following loop should loop until the cancellation signal is
1198 + while (__builtin_expect (newval & CANCELED_BITMASK, 0))
1200 + lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE);
1201 + newval = THREAD_GETMEM (self, cancelhandling);
1206 commit 6b23316e66ec3d2f1417896e1fa25c24a8ae32d3
1207 Author: Ulrich Drepper <drepper@redhat.com>
1208 Date: Fri May 15 20:42:36 2009 -0700
1210 Fix change to prevent cancel signal in unsafe places.
1212 The bits tested to decide when to delay the return when switching
1213 off async cancel mode were wrong. Fix that. Also close a race
1214 condition in pthread_cancel where the bit indicating the cancellation
1215 is unconditionally set even if the cancel type might have changed.
1216 (cherry picked from commit 9437b427cec6266abd303983848549a5c4ba0d0a)
1218 diff --git a/nptl/ChangeLog b/nptl/ChangeLog
1219 index 74a2a73..f3bd32f 100644
1220 diff --git a/nptl/cancellation.c b/nptl/cancellation.c
1221 index 4d528cf..2a6f83d 100644
1222 --- a/nptl/cancellation.c
1223 +++ b/nptl/cancellation.c
1224 @@ -72,10 +72,6 @@ __pthread_disable_asynccancel (int oldtype)
1225 struct pthread *self = THREAD_SELF;
1228 -#ifdef THREAD_ATOMIC_AND
1229 - THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK);
1230 - newval = THREAD_GETMEM (self, cancelhandling);
1232 int oldval = THREAD_GETMEM (self, cancelhandling);
1235 @@ -93,13 +89,13 @@ __pthread_disable_asynccancel (int oldtype)
1236 /* Prepare the next round. */
1241 /* We cannot return when we are being canceled. Upon return the
1242 thread might be things which would have to be undone. The
1243 following loop should loop until the cancellation signal is
1245 - while (__builtin_expect (newval & CANCELED_BITMASK, 0))
1246 + while (__builtin_expect ((newval & (CANCELING_BITMASK | CANCELED_BITMASK))
1247 + == CANCELING_BITMASK, 0))
1249 lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE);
1250 newval = THREAD_GETMEM (self, cancelhandling);
1251 diff --git a/nptl/libc-cancellation.c b/nptl/libc-cancellation.c
1252 index 35ac82b..cada464 100644
1253 --- a/nptl/libc-cancellation.c
1254 +++ b/nptl/libc-cancellation.c
1255 @@ -88,10 +88,6 @@ __libc_disable_asynccancel (int oldtype)
1256 struct pthread *self = THREAD_SELF;
1259 -#ifdef THREAD_ATOMIC_AND
1260 - THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK);
1261 - newval = THREAD_GETMEM (self, cancelhandling);
1263 int oldval = THREAD_GETMEM (self, cancelhandling);
1266 @@ -109,13 +105,13 @@ __libc_disable_asynccancel (int oldtype)
1267 /* Prepare the next round. */
1272 /* We cannot return when we are being canceled. Upon return the
1273 thread might be things which would have to be undone. The
1274 following loop should loop until the cancellation signal is
1276 - while (__builtin_expect (newval & CANCELED_BITMASK, 0))
1277 + while (__builtin_expect ((newval & (CANCELING_BITMASK | CANCELED_BITMASK))
1278 + == CANCELING_BITMASK, 0))
1280 lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE);
1281 newval = THREAD_GETMEM (self, cancelhandling);
1282 diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c
1283 index a13af56..55bb0da 100644
1284 --- a/nptl/pthread_cancel.c
1285 +++ b/nptl/pthread_cancel.c
1287 -/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
1288 +/* Copyright (C) 2002, 2003, 2004, 2009 Free Software Foundation, Inc.
1289 This file is part of the GNU C Library.
1290 Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
1292 @@ -44,6 +44,7 @@ pthread_cancel (th)
1297 oldval = pd->cancelhandling;
1298 newval = oldval | CANCELING_BITMASK | CANCELED_BITMASK;
1300 @@ -59,7 +60,10 @@ pthread_cancel (th)
1301 if (CANCEL_ENABLED_AND_CANCELED_AND_ASYNCHRONOUS (newval))
1303 /* Mark the cancellation as "in progress". */
1304 - atomic_bit_set (&pd->cancelhandling, CANCELING_BIT);
1305 + if (atomic_compare_and_exchange_bool_acq (&pd->cancelhandling,
1306 + oldval | CANCELING_BITMASK,
1310 /* The cancellation handler will take care of marking the
1311 thread as canceled. */
1312 commit 6dca80c9c771c5c4728a8c335861300bce93f8a0
1313 Author: Jakub Jelinek <jakub@redhat.com>
1314 Date: Fri May 15 20:48:08 2009 -0700
1316 Don't try to cleanup libselinux and libaudit.
1318 Because we are not shutting down the other threads first another
1319 thread might work on a query before the process shuts down. In this
1320 case the now uninitialized libselinux and libaudit might be used.
1321 Just don't free the resources. It's not necessary anyway because
1322 the process is about to terminate.
1323 (cherry picked from commit 9e471dad8e173806cbbfb704875d5ae40e36fa34)
1324 (fixed ChangeLog entry by pasky)
1326 diff --git a/ChangeLog b/ChangeLog
1327 index e3afa85..3f41c66 100644
1328 diff --git a/nscd/nscd.c b/nscd/nscd.c
1329 index 3265ea8..b9035f2 100644
1332 @@ -488,10 +488,6 @@ termination_handler (int signum)
1333 msync (dbs[cnt].head, dbs[cnt].memsize, MS_ASYNC);
1336 - /* Shutdown the SELinux AVC. */
1337 - if (selinux_enabled)
1338 - nscd_avc_destroy ();
1340 _exit (EXIT_SUCCESS);
1343 diff --git a/nscd/selinux.c b/nscd/selinux.c
1344 index 9a167ec..e07a454 100644
1345 --- a/nscd/selinux.c
1346 +++ b/nscd/selinux.c
1348 /* SELinux access controls for nscd.
1349 - Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
1350 + Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
1351 This file is part of the GNU C Library.
1352 Contributed by Matthew Rickard <mjricka@epoch.ncsc.mil>, 2004.
1354 @@ -418,15 +418,4 @@ nscd_avc_print_stats (struct avc_cache_stats *cstats)
1355 cstats->cav_probes, cstats->cav_misses);
1359 -/* Clean up the AVC before exiting. */
1361 -nscd_avc_destroy (void)
1364 -#ifdef HAVE_LIBAUDIT
1365 - audit_close (audit_fd);
1369 #endif /* HAVE_SELINUX */
1370 diff --git a/nscd/selinux.h b/nscd/selinux.h
1371 index 27afcd6..67d981b 100644
1372 --- a/nscd/selinux.h
1373 +++ b/nscd/selinux.h
1375 /* Header for nscd SELinux access controls.
1376 - Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
1377 + Copyright (C) 2004, 2006, 2007, 2009 Free Software Foundation, Inc.
1378 This file is part of the GNU C Library.
1379 Contributed by Matthew Rickard <mjricka@epoch.ncsc.mil>, 2004.
1381 @@ -35,8 +35,6 @@ struct avc_cache_stats;
1383 /* Initialize the userspace AVC. */
1384 extern void nscd_avc_init (void);
1385 -/* Destroy the userspace AVC. */
1386 -extern void nscd_avc_destroy (void);
1387 /* Determine if we are running on an SELinux kernel. */
1388 extern void nscd_selinux_enabled (int *selinux_enabled);
1389 /* Check if the client has permission for the request type. */
1390 @@ -55,7 +53,6 @@ extern void install_real_capabilities (cap_t new_caps);
1392 # define selinux_enabled 0
1393 # define nscd_avc_init() (void) 0
1394 -# define nscd_avc_destroy() (void) 0
1395 # define nscd_selinux_enabled(selinux_enabled) (void) 0
1396 # define nscd_request_avc_has_perm(fd, req) 0
1397 # define nscd_avc_cache_stats(cstats) (void) 0
1398 commit f27dc66bb946b74df6817768758b1de49d4be887
1399 Author: Jakub Jelinek <jakub@redhat.com>
1400 Date: Fri May 15 21:08:55 2009 -0700
1402 Avoid double definition of catomic_compare_and_exchange_val_acq.
1403 (cherry picked from commit 3b1b533bc3239ef6df1e40e0088e7270ac060be6)
1405 diff --git a/ChangeLog b/ChangeLog
1406 index 3f41c66..b584ec6 100644
1407 diff --git a/include/atomic.h b/include/atomic.h
1408 index 7c0548b..9366f78 100644
1409 --- a/include/atomic.h
1410 +++ b/include/atomic.h
1415 -#if !defined catomic_compare_and_exchange_val_acq \
1416 - && defined __arch_c_compare_and_exchange_val_32_acq
1417 -# define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \
1418 +#ifndef catomic_compare_and_exchange_val_acq
1419 +# ifdef __arch_c_compare_and_exchange_val_32_acq
1420 +# define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \
1421 __atomic_val_bysize (__arch_c_compare_and_exchange_val,acq, \
1422 mem, newval, oldval)
1424 -# define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \
1426 +# define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \
1427 atomic_compare_and_exchange_val_acq (mem, newval, oldval)
1433 # define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
1434 __atomic_bool_bysize (__arch_compare_and_exchange_bool,acq, \
1435 mem, newval, oldval)
1437 -# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
1439 +# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
1440 ({ /* Cannot use __oldval here, because macros later in this file might \
1441 call this macro with __oldval argument. */ \
1442 __typeof (oldval) __atg3_old = (oldval); \
1444 # define catomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
1445 __atomic_bool_bysize (__arch_c_compare_and_exchange_bool,acq, \
1446 mem, newval, oldval)
1448 -# define catomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
1450 +# define catomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
1451 ({ /* Cannot use __oldval here, because macros later in this file might \
1452 call this macro with __oldval argument. */ \
1453 __typeof (oldval) __atg4_old = (oldval); \
1454 commit b9e0df9847f3460c67e27e631af8662e7906ed6b
1455 Author: Jakub Jelinek <jakub@redhat.com>
1456 Date: Fri May 15 21:17:08 2009 -0700
1458 Robustify libc-side nscd database reader.
1460 The nscd database mapped in processes can change at any time. We
1461 have to be more vigilant when it comes to using that memory. Test
1462 the data entries are valid in their entire size, don't read data
1463 again from memory once we verified it, and make sure the trailing
1464 pointer is not going off the deep end.
1465 (cherry picked from commit cfe1fc1013d0e7e4863c974fa0e78891cc0a2ed2)
1467 diff --git a/ChangeLog b/ChangeLog
1468 index b584ec6..a672e15 100644
1469 diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h
1470 index 3c9688f..f66a658 100644
1471 --- a/nscd/nscd-client.h
1472 +++ b/nscd/nscd-client.h
1474 -/* Copyright (c) 1998, 1999, 2000, 2003, 2004, 2005, 2006, 2007
1475 +/* Copyright (c) 1998, 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009
1476 Free Software Foundation, Inc.
1477 This file is part of the GNU C Library.
1478 Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
1479 @@ -329,7 +329,8 @@ static inline int __nscd_drop_map_ref (struct mapped_database *map,
1480 extern struct datahead *__nscd_cache_search (request_type type,
1483 - const struct mapped_database *mapped);
1484 + const struct mapped_database *mapped,
1487 /* Wrappers around read, readv and write that only read/write less than LEN
1488 bytes on error or EOF. */
1489 diff --git a/nscd/nscd_getai.c b/nscd/nscd_getai.c
1490 index 674a5e7..d1c5cd1 100644
1491 --- a/nscd/nscd_getai.c
1492 +++ b/nscd/nscd_getai.c
1494 -/* Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
1495 +/* Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009
1496 + Free Software Foundation, Inc.
1497 This file is part of the GNU C Library.
1498 Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
1500 @@ -75,7 +76,7 @@ __nscd_getai (const char *key, struct nscd_ai_result **result, int *h_errnop)
1501 if (mapped != NO_MAPPING)
1503 struct datahead *found = __nscd_cache_search (GETAI, key, keylen,
1505 + mapped, sizeof ai_resp);
1508 respdata = (char *) (&found->data[0].aidata + 1);
1509 diff --git a/nscd/nscd_getgr_r.c b/nscd/nscd_getgr_r.c
1510 index b84b06b..c2d204c 100644
1511 --- a/nscd/nscd_getgr_r.c
1512 +++ b/nscd/nscd_getgr_r.c
1514 -/* Copyright (C) 1998-2000, 2002-2005, 2006, 2007
1515 +/* Copyright (C) 1998-2000, 2002-2005, 2006, 2007, 2009
1516 Free Software Foundation, Inc.
1517 This file is part of the GNU C Library.
1518 Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 1998.
1519 @@ -107,7 +107,8 @@ nscd_getgr_r (const char *key, size_t keylen, request_type type,
1521 if (mapped != NO_MAPPING)
1523 - struct datahead *found = __nscd_cache_search (type, key, keylen, mapped);
1524 + struct datahead *found = __nscd_cache_search (type, key, keylen, mapped,
1528 len = (const uint32_t *) (&found->data[0].grdata + 1);
1529 diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c
1530 index aea8288..70631fa 100644
1531 --- a/nscd/nscd_gethst_r.c
1532 +++ b/nscd/nscd_gethst_r.c
1534 -/* Copyright (C) 1998-2005, 2006, 2007, 2008 Free Software Foundation, Inc.
1535 +/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009
1536 + Free Software Foundation, Inc.
1537 This file is part of the GNU C Library.
1538 Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
1540 @@ -137,7 +138,8 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type,
1541 if (mapped != NO_MAPPING)
1543 /* No const qualifier, as it can change during garbage collection. */
1544 - struct datahead *found = __nscd_cache_search (type, key, keylen, mapped);
1545 + struct datahead *found = __nscd_cache_search (type, key, keylen, mapped,
1549 h_name = (char *) (&found->data[0].hstdata + 1);
1550 diff --git a/nscd/nscd_getpw_r.c b/nscd/nscd_getpw_r.c
1551 index 21f792b..8a4449d 100644
1552 --- a/nscd/nscd_getpw_r.c
1553 +++ b/nscd/nscd_getpw_r.c
1555 -/* Copyright (C) 1998, 1999, 2003, 2004, 2005, 2007
1556 +/* Copyright (C) 1998, 1999, 2003, 2004, 2005, 2007, 2009
1557 Free Software Foundation, Inc.
1558 This file is part of the GNU C Library.
1559 Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 1998.
1560 @@ -104,7 +104,8 @@ nscd_getpw_r (const char *key, size_t keylen, request_type type,
1562 if (mapped != NO_MAPPING)
1564 - struct datahead *found = __nscd_cache_search (type, key, keylen, mapped);
1565 + struct datahead *found = __nscd_cache_search (type, key, keylen, mapped,
1569 pw_name = (const char *) (&found->data[0].pwdata + 1);
1570 diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c
1571 index b1ad7e2..dce4165 100644
1572 --- a/nscd/nscd_getserv_r.c
1573 +++ b/nscd/nscd_getserv_r.c
1575 -/* Copyright (C) 2007 Free Software Foundation, Inc.
1576 +/* Copyright (C) 2007, 2009 Free Software Foundation, Inc.
1577 This file is part of the GNU C Library.
1578 Contributed by Ulrich Drepper <drepper@redhat.com>, 2007.
1580 @@ -104,7 +104,8 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
1582 if (mapped != NO_MAPPING)
1584 - struct datahead *found = __nscd_cache_search (type, key, keylen, mapped);
1585 + struct datahead *found = __nscd_cache_search (type, key, keylen, mapped,
1586 + sizeof serv_resp);
1590 diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c
1591 index cd3fa24..db24796 100644
1592 --- a/nscd/nscd_helper.c
1593 +++ b/nscd/nscd_helper.c
1597 #include <stdbool.h>
1598 +#include <stddef.h>
1602 @@ -472,18 +473,20 @@ __nscd_get_map_ref (request_type type, const char *name,
1603 garbage collection. */
1605 __nscd_cache_search (request_type type, const char *key, size_t keylen,
1606 - const struct mapped_database *mapped)
1607 + const struct mapped_database *mapped, size_t datalen)
1609 unsigned long int hash = __nis_hash (key, keylen) % mapped->head->module;
1610 size_t datasize = mapped->datasize;
1612 ref_t trail = mapped->head->array[hash];
1613 + trail = atomic_forced_read (trail);
1617 while (work != ENDREF && work + sizeof (struct hashentry) <= datasize)
1619 struct hashentry *here = (struct hashentry *) (mapped->data + work);
1620 + ref_t here_key, here_packet;
1622 #ifndef _STRING_ARCH_unaligned
1623 /* Although during garbage collection when moving struct hashentry
1624 @@ -498,13 +501,14 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
1626 if (type == here->type
1627 && keylen == here->len
1628 - && here->key + keylen <= datasize
1629 - && memcmp (key, mapped->data + here->key, keylen) == 0
1630 - && here->packet + sizeof (struct datahead) <= datasize)
1631 + && (here_key = atomic_forced_read (here->key)) + keylen <= datasize
1632 + && memcmp (key, mapped->data + here_key, keylen) == 0
1633 + && ((here_packet = atomic_forced_read (here->packet))
1634 + + sizeof (struct datahead) <= datasize))
1636 /* We found the entry. Increment the appropriate counter. */
1638 - = (struct datahead *) (mapped->data + here->packet);
1639 + = (struct datahead *) (mapped->data + here_packet);
1641 #ifndef _STRING_ARCH_unaligned
1642 if ((uintptr_t) dh & (__alignof__ (*dh) - 1))
1643 @@ -513,11 +517,14 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
1645 /* See whether we must ignore the entry or whether something
1646 is wrong because garbage collection is in progress. */
1647 - if (dh->usable && here->packet + dh->allocsize <= datasize)
1649 + && here_packet + dh->allocsize <= datasize
1650 + && (here_packet + offsetof (struct datahead, data) + datalen
1655 - work = here->next;
1656 + work = atomic_forced_read (here->next);
1657 /* Prevent endless loops. This should never happen but perhaps
1658 the database got corrupted, accidentally or deliberately. */
1660 @@ -532,7 +539,11 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
1661 if ((uintptr_t) trailelem & (__alignof__ (*trailelem) - 1))
1664 - trail = trailelem->next;
1666 + if (trail + sizeof (struct hashentry) > datasize)
1669 + trail = atomic_forced_read (trailelem->next);
1673 diff --git a/nscd/nscd_initgroups.c b/nscd/nscd_initgroups.c
1674 index 866455a..5ff60c0 100644
1675 --- a/nscd/nscd_initgroups.c
1676 +++ b/nscd/nscd_initgroups.c
1678 -/* Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
1679 +/* Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
1680 This file is part of the GNU C Library.
1681 Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
1683 @@ -55,7 +55,8 @@ __nscd_getgrouplist (const char *user, gid_t group, long int *size,
1684 if (mapped != NO_MAPPING)
1686 struct datahead *found = __nscd_cache_search (INITGROUPS, user,
1689 + sizeof initgr_resp);
1692 respdata = (char *) (&found->data[0].initgrdata + 1);
1693 commit 4c7cb20430af51ddebf270b423d5c4aec3b9f770
1694 Author: Ulrich Drepper <drepper@redhat.com>
1695 Date: Fri May 15 21:33:43 2009 -0700
1697 Further robustify nscd database lookup.
1699 We can compute an absolute maximum for the number of elements which
1700 can fit into the currently mapped database. Stop after that many
1702 (cherry picked from commit 831a40494d44045c0caaf8085ab1d35c0da23140)
1704 diff --git a/ChangeLog b/ChangeLog
1705 index a672e15..9001fb7 100644
1706 diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h
1707 index f66a658..81ca3d5 100644
1708 --- a/nscd/nscd-client.h
1709 +++ b/nscd/nscd-client.h
1711 /* Path for the configuration file. */
1712 #define _PATH_NSCDCONF "/etc/nscd.conf"
1714 -/* Maximu allowed length for the key. */
1715 +/* Maximum allowed length for the key. */
1716 #define MAXKEYLEN 1024
1718 +/* Maximum alignment requirement we will encounter. */
1719 +#define BLOCK_ALIGN_LOG 3
1720 +#define BLOCK_ALIGN (1 << BLOCK_ALIGN_LOG)
1721 +#define BLOCK_ALIGN_M1 (BLOCK_ALIGN - 1)
1724 /* Available services. */
1726 diff --git a/nscd/nscd.h b/nscd/nscd.h
1727 index 3279b85..632bf58 100644
1730 @@ -111,11 +111,6 @@ struct database_dyn
1731 /* Path used when not using persistent storage. */
1732 #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX"
1734 -/* Maximum alignment requirement we will encounter. */
1735 -#define BLOCK_ALIGN_LOG 3
1736 -#define BLOCK_ALIGN (1 << BLOCK_ALIGN_LOG)
1737 -#define BLOCK_ALIGN_M1 (BLOCK_ALIGN - 1)
1739 /* Default value for the maximum size of the database files. */
1740 #define DEFAULT_MAX_DB_SIZE (32 * 1024 * 1024)
1742 diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c
1743 index db24796..80ee3e1 100644
1744 --- a/nscd/nscd_helper.c
1745 +++ b/nscd/nscd_helper.c
1746 @@ -481,6 +481,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
1747 ref_t trail = mapped->head->array[hash];
1748 trail = atomic_forced_read (trail);
1750 + size_t loop_cnt = datasize / (offsetof (struct datahead, data) + datalen);
1753 while (work != ENDREF && work + sizeof (struct hashentry) <= datasize)
1754 @@ -527,7 +528,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
1755 work = atomic_forced_read (here->next);
1756 /* Prevent endless loops. This should never happen but perhaps
1757 the database got corrupted, accidentally or deliberately. */
1758 - if (work == trail)
1759 + if (work == trail || loop_cnt-- > 0)
1763 commit 223e614dafc55a14889355e95367e216d2fd320e
1764 Author: Ulrich Drepper <drepper@redhat.com>
1765 Date: Sat May 16 10:10:32 2009 -0700
1769 The patch to bound the search in the nscd caches used a wrong exit
1770 condition. Fixed now.
1771 (cherry picked from commit 95410b7ba23c44f6a038285d9c38ee84129e4cd6)
1773 diff --git a/ChangeLog b/ChangeLog
1774 index 9001fb7..7d55188 100644
1775 diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c
1776 index 80ee3e1..c09f008 100644
1777 --- a/nscd/nscd_helper.c
1778 +++ b/nscd/nscd_helper.c
1779 @@ -528,7 +528,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
1780 work = atomic_forced_read (here->next);
1781 /* Prevent endless loops. This should never happen but perhaps
1782 the database got corrupted, accidentally or deliberately. */
1783 - if (work == trail || loop_cnt-- > 0)
1784 + if (work == trail || loop_cnt-- == 0)
1788 commit e856702a047ee2cf4e7d3153d6adc8b740803770
1789 Author: Ulrich Drepper <drepper@redhat.com>
1790 Date: Sat May 16 10:29:43 2009 -0700
1792 Move BLOCK_ALIGN* macros back.
1794 The move to nscd-client.h was only needed for some interim version
1795 of the patch. The final version doesn't need it. Undo the change.
1796 (cherry picked from commit fa546abe9d0346d5d87b8fe19884993408476d77)
1798 diff --git a/ChangeLog b/ChangeLog
1799 index 7d55188..eceae0b 100644
1800 diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h
1801 index 81ca3d5..c6c09cb 100644
1802 --- a/nscd/nscd-client.h
1803 +++ b/nscd/nscd-client.h
1805 /* Maximum allowed length for the key. */
1806 #define MAXKEYLEN 1024
1808 -/* Maximum alignment requirement we will encounter. */
1809 -#define BLOCK_ALIGN_LOG 3
1810 -#define BLOCK_ALIGN (1 << BLOCK_ALIGN_LOG)
1811 -#define BLOCK_ALIGN_M1 (BLOCK_ALIGN - 1)
1814 /* Available services. */
1816 diff --git a/nscd/nscd.h b/nscd/nscd.h
1817 index 632bf58..3279b85 100644
1820 @@ -111,6 +111,11 @@ struct database_dyn
1821 /* Path used when not using persistent storage. */
1822 #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX"
1824 +/* Maximum alignment requirement we will encounter. */
1825 +#define BLOCK_ALIGN_LOG 3
1826 +#define BLOCK_ALIGN (1 << BLOCK_ALIGN_LOG)
1827 +#define BLOCK_ALIGN_M1 (BLOCK_ALIGN - 1)
1829 /* Default value for the maximum size of the database files. */
1830 #define DEFAULT_MAX_DB_SIZE (32 * 1024 * 1024)
1832 commit 94c11628f5d077da7ce5372019ab3af73efb67f3
1833 Author: Ulrich Drepper <drepper@redhat.com>
1834 Date: Sat May 16 11:39:39 2009 -0700
1836 Unify __WAIT_INT definition in stdlib.h and sys/wait.h.
1838 This fixes BZ #10159. The stdlib.h definition was out of date.
1839 (cherry picked from commit a64039b084ae3faca3336b7d95f2e40c497d20e1)
1841 diff --git a/ChangeLog b/ChangeLog
1842 index eceae0b..772438d 100644
1843 diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
1844 index 77bb860..5b084ef 100644
1845 --- a/stdlib/stdlib.h
1846 +++ b/stdlib/stdlib.h
1847 @@ -48,9 +48,9 @@ __BEGIN_DECLS
1848 as well as POSIX.1 use of `int' for the status word. */
1850 # if defined __GNUC__ && !defined __cplusplus
1851 -# define __WAIT_INT(status) \
1852 - (__extension__ ({ union { __typeof(status) __in; int __i; } __u; \
1853 - __u.__in = (status); __u.__i; }))
1854 +# define __WAIT_INT(status) \
1855 + (__extension__ (((union { __typeof(status) __in; int __i; }) \
1856 + { .__in = (status) }).__i))
1858 # define __WAIT_INT(status) (*(int *) &(status))
1860 commit cd816bef9505a03a9c0cfebbedb75bbfd779c147
1861 Author: Jakub Jelinek <jakub@redhat.com>
1862 Date: Mon May 18 10:19:50 2009 -0700
1864 Fix forced loop termination in nscd database lookup.
1866 There are two issues with the forced loop exit in the nscd lookup:
1867 1. the estimate of the entry size isn't pessimistic enough for all
1868 databases, resulting potentially is too early exits
1869 2. the combination of 64-bit process and 32-bit nscd would lead to
1870 rejecting valid records in the database.
1871 (cherry picked from commit 5078fff6c4bc1c71c5d558ff7ec4775aa48b0c11)
1873 diff --git a/ChangeLog b/ChangeLog
1874 index 772438d..356b9fb 100644
1875 diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c
1876 index c09f008..fe63f9a 100644
1877 --- a/nscd/nscd_helper.c
1878 +++ b/nscd/nscd_helper.c
1879 @@ -468,6 +468,15 @@ __nscd_get_map_ref (request_type type, const char *name,
1883 +/* Using sizeof (hashentry) is not always correct to determine the size of
1884 + the data structure as found in the nscd cache. The program could be
1885 + a 64-bit process and nscd could be a 32-bit process. In this case
1886 + sizeof (hashentry) would overestimate the size. The following is
1887 + the minimum size of such an entry, good enough for our tests here. */
1888 +#define MINIMUM_HASHENTRY_SIZE \
1889 + (offsetof (struct hashentry, dellist) + sizeof (int32_t))
1892 /* Don't return const struct datahead *, as eventhough the record
1893 is normally constant, it can change arbitrarily during nscd
1894 garbage collection. */
1895 @@ -481,10 +490,11 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
1896 ref_t trail = mapped->head->array[hash];
1897 trail = atomic_forced_read (trail);
1899 - size_t loop_cnt = datasize / (offsetof (struct datahead, data) + datalen);
1900 + size_t loop_cnt = datasize / (MINIMUM_HASHENTRY_SIZE
1901 + + offsetof (struct datahead, data) / 2);
1904 - while (work != ENDREF && work + sizeof (struct hashentry) <= datasize)
1905 + while (work != ENDREF && work + MINIMUM_HASHENTRY_SIZE <= datasize)
1907 struct hashentry *here = (struct hashentry *) (mapped->data + work);
1908 ref_t here_key, here_packet;
1909 @@ -541,7 +551,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
1913 - if (trail + sizeof (struct hashentry) > datasize)
1914 + if (trail + MINIMUM_HASHENTRY_SIZE > datasize)
1917 trail = atomic_forced_read (trailelem->next);
1918 commit 917dc587df5b051e5a13647f11e8ca824cb30cd7
1919 Author: Jakub Jelinek <jakub@redhat.com>
1920 Date: Thu May 21 18:15:26 2009 -0700
1922 Correct socketcall argument for accept4.
1924 The header had the old name (paccept).
1925 (cherry picked from commit a2292378d0d629c26edfae6b197efbdb362a7094)
1927 diff --git a/ChangeLog b/ChangeLog
1928 index 356b9fb..16f3e53 100644
1929 diff --git a/sysdeps/unix/sysv/linux/socketcall.h b/sysdeps/unix/sysv/linux/socketcall.h
1930 index 24ec9ee..adf01b6 100644
1931 --- a/sysdeps/unix/sysv/linux/socketcall.h
1932 +++ b/sysdeps/unix/sysv/linux/socketcall.h
1934 /* ID for functions called via socketcall system call.
1935 - Copyright (C) 1995, 1996, 2008 Free Software Foundation, Inc.
1936 + Copyright (C) 1995, 1996, 2008, 2009 Free Software Foundation, Inc.
1937 This file is part of the GNU C Library.
1939 The GNU C Library is free software; you can redistribute it and/or
1941 #define SOCKOP_getsockopt 15
1942 #define SOCKOP_sendmsg 16
1943 #define SOCKOP_recvmsg 17
1944 -#define SOCKOP_paccept 18
1945 +#define SOCKOP_accept4 18
1947 #endif /* sys/socketcall.h */
1948 commit a1223d660444de94f267d77512ea1a93a2dd9a14
1949 Author: Jakub Jelinek <jakub@redhat.com>
1950 Date: Thu May 21 18:16:59 2009 -0700
1952 Remove __NR_accept4 definition.
1954 This definition was meant to be removed before the checkin. It was
1955 used in the development.
1956 (cherry picked from commit d14eda9310125ddf8fe66df01bbe46ab7d226a5e)
1958 diff --git a/ChangeLog b/ChangeLog
1959 index 16f3e53..dd4e672 100644
1960 diff --git a/sysdeps/unix/sysv/linux/accept4.c b/sysdeps/unix/sysv/linux/accept4.c
1961 index 97f7b8c..4be710f 100644
1962 --- a/sysdeps/unix/sysv/linux/accept4.c
1963 +++ b/sysdeps/unix/sysv/linux/accept4.c
1965 -/* Copyright (C) 2008 Free Software Foundation, Inc.
1966 +/* Copyright (C) 2008, 2009 Free Software Foundation, Inc.
1967 This file is part of the GNU C Library.
1968 Contributed by Ulrich Drepper <drepper@redhat.com>, 2008.
1971 #include <sysdep-cancel.h>
1972 #include <sys/syscall.h>
1974 -#define __NR_accept4 288
1979 commit 127bcb269a4f04f571c038c1cda8551c87a73500
1980 Author: Ulrich Drepper <drepper@redhat.com>
1981 Date: Thu May 21 18:23:57 2009 -0700
1983 Don't define __ASSUME_ACCEPT4 for IA-64.
1984 (cherry picked from commit 3533b1a6a6a6b7e350b7a9459f8152b1f9f0364a)
1986 diff --git a/ChangeLog b/ChangeLog
1987 index dd4e672..c527543 100644
1988 diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
1989 index 473360a..4562515 100644
1990 --- a/sysdeps/unix/sysv/linux/kernel-features.h
1991 +++ b/sysdeps/unix/sysv/linux/kernel-features.h
1993 /* Support for the accept4 syscall was added in 2.6.28. */
1994 #if __LINUX_KERNEL_VERSION >= 0x02061c \
1995 && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
1996 - || defined __ia64__ || defined __sparc__ || defined __s390__)
1997 + || defined __sparc__ || defined __s390__)
1998 # define __ASSUME_ACCEPT4 1
2001 commit 5d45e59ea6c702ffbd15476e121a4feca7bc93d0
2002 Author: Ulrich Drepper <drepper@redhat.com>
2003 Date: Thu May 21 18:47:59 2009 -0700
2005 Fix IA-64 memchr read-ahead.
2007 The latest stratcliff extension exposed a bug in the IA-64 memchr which
2008 uses non-speculative loads to prefetch data. Change the code to use
2009 speculative loads with appropriate fixup. Fixes BZ 10162.
2010 (cherry picked from commit fa64b7f76b97930cd2aaf7bfd305cac3d925cd8f)
2012 diff --git a/ChangeLog b/ChangeLog
2013 index c527543..6ad9ad8 100644
2014 diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S
2015 index e9a7ba8..cd062b2 100644
2016 --- a/sysdeps/ia64/memchr.S
2017 +++ b/sysdeps/ia64/memchr.S
2018 @@ -96,7 +96,8 @@ ENTRY(__memchr)
2019 mov pr.rot = 1 << 16 ;;
2021 (p[0]) mov addr[0] = ret0
2022 -(p[0]) ld8 value[0] = [ret0], 8
2023 +(p[0]) ld8.s value[0] = [ret0], 8 // speculative load
2024 +(p[MEMLAT]) chk.s value[MEMLAT], .recovery // check and recovery
2025 (p[MEMLAT]) xor aux[0] = value[MEMLAT], chrx8
2026 (p[MEMLAT+1]) czx1.r poschr[0] = aux[1]
2027 (p[MEMLAT+2]) cmp.ne p7, p0 = 8, poschr[1]
2028 @@ -124,6 +125,20 @@ ENTRY(__memchr)
2029 mov ar.lc = saved_lc
2033 + adds ret0 = -((MEMLAT + 1) * 8), ret0;;
2034 +(p[MEMLAT+1]) add ret0 = -8, ret0;;
2035 +(p[MEMLAT+2]) add ret0 = -8, ret0;;
2037 + mov addr[MEMLAT+2] = ret0
2038 + ld8 tmp = [ret0];; // load the first unchecked 8byte
2039 + xor aux[1] = tmp, chrx8;;
2040 + czx1.r poschr[1] = aux[1];;
2041 + cmp.ne p7, p0 = 8, poschr[1]
2042 +(p7) br.cond.spnt .foundit;;
2043 + adds ret0 = 8, ret0 // load the next unchecked 8byte
2048 weak_alias (__memchr, memchr)
2049 commit 297676350b6683bb5daa41cfc77c2a745383a882
2050 Author: Andreas Schwab <schwab@linux-m68k.org>
2051 Date: Fri May 22 08:35:15 2009 -0700
2053 Fix errno for IBM long double.
2055 After the last addition to the math test suite PPC routines haven't
2056 been adjusted so far.
2057 (cherry picked from commit 38ae768d88c47dd06030104eb3376212b0d8d164)
2059 diff --git a/ChangeLog b/ChangeLog
2060 index 6ad9ad8..10ac72d 100644
2061 diff --git a/sysdeps/ieee754/ldbl-128ibm/s_cosl.c b/sysdeps/ieee754/ldbl-128ibm/s_cosl.c
2062 index 59a8196..8470850 100644
2063 --- a/sysdeps/ieee754/ldbl-128ibm/s_cosl.c
2064 +++ b/sysdeps/ieee754/ldbl-128ibm/s_cosl.c
2066 * TRIG(x) returns trig(x) nearly rounded
2071 #include "math_private.h"
2072 #include <math_ldbl_opt.h>
2074 return __kernel_cosl(x,z);
2076 /* cos(Inf or NaN) is NaN */
2077 - else if (ix>=0x7ff0000000000000LL)
2078 + else if (ix>=0x7ff0000000000000LL) {
2079 + if (ix == 0x7ff0000000000000LL)
2080 + __set_errno (EDOM);
2084 /* argument reduction needed */
2086 n = __ieee754_rem_pio2l(x,y);
2087 diff --git a/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c b/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
2088 index 7350065..f631edd 100644
2089 --- a/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
2090 +++ b/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
2092 License along with this library; if not, write to the Free Software
2093 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
2097 #include "math_private.h"
2098 #include <math_ldbl_opt.h>
2099 @@ -120,7 +121,10 @@ __expm1l (long double x)
2103 - return (big * big);
2105 + __set_errno (ERANGE);
2106 + return (big * big);
2109 /* Minimum value. */
2111 diff --git a/sysdeps/ieee754/ldbl-128ibm/s_sinl.c b/sysdeps/ieee754/ldbl-128ibm/s_sinl.c
2112 index 8cc592c..bd72225 100644
2113 --- a/sysdeps/ieee754/ldbl-128ibm/s_sinl.c
2114 +++ b/sysdeps/ieee754/ldbl-128ibm/s_sinl.c
2116 * TRIG(x) returns trig(x) nearly rounded
2121 #include "math_private.h"
2122 #include <math_ldbl_opt.h>
2124 return __kernel_sinl(x,z,0);
2126 /* sin(Inf or NaN) is NaN */
2127 - else if (ix>=0x7ff0000000000000LL) return x-x;
2129 + else if (ix>=0x7ff0000000000000LL) {
2130 + if (ix == 0x7ff0000000000000LL)
2131 + __set_errno (EDOM);
2134 /* argument reduction needed */
2136 n = __ieee754_rem_pio2l(x,y);
2137 diff --git a/sysdeps/ieee754/ldbl-128ibm/s_tanl.c b/sysdeps/ieee754/ldbl-128ibm/s_tanl.c
2138 index ea5a7f0..913f38f 100644
2139 --- a/sysdeps/ieee754/ldbl-128ibm/s_tanl.c
2140 +++ b/sysdeps/ieee754/ldbl-128ibm/s_tanl.c
2142 * TRIG(x) returns trig(x) nearly rounded
2147 #include "math_private.h"
2148 #include <math_ldbl_opt.h>
2150 if(ix <= 0x3fe921fb54442d10LL) return __kernel_tanl(x,z,1);
2152 /* tanl(Inf or NaN) is NaN */
2153 - else if (ix>=0x7ff0000000000000LL) return x-x; /* NaN */
2155 + else if (ix>=0x7ff0000000000000LL) {
2156 + if (ix == 0x7ff0000000000000LL)
2157 + __set_errno (EDOM);
2158 + return x-x; /* NaN */
2160 /* argument reduction needed */
2162 n = __ieee754_rem_pio2l(x,y);
2163 commit e38af591a8dd3377926543044c5ddb39b156f903
2164 Author: Ulrich Drepper <drepper@redhat.com>
2165 Date: Fri May 22 09:07:00 2009 -0700
2167 Describe nss_dns parallel lookup workaround in 2.10 NEWS.
2168 (cherry picked from commit 57be3fd79a418b14e417e9a6b96f05dcb99932ee)
2170 diff --git a/NEWS b/NEWS
2171 index 411c2c3..89f06dd 100644
2174 @@ -47,6 +47,13 @@ Version 2.10
2175 * Handling for group shadow files has been added.
2176 Implemented by Ulrich Drepper.
2178 +* DNS IPv4-IPv6 parallel lookup now deals better with broken DNS
2179 + servers (the case, e.g., for some people using the built-in DNS
2180 + server in ADSL modems/routers). There is a once-per-process timeout
2181 + in case of a broken server. To avoid it, users can run nscd or put
2182 + 'options single-request' in /etc/resolv.conf.
2183 + Implemented by Ulrich Drepper.
2188 commit ffbb82ecfee3854d5571683fbe4d2d5cd26c8748
2189 Author: Aurelien Jarno <aurelien@aurel32.net>
2190 Date: Wed May 27 16:41:00 2009 -0700
2193 * db-symbols.awk: Use the last field for the symbol name instead
2195 (cherry picked from commit 8ee84bd01f85b5ab1430750270b7e51a967d03eb)
2197 diff --git a/nptl_db/ChangeLog b/nptl_db/ChangeLog
2198 index 8c07d9f..1ade196 100644
2199 diff --git a/nptl_db/db-symbols.awk b/nptl_db/db-symbols.awk
2200 index 3327213..f9a91b9 100644
2201 --- a/nptl_db/db-symbols.awk
2202 +++ b/nptl_db/db-symbols.awk
2203 @@ -14,7 +14,7 @@ NF == 0 { in_symtab=0; next }
2207 -NF >= 8 && $7 != "UND" { seen[$8] = 1 }
2208 +NF >= 8 && $7 != "UND" { seen[$NF] = 1 }
2212 commit 6e1f9be792b03fe122dbb0984d97eb1c6b731e69
2213 Author: Ulrich Drepper <drepper@redhat.com>
2214 Date: Fri May 29 12:00:22 2009 -0700
2216 Fix errno for boundary conditions in 128-bit long double.
2218 Similar to the changes which went already in for the other formats,
2219 follow POSIX rules for errno.
2220 (cherry picked from commit 7f3394bdf34e28b374e5569a7a74ddac734fb172)
2222 diff --git a/ChangeLog b/ChangeLog
2223 index 10ac72d..7f28993 100644
2224 diff --git a/sysdeps/ieee754/ldbl-128/s_cosl.c b/sysdeps/ieee754/ldbl-128/s_cosl.c
2225 index d1258b2..ef61c3a 100644
2226 --- a/sysdeps/ieee754/ldbl-128/s_cosl.c
2227 +++ b/sysdeps/ieee754/ldbl-128/s_cosl.c
2229 * TRIG(x) returns trig(x) nearly rounded
2234 #include "math_private.h"
2237 return __kernel_cosl(x,z);
2239 /* cos(Inf or NaN) is NaN */
2240 - else if (ix>=0x7fff000000000000LL) return x-x;
2241 + else if (ix>=0x7fff000000000000LL) {
2242 + if (ix == 0x7fff000000000000LL) {
2243 + GET_LDOUBLE_LSW64(n,x);
2245 + __set_errno (EDOM);
2250 /* argument reduction needed */
2252 diff --git a/sysdeps/ieee754/ldbl-128/s_expm1l.c b/sysdeps/ieee754/ldbl-128/s_expm1l.c
2253 index 78bbe65..a82489b 100644
2254 --- a/sysdeps/ieee754/ldbl-128/s_expm1l.c
2255 +++ b/sysdeps/ieee754/ldbl-128/s_expm1l.c
2262 #include "math_private.h"
2264 @@ -121,7 +122,10 @@ __expm1l (long double x)
2268 - return (big * big);
2270 + __set_errno (ERANGE);
2271 + return (big * big);
2274 /* Minimum value. */
2276 diff --git a/sysdeps/ieee754/ldbl-128/s_sinl.c b/sysdeps/ieee754/ldbl-128/s_sinl.c
2277 index 446a75f..dc509e7 100644
2278 --- a/sysdeps/ieee754/ldbl-128/s_sinl.c
2279 +++ b/sysdeps/ieee754/ldbl-128/s_sinl.c
2281 * TRIG(x) returns trig(x) nearly rounded
2286 #include "math_private.h"
2289 return __kernel_sinl(x,z,0);
2291 /* sin(Inf or NaN) is NaN */
2292 - else if (ix>=0x7fff000000000000LL) return x-x;
2293 + else if (ix>=0x7fff000000000000LL) {
2294 + if (ix == 0x7fff000000000000LL) {
2295 + GET_LDOUBLE_LSW64(n,x);
2297 + __set_errno (EDOM);
2302 /* argument reduction needed */
2304 diff --git a/sysdeps/ieee754/ldbl-128/s_tanl.c b/sysdeps/ieee754/ldbl-128/s_tanl.c
2305 index ea9d053..2349da6 100644
2306 --- a/sysdeps/ieee754/ldbl-128/s_tanl.c
2307 +++ b/sysdeps/ieee754/ldbl-128/s_tanl.c
2309 * TRIG(x) returns trig(x) nearly rounded
2314 #include "math_private.h"
2317 if(ix <= 0x3ffe921fb54442d1LL) return __kernel_tanl(x,z,1);
2319 /* tanl(Inf or NaN) is NaN */
2320 - else if (ix>=0x7fff000000000000LL) return x-x; /* NaN */
2321 + else if (ix>=0x7fff000000000000LL) {
2322 + if (ix == 0x7fff000000000000LL) {
2323 + GET_LDOUBLE_LSW64(n,x);
2325 + __set_errno (EDOM);
2327 + return x-x; /* NaN */
2330 /* argument reduction needed */
2332 commit 8eccea8011d27503c02b1dcd00aef80185e1b89a
2333 Author: Roland McGrath <roland@redhat.com>
2334 Date: Sat May 30 15:06:51 2009 -0700
2336 Remove arch directory names from .gitignore.
2337 (cherry picked from commit cc3ae2461cf5ced13ab7c7787543f4dd3eabe88c)
2339 diff --git a/.gitignore b/.gitignore
2340 index d903bc6..befca38 100644
2343 @@ -23,12 +23,7 @@ glibc-*
2356 commit 10bf3b765521cf6f8bc30efcfbf6f16debcbce8e
2357 Author: Andreas Schwab <schwab@linux-m68k.org>
2358 Date: Sun May 31 16:54:28 2009 -0700
2360 Move AC_CANONICAL_HOST before first use of $host and $build.
2361 (cherry picked from commit c16a054d5e20e4da6ccc528b690910a777d69a8b)
2363 diff --git a/ChangeLog b/ChangeLog
2364 index 7f28993..6d9cc29 100644
2365 diff --git a/configure b/configure
2366 index 7555891..88cf4fd 100755
2369 @@ -726,14 +726,6 @@ base_machine
2384 @@ -756,6 +748,14 @@ CPPFLAGS
2399 @@ -2011,6 +2011,90 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
2403 +# Make sure we can run config.sub.
2404 +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
2405 + { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
2406 +$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
2407 + { (exit 1); exit 1; }; }
2409 +{ $as_echo "$as_me:$LINENO: checking build system type" >&5
2410 +$as_echo_n "checking build system type... " >&6; }
2411 +if test "${ac_cv_build+set}" = set; then
2412 + $as_echo_n "(cached) " >&6
2414 + ac_build_alias=$build_alias
2415 +test "x$ac_build_alias" = x &&
2416 + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
2417 +test "x$ac_build_alias" = x &&
2418 + { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
2419 +$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
2420 + { (exit 1); exit 1; }; }
2421 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
2422 + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
2423 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
2424 + { (exit 1); exit 1; }; }
2427 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
2428 +$as_echo "$ac_cv_build" >&6; }
2429 +case $ac_cv_build in
2431 +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
2432 +$as_echo "$as_me: error: invalid value of canonical build" >&2;}
2433 + { (exit 1); exit 1; }; };;
2436 +ac_save_IFS=$IFS; IFS='-'
2442 +# Remember, the first character of IFS is used to create $*,
2443 +# except with old shells:
2446 +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
2449 +{ $as_echo "$as_me:$LINENO: checking host system type" >&5
2450 +$as_echo_n "checking host system type... " >&6; }
2451 +if test "${ac_cv_host+set}" = set; then
2452 + $as_echo_n "(cached) " >&6
2454 + if test "x$host_alias" = x; then
2455 + ac_cv_host=$ac_cv_build
2457 + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
2458 + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
2459 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
2460 + { (exit 1); exit 1; }; }
2464 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
2465 +$as_echo "$ac_cv_host" >&6; }
2466 +case $ac_cv_host in
2468 +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
2469 +$as_echo "$as_me: error: invalid value of canonical host" >&2;}
2470 + { (exit 1); exit 1; }; };;
2473 +ac_save_IFS=$IFS; IFS='-'
2479 +# Remember, the first character of IFS is used to create $*,
2480 +# except with old shells:
2483 +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
2488 ac_cpp='$CPP $CPPFLAGS'
2489 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2490 @@ -3844,90 +3928,6 @@ else
2494 -# Make sure we can run config.sub.
2495 -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
2496 - { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
2497 -$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
2498 - { (exit 1); exit 1; }; }
2500 -{ $as_echo "$as_me:$LINENO: checking build system type" >&5
2501 -$as_echo_n "checking build system type... " >&6; }
2502 -if test "${ac_cv_build+set}" = set; then
2503 - $as_echo_n "(cached) " >&6
2505 - ac_build_alias=$build_alias
2506 -test "x$ac_build_alias" = x &&
2507 - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
2508 -test "x$ac_build_alias" = x &&
2509 - { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
2510 -$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
2511 - { (exit 1); exit 1; }; }
2512 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
2513 - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
2514 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
2515 - { (exit 1); exit 1; }; }
2518 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
2519 -$as_echo "$ac_cv_build" >&6; }
2520 -case $ac_cv_build in
2522 -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
2523 -$as_echo "$as_me: error: invalid value of canonical build" >&2;}
2524 - { (exit 1); exit 1; }; };;
2527 -ac_save_IFS=$IFS; IFS='-'
2533 -# Remember, the first character of IFS is used to create $*,
2534 -# except with old shells:
2537 -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
2540 -{ $as_echo "$as_me:$LINENO: checking host system type" >&5
2541 -$as_echo_n "checking host system type... " >&6; }
2542 -if test "${ac_cv_host+set}" = set; then
2543 - $as_echo_n "(cached) " >&6
2545 - if test "x$host_alias" = x; then
2546 - ac_cv_host=$ac_cv_build
2548 - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
2549 - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
2550 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
2551 - { (exit 1); exit 1; }; }
2555 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
2556 -$as_echo "$ac_cv_host" >&6; }
2557 -case $ac_cv_host in
2559 -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
2560 -$as_echo "$as_me: error: invalid value of canonical host" >&2;}
2561 - { (exit 1); exit 1; }; };;
2564 -ac_save_IFS=$IFS; IFS='-'
2570 -# Remember, the first character of IFS is used to create $*,
2571 -# except with old shells:
2574 -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
2578 # The way shlib-versions is used to generate soversions.mk uses a
2579 # fairly simplistic model for name recognition that can't distinguish
2580 # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
2581 diff --git a/configure.in b/configure.in
2582 index d54e952..6a92bd8 100644
2585 @@ -6,6 +6,8 @@ AC_CONFIG_SRCDIR([include/features.h])
2586 AC_CONFIG_HEADERS([config.h])
2587 AC_CONFIG_AUX_DIR([scripts])
2592 if test $host != $build; then
2593 AC_CHECK_PROGS(BUILD_CC, gcc cc)
2594 @@ -316,8 +318,6 @@ else
2596 AC_SUBST(libc_cv_nss_crypt)
2600 # The way shlib-versions is used to generate soversions.mk uses a
2601 # fairly simplistic model for name recognition that can't distinguish
2602 # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
2603 commit a447f6830f9f2a9543247790b1f9b90a465e6079
2604 Author: Ulrich Drepper <drepper@redhat.com>
2605 Date: Sun May 31 17:46:55 2009 -0700
2607 Add missing file from accept4 commit.
2609 Hidden by previous .gitignore content.
2610 (cherry picked from commit fd469aac31dc09f1328c8c4b976f887ebd592c56)
2612 diff --git a/sysdeps/unix/sysv/linux/i386/internal_accept4.S b/sysdeps/unix/sysv/linux/i386/internal_accept4.S
2613 new file mode 100644
2614 index 0000000..c3f1630
2616 +++ b/sysdeps/unix/sysv/linux/i386/internal_accept4.S
2618 +/* Not needed, accept4.S has everything. */
2619 commit 1e639628d118eb75a2e0de99debbba6e949cdbae
2620 Author: André Goddard Rosa <andre.goddard@gmail.com>
2621 Date: Mon Jun 1 11:43:26 2009 -0700
2623 Fix mbrtowc example.
2625 The remaining bytes were not copied correctly.
2626 (cherry picked from commit 21e66bc528edcbe18d434eb33a601e0f796904c9)
2628 diff --git a/manual/charset.texi b/manual/charset.texi
2629 index 8b2c09c..79854e5 100644
2630 --- a/manual/charset.texi
2631 +++ b/manual/charset.texi
2632 @@ -1234,7 +1234,7 @@ file_mbsrtowcs (int input, int output)
2633 /* @r{If any characters must be carried forward,}
2634 @r{put them at the beginning of @code{buffer}.} */
2636 - memmove (inp, buffer, filled);
2637 + memmove (buffer, inp, filled);
2641 commit e926cb177490407dfea3fc6c181a272b7b8a2a20
2642 Author: Ulrich Drepper <drepper@redhat.com>
2643 Date: Wed Jun 3 08:30:35 2009 -0700
2645 Terminate correct buffer.
2647 Little typo could cause additional characters to be printed.
2648 (cherry picked from commit fbb04b35e7997070feec74e0fd46953faef71f9e)
2650 diff --git a/ChangeLog b/ChangeLog
2651 index 6d9cc29..1211e1d 100644
2652 diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c
2653 index db10012..5700272 100644
2654 --- a/elf/dl-sysdep.c
2655 +++ b/elf/dl-sysdep.c
2656 @@ -335,7 +335,7 @@ _dl_show_auxv (void)
2658 /* Unknown value: print a generic line. */
2660 - buf[sizeof (buf2) - 1] = '\0';
2661 + buf2[sizeof (buf2) - 1] = '\0';
2662 const char *val2 = _itoa ((unsigned long int) av->a_un.a_val,
2663 buf2 + sizeof buf2 - 1, 16, 0);
2664 const char *val = _itoa ((unsigned long int) av->a_type,
2665 commit e40d82c4ee736936290827c8297c2c58e2181932
2666 Author: Ulrich Drepper <drepper@redhat.com>
2667 Date: Tue Jun 9 06:59:02 2009 -0700
2669 (_IO_new_file_fopen): Don't prematurely stop parsing mode string.
2670 (cherry picked from commits 0d74e0436195a051d69e78bef10d23879788cb7e,
2671 d360a0da2b42b2b79e9ce9c2d7984c234e840b7a)
2673 diff --git a/ChangeLog b/ChangeLog
2674 index 1211e1d..3063dc8 100644
2675 diff --git a/libio/fileops.c b/libio/fileops.c
2676 index cf47c91..4698953 100644
2677 --- a/libio/fileops.c
2678 +++ b/libio/fileops.c
2680 -/* Copyright (C) 1993, 1995, 1997-2005, 2006, 2007, 2008
2681 +/* Copyright (C) 1993, 1995, 1997-2005, 2006, 2007, 2008, 2009
2682 Free Software Foundation, Inc.
2683 This file is part of the GNU C Library.
2684 Written by Per Bothner <bothner@cygnus.com>.
2685 @@ -319,11 +319,11 @@ _IO_new_file_fopen (fp, filename, mode, is32not64)
2688 fp->_flags2 |= _IO_FLAGS2_NOTCANCEL;
2693 oflags |= O_CLOEXEC;
2699 commit ac37d9836e2967b9d5cd5b260910db53fbab1858
2700 Author: J.H.M. Dassen <rdassen@redhat.com>
2701 Date: Tue Jun 9 07:58:02 2009 -0700
2703 Remove comma at end of enum.
2704 (cherry picked from commit 88ea382fda5af7717f85bb19837c9c99094f3df4)
2706 diff --git a/ChangeLog b/ChangeLog
2707 index 3063dc8..c6c3553 100644
2708 diff --git a/dlfcn/dlfcn.h b/dlfcn/dlfcn.h
2709 index 7e373ed..3e461df 100644
2713 /* User functions for run-time dynamic loading.
2714 - Copyright (C) 1995-1999,2000,2001,2003,2004,2006
2715 - Free Software Foundation, Inc.
2716 + Copyright (C) 1995-2001,2003,2004,2006,2009 Free Software Foundation, Inc.
2717 This file is part of the GNU C Library.
2719 The GNU C Library is free software; you can redistribute it and/or
2720 @@ -164,7 +163,7 @@ enum
2721 segment, or if the calling thread has not allocated a block for it. */
2722 RTLD_DI_TLS_DATA = 10,
2729 commit 53f32b044fff54341c426a9ba16753b881d32f91
2730 Author: Ulrich Drepper <drepper@redhat.com>
2731 Date: Thu Jun 11 10:07:33 2009 -0700
2733 Remember we switched to single-request mode.
2735 This change prevents repetition in most later calls of the resolver
2736 in case the DNS server or the network connection is broken.
2737 (cherry picked from commit 310647e9809986986650994d036af18ca9b17fb2)
2739 diff --git a/ChangeLog b/ChangeLog
2740 index c6c3553..ecf7c10 100644
2741 diff --git a/resolv/res_send.c b/resolv/res_send.c
2742 index 25a854f..39c69da 100644
2743 --- a/resolv/res_send.c
2744 +++ b/resolv/res_send.c
2745 @@ -1008,7 +1008,7 @@ send_dg(res_state statp,
2746 seconds /= statp->nscount;
2749 - bool single_request = ((statp->options) & RES_SNGLKUP) != 0;// XXX
2750 + bool single_request = (statp->options & RES_SNGLKUP) != 0;// XXX
2751 int save_gotsomewhere = *gotsomewhere;
2754 @@ -1059,6 +1059,7 @@ send_dg(res_state statp,
2755 have received the first answer. */
2756 if (!single_request)
2758 + statp->options |= RES_SNGLKUP;
2759 single_request = true;
2760 *gotsomewhere = save_gotsomewhere;
2762 commit 9cf557216cbd0fe6e5ca235114c27260622d049b
2763 Author: Bryan Kadzban <bz-glibc@kdzbn.homelinux.net>
2764 Date: Thu Jun 11 11:32:51 2009 -0700
2766 Fix futex syscall parameter for x86 absolute timeout waits.
2768 This affects only installations compiled for kernels older than 2.6.18.
2769 (cherry picked from commit 1828530f09bcc321cfb84c27110bbce804605ec4)
2771 diff --git a/nptl/ChangeLog b/nptl/ChangeLog
2772 index f3bd32f..d97efa0 100644
2773 diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
2774 index 056b729..7578c7e 100644
2775 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
2776 +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
2778 # define LOAD_FUTEX_WAIT_ABS(reg) \
2779 xorl $FUTEX_PRIVATE_FLAG, reg ; \
2780 andl %gs:PRIVATE_FUTEX, reg ; \
2781 - orl $FUTEX_WAIT | FUTEX_CLOCK_REALTIME, reg
2782 + orl $FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME, reg
2783 # define LOAD_FUTEX_WAKE(reg) \
2784 xorl $FUTEX_PRIVATE_FLAG, reg ; \
2785 andl %gs:PRIVATE_FUTEX, reg ; \
2786 commit 0f1ea04f8ab3ad481089fd705f4bda2df0fd8078
2787 Author: Akinori Hattori <hattya@gentoo.org>
2788 Date: Mon Jun 15 10:54:26 2009 -0700
2790 Handle leap seconds even if no DST rule exists.
2792 This fixes BZ #10211.
2793 (cherry picked from commit 29143408ae6d474a115768e809691635f507b1fd)
2795 diff --git a/ChangeLog b/ChangeLog
2796 index ecf7c10..b79f020 100644
2797 diff --git a/time/tzfile.c b/time/tzfile.c
2798 index 9700223..4e20b25 100644
2802 -/* Copyright (C) 1991-1993,1995-2001,2003,2004,2006, 2007
2803 +/* Copyright (C) 1991-1993,1995-2001,2003,2004,2006,2007,2009
2804 Free Software Foundation, Inc.
2805 This file is part of the GNU C Library.
2807 @@ -659,9 +659,7 @@ __tzfile_compute (time_t timer, int use_localtime,
2808 __tzname[1] = __tzstring (&zone_names[strlen (zone_names) + 1]);
2811 - *leap_correct = 0L;
2818 @@ -762,6 +760,7 @@ __tzfile_compute (time_t timer, int use_localtime,
2819 tp->tm_gmtoff = info->offset;
2826 commit e80cfa694185fc970ca3804660a903b28173cd52
2827 Author: Ulrich Drepper <drepper@redhat.com>
2828 Date: Mon Jun 15 11:00:08 2009 -0700
2830 Fix computation of tzspec_len.
2832 Without this it should never have worked that we can use the
2833 embedded envvar in the timezone data files for dates after the last
2835 (cherry picked from commit 6355c99740c91ed5a7fa14e378f74950e09f5f48)
2837 diff --git a/ChangeLog b/ChangeLog
2838 index b79f020..c77ed82 100644
2839 diff --git a/time/tzfile.c b/time/tzfile.c
2840 index 4e20b25..d8bd55a 100644
2843 @@ -248,7 +248,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
2844 + num_transitions * (8 + 1)
2850 + num_isgmt) - 1 : 0);
2852 commit 4da50f4b075b4ed9c75f072e1e26deee720fb8bf
2853 Author: Bruce Dubbs <bdubbs@linuxfromscratch.org>
2854 Date: Mon Jun 15 17:27:48 2009 -0700
2856 (do_test): Use de_DE.UTF-8 as locale name.
2858 (cherry picked from commit 4155d926336ba38428a98359bf0908453ff83625)
2860 diff --git a/ChangeLog b/ChangeLog
2861 index c77ed82..f7ac9ec 100644
2862 diff --git a/libio/tst-fgetwc.c b/libio/tst-fgetwc.c
2863 index 9ccfeb1..06e4a42 100644
2864 --- a/libio/tst-fgetwc.c
2865 +++ b/libio/tst-fgetwc.c
2870 - if (setlocale (LC_ALL, "de_DE.utf8") == NULL)
2871 + if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
2873 puts ("setlocale failed");
2875 commit 26330c1c489a2cb2ea775390c9a7a6302954f64c
2876 Author: Joe Landers <jlanders@vmware.com>
2877 Date: Mon Jun 15 17:37:40 2009 -0700
2879 Fix memory leak when batch-reading large NIS password maps.
2881 Not the whole was traversed in the function to free all buffers.
2883 (cherry picked from commit 233a182b9ee2a48eddbb15f70af8bc24add24af3)
2885 diff --git a/ChangeLog b/ChangeLog
2886 index f7ac9ec..c999607 100644
2887 diff --git a/nis/nss_nis/nis-pwd.c b/nis/nss_nis/nis-pwd.c
2888 index 1b5206a..fdc7dc9 100644
2889 --- a/nis/nss_nis/nis-pwd.c
2890 +++ b/nis/nss_nis/nis-pwd.c
2892 -/* Copyright (C) 1996-1998,2001,2002,2003,2006 Free Software Foundation, Inc.
2893 +/* Copyright (C) 1996-1998,2001-2003,2006,2009 Free Software Foundation, Inc.
2894 This file is part of the GNU C Library.
2895 Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
2897 @@ -116,7 +116,7 @@ internal_nis_endpwent (void)
2901 - struct response_t *curr = intern.next;
2902 + struct response_t *curr = intern.start;
2904 while (curr != NULL)
2906 commit 3ff6565150bef32e4cfc565b1463df84dd8c6d7a
2907 Author: Arnaud Ebalard <arno@natisbad.org>
2908 Date: Mon Jun 15 20:33:39 2009 -0700
2910 Fix type of nd_opt_home_agent_info_preference.
2912 (cherry picked from commit 7ed520bd8504700cf4aaf3b06deb10575bfc546a)
2914 diff --git a/ChangeLog b/ChangeLog
2915 index c999607..d0912cc 100644
2916 diff --git a/inet/netinet/icmp6.h b/inet/netinet/icmp6.h
2917 index 0cb1aa6..82893da 100644
2918 --- a/inet/netinet/icmp6.h
2919 +++ b/inet/netinet/icmp6.h
2921 -/* Copyright (C) 1991-1997,2000,2006 Free Software Foundation, Inc.
2922 +/* Copyright (C) 1991-1997,2000,2006,2009 Free Software Foundation, Inc.
2923 This file is part of the GNU C Library.
2925 The GNU C Library is free software; you can redistribute it and/or
2926 @@ -339,7 +339,7 @@ struct nd_opt_home_agent_info
2927 uint8_t nd_opt_home_agent_info_type;
2928 uint8_t nd_opt_home_agent_info_len;
2929 uint16_t nd_opt_home_agent_info_reserved;
2930 - int16_t nd_opt_home_agent_info_preference;
2931 + uint16_t nd_opt_home_agent_info_preference;
2932 uint16_t nd_opt_home_agent_info_lifetime;
2935 commit 2a31410e40b61c47ab4c5283c25cea2c5405d757
2936 Author: Ulrich Drepper <drepper@redhat.com>
2937 Date: Mon Jun 15 21:12:57 2009 -0700
2939 When iterating over CPU bitmask, don't try more than CPU_SETSIZE.
2940 (cherry picked from commit 395a37e379bf900b2b6a25e17c44cde2d1c46c44)
2942 diff --git a/ChangeLog b/ChangeLog
2943 index d0912cc..b1ba145 100644
2944 diff --git a/posix/tst-cpucount.c b/posix/tst-cpucount.c
2945 index fe3cded..b3691a1 100644
2946 --- a/posix/tst-cpucount.c
2947 +++ b/posix/tst-cpucount.c
2951 +#include <sys/param.h>
2955 @@ -8,7 +9,7 @@ do_test (void)
2959 - for (int cnt = 0; cnt < 130; ++cnt)
2960 + for (int cnt = 0; cnt < MIN (CPU_SETSIZE, 130); ++cnt)
2962 int n = CPU_COUNT (&c);
2964 commit c8bfc696298620bc1199996f5d836ce837248b0b
2965 Author: Ulrich Drepper <drepper@redhat.com>
2966 Date: Mon Jun 15 22:56:51 2009 -0700
2968 Fix permission of slave device on devpts if necessary.
2970 If devptr is misconfigured the slave device permission after grantpt
2971 might not be 0620. BZ #10166
2972 (cherry picked from commit 292e3abebff9f94ca47c1a725a691cb6ed6cff5f)
2974 diff --git a/ChangeLog b/ChangeLog
2975 index b1ba145..7bec39a 100644
2976 diff --git a/sysdeps/unix/sysv/linux/grantpt.c b/sysdeps/unix/sysv/linux/grantpt.c
2977 index b894b8b..c858f89 100644
2978 --- a/sysdeps/unix/sysv/linux/grantpt.c
2979 +++ b/sysdeps/unix/sysv/linux/grantpt.c
2981 -/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
2982 +/* Copyright (C) 1998, 1999, 2001, 2002, 2009 Free Software Foundation, Inc.
2983 This file is part of the GNU C Library.
2985 The GNU C Library is free software; you can redistribute it and/or
2986 @@ -70,9 +70,16 @@ grantpt (int fd)
2989 /* If the slave pseudo terminal lives on a `devpts' filesystem, the
2990 - ownership and access permission are already set. */
2991 + ownership is already set and the access permission might already
2993 if (fsbuf.f_type == DEVPTS_SUPER_MAGIC || fsbuf.f_type == DEVFS_SUPER_MAGIC)
2998 + if (fstat (fd, &st) == 0
2999 + && (st.st_mode & ACCESSPERMS) == (S_IRUSR|S_IWUSR|S_IWGRP))
3003 return __unix_grantpt (fd);
3005 commit c9dab1b7acf11a334c9494eca160ad841b5f05e2
3006 Author: Ulrich Drepper <drepper@redhat.com>
3007 Date: Tue Jun 16 07:48:27 2009 -0700
3009 Run tst-fgetwc with necessary envvar.
3010 (cherry picked from commit eae3208e249edda25548fa7680d01193d7515e0c)
3012 diff --git a/ChangeLog b/ChangeLog
3013 index 7bec39a..e6f4565 100644
3014 diff --git a/libio/Makefile b/libio/Makefile
3015 index b94d047..501e80c 100644
3016 --- a/libio/Makefile
3017 +++ b/libio/Makefile
3018 @@ -153,6 +153,7 @@ tst-ungetwc2-ENV = LOCPATH=$(common-objpfx)localedata
3019 bug-ungetwc2-ENV = LOCPATH=$(common-objpfx)localedata
3020 tst-swscanf-ENV = LOCPATH=$(common-objpfx)localedata
3021 bug-ftell-ENV = LOCPATH=$(common-objpfx)localedata
3022 +tst-fgetwc-ENV = LOCPATH=$(common-objpfx)localedata
3024 generated = tst-fopenloc.mtrace tst-fopenloc.check
3026 commit 1f3ae5ae370802ab2bd4f4fc15acd09f381bfa52
3027 Author: Ulrich Drepper <drepper@redhat.com>
3028 Date: Tue Jun 16 08:25:01 2009 -0700
3030 Define week, first_weekday, first_workday in de_AT locale.
3033 (cherry picked from commit b23964c6207124341b89cefc316dc512a669c17b)
3035 diff --git a/localedata/ChangeLog b/localedata/ChangeLog
3036 index b3db076..fbe5bc6 100644
3037 diff --git a/localedata/locales/de_AT b/localedata/locales/de_AT
3038 index 4ec42f4..4e0b7fb 100644
3039 --- a/localedata/locales/de_AT
3040 +++ b/localedata/locales/de_AT
3041 @@ -121,6 +121,9 @@ t_fmt_ampm ""
3042 date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
3043 <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
3044 <U0025><U005A><U0020><U0025><U0059>"
3051 commit 626b1576643ecb869c1a685a7dc59e5df09bbf1d
3052 Author: Ryan S. Arnold <rsa@us.ibm.com>
3053 Date: Tue Jun 16 08:29:04 2009 -0700
3055 Fix incorrect use of cmpldi in 32-bit PPC code.
3057 The 32-bit PowerPC POWER6 memcpy uses the cmpldi insn when it should use a cmplwi.
3059 (cherry picked from commit 25bfbb9e0e610afaf6b67e5ee1a1a5338018c42e)
3061 diff --git a/ChangeLog b/ChangeLog
3062 index e6f4565..7b39200 100644
3063 diff --git a/sysdeps/powerpc/powerpc32/power6/memcpy.S b/sysdeps/powerpc/powerpc32/power6/memcpy.S
3064 index ba45fd2..156b0bd 100644
3065 --- a/sysdeps/powerpc/powerpc32/power6/memcpy.S
3066 +++ b/sysdeps/powerpc/powerpc32/power6/memcpy.S
3068 /* Optimized memcpy implementation for PowerPC32 on POWER6.
3069 - Copyright (C) 2003, 2006 Free Software Foundation, Inc.
3070 + Copyright (C) 2003, 2006, 2009 Free Software Foundation, Inc.
3071 This file is part of the GNU C Library.
3073 The GNU C Library is free software; you can redistribute it and/or
3077 Memcpy handles short copies (< 32-bytes) using a binary move blocks
3078 - (no loops) of lwz/stw. The tail (remaining 1-3) bytes is handled
3079 - with the appropriate combination of byte and halfword load/stores.
3080 - There is minimal effort to optimize the alignment of short moves.
3081 + (no loops) of lwz/stw. The tail (remaining 1-3) bytes is handled
3082 + with the appropriate combination of byte and halfword load/stores.
3083 + There is minimal effort to optimize the alignment of short moves.
3085 Longer moves (>= 32-bytes) justify the effort to get at least the
3086 destination word (4-byte) aligned. Further optimization is
3087 @@ -80,11 +80,11 @@ EALIGN (BP_SYM (memcpy), 5, 0)
3088 bne- cr6,L(wdu) /* If source is not word aligned. .L6 */
3089 clrlwi 11,31,30 /* calculate the number of tail bytes */
3091 - /* Copy words from source to destination, assuming the destination is
3092 + /* Copy words from source to destination, assuming the destination is
3093 aligned on a word boundary.
3095 At this point we know there are at least 29 bytes left (32-3) to copy.
3096 - The next step is to determine if the source is also word aligned.
3097 + The next step is to determine if the source is also word aligned.
3098 If not branch to the unaligned move code at .L6. which uses
3099 a load, shift, store strategy.
3101 @@ -100,9 +100,9 @@ EALIGN (BP_SYM (memcpy), 5, 0)
3103 /* Move words where destination and source are word aligned.
3104 Use an unrolled loop to copy 4 words (16-bytes) per iteration.
3105 - If the the copy is not an exact multiple of 16 bytes, 1-3
3106 + If the the copy is not an exact multiple of 16 bytes, 1-3
3107 words are copied as needed to set up the main loop. After
3108 - the main loop exits there may be a tail of 1-3 bytes. These bytes are
3109 + the main loop exits there may be a tail of 1-3 bytes. These bytes are
3110 copied a halfword/byte at a time as needed to preserve alignment. */
3113 @@ -121,7 +121,7 @@ L(word_aligned):
3122 @@ -135,7 +135,7 @@ L(word_aligned):
3131 @@ -149,14 +149,14 @@ L(word_aligned):
3145 /* At this point we have a tail of 0-3 bytes and we know that the
3146 destination is word aligned. */
3148 @@ -175,7 +175,7 @@ L(word_aligned):
3152 -/* Copy up to 31 bytes. This divided into two cases 0-8 bytes and 9-31
3153 +/* Copy up to 31 bytes. This divided into two cases 0-8 bytes and 9-31
3154 bytes. Each case is handled without loops, using binary (1,2,4,8)
3157 @@ -208,7 +208,7 @@ L(word_unaligned_short):
3159 beq cr6,L(wus_8) /* Handle moves of 8 bytes. */
3160 /* At least 9 bytes left. Get the source word aligned. */
3164 ble cr6,L(wus_4) /* Handle moves of 0-8 bytes. */
3166 @@ -241,7 +241,7 @@ L(wus_tail):
3167 /* At least 6 bytes left and the source is word aligned. This allows
3168 some speculative loads up front. */
3169 /* We need to special case the fall-through because the biggest delays
3170 - are due to address computation not being ready in time for the
3171 + are due to address computation not being ready in time for the
3175 @@ -336,7 +336,7 @@ L(wus_tail4): /* Move 4 bytes. */
3176 L(wus_tail2): /* Move 2-3 bytes. */
3184 @@ -368,7 +368,7 @@ L(wus_4):
3193 @@ -386,7 +386,7 @@ L(wus_5):
3194 L(wus_2): /* Move 2-3 bytes. */
3202 @@ -410,13 +410,13 @@ L(wdu):
3204 /* Copy words where the destination is aligned but the source is
3205 not. For power4, power5 and power6 machines there is penalty for
3206 - unaligned loads (src) that cross 32-byte, cacheline, or page
3207 + unaligned loads (src) that cross 32-byte, cacheline, or page
3208 boundaries. So we want to use simple (unaligned) loads where
3209 posible but avoid them where we know the load would span a 32-byte
3213 At this point we know we have at least 29 (32-3) bytes to copy
3214 - the src is unaligned. and we may cross at least one 32-byte
3215 + the src is unaligned. and we may cross at least one 32-byte
3216 boundary. Also we have the following regester values:
3217 r3 == adjusted dst, word aligned
3218 r4 == unadjusted src
3219 @@ -427,7 +427,7 @@ L(wdu):
3222 First we need to copy word upto but not crossing the next 32-byte
3223 - boundary. Then perform aligned loads just before and just after
3224 + boundary. Then perform aligned loads just before and just after
3225 the boundary and use shifts and or to gernerate the next aligned
3226 word for dst. If more then 32 bytes remain we copy (unaligned src)
3227 the next 7 words and repeat the loop until less then 32-bytes
3228 @@ -442,7 +442,7 @@ L(wdu):
3229 mr 4,12 /* restore unaligned adjusted src ptr */
3230 clrlwi 0,12,27 /* Find dist from previous 32-byte boundary. */
3231 slwi 10,10,3 /* calculate number of bits to shift 1st word left */
3234 subfic 8,0,32 /* Number of bytes to next 32-byte boundary. */
3237 @@ -532,7 +532,7 @@ L(wdu_32):
3240 srwi 8,31,5 /* calculate the 32 byte loop count */
3243 clrlwi 31,31,27 /* The remaining bytes, < 32. */
3244 blt cr5,L(wdu_32tail)
3246 @@ -543,7 +543,7 @@ L(wdu_loop32):
3255 @@ -562,7 +562,7 @@ L(wdu_loop32):
3264 @@ -571,7 +571,7 @@ L(wdu_32tail):
3265 blt cr6,L(wdu_4tail)
3266 /* calculate and store the final word */
3273 @@ -816,7 +816,7 @@ L(wdu_4tail):
3274 beq cr6,L(wdus_0) /* If the tail is 0 bytes we are done! */
3282 diff --git a/sysdeps/powerpc/powerpc32/power6/memset.S b/sysdeps/powerpc/powerpc32/power6/memset.S
3283 index 10fb7b9..cc65b7b 100644
3284 --- a/sysdeps/powerpc/powerpc32/power6/memset.S
3285 +++ b/sysdeps/powerpc/powerpc32/power6/memset.S
3287 /* Optimized 32-bit memset implementation for POWER6.
3288 - Copyright (C) 1997,99, 2000,02,03,06,2007 Free Software Foundation, Inc.
3289 + Copyright (C) 1997,99,2000,02,03,06,2007,2009 Free Software Foundation, Inc.
3290 This file is part of the GNU C Library.
3292 The GNU C Library is free software; you can redistribute it and/or
3293 @@ -240,7 +240,7 @@ L(nzCacheAligned256):
3295 addi rMEMP3,rMEMP,64
3297 -/* When we are not in libc we should use only GPRs to avoid the FPU lock
3298 +/* When we are not in libc we should use only GPRs to avoid the FPU lock
3302 @@ -381,7 +381,7 @@ L(cacheAligned):
3303 blt cr1,L(cacheAligned1)
3306 - cmpldi cr5,rLEN,640
3307 + cmplwi cr5,rLEN,640
3308 blt cr6,L(cacheAligned128)
3309 bgt cr5,L(cacheAligned512)
3311 commit d0f6ed789f460357fca11f8ffcffcb968d8d7434
3312 Author: Jakub Jelinek <jakub@redhat.com>
3313 Date: Tue Jun 16 10:23:31 2009 -0700
3315 Fix x86-64 memchr for large lengths.
3317 (cherry picked from commit fab8238de69de67637d21923b3ec1c26e4ce8450)
3319 diff --git a/ChangeLog b/ChangeLog
3320 index 7b39200..b3808c5 100644
3321 diff --git a/string/test-memchr.c b/string/test-memchr.c
3322 index c233ead..cd9a01e 100644
3323 --- a/string/test-memchr.c
3324 +++ b/string/test-memchr.c
3326 /* Test and measure memchr functions.
3327 - Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
3328 + Copyright (C) 1999, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
3329 This file is part of the GNU C Library.
3330 Written by Jakub Jelinek <jakub@redhat.com>, 1999.
3332 @@ -144,7 +144,12 @@ do_random_tests (void)
3336 - result = (char *) (p + pos + align);
3338 + size_t r = random ();
3339 + if ((r & 31) == 0)
3340 + len = ~(uintptr_t) (p + align) - ((r >> 5) & 31);
3341 + result = (char *) (p + pos + align);
3346 diff --git a/sysdeps/x86_64/memchr.S b/sysdeps/x86_64/memchr.S
3347 index 54b7af5..6082aa7 100644
3348 --- a/sysdeps/x86_64/memchr.S
3349 +++ b/sysdeps/x86_64/memchr.S
3350 @@ -41,7 +41,7 @@ ENTRY (memchr)
3357 2: movdqa (%rdi,%rsi), %xmm0
3359 @@ -50,7 +50,7 @@ ENTRY (memchr)
3368 @@ -60,7 +60,7 @@ ENTRY (memchr)
3370 leaq -16(%rsi,%rcx), %rsi
3377 commit 137028b4d7e50f71906c1656c27079eac5a1d085
3378 Author: Petr Baudis <pasky@suse.cz>
3379 Date: Thu Jul 16 10:10:10 2009 -0700
3381 Fix lock handling in memory hander of nscd.
3383 The commit 20e498bd removes the pthread_mutex_rdlock() calls, but not the
3384 corresponding pthread_mutex_unlock() calls. Also, the database lock is never
3385 unlocked in one branch of the mempool_alloc() if.
3387 I think unreproducible random assert(dh->usable) crashes in prune_cache() were
3388 caused by this. But an easy way to make nscd threads hang with the broken
3391 diff --git a/ChangeLog b/ChangeLog
3392 index a81c5b4..37f20a4 100644
3393 diff --git a/nscd/aicache.c b/nscd/aicache.c
3394 index 524c0a6..8dac48e 100644
3395 --- a/nscd/aicache.c
3396 +++ b/nscd/aicache.c
3397 @@ -543,8 +543,6 @@ next_nip:
3398 (void) cache_add (req->type, key_copy, req->key_len, &dataset->head,
3399 true, db, uid, he == NULL);
3401 - pthread_rwlock_unlock (&db->lock);
3403 /* Mark the old entry as obsolete. */
3406 diff --git a/nscd/grpcache.c b/nscd/grpcache.c
3407 index 184d538..fc20084 100644
3408 --- a/nscd/grpcache.c
3409 +++ b/nscd/grpcache.c
3410 @@ -146,8 +146,6 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
3411 (void) cache_add (req->type, &dataset->strdata, req->key_len,
3412 &dataset->head, true, db, owner, he == NULL);
3414 - pthread_rwlock_unlock (&db->lock);
3416 /* Mark the old entry as obsolete. */
3419 @@ -367,12 +365,10 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
3420 (void) cache_add (GETGRBYGID, cp, key_offset, &dataset->head,
3421 false, db, owner, false);
3425 - pthread_rwlock_unlock (&db->lock);
3430 if (__builtin_expect (written != total, 0) && debug_level > 0)
3433 diff --git a/nscd/hstcache.c b/nscd/hstcache.c
3434 index 51e2273..77ffcdf 100644
3435 --- a/nscd/hstcache.c
3436 +++ b/nscd/hstcache.c
3437 @@ -153,8 +153,6 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
3438 (void) cache_add (req->type, &dataset->strdata, req->key_len,
3439 &dataset->head, true, db, owner, he == NULL);
3441 - pthread_rwlock_unlock (&db->lock);
3443 /* Mark the old entry as obsolete. */
3446 @@ -404,8 +402,6 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
3448 (void) cache_add (req->type, key_copy, req->key_len,
3449 &dataset->head, true, db, owner, he == NULL);
3451 - pthread_rwlock_unlock (&db->lock);
3455 diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
3456 index c33aaf3..f8d4742 100644
3457 --- a/nscd/initgrcache.c
3458 +++ b/nscd/initgrcache.c
3459 @@ -230,8 +230,6 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
3460 (void) cache_add (req->type, key_copy, req->key_len,
3461 &dataset->head, true, db, uid, he == NULL);
3463 - pthread_rwlock_unlock (&db->lock);
3465 /* Mark the old entry as obsolete. */
3468 @@ -388,8 +386,6 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
3470 (void) cache_add (INITGROUPS, cp, req->key_len, &dataset->head, true,
3471 db, uid, he == NULL);
3473 - pthread_rwlock_unlock (&db->lock);
3477 diff --git a/nscd/mem.c b/nscd/mem.c
3478 index fcea6db..80ea951 100644
3481 @@ -566,9 +566,6 @@ mempool_alloc (struct database_dyn *db, size_t len, int data_alloc)
3486 - pthread_rwlock_unlock (&db->lock);
3488 if (! db->last_alloc_failed)
3490 dbg_log (_("no more memory for database '%s'"), dbnames[db - dbs]);
3491 @@ -591,5 +588,8 @@ mempool_alloc (struct database_dyn *db, size_t len, int data_alloc)
3493 pthread_mutex_unlock (&db->memlock);
3496 + pthread_rwlock_unlock (&db->lock);
3500 diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
3501 index 2338e7e..fc5b44e 100644
3502 --- a/nscd/pwdcache.c
3503 +++ b/nscd/pwdcache.c
3504 @@ -153,8 +153,6 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
3505 (void) cache_add (req->type, key_copy, req->key_len,
3506 &dataset->head, true, db, owner, he == NULL);
3508 - pthread_rwlock_unlock (&db->lock);
3510 /* Mark the old entry as obsolete. */
3513 @@ -362,12 +360,10 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
3514 (void) cache_add (GETPWBYUID, cp, key_offset, &dataset->head,
3515 false, db, owner, false);
3519 - pthread_rwlock_unlock (&db->lock);
3524 if (__builtin_expect (written != total, 0) && debug_level > 0)
3527 diff --git a/nscd/servicescache.c b/nscd/servicescache.c
3528 index dc98d30..c965c97 100644
3529 --- a/nscd/servicescache.c
3530 +++ b/nscd/servicescache.c
3531 @@ -136,8 +136,6 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
3532 (void) cache_add (req->type, &dataset->strdata, req->key_len,
3533 &dataset->head, true, db, owner, he == NULL);
3535 - pthread_rwlock_unlock (&db->lock);
3537 /* Mark the old entry as obsolete. */
3540 @@ -317,8 +315,6 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
3542 (void) cache_add (req->type, key_copy, req->key_len,
3543 &dataset->head, true, db, owner, he == NULL);
3545 - pthread_rwlock_unlock (&db->lock);
3549 commit 6cbbaa50aac809ad6e0692247876c82d58e466bf
3550 Author: Ulrich Drepper <drepper@redhat.com>
3551 Date: Thu Jul 2 03:30:55 2009 -0700
3553 Fix possible race when freeing object in fast bin list.
3555 diff --git a/ChangeLog b/ChangeLog
3556 index 0c6c36f..4700e7d 100644
3557 diff --git a/malloc/malloc.c b/malloc/malloc.c
3558 index 516d401..70e4e58 100644
3559 --- a/malloc/malloc.c
3560 +++ b/malloc/malloc.c
3561 @@ -4822,6 +4822,7 @@ _int_free(mstate av, mchunkptr p)
3565 + atomic_full_barrier ();
3567 while ((old = catomic_compare_and_exchange_val_acq (fb, p, fd)) != fd);
3569 commit bec466d922ee22b94ac0d00415fb605e136efe6e
3570 Author: Ulrich Drepper <drepper@redhat.com>
3571 Date: Thu Jul 16 09:54:34 2009 -0700
3573 Fix race in corruption check.
3575 With atomic fastbins the checks performed can race with concurrent
3576 modifications of the arena. If we detect a problem re-do the test
3577 after getting the lock.
3579 diff --git a/ChangeLog b/ChangeLog
3580 index 1e9df42..6ddf9a1 100644
3581 diff --git a/malloc/malloc.c b/malloc/malloc.c
3582 index 0c0182e..a459a2b 100644
3583 --- a/malloc/malloc.c
3584 +++ b/malloc/malloc.c
3585 @@ -4799,8 +4799,29 @@ _int_free(mstate av, mchunkptr p)
3586 || __builtin_expect (chunksize (chunk_at_offset (p, size))
3587 >= av->system_mem, 0))
3589 - errstr = "free(): invalid next size (fast)";
3591 +#ifdef ATOMIC_FASTBINS
3592 + /* We might not have a lock at this point and concurrent modifications
3593 + of system_mem might have let to a false positive. Redo the test
3594 + after getting the lock. */
3596 + || ({ assert (locked == 0);
3597 + mutex_lock(&av->mutex);
3599 + chunk_at_offset (p, size)->size <= 2 * SIZE_SZ
3600 + || chunksize (chunk_at_offset (p, size)) >= av->system_mem;
3604 + errstr = "free(): invalid next size (fast)";
3607 +#ifdef ATOMIC_FASTBINS
3610 + (void)mutex_unlock(&av->mutex);
3616 if (__builtin_expect (perturb_byte, 0))