]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Updated to fedora-glibc-20051219T1003 cvs/fedora-glibc-2_3_90-19
authorJakub Jelinek <jakub@redhat.com>
Mon, 19 Dec 2005 12:11:38 +0000 (12:11 +0000)
committerJakub Jelinek <jakub@redhat.com>
Mon, 19 Dec 2005 12:11:38 +0000 (12:11 +0000)
1125 files changed:
ChangeLog
Makeconfig
Makefile
Makefile.in
Makerules
NEWS
bare/brdinit.c [moved from sysdeps/generic/brdinit.c with 100% similarity]
bare/console.c [moved from sysdeps/generic/console.c with 100% similarity]
bare/strtsupp.c [moved from sysdeps/generic/strtsupp.c with 100% similarity]
catgets/gencat.c
config-name.in
config.make.in
csu/check_fds.c [moved from sysdeps/generic/check_fds.c with 100% similarity]
csu/errno-loc.c [moved from sysdeps/generic/errno-loc.c with 100% similarity]
csu/errno.c [moved from sysdeps/generic/errno.c with 100% similarity]
csu/init-first.c [moved from sysdeps/generic/init-first.c with 100% similarity]
csu/libc-start.c [moved from sysdeps/generic/libc-start.c with 100% similarity]
csu/libc-tls.c [moved from sysdeps/generic/libc-tls.c with 100% similarity]
csu/start.c [moved from sysdeps/generic/start.c with 100% similarity]
csu/sysdep.c [moved from sysdeps/generic/sysdep.c with 100% similarity]
debug/backtrace.c [moved from sysdeps/generic/backtrace.c with 100% similarity]
debug/backtracesyms.c [moved from sysdeps/generic/backtracesyms.c with 100% similarity]
debug/backtracesymsfd.c [moved from sysdeps/generic/backtracesymsfd.c with 100% similarity]
debug/memcpy_chk.c [moved from sysdeps/generic/memcpy_chk.c with 100% similarity]
debug/memmove_chk.c [moved from sysdeps/generic/memmove_chk.c with 100% similarity]
debug/mempcpy_chk.c [moved from sysdeps/generic/mempcpy_chk.c with 100% similarity]
debug/memset_chk.c [moved from sysdeps/generic/memset_chk.c with 100% similarity]
debug/readonly-area.c [moved from sysdeps/generic/readonly-area.c with 100% similarity]
debug/segfault.c [moved from sysdeps/generic/segfault.c with 100% similarity]
debug/stpcpy_chk.c [moved from sysdeps/generic/stpcpy_chk.c with 100% similarity]
debug/stpncpy_chk.c [moved from sysdeps/generic/stpncpy_chk.c with 100% similarity]
debug/strcat_chk.c [moved from sysdeps/generic/strcat_chk.c with 100% similarity]
debug/strcpy_chk.c [moved from sysdeps/generic/strcpy_chk.c with 100% similarity]
debug/strncat_chk.c [moved from sysdeps/generic/strncat_chk.c with 100% similarity]
debug/strncpy_chk.c [moved from sysdeps/generic/strncpy_chk.c with 100% similarity]
dirent/alphasort64.c [moved from sysdeps/generic/alphasort64.c with 100% similarity]
dirent/closedir.c [moved from sysdeps/generic/closedir.c with 100% similarity]
dirent/dirfd.c [moved from sysdeps/generic/dirfd.c with 100% similarity]
dirent/fdopendir.c [moved from sysdeps/generic/fdopendir.c with 100% similarity]
dirent/getdents.c [moved from sysdeps/generic/getdents.c with 100% similarity]
dirent/getdents64.c [moved from sysdeps/generic/getdents64.c with 100% similarity]
dirent/opendir.c [moved from sysdeps/generic/opendir.c with 100% similarity]
dirent/readdir.c [moved from sysdeps/generic/readdir.c with 100% similarity]
dirent/readdir64.c [moved from sysdeps/generic/readdir64.c with 100% similarity]
dirent/readdir64_r.c [moved from sysdeps/generic/readdir64_r.c with 100% similarity]
dirent/readdir_r.c [moved from sysdeps/generic/readdir_r.c with 100% similarity]
dirent/rewinddir.c [moved from sysdeps/generic/rewinddir.c with 100% similarity]
dirent/scandir64.c [moved from sysdeps/generic/scandir64.c with 100% similarity]
dirent/seekdir.c [moved from sysdeps/generic/seekdir.c with 100% similarity]
dirent/telldir.c [moved from sysdeps/generic/telldir.c with 100% similarity]
dirent/versionsort64.c [moved from sysdeps/generic/versionsort64.c with 100% similarity]
elf/Versions
elf/cache.c
elf/chroot_canon.c
elf/dl-brk.c [moved from sysdeps/generic/dl-brk.c with 100% similarity]
elf/dl-cache.c [moved from sysdeps/generic/dl-cache.c with 100% similarity]
elf/dl-environ.c [moved from sysdeps/generic/dl-environ.c with 100% similarity]
elf/dl-error.c
elf/dl-execstack.c [moved from sysdeps/generic/dl-execstack.c with 100% similarity]
elf/dl-fptr.c [moved from sysdeps/generic/dl-fptr.c with 100% similarity]
elf/dl-minimal.c
elf/dl-origin.c [moved from sysdeps/generic/dl-origin.c with 100% similarity]
elf/dl-sbrk.c [moved from sysdeps/generic/dl-sbrk.c with 100% similarity]
elf/dl-symaddr.c [moved from sysdeps/generic/dl-symaddr.c with 100% similarity]
elf/dl-sysdep.c [moved from sysdeps/generic/dl-sysdep.c with 100% similarity]
elf/dl-tls.c [moved from sysdeps/generic/dl-tls.c with 100% similarity]
elf/dl-trampoline.c [moved from sysdeps/generic/dl-trampoline.c with 100% similarity]
elf/enbl-secure.c [moved from sysdeps/generic/enbl-secure.c with 100% similarity]
elf/ldconfig.c
elf/readelflib.c [moved from sysdeps/generic/readelflib.c with 100% similarity]
elf/readlib.c
elf/rtld.c
fedora/branch.mk
fedora/glibc.spec.in
gmon/bb_init_func.c [moved from sysdeps/generic/bb_init_func.c with 100% similarity]
gmon/prof-freq.c [moved from sysdeps/generic/prof-freq.c with 100% similarity]
gmon/profil.c [moved from sysdeps/generic/profil.c with 100% similarity]
gmon/sprofil.c [moved from sysdeps/generic/sprofil.c with 100% similarity]
grp/setgroups.c [moved from sysdeps/generic/setgroups.c with 100% similarity]
hurd/exc2signal.c [moved from sysdeps/generic/exc2signal.c with 100% similarity]
hurd/hurdmalloc.c
hurd/longjmp-ts.c [moved from sysdeps/generic/longjmp-ts.c with 100% similarity]
hurd/trampoline.c [moved from sysdeps/generic/trampoline.c with 100% similarity]
iconv/dummy-repertoire.c
iconv/gconv.c
iconv/gconv_builtin.c
iconv/gconv_db.c
iconv/gconv_dl.c
iconv/iconv_charmap.c
iconv/iconv_prog.c
iconv/iconvconfig.c
iconv/skeleton.c
include/dirent.h
include/fcntl.h
include/sys/sendfile.h [new file with mode: 0644]
include/sys/stat.h
inet/check_pf.c [moved from sysdeps/generic/check_pf.c with 100% similarity]
inet/getipv4sourcefilter.c [moved from sysdeps/generic/getipv4sourcefilter.c with 100% similarity]
inet/getsourcefilter.c [moved from sysdeps/generic/getsourcefilter.c with 100% similarity]
inet/herrno-loc.c [moved from sysdeps/generic/herrno-loc.c with 100% similarity]
inet/htonl.c [moved from sysdeps/generic/htonl.c with 100% similarity]
inet/htons.c [moved from sysdeps/generic/htons.c with 100% similarity]
inet/if_index.c [moved from sysdeps/generic/if_index.c with 100% similarity]
inet/ifaddrs.c [moved from sysdeps/generic/ifaddrs.c with 100% similarity]
inet/ifreq.c [moved from sysdeps/generic/ifreq.c with 100% similarity]
inet/setipv4sourcefilter.c [moved from sysdeps/generic/setipv4sourcefilter.c with 100% similarity]
inet/setsourcefilter.c [moved from sysdeps/generic/setsourcefilter.c with 100% similarity]
io/Makefile
io/Versions
io/access.c [moved from sysdeps/generic/access.c with 100% similarity]
io/chdir.c [moved from sysdeps/generic/chdir.c with 100% similarity]
io/chmod.c [moved from sysdeps/generic/chmod.c with 100% similarity]
io/chown.c [moved from sysdeps/generic/chown.c with 100% similarity]
io/close.c [moved from sysdeps/generic/close.c with 100% similarity]
io/creat.c [moved from sysdeps/generic/creat.c with 100% similarity]
io/creat64.c [moved from sysdeps/generic/creat64.c with 100% similarity]
io/dup.c [moved from sysdeps/generic/dup.c with 100% similarity]
io/dup2.c [moved from sysdeps/generic/dup2.c with 100% similarity]
io/euidaccess.c [moved from sysdeps/generic/euidaccess.c with 100% similarity]
io/fchdir.c [moved from sysdeps/generic/fchdir.c with 100% similarity]
io/fchmod.c [moved from sysdeps/generic/fchmod.c with 100% similarity]
io/fchown.c [moved from sysdeps/generic/fchown.c with 100% similarity]
io/fchownat.c [moved from sysdeps/generic/fchownat.c with 100% similarity]
io/fcntl.c [moved from sysdeps/generic/fcntl.c with 100% similarity]
io/flock.c [moved from sysdeps/generic/flock.c with 100% similarity]
io/fstatfs.c [moved from sysdeps/generic/fstatfs.c with 100% similarity]
io/fstatfs64.c [moved from sysdeps/generic/fstatfs64.c with 100% similarity]
io/fstatvfs.c [moved from sysdeps/generic/fstatvfs.c with 100% similarity]
io/fstatvfs64.c [moved from sysdeps/generic/fstatvfs64.c with 100% similarity]
io/fxstat.c [moved from sysdeps/generic/fxstat.c with 100% similarity]
io/fxstat64.c [moved from sysdeps/generic/fxstat64.c with 100% similarity]
io/fxstatat.c [moved from sysdeps/generic/fxstatat.c with 100% similarity]
io/fxstatat64.c [moved from sysdeps/generic/fxstatat64.c with 100% similarity]
io/getcwd.c [moved from sysdeps/generic/getcwd.c with 100% similarity]
io/isatty.c [moved from sysdeps/generic/isatty.c with 100% similarity]
io/lchmod.c [moved from sysdeps/generic/lchmod.c with 100% similarity]
io/lchown.c [moved from sysdeps/generic/lchown.c with 100% similarity]
io/link.c [moved from sysdeps/generic/link.c with 100% similarity]
io/linkat.c [new file with mode: 0644]
io/lockf.c [moved from sysdeps/generic/lockf.c with 100% similarity]
io/lockf64.c [moved from sysdeps/generic/lockf64.c with 100% similarity]
io/lseek64.c [moved from sysdeps/generic/lseek64.c with 100% similarity]
io/lxstat.c [moved from sysdeps/generic/lxstat.c with 100% similarity]
io/lxstat64.c [moved from sysdeps/generic/lxstat64.c with 100% similarity]
io/mkdir.c [moved from sysdeps/generic/mkdir.c with 100% similarity]
io/mkdirat.c [new file with mode: 0644]
io/mkfifo.c [moved from sysdeps/generic/mkfifo.c with 100% similarity]
io/mkfifoat.c [new file with mode: 0644]
io/mknod.c [moved from sysdeps/generic/mknod.c with 100% similarity]
io/mknodat.c [new file with mode: 0644]
io/open.c [moved from sysdeps/generic/open.c with 100% similarity]
io/open64.c [moved from sysdeps/generic/open64.c with 100% similarity]
io/openat.c [moved from sysdeps/generic/openat.c with 100% similarity]
io/openat64.c [moved from sysdeps/generic/openat64.c with 100% similarity]
io/pipe.c [moved from sysdeps/generic/pipe.c with 100% similarity]
io/poll.c [moved from sysdeps/generic/poll.c with 100% similarity]
io/posix_fadvise.c [moved from sysdeps/generic/posix_fadvise.c with 100% similarity]
io/posix_fadvise64.c [moved from sysdeps/generic/posix_fadvise64.c with 100% similarity]
io/posix_fallocate.c [moved from sysdeps/generic/posix_fallocate.c with 100% similarity]
io/posix_fallocate64.c [moved from sysdeps/generic/posix_fallocate64.c with 100% similarity]
io/read.c [moved from sysdeps/generic/read.c with 100% similarity]
io/readlink.c [moved from sysdeps/generic/readlink.c with 100% similarity]
io/readlinkat.c [new file with mode: 0644]
io/rmdir.c [moved from sysdeps/generic/rmdir.c with 100% similarity]
io/sendfile.c [moved from sysdeps/generic/sendfile.c with 100% similarity]
io/sendfile64.c [moved from sysdeps/generic/sendfile64.c with 100% similarity]
io/statfs.c [moved from sysdeps/generic/statfs.c with 100% similarity]
io/statfs64.c [moved from sysdeps/generic/statfs64.c with 100% similarity]
io/statvfs.c [moved from sysdeps/generic/statvfs.c with 100% similarity]
io/statvfs64.c [moved from sysdeps/generic/statvfs64.c with 100% similarity]
io/symlink.c [moved from sysdeps/generic/symlink.c with 100% similarity]
io/symlinkat.c [moved from sysdeps/generic/det_endian.c with 59% similarity]
io/sys/stat.h
io/ttyname.c [moved from sysdeps/generic/ttyname.c with 100% similarity]
io/ttyname_r.c [moved from sysdeps/generic/ttyname_r.c with 100% similarity]
io/umask.c [moved from sysdeps/generic/umask.c with 100% similarity]
io/unlink.c [moved from sysdeps/generic/unlink.c with 100% similarity]
io/unlinkat.c [moved from sysdeps/generic/unlinkat.c with 100% similarity]
io/utime.c [moved from sysdeps/generic/utime.c with 100% similarity]
io/write.c [moved from sysdeps/generic/write.c with 100% similarity]
io/xmknod.c [moved from sysdeps/generic/xmknod.c with 90% similarity]
io/xmknodat.c [new file with mode: 0644]
io/xstat.c [moved from sysdeps/generic/xstat.c with 100% similarity]
io/xstat64.c [moved from sysdeps/generic/xstat64.c with 100% similarity]
libio/iofwide.c
libio/libc_fatal.c [moved from sysdeps/generic/libc_fatal.c with 100% similarity]
libio/libioP.h
locale/programs/3level.h
locale/programs/charmap-dir.c
locale/programs/charmap-dir.h
locale/programs/charmap-kw.gperf
locale/programs/charmap-kw.h
locale/programs/charmap.c
locale/programs/charmap.h
locale/programs/config.h
locale/programs/ld-address.c
locale/programs/ld-collate.c
locale/programs/ld-ctype.c
locale/programs/ld-identification.c
locale/programs/ld-measurement.c
locale/programs/ld-messages.c
locale/programs/ld-monetary.c
locale/programs/ld-name.c
locale/programs/ld-numeric.c
locale/programs/ld-paper.c
locale/programs/ld-telephone.c
locale/programs/ld-time.c
locale/programs/linereader.c
locale/programs/linereader.h
locale/programs/locale-spec.c
locale/programs/locale.c
locale/programs/localedef.c
locale/programs/localedef.h
locale/programs/locarchive.c
locale/programs/locfile-kw.gperf
locale/programs/locfile-kw.h
locale/programs/locfile-token.h
locale/programs/locfile.c
locale/programs/locfile.h
locale/programs/repertoire.c
locale/programs/repertoire.h
locale/programs/simple-hash.c
locale/programs/simple-hash.h
locale/programs/xmalloc.c
locale/programs/xstrdup.c
localedata/ChangeLog
localedata/locales/se_NO
login/endutxent.c [moved from sysdeps/generic/endutxent.c with 100% similarity]
login/getpt.c [moved from sysdeps/generic/getpt.c with 100% similarity]
login/getutmp.c [moved from sysdeps/generic/getutmp.c with 100% similarity]
login/getutmpx.c [moved from sysdeps/generic/getutmpx.c with 100% similarity]
login/getutxent.c [moved from sysdeps/generic/getutxent.c with 100% similarity]
login/getutxid.c [moved from sysdeps/generic/getutxid.c with 100% similarity]
login/getutxline.c [moved from sysdeps/generic/getutxline.c with 100% similarity]
login/grantpt.c [moved from sysdeps/generic/grantpt.c with 100% similarity]
login/ptsname.c [moved from sysdeps/generic/ptsname.c with 100% similarity]
login/pututxline.c [moved from sysdeps/generic/pututxline.c with 100% similarity]
login/setutxent.c [moved from sysdeps/generic/setutxent.c with 100% similarity]
login/unlockpt.c [moved from sysdeps/generic/unlockpt.c with 100% similarity]
login/updwtmp.c [moved from sysdeps/generic/updwtmp.c with 100% similarity]
login/updwtmpx.c [moved from sysdeps/generic/updwtmpx.c with 100% similarity]
login/utmp_file.c [moved from sysdeps/generic/utmp_file.c with 100% similarity]
login/utmpxname.c [moved from sysdeps/generic/utmpxname.c with 100% similarity]
mach/err_kern.sub
mach/err_server.sub
mach/err_us.sub
mach/error_compat.c
mach/errorlib.h
mach/errstring.c
mach/mach/error.h
mach/mach_error.c
mach/mach_error.h
mach/mig-reply.c [moved from sysdeps/generic/mig-reply.c with 100% similarity]
mach/msg-destroy.c
mach/msgserver.c
malloc/arena.c
malloc/hooks.c
malloc/malloc.c
malloc/memusagestat.c
malloc/morecore.c [moved from sysdeps/generic/morecore.c with 100% similarity]
malloc/tst-mallocfork.c
manual/dir
manual/install.texi
manual/stdio.texi
math/cabsf.c [moved from sysdeps/generic/cabsf.c with 100% similarity]
math/cargf.c [moved from sysdeps/generic/cargf.c with 100% similarity]
math/cimagf.c [moved from sysdeps/generic/cimagf.c with 100% similarity]
math/conjf.c [moved from sysdeps/generic/conjf.c with 100% similarity]
math/crealf.c [moved from sysdeps/generic/crealf.c with 100% similarity]
math/e_acoshl.c [moved from sysdeps/generic/e_acoshl.c with 100% similarity]
math/e_acosl.c [moved from sysdeps/generic/e_acosl.c with 100% similarity]
math/e_asinl.c [moved from sysdeps/generic/e_asinl.c with 100% similarity]
math/e_atan2l.c [moved from sysdeps/generic/e_atan2l.c with 100% similarity]
math/e_atanhl.c [moved from sysdeps/generic/e_atanhl.c with 100% similarity]
math/e_coshl.c [moved from sysdeps/generic/e_coshl.c with 100% similarity]
math/e_exp10.c [moved from sysdeps/generic/e_exp10.c with 100% similarity]
math/e_exp10f.c [moved from sysdeps/generic/e_exp10f.c with 100% similarity]
math/e_exp10l.c [moved from sysdeps/generic/e_exp10l.c with 100% similarity]
math/e_exp2l.c [moved from sysdeps/generic/e_exp2l.c with 100% similarity]
math/e_expl.c [moved from sysdeps/generic/e_expl.c with 100% similarity]
math/e_fmodl.c [moved from sysdeps/generic/e_fmodl.c with 100% similarity]
math/e_gammal_r.c [moved from sysdeps/generic/e_gammal_r.c with 100% similarity]
math/e_hypotl.c [moved from sysdeps/generic/e_hypotl.c with 100% similarity]
math/e_j0l.c [moved from sysdeps/generic/e_j0l.c with 100% similarity]
math/e_j1l.c [moved from sysdeps/generic/e_j1l.c with 100% similarity]
math/e_jnl.c [moved from sysdeps/generic/e_jnl.c with 100% similarity]
math/e_lgammal_r.c [moved from sysdeps/generic/e_lgammal_r.c with 100% similarity]
math/e_log10l.c [moved from sysdeps/generic/e_log10l.c with 100% similarity]
math/e_log2l.c [moved from sysdeps/generic/e_log2l.c with 100% similarity]
math/e_logl.c [moved from sysdeps/generic/e_logl.c with 100% similarity]
math/e_powl.c [moved from sysdeps/generic/e_powl.c with 100% similarity]
math/e_rem_pio2l.c [moved from sysdeps/generic/e_rem_pio2l.c with 100% similarity]
math/e_scalb.c [moved from sysdeps/generic/e_scalb.c with 98% similarity]
math/e_scalbf.c [moved from sysdeps/generic/e_scalbf.c with 98% similarity]
math/e_scalbl.c [moved from sysdeps/generic/e_scalbl.c with 98% similarity]
math/e_sinhl.c [moved from sysdeps/generic/e_sinhl.c with 100% similarity]
math/e_sqrtl.c [moved from sysdeps/generic/e_sqrtl.c with 100% similarity]
math/fclrexcpt.c [moved from sysdeps/generic/fclrexcpt.c with 100% similarity]
math/fedisblxcpt.c [moved from sysdeps/generic/fedisblxcpt.c with 100% similarity]
math/feenablxcpt.c [moved from sysdeps/generic/feenablxcpt.c with 100% similarity]
math/fegetenv.c [moved from sysdeps/generic/fegetenv.c with 100% similarity]
math/fegetexcept.c [moved from sysdeps/generic/fegetexcept.c with 100% similarity]
math/fegetround.c [moved from sysdeps/generic/fegetround.c with 100% similarity]
math/feholdexcpt.c [moved from sysdeps/generic/feholdexcpt.c with 100% similarity]
math/fesetenv.c [moved from sysdeps/generic/fesetenv.c with 100% similarity]
math/fesetround.c [moved from sysdeps/generic/fesetround.c with 100% similarity]
math/feupdateenv.c [moved from sysdeps/generic/feupdateenv.c with 100% similarity]
math/fgetexcptflg.c [moved from sysdeps/generic/fgetexcptflg.c with 100% similarity]
math/fpu_control.c [moved from sysdeps/generic/fpu_control.c with 100% similarity]
math/fraiseexcpt.c [moved from sysdeps/generic/fraiseexcpt.c with 100% similarity]
math/fsetexcptflg.c [moved from sysdeps/generic/fsetexcptflg.c with 100% similarity]
math/ftestexcept.c [moved from sysdeps/generic/ftestexcept.c with 100% similarity]
math/k_cosl.c [moved from sysdeps/generic/k_cosl.c with 100% similarity]
math/k_rem_pio2l.c [moved from sysdeps/generic/k_rem_pio2l.c with 100% similarity]
math/k_sincosl.c [moved from sysdeps/generic/k_sincosl.c with 100% similarity]
math/k_sinl.c [moved from sysdeps/generic/k_sinl.c with 100% similarity]
math/k_tanl.c [moved from sysdeps/generic/k_tanl.c with 100% similarity]
math/math_private.h
math/s_asinhl.c [moved from sysdeps/generic/s_asinhl.c with 100% similarity]
math/s_atanl.c [moved from sysdeps/generic/s_atanl.c with 100% similarity]
math/s_cacos.c [moved from sysdeps/generic/s_cacos.c with 100% similarity]
math/s_cacosf.c [moved from sysdeps/generic/s_cacosf.c with 100% similarity]
math/s_cacosh.c [moved from sysdeps/generic/s_cacosh.c with 100% similarity]
math/s_cacoshf.c [moved from sysdeps/generic/s_cacoshf.c with 100% similarity]
math/s_cacoshl.c [moved from sysdeps/generic/s_cacoshl.c with 100% similarity]
math/s_cacosl.c [moved from sysdeps/generic/s_cacosl.c with 100% similarity]
math/s_casin.c [moved from sysdeps/generic/s_casin.c with 100% similarity]
math/s_casinf.c [moved from sysdeps/generic/s_casinf.c with 100% similarity]
math/s_casinh.c [moved from sysdeps/generic/s_casinh.c with 100% similarity]
math/s_casinhf.c [moved from sysdeps/generic/s_casinhf.c with 100% similarity]
math/s_casinhl.c [moved from sysdeps/generic/s_casinhl.c with 100% similarity]
math/s_casinl.c [moved from sysdeps/generic/s_casinl.c with 100% similarity]
math/s_catan.c [moved from sysdeps/generic/s_catan.c with 100% similarity]
math/s_catanf.c [moved from sysdeps/generic/s_catanf.c with 100% similarity]
math/s_catanh.c [moved from sysdeps/generic/s_catanh.c with 100% similarity]
math/s_catanhf.c [moved from sysdeps/generic/s_catanhf.c with 100% similarity]
math/s_catanhl.c [moved from sysdeps/generic/s_catanhl.c with 100% similarity]
math/s_catanl.c [moved from sysdeps/generic/s_catanl.c with 100% similarity]
math/s_cbrtl.c [moved from sysdeps/generic/s_cbrtl.c with 100% similarity]
math/s_ccos.c [moved from sysdeps/generic/s_ccos.c with 100% similarity]
math/s_ccosf.c [moved from sysdeps/generic/s_ccosf.c with 100% similarity]
math/s_ccosh.c [moved from sysdeps/generic/s_ccosh.c with 100% similarity]
math/s_ccoshf.c [moved from sysdeps/generic/s_ccoshf.c with 100% similarity]
math/s_ccoshl.c [moved from sysdeps/generic/s_ccoshl.c with 100% similarity]
math/s_ccosl.c [moved from sysdeps/generic/s_ccosl.c with 100% similarity]
math/s_cexp.c [moved from sysdeps/generic/s_cexp.c with 100% similarity]
math/s_cexpf.c [moved from sysdeps/generic/s_cexpf.c with 100% similarity]
math/s_cexpl.c [moved from sysdeps/generic/s_cexpl.c with 100% similarity]
math/s_clog.c [moved from sysdeps/generic/s_clog.c with 100% similarity]
math/s_clog10.c [moved from sysdeps/generic/s_clog10.c with 100% similarity]
math/s_clog10f.c [moved from sysdeps/generic/s_clog10f.c with 100% similarity]
math/s_clog10l.c [moved from sysdeps/generic/s_clog10l.c with 100% similarity]
math/s_clogf.c [moved from sysdeps/generic/s_clogf.c with 100% similarity]
math/s_clogl.c [moved from sysdeps/generic/s_clogl.c with 100% similarity]
math/s_cpow.c [moved from sysdeps/generic/s_cpow.c with 100% similarity]
math/s_cpowf.c [moved from sysdeps/generic/s_cpowf.c with 100% similarity]
math/s_cpowl.c [moved from sysdeps/generic/s_cpowl.c with 100% similarity]
math/s_cproj.c [moved from sysdeps/generic/s_cproj.c with 100% similarity]
math/s_cprojf.c [moved from sysdeps/generic/s_cprojf.c with 100% similarity]
math/s_cprojl.c [moved from sysdeps/generic/s_cprojl.c with 100% similarity]
math/s_csin.c [moved from sysdeps/generic/s_csin.c with 100% similarity]
math/s_csinf.c [moved from sysdeps/generic/s_csinf.c with 100% similarity]
math/s_csinh.c [moved from sysdeps/generic/s_csinh.c with 100% similarity]
math/s_csinhf.c [moved from sysdeps/generic/s_csinhf.c with 100% similarity]
math/s_csinhl.c [moved from sysdeps/generic/s_csinhl.c with 100% similarity]
math/s_csinl.c [moved from sysdeps/generic/s_csinl.c with 100% similarity]
math/s_csqrt.c [moved from sysdeps/generic/s_csqrt.c with 100% similarity]
math/s_csqrtf.c [moved from sysdeps/generic/s_csqrtf.c with 100% similarity]
math/s_csqrtl.c [moved from sysdeps/generic/s_csqrtl.c with 100% similarity]
math/s_ctan.c [moved from sysdeps/generic/s_ctan.c with 100% similarity]
math/s_ctanf.c [moved from sysdeps/generic/s_ctanf.c with 100% similarity]
math/s_ctanh.c [moved from sysdeps/generic/s_ctanh.c with 100% similarity]
math/s_ctanhf.c [moved from sysdeps/generic/s_ctanhf.c with 100% similarity]
math/s_ctanhl.c [moved from sysdeps/generic/s_ctanhl.c with 100% similarity]
math/s_ctanl.c [moved from sysdeps/generic/s_ctanl.c with 100% similarity]
math/s_erfl.c [moved from sysdeps/generic/s_erfl.c with 100% similarity]
math/s_expm1l.c [moved from sysdeps/generic/s_expm1l.c with 100% similarity]
math/s_fdim.c [moved from sysdeps/generic/s_fdim.c with 100% similarity]
math/s_fdimf.c [moved from sysdeps/generic/s_fdimf.c with 100% similarity]
math/s_fdiml.c [moved from sysdeps/generic/s_fdiml.c with 100% similarity]
math/s_fma.c [moved from sysdeps/generic/s_fma.c with 100% similarity]
math/s_fmaf.c [moved from sysdeps/generic/s_fmaf.c with 100% similarity]
math/s_fmal.c [moved from sysdeps/generic/s_fmal.c with 100% similarity]
math/s_fmax.c [moved from sysdeps/generic/s_fmax.c with 100% similarity]
math/s_fmaxf.c [moved from sysdeps/generic/s_fmaxf.c with 100% similarity]
math/s_fmaxl.c [moved from sysdeps/generic/s_fmaxl.c with 100% similarity]
math/s_fmin.c [moved from sysdeps/generic/s_fmin.c with 100% similarity]
math/s_fminf.c [moved from sysdeps/generic/s_fminf.c with 100% similarity]
math/s_fminl.c [moved from sysdeps/generic/s_fminl.c with 100% similarity]
math/s_ldexp.c [moved from sysdeps/generic/s_ldexp.c with 98% similarity]
math/s_ldexpf.c [moved from sysdeps/generic/s_ldexpf.c with 98% similarity]
math/s_ldexpl.c [moved from sysdeps/generic/s_ldexpl.c with 98% similarity]
math/s_log1pl.c [moved from sysdeps/generic/s_log1pl.c with 100% similarity]
math/s_nan.c [moved from sysdeps/generic/s_nan.c with 100% similarity]
math/s_nanf.c [moved from sysdeps/generic/s_nanf.c with 100% similarity]
math/s_nanl.c [moved from sysdeps/generic/s_nanl.c with 100% similarity]
math/s_nextafter.c [moved from sysdeps/generic/s_nextafter.c with 99% similarity]
math/s_nexttowardf.c [moved from sysdeps/generic/s_nexttowardf.c with 99% similarity]
math/s_nexttowardl.c [moved from sysdeps/generic/s_nexttowardl.c with 100% similarity]
math/s_significand.c [moved from sysdeps/generic/s_significand.c with 98% similarity]
math/s_significandf.c [moved from sysdeps/generic/s_significandf.c with 97% similarity]
math/s_significandl.c [moved from sysdeps/generic/s_significandl.c with 98% similarity]
math/s_tanhl.c [moved from sysdeps/generic/s_tanhl.c with 100% similarity]
math/setfpucw.c [moved from sysdeps/generic/setfpucw.c with 100% similarity]
math/t_sincosl.c [moved from sysdeps/generic/t_sincosl.c with 100% similarity]
math/w_acos.c [moved from sysdeps/generic/w_acos.c with 98% similarity]
math/w_acosf.c [moved from sysdeps/generic/w_acosf.c with 98% similarity]
math/w_acosh.c [moved from sysdeps/generic/w_acosh.c with 98% similarity]
math/w_acoshf.c [moved from sysdeps/generic/w_acoshf.c with 98% similarity]
math/w_acoshl.c [moved from sysdeps/generic/w_acoshl.c with 98% similarity]
math/w_acosl.c [moved from sysdeps/generic/w_acosl.c with 98% similarity]
math/w_asin.c [moved from sysdeps/generic/w_asin.c with 98% similarity]
math/w_asinf.c [moved from sysdeps/generic/w_asinf.c with 98% similarity]
math/w_asinl.c [moved from sysdeps/generic/w_asinl.c with 98% similarity]
math/w_atan2.c [moved from sysdeps/generic/w_atan2.c with 98% similarity]
math/w_atan2f.c [moved from sysdeps/generic/w_atan2f.c with 98% similarity]
math/w_atan2l.c [moved from sysdeps/generic/w_atan2l.c with 98% similarity]
math/w_atanh.c [moved from sysdeps/generic/w_atanh.c with 98% similarity]
math/w_atanhf.c [moved from sysdeps/generic/w_atanhf.c with 98% similarity]
math/w_atanhl.c [moved from sysdeps/generic/w_atanhl.c with 98% similarity]
math/w_cosh.c [moved from sysdeps/generic/w_cosh.c with 98% similarity]
math/w_coshf.c [moved from sysdeps/generic/w_coshf.c with 98% similarity]
math/w_coshl.c [moved from sysdeps/generic/w_coshl.c with 98% similarity]
math/w_drem.c [moved from sysdeps/generic/w_drem.c with 100% similarity]
math/w_dremf.c [moved from sysdeps/generic/w_dremf.c with 93% similarity]
math/w_dreml.c [moved from sysdeps/generic/w_dreml.c with 100% similarity]
math/w_exp10.c [moved from sysdeps/generic/w_exp10.c with 98% similarity]
math/w_exp10f.c [moved from sysdeps/generic/w_exp10f.c with 98% similarity]
math/w_exp10l.c [moved from sysdeps/generic/w_exp10l.c with 98% similarity]
math/w_exp2.c [moved from sysdeps/generic/w_exp2.c with 97% similarity]
math/w_exp2f.c [moved from sysdeps/generic/w_exp2f.c with 97% similarity]
math/w_exp2l.c [moved from sysdeps/generic/w_exp2l.c with 97% similarity]
math/w_expl.c [moved from sysdeps/generic/w_expl.c with 100% similarity]
math/w_fmod.c [moved from sysdeps/generic/w_fmod.c with 98% similarity]
math/w_fmodf.c [moved from sysdeps/generic/w_fmodf.c with 98% similarity]
math/w_fmodl.c [moved from sysdeps/generic/w_fmodl.c with 98% similarity]
math/w_hypot.c [moved from sysdeps/generic/w_hypot.c with 98% similarity]
math/w_hypotf.c [moved from sysdeps/generic/w_hypotf.c with 98% similarity]
math/w_hypotl.c [moved from sysdeps/generic/w_hypotl.c with 98% similarity]
math/w_j0.c [moved from sysdeps/generic/w_j0.c with 98% similarity]
math/w_j0f.c [moved from sysdeps/generic/w_j0f.c with 99% similarity]
math/w_j0l.c [moved from sysdeps/generic/w_j0l.c with 98% similarity]
math/w_j1.c [moved from sysdeps/generic/w_j1.c with 98% similarity]
math/w_j1f.c [moved from sysdeps/generic/w_j1f.c with 99% similarity]
math/w_j1l.c [moved from sysdeps/generic/w_j1l.c with 98% similarity]
math/w_jn.c [moved from sysdeps/generic/w_jn.c with 99% similarity]
math/w_jnf.c [moved from sysdeps/generic/w_jnf.c with 99% similarity]
math/w_jnl.c [moved from sysdeps/generic/w_jnl.c with 99% similarity]
math/w_lgamma.c [moved from sysdeps/generic/w_lgamma.c with 98% similarity]
math/w_lgamma_r.c [moved from sysdeps/generic/w_lgamma_r.c with 98% similarity]
math/w_lgammaf.c [moved from sysdeps/generic/w_lgammaf.c with 98% similarity]
math/w_lgammaf_r.c [moved from sysdeps/generic/w_lgammaf_r.c with 98% similarity]
math/w_lgammal.c [moved from sysdeps/generic/w_lgammal.c with 98% similarity]
math/w_lgammal_r.c [moved from sysdeps/generic/w_lgammal_r.c with 98% similarity]
math/w_log.c [moved from sysdeps/generic/w_log.c with 98% similarity]
math/w_log10.c [moved from sysdeps/generic/w_log10.c with 98% similarity]
math/w_log10f.c [moved from sysdeps/generic/w_log10f.c with 98% similarity]
math/w_log10l.c [moved from sysdeps/generic/w_log10l.c with 98% similarity]
math/w_log2.c [moved from sysdeps/generic/w_log2.c with 96% similarity]
math/w_log2f.c [moved from sysdeps/generic/w_log2f.c with 96% similarity]
math/w_log2l.c [moved from sysdeps/generic/w_log2l.c with 96% similarity]
math/w_logf.c [moved from sysdeps/generic/w_logf.c with 98% similarity]
math/w_logl.c [moved from sysdeps/generic/w_logl.c with 98% similarity]
math/w_pow.c [moved from sysdeps/generic/w_pow.c with 98% similarity]
math/w_powf.c [moved from sysdeps/generic/w_powf.c with 99% similarity]
math/w_powl.c [moved from sysdeps/generic/w_powl.c with 98% similarity]
math/w_remainder.c [moved from sysdeps/generic/w_remainder.c with 98% similarity]
math/w_remainderf.c [moved from sysdeps/generic/w_remainderf.c with 98% similarity]
math/w_remainderl.c [moved from sysdeps/generic/w_remainderl.c with 98% similarity]
math/w_scalb.c [moved from sysdeps/generic/w_scalb.c with 98% similarity]
math/w_scalbf.c [moved from sysdeps/generic/w_scalbf.c with 98% similarity]
math/w_scalbl.c [moved from sysdeps/generic/w_scalbl.c with 98% similarity]
math/w_sinh.c [moved from sysdeps/generic/w_sinh.c with 98% similarity]
math/w_sinhf.c [moved from sysdeps/generic/w_sinhf.c with 98% similarity]
math/w_sinhl.c [moved from sysdeps/generic/w_sinhl.c with 98% similarity]
math/w_sqrt.c [moved from sysdeps/generic/w_sqrt.c with 98% similarity]
math/w_sqrtf.c [moved from sysdeps/generic/w_sqrtf.c with 98% similarity]
math/w_sqrtl.c [moved from sysdeps/generic/w_sqrtl.c with 98% similarity]
math/w_tgamma.c [moved from sysdeps/generic/w_tgamma.c with 98% similarity]
math/w_tgammaf.c [moved from sysdeps/generic/w_tgammaf.c with 98% similarity]
math/w_tgammal.c [moved from sysdeps/generic/w_tgammal.c with 98% similarity]
misc/acct.c [moved from sysdeps/generic/acct.c with 100% similarity]
misc/brk.c [moved from sysdeps/generic/brk.c with 100% similarity]
misc/chflags.c [moved from sysdeps/generic/chflags.c with 100% similarity]
misc/chroot.c [moved from sysdeps/generic/chroot.c with 100% similarity]
misc/fchflags.c [moved from sysdeps/generic/fchflags.c with 100% similarity]
misc/fdatasync.c [moved from sysdeps/generic/fdatasync.c with 100% similarity]
misc/fgetxattr.c [moved from sysdeps/generic/fgetxattr.c with 100% similarity]
misc/flistxattr.c [moved from sysdeps/generic/flistxattr.c with 100% similarity]
misc/fremovexattr.c [moved from sysdeps/generic/fremovexattr.c with 100% similarity]
misc/fsetxattr.c [moved from sysdeps/generic/fsetxattr.c with 100% similarity]
misc/fsync.c [moved from sysdeps/generic/fsync.c with 100% similarity]
misc/ftruncate.c [moved from sysdeps/generic/ftruncate.c with 100% similarity]
misc/ftruncate64.c [moved from sysdeps/generic/ftruncate64.c with 100% similarity]
misc/futimes.c [moved from sysdeps/generic/futimes.c with 100% similarity]
misc/futimesat.c [moved from sysdeps/generic/futimesat.c with 100% similarity]
misc/getclktck.c [moved from sysdeps/generic/getclktck.c with 100% similarity]
misc/getdomain.c [moved from sysdeps/generic/getdomain.c with 100% similarity]
misc/getdtsz.c [moved from sysdeps/generic/getdtsz.c with 100% similarity]
misc/gethostid.c [moved from sysdeps/generic/gethostid.c with 100% similarity]
misc/gethostname.c [moved from sysdeps/generic/gethostname.c with 100% similarity]
misc/getloadavg.c [moved from sysdeps/generic/getloadavg.c with 100% similarity]
misc/getpagesize.c [moved from sysdeps/generic/getpagesize.c with 100% similarity]
misc/getsysstats.c [moved from sysdeps/generic/getsysstats.c with 100% similarity]
misc/getxattr.c [moved from sysdeps/generic/getxattr.c with 100% similarity]
misc/gtty.c [moved from sysdeps/generic/gtty.c with 100% similarity]
misc/ioctl.c [moved from sysdeps/generic/ioctl.c with 100% similarity]
misc/lgetxattr.c [moved from sysdeps/generic/lgetxattr.c with 100% similarity]
misc/listxattr.c [moved from sysdeps/generic/listxattr.c with 100% similarity]
misc/llistxattr.c [moved from sysdeps/generic/llistxattr.c with 100% similarity]
misc/lremovexattr.c [moved from sysdeps/generic/lremovexattr.c with 100% similarity]
misc/lseek.c [moved from sysdeps/generic/lseek.c with 100% similarity]
misc/lsetxattr.c [moved from sysdeps/generic/lsetxattr.c with 100% similarity]
misc/lutimes.c [moved from sysdeps/generic/lutimes.c with 100% similarity]
misc/madvise.c [moved from sysdeps/generic/madvise.c with 100% similarity]
misc/mincore.c [moved from sysdeps/generic/mincore.c with 100% similarity]
misc/mlock.c [moved from sysdeps/generic/mlock.c with 100% similarity]
misc/mlockall.c [moved from sysdeps/generic/mlockall.c with 100% similarity]
misc/mmap.c [moved from sysdeps/generic/mmap.c with 100% similarity]
misc/mmap64.c [moved from sysdeps/generic/mmap64.c with 100% similarity]
misc/mprotect.c [moved from sysdeps/generic/mprotect.c with 100% similarity]
misc/msync.c [moved from sysdeps/generic/msync.c with 100% similarity]
misc/munlock.c [moved from sysdeps/generic/munlock.c with 100% similarity]
misc/munlockall.c [moved from sysdeps/generic/munlockall.c with 100% similarity]
misc/munmap.c [moved from sysdeps/generic/munmap.c with 100% similarity]
misc/pselect.c [moved from sysdeps/generic/pselect.c with 100% similarity]
misc/ptrace.c [moved from sysdeps/generic/ptrace.c with 100% similarity]
misc/readv.c [moved from sysdeps/generic/readv.c with 100% similarity]
misc/reboot.c [moved from sysdeps/generic/reboot.c with 100% similarity]
misc/remap_file_pages.c [moved from sysdeps/generic/remap_file_pages.c with 100% similarity]
misc/removexattr.c [moved from sysdeps/generic/removexattr.c with 100% similarity]
misc/revoke.c [moved from sysdeps/generic/revoke.c with 100% similarity]
misc/sbrk.c [moved from sysdeps/generic/sbrk.c with 100% similarity]
misc/select.c [moved from sysdeps/generic/select.c with 100% similarity]
misc/setdomain.c [moved from sysdeps/generic/setdomain.c with 100% similarity]
misc/setegid.c [moved from sysdeps/generic/setegid.c with 100% similarity]
misc/seteuid.c [moved from sysdeps/generic/seteuid.c with 100% similarity]
misc/sethostid.c [moved from sysdeps/generic/sethostid.c with 100% similarity]
misc/sethostname.c [moved from sysdeps/generic/sethostname.c with 100% similarity]
misc/setregid.c [moved from sysdeps/generic/setregid.c with 100% similarity]
misc/setreuid.c [moved from sysdeps/generic/setreuid.c with 100% similarity]
misc/setxattr.c [moved from sysdeps/generic/setxattr.c with 100% similarity]
misc/sstk.c [moved from sysdeps/generic/sstk.c with 100% similarity]
misc/stty.c [moved from sysdeps/generic/stty.c with 100% similarity]
misc/swapoff.c [moved from sysdeps/generic/swapoff.c with 100% similarity]
misc/swapon.c [moved from sysdeps/generic/swapon.c with 100% similarity]
misc/sync.c [moved from sysdeps/generic/sync.c with 100% similarity]
misc/syscall.c [moved from sysdeps/generic/syscall.c with 100% similarity]
misc/syslog.c [moved from sysdeps/generic/syslog.c with 100% similarity]
misc/truncate.c [moved from sysdeps/generic/truncate.c with 100% similarity]
misc/truncate64.c [moved from sysdeps/generic/truncate64.c with 100% similarity]
misc/ualarm.c [moved from sysdeps/generic/ualarm.c with 100% similarity]
misc/usleep.c [moved from sysdeps/generic/usleep.c with 100% similarity]
misc/ustat.c [moved from sysdeps/generic/ustat.c with 100% similarity]
misc/utimes.c [moved from sysdeps/generic/utimes.c with 100% similarity]
misc/vhangup.c [moved from sysdeps/generic/vhangup.c with 100% similarity]
misc/writev.c [moved from sysdeps/generic/writev.c with 100% similarity]
nis/nis_call.c
nis/nis_error.c
nis/nis_lookup.c
nis/nis_table.c
nis/nss_nisplus/nisplus-alias.c
nis/nss_nisplus/nisplus-ethers.c
nis/nss_nisplus/nisplus-grp.c
nis/nss_nisplus/nisplus-hosts.c
nis/nss_nisplus/nisplus-netgrp.c
nis/nss_nisplus/nisplus-network.c
nis/nss_nisplus/nisplus-proto.c
nis/nss_nisplus/nisplus-publickey.c
nis/nss_nisplus/nisplus-pwd.c
nis/nss_nisplus/nisplus-rpc.c
nis/nss_nisplus/nisplus-service.c
nis/nss_nisplus/nisplus-spwd.c
nis/ypclnt.c
nptl/ChangeLog
nptl/allocatestack.c
nptl/errno-loc.c [new file with mode: 0644]
nptl/init.c
nptl/pthread_create.c
nptl/sysdeps/i386/tcb-offsets.sym
nptl/sysdeps/i386/tls.h
nptl/sysdeps/pthread/pthread.h
nptl/sysdeps/pthread/sigfillset.c
nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/mq_notify.c
nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
nptl/sysdeps/x86_64/tcb-offsets.sym
nptl/sysdeps/x86_64/tls.h
nscd/Makefile
nscd/aicache.c
nscd/cache.c
nscd/connections.c
nscd/dbg_log.c
nscd/gai.c
nscd/getgrgid_r.c
nscd/getgrnam_r.c
nscd/gethstbyad_r.c
nscd/gethstbynm2_r.c
nscd/getpwnam_r.c
nscd/getpwuid_r.c
nscd/grpcache.c
nscd/hstcache.c
nscd/initgrcache.c
nscd/mem.c
nscd/nscd-client.h
nscd/nscd.c
nscd/nscd_conf.c
nscd/nscd_helper.c
nscd/nscd_nischeck.c [deleted file]
nscd/nscd_setup_thread.c [new file with mode: 0644]
nscd/pwdcache.c
nss/function.def
nss/nss_files/files-netgrp.c
posix/_exit.c [moved from sysdeps/generic/_exit.c with 100% similarity]
posix/alarm.c [moved from sysdeps/generic/alarm.c with 100% similarity]
posix/environ.c [moved from sysdeps/generic/environ.c with 100% similarity]
posix/execve.c [moved from sysdeps/generic/execve.c with 100% similarity]
posix/fexecve.c [moved from sysdeps/generic/fexecve.c with 100% similarity]
posix/fork.c [moved from sysdeps/generic/fork.c with 100% similarity]
posix/fpathconf.c [moved from sysdeps/generic/fpathconf.c with 100% similarity]
posix/gai_strerror.c [moved from sysdeps/generic/gai_strerror.c with 100% similarity]
posix/getaddrinfo.c [moved from sysdeps/generic/getaddrinfo.c with 100% similarity]
posix/getconf.c
posix/getegid.c [moved from sysdeps/generic/getegid.c with 100% similarity]
posix/geteuid.c [moved from sysdeps/generic/geteuid.c with 100% similarity]
posix/getgid.c [moved from sysdeps/generic/getgid.c with 100% similarity]
posix/getgroups.c [moved from sysdeps/generic/getgroups.c with 100% similarity]
posix/getlogin.c [moved from sysdeps/generic/getlogin.c with 100% similarity]
posix/getlogin_r.c [moved from sysdeps/generic/getlogin_r.c with 100% similarity]
posix/getpgid.c [moved from sysdeps/generic/getpgid.c with 100% similarity]
posix/getpgrp.c [moved from sysdeps/generic/getpgrp.c with 100% similarity]
posix/getpid.c [moved from sysdeps/generic/getpid.c with 100% similarity]
posix/getppid.c [moved from sysdeps/generic/getppid.c with 100% similarity]
posix/getresgid.c [moved from sysdeps/generic/getresgid.c with 100% similarity]
posix/getresuid.c [moved from sysdeps/generic/getresuid.c with 100% similarity]
posix/getsid.c [moved from sysdeps/generic/getsid.c with 100% similarity]
posix/getuid.c [moved from sysdeps/generic/getuid.c with 100% similarity]
posix/glob.c [moved from sysdeps/generic/glob.c with 100% similarity]
posix/glob64.c [moved from sysdeps/generic/glob64.c with 100% similarity]
posix/group_member.c [moved from sysdeps/generic/group_member.c with 100% similarity]
posix/init-posix.c [moved from sysdeps/generic/init-posix.c with 100% similarity]
posix/nanosleep.c [moved from sysdeps/generic/nanosleep.c with 100% similarity]
posix/pathconf.c [moved from sysdeps/generic/pathconf.c with 100% similarity]
posix/pause.c [moved from sysdeps/generic/pause.c with 100% similarity]
posix/posix_madvise.c [moved from sysdeps/generic/posix_madvise.c with 100% similarity]
posix/pread.c [moved from sysdeps/generic/pread.c with 100% similarity]
posix/pread64.c [moved from sysdeps/generic/pread64.c with 100% similarity]
posix/pwrite.c [moved from sysdeps/generic/pwrite.c with 100% similarity]
posix/pwrite64.c [moved from sysdeps/generic/pwrite64.c with 100% similarity]
posix/regex_internal.h
posix/sched_getaffinity.c [moved from sysdeps/generic/sched_getaffinity.c with 100% similarity]
posix/sched_getp.c [moved from sysdeps/generic/sched_getp.c with 100% similarity]
posix/sched_gets.c [moved from sysdeps/generic/sched_gets.c with 100% similarity]
posix/sched_primax.c [moved from sysdeps/generic/sched_primax.c with 100% similarity]
posix/sched_primin.c [moved from sysdeps/generic/sched_primin.c with 100% similarity]
posix/sched_rr_gi.c [moved from sysdeps/generic/sched_rr_gi.c with 100% similarity]
posix/sched_setaffinity.c [moved from sysdeps/generic/sched_setaffinity.c with 100% similarity]
posix/sched_setp.c [moved from sysdeps/generic/sched_setp.c with 100% similarity]
posix/sched_sets.c [moved from sysdeps/generic/sched_sets.c with 100% similarity]
posix/sched_yield.c [moved from sysdeps/generic/sched_yield.c with 100% similarity]
posix/setgid.c [moved from sysdeps/generic/setgid.c with 100% similarity]
posix/setlogin.c [moved from sysdeps/generic/setlogin.c with 100% similarity]
posix/setpgid.c [moved from sysdeps/generic/setpgid.c with 100% similarity]
posix/setpgrp.c [moved from sysdeps/generic/setpgrp.c with 100% similarity]
posix/setresgid.c [moved from sysdeps/generic/setresgid.c with 100% similarity]
posix/setresuid.c [moved from sysdeps/generic/setresuid.c with 100% similarity]
posix/setsid.c [moved from sysdeps/generic/setsid.c with 100% similarity]
posix/setuid.c [moved from sysdeps/generic/setuid.c with 100% similarity]
posix/sleep.c [moved from sysdeps/generic/sleep.c with 100% similarity]
posix/spawni.c [moved from sysdeps/generic/spawni.c with 100% similarity]
posix/sysconf.c [moved from sysdeps/generic/sysconf.c with 100% similarity]
posix/times.c [moved from sysdeps/generic/times.c with 100% similarity]
posix/uname.c [moved from sysdeps/generic/uname.c with 100% similarity]
posix/unistd.h
posix/vfork.c [moved from sysdeps/generic/vfork.c with 100% similarity]
posix/wait.c [moved from sysdeps/generic/wait.c with 100% similarity]
posix/wait3.c [moved from sysdeps/generic/wait3.c with 100% similarity]
posix/wait4.c [moved from sysdeps/generic/wait4.c with 100% similarity]
posix/waitid.c [moved from sysdeps/generic/waitid.c with 100% similarity]
posix/waitpid.c [moved from sysdeps/generic/waitpid.c with 100% similarity]
posix/wordexp.c [moved from sysdeps/generic/wordexp.c with 100% similarity]
resolv/gai_sigqueue.c [moved from sysdeps/generic/gai_sigqueue.c with 100% similarity]
resolv/gethnamaddr.c
resolv/res-state.c [moved from sysdeps/generic/res-state.c with 100% similarity]
resource/getpriority.c [moved from sysdeps/generic/getpriority.c with 100% similarity]
resource/getrlimit.c [moved from sysdeps/generic/getrlimit.c with 100% similarity]
resource/getrlimit64.c [moved from sysdeps/generic/getrlimit64.c with 100% similarity]
resource/getrusage.c [moved from sysdeps/generic/getrusage.c with 100% similarity]
resource/nice.c [moved from sysdeps/generic/nice.c with 100% similarity]
resource/setpriority.c [moved from sysdeps/generic/setpriority.c with 100% similarity]
resource/setrlimit.c [moved from sysdeps/generic/setrlimit.c with 100% similarity]
resource/setrlimit64.c [moved from sysdeps/generic/setrlimit64.c with 100% similarity]
resource/ulimit.c [moved from sysdeps/generic/ulimit.c with 100% similarity]
resource/vlimit.c [moved from sysdeps/generic/vlimit.c with 100% similarity]
resource/vtimes.c [moved from sysdeps/generic/vtimes.c with 100% similarity]
rt/aio_cancel.c [moved from sysdeps/generic/aio_cancel.c with 100% similarity]
rt/aio_fsync.c [moved from sysdeps/generic/aio_fsync.c with 100% similarity]
rt/aio_misc.c [moved from sysdeps/generic/aio_misc.c with 100% similarity]
rt/aio_notify.c [moved from sysdeps/generic/aio_notify.c with 100% similarity]
rt/aio_read.c [moved from sysdeps/generic/aio_read.c with 100% similarity]
rt/aio_read64.c [moved from sysdeps/generic/aio_read64.c with 100% similarity]
rt/aio_sigqueue.c [moved from sysdeps/generic/aio_sigqueue.c with 100% similarity]
rt/aio_suspend.c [moved from sysdeps/generic/aio_suspend.c with 100% similarity]
rt/aio_write.c [moved from sysdeps/generic/aio_write.c with 100% similarity]
rt/aio_write64.c [moved from sysdeps/generic/aio_write64.c with 100% similarity]
rt/clock_getcpuclockid.c [moved from sysdeps/generic/clock_getcpuclockid.c with 100% similarity]
rt/clock_getres.c [moved from sysdeps/generic/clock_getres.c with 100% similarity]
rt/clock_gettime.c [moved from sysdeps/generic/clock_gettime.c with 100% similarity]
rt/clock_nanosleep.c [moved from sysdeps/generic/clock_nanosleep.c with 100% similarity]
rt/clock_settime.c [moved from sysdeps/generic/clock_settime.c with 100% similarity]
rt/get_clockfreq.c [moved from sysdeps/generic/get_clockfreq.c with 100% similarity]
rt/lio_listio.c [moved from sysdeps/generic/lio_listio.c with 100% similarity]
rt/lio_listio64.c [new file with mode: 0644]
rt/mq_close.c [moved from sysdeps/generic/mq_close.c with 100% similarity]
rt/mq_getattr.c [moved from sysdeps/generic/mq_getattr.c with 100% similarity]
rt/mq_notify.c [moved from sysdeps/generic/mq_notify.c with 100% similarity]
rt/mq_open.c [moved from sysdeps/generic/mq_open.c with 100% similarity]
rt/mq_receive.c [moved from sysdeps/generic/mq_receive.c with 100% similarity]
rt/mq_send.c [moved from sysdeps/generic/mq_send.c with 100% similarity]
rt/mq_setattr.c [moved from sysdeps/generic/mq_setattr.c with 100% similarity]
rt/mq_timedreceive.c [moved from sysdeps/generic/mq_timedreceive.c with 100% similarity]
rt/mq_timedsend.c [moved from sysdeps/generic/mq_timedsend.c with 100% similarity]
rt/mq_unlink.c [moved from sysdeps/generic/mq_unlink.c with 100% similarity]
rt/shm_open.c [moved from sysdeps/generic/shm_open.c with 100% similarity]
rt/shm_unlink.c [moved from sysdeps/generic/shm_unlink.c with 100% similarity]
rt/timer_create.c [moved from sysdeps/generic/timer_create.c with 100% similarity]
rt/timer_delete.c [moved from sysdeps/generic/timer_delete.c with 100% similarity]
rt/timer_getoverr.c [moved from sysdeps/generic/timer_getoverr.c with 100% similarity]
rt/timer_gettime.c [moved from sysdeps/generic/timer_gettime.c with 100% similarity]
rt/timer_settime.c [moved from sysdeps/generic/timer_settime.c with 100% similarity]
rt/tst-timer.c [moved from sysdeps/generic/tst-timer.c with 100% similarity]
scripts/check-c++-types.sh
scripts/check-local-headers.sh [new file with mode: 0755]
scripts/mkinstalldirs
setjmp/__longjmp.c [moved from sysdeps/generic/__longjmp.c with 100% similarity]
setjmp/bsd-_setjmp.c [moved from sysdeps/generic/bsd-_setjmp.c with 100% similarity]
setjmp/bsd-setjmp.c [moved from sysdeps/generic/bsd-setjmp.c with 100% similarity]
setjmp/jmp-unwind.c [moved from sysdeps/generic/jmp-unwind.c with 100% similarity]
setjmp/longjmp.c [moved from sysdeps/generic/longjmp.c with 100% similarity]
setjmp/setjmp.c [moved from sysdeps/generic/setjmp.c with 100% similarity]
setjmp/sigjmp.c [moved from sysdeps/generic/sigjmp.c with 100% similarity]
signal/allocrtsig.c [moved from sysdeps/generic/allocrtsig.c with 100% similarity]
signal/kill.c [moved from sysdeps/generic/kill.c with 100% similarity]
signal/killpg.c [moved from sysdeps/generic/killpg.c with 100% similarity]
signal/raise.c [moved from sysdeps/generic/raise.c with 100% similarity]
signal/sigaction.c [moved from sysdeps/generic/sigaction.c with 100% similarity]
signal/sigaltstack.c [moved from sysdeps/generic/sigaltstack.c with 100% similarity]
signal/sigblock.c [moved from sysdeps/generic/sigblock.c with 100% similarity]
signal/sigfillset.c [moved from sysdeps/generic/sigfillset.c with 100% similarity]
signal/sigignore.c [moved from sysdeps/generic/sigignore.c with 100% similarity]
signal/sigintr.c [moved from sysdeps/generic/sigintr.c with 100% similarity]
signal/signal.c [moved from sysdeps/generic/signal.c with 100% similarity]
signal/sigpause.c [moved from sysdeps/generic/sigpause.c with 100% similarity]
signal/sigpending.c [moved from sysdeps/generic/sigpending.c with 100% similarity]
signal/sigprocmask.c [moved from sysdeps/generic/sigprocmask.c with 100% similarity]
signal/sigqueue.c [moved from sysdeps/generic/sigqueue.c with 100% similarity]
signal/sigreturn.c [moved from sysdeps/generic/sigreturn.c with 100% similarity]
signal/sigset.c [moved from sysdeps/generic/sigset.c with 100% similarity]
signal/sigsetmask.c [moved from sysdeps/generic/sigsetmask.c with 100% similarity]
signal/sigstack.c [moved from sysdeps/generic/sigstack.c with 100% similarity]
signal/sigsuspend.c [moved from sysdeps/generic/sigsuspend.c with 100% similarity]
signal/sigtimedwait.c [moved from sysdeps/generic/sigtimedwait.c with 100% similarity]
signal/sigvec.c [moved from sysdeps/generic/sigvec.c with 100% similarity]
signal/sigwait.c [moved from sysdeps/generic/sigwait.c with 100% similarity]
signal/sigwaitinfo.c [moved from sysdeps/generic/sigwaitinfo.c with 100% similarity]
signal/sysv_signal.c [moved from sysdeps/generic/sysv_signal.c with 100% similarity]
socket/accept.c [moved from sysdeps/generic/accept.c with 100% similarity]
socket/bind.c [moved from sysdeps/generic/bind.c with 100% similarity]
socket/connect.c [moved from sysdeps/generic/connect.c with 100% similarity]
socket/getpeername.c [moved from sysdeps/generic/getpeername.c with 100% similarity]
socket/getsockname.c [moved from sysdeps/generic/getsockname.c with 100% similarity]
socket/getsockopt.c [moved from sysdeps/generic/getsockopt.c with 100% similarity]
socket/isfdtype.c [moved from sysdeps/generic/isfdtype.c with 100% similarity]
socket/listen.c [moved from sysdeps/generic/listen.c with 100% similarity]
socket/opensock.c [moved from sysdeps/generic/opensock.c with 100% similarity]
socket/recv.c [moved from sysdeps/generic/recv.c with 100% similarity]
socket/recvfrom.c [moved from sysdeps/generic/recvfrom.c with 100% similarity]
socket/recvmsg.c [moved from sysdeps/generic/recvmsg.c with 100% similarity]
socket/send.c [moved from sysdeps/generic/send.c with 100% similarity]
socket/sendmsg.c [moved from sysdeps/generic/sendmsg.c with 100% similarity]
socket/sendto.c [moved from sysdeps/generic/sendto.c with 100% similarity]
socket/setsockopt.c [moved from sysdeps/generic/setsockopt.c with 100% similarity]
socket/shutdown.c [moved from sysdeps/generic/shutdown.c with 100% similarity]
socket/sockatmark.c [moved from sysdeps/generic/sockatmark.c with 100% similarity]
socket/socket.c [moved from sysdeps/generic/socket.c with 100% similarity]
socket/socketpair.c [moved from sysdeps/generic/socketpair.c with 100% similarity]
soft-fp/floatdisf.c
soft-fp/soft-fp.h
stdio-common/ctermid.c [moved from sysdeps/generic/ctermid.c with 100% similarity]
stdio-common/cuserid.c [moved from sysdeps/generic/cuserid.c with 100% similarity]
stdio-common/errlist.c [moved from sysdeps/generic/errlist.c with 100% similarity]
stdio-common/flockfile.c [moved from sysdeps/generic/flockfile.c with 100% similarity]
stdio-common/ftrylockfile.c [moved from sysdeps/generic/ftrylockfile.c with 100% similarity]
stdio-common/funlockfile.c [moved from sysdeps/generic/funlockfile.c with 100% similarity]
stdio-common/printf_fphex.c [moved from sysdeps/generic/printf_fphex.c with 100% similarity]
stdio-common/remove.c [moved from sysdeps/generic/remove.c with 100% similarity]
stdio-common/rename.c [moved from sysdeps/generic/rename.c with 100% similarity]
stdio-common/renameat.c [moved from sysdeps/generic/renameat.c with 100% similarity]
stdio-common/siglist.c [moved from sysdeps/generic/siglist.c with 100% similarity]
stdio-common/tempname.c [moved from sysdeps/generic/tempname.c with 100% similarity]
stdio-common/tmpfile.c [moved from sysdeps/generic/tmpfile.c with 100% similarity]
stdio-common/tmpfile64.c [moved from sysdeps/generic/tmpfile64.c with 100% similarity]
stdlib/abort.c [moved from sysdeps/generic/abort.c with 100% similarity]
stdlib/add_n.c [moved from sysdeps/generic/add_n.c with 99% similarity]
stdlib/addmul_1.c [moved from sysdeps/generic/addmul_1.c with 99% similarity]
stdlib/cmp.c [moved from sysdeps/generic/cmp.c with 99% similarity]
stdlib/cxa_atexit.c
stdlib/cxa_finalize.c
stdlib/dbl2mpn.c [moved from sysdeps/generic/dbl2mpn.c with 98% similarity]
stdlib/div.c [moved from sysdeps/generic/div.c with 100% similarity]
stdlib/divmod_1.c [moved from sysdeps/generic/divmod_1.c with 99% similarity]
stdlib/divrem.c [moved from sysdeps/generic/divrem.c with 99% similarity]
stdlib/exit.c
stdlib/getcontext.c [moved from sysdeps/generic/getcontext.c with 100% similarity]
stdlib/getenv.c [moved from sysdeps/generic/getenv.c with 100% similarity]
stdlib/inlines.c [moved from sysdeps/generic/inlines.c with 77% similarity]
stdlib/labs.c [moved from sysdeps/generic/labs.c with 100% similarity]
stdlib/ldbl2mpn.c [moved from sysdeps/generic/ldbl2mpn.c with 100% similarity]
stdlib/ldiv.c [moved from sysdeps/generic/ldiv.c with 100% similarity]
stdlib/llabs.c [moved from sysdeps/generic/llabs.c with 100% similarity]
stdlib/lldiv.c [moved from sysdeps/generic/lldiv.c with 100% similarity]
stdlib/longlong.h
stdlib/lshift.c [moved from sysdeps/generic/lshift.c with 99% similarity]
stdlib/makecontext.c [moved from sysdeps/generic/makecontext.c with 100% similarity]
stdlib/mod_1.c [moved from sysdeps/generic/mod_1.c with 99% similarity]
stdlib/mp_clz_tab.c [moved from sysdeps/generic/mp_clz_tab.c with 98% similarity]
stdlib/mpn2dbl.c [moved from sysdeps/generic/mpn2dbl.c with 98% similarity]
stdlib/mpn2flt.c [moved from sysdeps/generic/mpn2flt.c with 100% similarity]
stdlib/mpn2ldbl.c [moved from sysdeps/generic/mpn2ldbl.c with 100% similarity]
stdlib/mul.c [moved from sysdeps/generic/mul.c with 99% similarity]
stdlib/mul_1.c [moved from sysdeps/generic/mul_1.c with 99% similarity]
stdlib/mul_n.c [moved from sysdeps/generic/mul_n.c with 99% similarity]
stdlib/on_exit.c
stdlib/putenv.c [moved from sysdeps/generic/putenv.c with 100% similarity]
stdlib/rshift.c [moved from sysdeps/generic/rshift.c with 99% similarity]
stdlib/setcontext.c [moved from sysdeps/generic/setcontext.c with 100% similarity]
stdlib/setenv.c [moved from sysdeps/generic/setenv.c with 100% similarity]
stdlib/strtod_l.c
stdlib/strtoimax.c [moved from sysdeps/generic/strtoimax.c with 100% similarity]
stdlib/strtol.c [moved from sysdeps/generic/strtol.c with 100% similarity]
stdlib/strtol_l.c [moved from sysdeps/generic/strtol_l.c with 100% similarity]
stdlib/strtold_l.c [moved from sysdeps/generic/strtold_l.c with 100% similarity]
stdlib/strtoll.c [moved from sysdeps/generic/strtoll.c with 100% similarity]
stdlib/strtoll_l.c [moved from sysdeps/generic/strtoll_l.c with 100% similarity]
stdlib/strtoul.c [moved from sysdeps/generic/strtoul.c with 100% similarity]
stdlib/strtoul_l.c [moved from sysdeps/generic/strtoul_l.c with 100% similarity]
stdlib/strtoull.c [moved from sysdeps/generic/strtoull.c with 100% similarity]
stdlib/strtoull_l.c [moved from sysdeps/generic/strtoull_l.c with 100% similarity]
stdlib/strtoumax.c [moved from sysdeps/generic/strtoumax.c with 100% similarity]
stdlib/sub_n.c [moved from sysdeps/generic/sub_n.c with 99% similarity]
stdlib/submul_1.c [moved from sysdeps/generic/submul_1.c with 95% similarity]
stdlib/swapcontext.c [moved from sysdeps/generic/swapcontext.c with 100% similarity]
stdlib/system.c [moved from sysdeps/generic/system.c with 100% similarity]
stdlib/udiv_qrnnd.c [moved from sysdeps/generic/udiv_qrnnd.c with 100% similarity]
stdlib/wcstoimax.c [moved from sysdeps/generic/wcstoimax.c with 100% similarity]
stdlib/wcstoumax.c [moved from sysdeps/generic/wcstoumax.c with 100% similarity]
streams/fattach.c [moved from sysdeps/generic/fattach.c with 100% similarity]
streams/fdetach.c [moved from sysdeps/generic/fdetach.c with 100% similarity]
streams/getmsg.c [moved from sysdeps/generic/getmsg.c with 100% similarity]
streams/getpmsg.c [moved from sysdeps/generic/getpmsg.c with 100% similarity]
streams/isastream.c [moved from sysdeps/generic/isastream.c with 100% similarity]
streams/putmsg.c [moved from sysdeps/generic/putmsg.c with 100% similarity]
streams/putpmsg.c [moved from sysdeps/generic/putpmsg.c with 100% similarity]
string/_strerror.c [moved from sysdeps/generic/_strerror.c with 100% similarity]
string/bcopy.c [moved from sysdeps/generic/bcopy.c with 100% similarity]
string/bzero.c [moved from sysdeps/generic/bzero.c with 100% similarity]
string/ffs.c [moved from sysdeps/generic/ffs.c with 100% similarity]
string/ffsll.c [moved from sysdeps/generic/ffsll.c with 100% similarity]
string/memccpy.c [moved from sysdeps/generic/memccpy.c with 100% similarity]
string/memchr.c [moved from sysdeps/generic/memchr.c with 100% similarity]
string/memcmp.c [moved from sysdeps/generic/memcmp.c with 100% similarity]
string/memcpy.c [moved from sysdeps/generic/memcpy.c with 100% similarity]
string/memmem.c [moved from sysdeps/generic/memmem.c with 100% similarity]
string/memmove.c [moved from sysdeps/generic/memmove.c with 100% similarity]
string/mempcpy.c [moved from sysdeps/generic/mempcpy.c with 100% similarity]
string/memrchr.c [moved from sysdeps/generic/memrchr.c with 100% similarity]
string/memset.c [moved from sysdeps/generic/memset.c with 100% similarity]
string/rawmemchr.c [moved from sysdeps/generic/rawmemchr.c with 100% similarity]
string/stpcpy.c [moved from sysdeps/generic/stpcpy.c with 100% similarity]
string/stpncpy.c [moved from sysdeps/generic/stpncpy.c with 100% similarity]
string/strcasecmp.c [moved from sysdeps/generic/strcasecmp.c with 100% similarity]
string/strcasecmp_l.c [moved from sysdeps/generic/strcasecmp_l.c with 90% similarity]
string/strcasestr.c [moved from sysdeps/generic/strcasestr.c with 100% similarity]
string/strcat.c [moved from sysdeps/generic/strcat.c with 100% similarity]
string/strchr.c [moved from sysdeps/generic/strchr.c with 100% similarity]
string/strchrnul.c [moved from sysdeps/generic/strchrnul.c with 100% similarity]
string/strcmp.c [moved from sysdeps/generic/strcmp.c with 100% similarity]
string/strcpy.c [moved from sysdeps/generic/strcpy.c with 100% similarity]
string/strcspn.c [moved from sysdeps/generic/strcspn.c with 100% similarity]
string/string-inlines.c [moved from sysdeps/generic/string-inlines.c with 100% similarity]
string/strlen.c [moved from sysdeps/generic/strlen.c with 100% similarity]
string/strncase.c [moved from sysdeps/generic/strncase.c with 100% similarity]
string/strncase_l.c [moved from sysdeps/generic/strncase_l.c with 91% similarity]
string/strncat.c [moved from sysdeps/generic/strncat.c with 100% similarity]
string/strncmp.c [moved from sysdeps/generic/strncmp.c with 100% similarity]
string/strncpy.c [moved from sysdeps/generic/strncpy.c with 100% similarity]
string/strnlen.c [moved from sysdeps/generic/strnlen.c with 100% similarity]
string/strpbrk.c [moved from sysdeps/generic/strpbrk.c with 100% similarity]
string/strrchr.c [moved from sysdeps/generic/strrchr.c with 100% similarity]
string/strsep.c [moved from sysdeps/generic/strsep.c with 100% similarity]
string/strspn.c [moved from sysdeps/generic/strspn.c with 100% similarity]
string/strstr.c [moved from sysdeps/generic/strstr.c with 100% similarity]
string/strtok.c [moved from sysdeps/generic/strtok.c with 100% similarity]
string/strtok_r.c [moved from sysdeps/generic/strtok_r.c with 100% similarity]
string/wordcopy.c [moved from sysdeps/generic/wordcopy.c with 100% similarity]
string/xpg-strerror.c [moved from sysdeps/generic/xpg-strerror.c with 100% similarity]
sunrpc/auth_des.c
sunrpc/bindrsvprt.c
sunrpc/rpc_clntout.c
sunrpc/rpc_cout.c
sunrpc/rpc_hout.c
sunrpc/rpc_main.c
sunrpc/rpc_parse.c
sunrpc/rpc_sample.c
sunrpc/rpc_scan.c
sunrpc/rpc_svcout.c
sunrpc/rpc_tblout.c
sunrpc/rpc_util.c
sysdeps/alpha/fpu/s_cacosf.c
sysdeps/alpha/fpu/s_cacoshf.c
sysdeps/alpha/fpu/s_casinf.c
sysdeps/alpha/fpu/s_casinhf.c
sysdeps/alpha/fpu/s_catanf.c
sysdeps/alpha/fpu/s_catanhf.c
sysdeps/alpha/fpu/s_ccosf.c
sysdeps/alpha/fpu/s_ccoshf.c
sysdeps/alpha/fpu/s_cexpf.c
sysdeps/alpha/fpu/s_clog10f.c
sysdeps/alpha/fpu/s_clogf.c
sysdeps/alpha/fpu/s_cpowf.c
sysdeps/alpha/fpu/s_cprojf.c
sysdeps/alpha/fpu/s_csinf.c
sysdeps/alpha/fpu/s_csinhf.c
sysdeps/alpha/fpu/s_csqrtf.c
sysdeps/alpha/fpu/s_ctanf.c
sysdeps/alpha/fpu/s_ctanhf.c
sysdeps/alpha/libc-tls.c
sysdeps/alpha/strncmp.S
sysdeps/generic/Dist
sysdeps/generic/Makefile
sysdeps/generic/configure [deleted file]
sysdeps/generic/configure.in [deleted file]
sysdeps/generic/dwarf2.h
sysdeps/generic/ldsodefs.h
sysdeps/generic/lio_listio64.c [deleted file]
sysdeps/generic/signame.c [deleted file]
sysdeps/generic/signame.h [deleted file]
sysdeps/gnu/glob64.c
sysdeps/gnu/updwtmp.c
sysdeps/gnu/utmp_file.c
sysdeps/hppa/bits/setjmp.h
sysdeps/i386/__longjmp.S
sysdeps/i386/bsd-_setjmp.S
sysdeps/i386/bsd-setjmp.S
sysdeps/i386/bzero.c
sysdeps/i386/elf/bsd-setjmp.S [deleted file]
sysdeps/i386/elf/setjmp.S [deleted file]
sysdeps/i386/ffs.c
sysdeps/i386/i686/ffs.c
sysdeps/i386/memset.c
sysdeps/i386/setjmp.S
sysdeps/ia64/fpu/printf_fphex.c
sysdeps/ia64/libc-tls.c
sysdeps/ieee754/ldbl-128/printf_fphex.c
sysdeps/ieee754/ldbl-96/printf_fphex.c
sysdeps/ieee754/ldbl-96/strtold_l.c
sysdeps/m68k/bits/setjmp.h
sysdeps/m68k/ffs.c
sysdeps/mach/hurd/getdents.c
sysdeps/mach/hurd/init-posix.c
sysdeps/mach/msync.c
sysdeps/mach/sys/reboot.h
sysdeps/mips/bits/setjmp.h
sysdeps/mips/libc-tls.c
sysdeps/posix/euidaccess.c
sysdeps/posix/getaddrinfo.c
sysdeps/posix/profil.c
sysdeps/posix/shm_open.c
sysdeps/posix/shm_unlink.c
sysdeps/posix/sprofil.c
sysdeps/powerpc/dl-procinfo.c [new file with mode: 0644]
sysdeps/powerpc/dl-procinfo.h [new file with mode: 0644]
sysdeps/powerpc/elf/libc-start.c
sysdeps/powerpc/ffs.c
sysdeps/powerpc/powerpc32/setjmp-common.S
sysdeps/powerpc/powerpc64/setjmp-common.S
sysdeps/rs6000/ffs.c
sysdeps/s390/bits/setjmp.h
sysdeps/s390/libc-tls.c
sysdeps/sh/bits/setjmp.h
sysdeps/unix/mkfifoat.c [moved from sysdeps/generic/nscd_setup_thread.c with 68% similarity]
sysdeps/unix/opendir.c
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/aio_sigqueue.c
sysdeps/unix/sysv/linux/alpha/bits/mman.h
sysdeps/unix/sysv/linux/alpha/fxstatat.c
sysdeps/unix/sysv/linux/alpha/glob.c
sysdeps/unix/sysv/linux/alpha/sigaction.c
sysdeps/unix/sysv/linux/alpha/wordexp.c
sysdeps/unix/sysv/linux/dl-sbrk.c
sysdeps/unix/sysv/linux/dl-sysdep.c
sysdeps/unix/sysv/linux/fchownat.c
sysdeps/unix/sysv/linux/ftruncate64.c
sysdeps/unix/sysv/linux/fxstatat64.c
sysdeps/unix/sysv/linux/gai_sigqueue.c
sysdeps/unix/sysv/linux/i386/getmsg.c
sysdeps/unix/sysv/linux/i386/getresgid.c
sysdeps/unix/sysv/linux/i386/getresuid.c
sysdeps/unix/sysv/linux/i386/getrlimit64.c
sysdeps/unix/sysv/linux/i386/glob64.c
sysdeps/unix/sysv/linux/i386/lchown.c
sysdeps/unix/sysv/linux/i386/putmsg.c
sysdeps/unix/sysv/linux/i386/readelflib.c
sysdeps/unix/sysv/linux/i386/setresgid.c
sysdeps/unix/sysv/linux/i386/setresuid.c
sysdeps/unix/sysv/linux/i386/sysdep.h
sysdeps/unix/sysv/linux/ia64/readelflib.c
sysdeps/unix/sysv/linux/kernel-features.h
sysdeps/unix/sysv/linux/linkat.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/mman.h
sysdeps/unix/sysv/linux/mips/ftruncate64.c
sysdeps/unix/sysv/linux/mips/readelflib.c
sysdeps/unix/sysv/linux/mips/truncate64.c
sysdeps/unix/sysv/linux/mkdirat.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/mq_close.c
sysdeps/unix/sysv/linux/mq_getattr.c
sysdeps/unix/sysv/linux/mq_notify.c
sysdeps/unix/sysv/linux/mq_open.c
sysdeps/unix/sysv/linux/mq_receive.c
sysdeps/unix/sysv/linux/mq_send.c
sysdeps/unix/sysv/linux/mq_unlink.c
sysdeps/unix/sysv/linux/nscd_setup_thread.c
sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c
sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
sysdeps/unix/sysv/linux/powerpc/readelflib.c
sysdeps/unix/sysv/linux/readlinkat.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/renameat.c
sysdeps/unix/sysv/linux/s390/readelflib.c
sysdeps/unix/sysv/linux/sched_getaffinity.c
sysdeps/unix/sysv/linux/sched_setaffinity.c
sysdeps/unix/sysv/linux/segfault.c
sysdeps/unix/sysv/linux/sigqueue.c
sysdeps/unix/sysv/linux/sigreturn.c
sysdeps/unix/sysv/linux/sigstack.c
sysdeps/unix/sysv/linux/sigtimedwait.c
sysdeps/unix/sysv/linux/sigwaitinfo.c
sysdeps/unix/sysv/linux/sparc/readelflib.c
sysdeps/unix/sysv/linux/symlinkat.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/sys/quota.h
sysdeps/unix/sysv/linux/syslog.c
sysdeps/unix/sysv/linux/truncate64.c
sysdeps/unix/sysv/linux/updwtmp.c
sysdeps/unix/sysv/linux/utmp_file.c
sysdeps/unix/sysv/linux/vfork.c
sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c
sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h
sysdeps/unix/sysv/linux/x86_64/readelflib.c
sysdeps/unix/sysv/linux/x86_64/sysdep.h
sysdeps/unix/sysv/linux/xmknodat.c [new file with mode: 0644]
sysdeps/wordsize-32/llabs.c
sysdeps/wordsize-32/lldiv.c
sysdeps/wordsize-64/glob.c
sysdeps/wordsize-64/labs.c
sysdeps/wordsize-64/ldiv.c
sysdeps/wordsize-64/strtol.c
sysdeps/wordsize-64/strtol_l.c
sysdeps/wordsize-64/strtoul.c
sysdeps/wordsize-64/strtoul_l.c
sysdeps/wordsize-64/wcstol.c
sysdeps/wordsize-64/wcstol_l.c
sysdeps/wordsize-64/wcstoul.c
sysdeps/wordsize-64/wcstoul_l.c
sysdeps/x86_64/__longjmp.S
sysdeps/x86_64/bsd-setjmp.S
sysdeps/x86_64/fpu/printf_fphex.c
sysdeps/x86_64/setjmp.S
sysvipc/msgctl.c [moved from sysdeps/generic/msgctl.c with 100% similarity]
sysvipc/msgget.c [moved from sysdeps/generic/msgget.c with 100% similarity]
sysvipc/msgrcv.c [moved from sysdeps/generic/msgrcv.c with 100% similarity]
sysvipc/msgsnd.c [moved from sysdeps/generic/msgsnd.c with 100% similarity]
sysvipc/semctl.c [moved from sysdeps/generic/semctl.c with 100% similarity]
sysvipc/semget.c [moved from sysdeps/generic/semget.c with 100% similarity]
sysvipc/semop.c [moved from sysdeps/generic/semop.c with 100% similarity]
sysvipc/semtimedop.c [moved from sysdeps/generic/semtimedop.c with 100% similarity]
sysvipc/shmat.c [moved from sysdeps/generic/shmat.c with 100% similarity]
sysvipc/shmctl.c [moved from sysdeps/generic/shmctl.c with 100% similarity]
sysvipc/shmdt.c [moved from sysdeps/generic/shmdt.c with 100% similarity]
sysvipc/shmget.c [moved from sysdeps/generic/shmget.c with 100% similarity]
termios/speed.c [moved from sysdeps/generic/speed.c with 100% similarity]
termios/tcdrain.c [moved from sysdeps/generic/tcdrain.c with 100% similarity]
termios/tcflow.c [moved from sysdeps/generic/tcflow.c with 100% similarity]
termios/tcflush.c [moved from sysdeps/generic/tcflush.c with 100% similarity]
termios/tcgetattr.c [moved from sysdeps/generic/tcgetattr.c with 100% similarity]
termios/tcgetpgrp.c [moved from sysdeps/generic/tcgetpgrp.c with 100% similarity]
termios/tcsendbrk.c [moved from sysdeps/generic/tcsendbrk.c with 100% similarity]
termios/tcsetattr.c [moved from sysdeps/generic/tcsetattr.c with 100% similarity]
termios/tcsetpgrp.c [moved from sysdeps/generic/tcsetpgrp.c with 100% similarity]
time/adjtime.c [moved from sysdeps/generic/adjtime.c with 100% similarity]
time/clock.c [moved from sysdeps/generic/clock.c with 100% similarity]
time/ftime.c [moved from sysdeps/generic/ftime.c with 100% similarity]
time/getitimer.c [moved from sysdeps/generic/getitimer.c with 100% similarity]
time/gettimeofday.c [moved from sysdeps/generic/gettimeofday.c with 100% similarity]
time/setitimer.c [moved from sysdeps/generic/setitimer.c with 100% similarity]
time/settimeofday.c [moved from sysdeps/generic/settimeofday.c with 100% similarity]
time/stime.c [moved from sysdeps/generic/stime.c with 100% similarity]
time/sys/time.h
time/time.c [moved from sysdeps/generic/time.c with 100% similarity]
wcsmbs/Makefile
wcsmbs/btowc.c
wcsmbs/mbrtowc.c
wcsmbs/mbsnrtowcs.c
wcsmbs/mbsrtowcs_l.c
wcsmbs/wcrtomb.c
wcsmbs/wcsmbsload.c
wcsmbs/wcsnrtombs.c
wcsmbs/wcsrtombs.c
wcsmbs/wcstol.c [moved from sysdeps/generic/wcstol.c with 90% similarity]
wcsmbs/wcstol_l.c [moved from sysdeps/generic/wcstol_l.c with 91% similarity]
wcsmbs/wcstoll.c [moved from sysdeps/generic/wcstoll.c with 100% similarity]
wcsmbs/wcstoll_l.c [moved from sysdeps/generic/wcstoll_l.c with 100% similarity]
wcsmbs/wcstoul.c [moved from sysdeps/generic/wcstoul.c with 100% similarity]
wcsmbs/wcstoul_l.c [moved from sysdeps/generic/wcstoul_l.c with 100% similarity]
wcsmbs/wcstoull.c [moved from sysdeps/generic/wcstoull.c with 100% similarity]
wcsmbs/wcstoull_l.c [moved from sysdeps/generic/wcstoull_l.c with 100% similarity]
wcsmbs/wctob.c

index a83b6a0e49e80338885efea01ca55f44daadc50f..54801f90f975f71a48230db366677d8520207588 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2005-12-18  Ulrich Drepper  <drepper@redhat.com>
+
+       * iconv/gconv.c: Demangle pointers before use if necessary.
+       * iconv/gconv_cache.c: Likewise.
+       * iconv/skeleton.c: Likewise.
+       * libio/iofwide.c: Likewise.
+       * wcsmbs/btowc.c: Likewise.
+       * wcsmbs/mbrtowc.c: Likewise.
+       * wcsmbs/mbsnrtowcs.c: Likewise.
+       * wcsmbs/mbsrtowcs_l.c: Likewise.
+       * wcsmbs/wcrtomb.c: Likewise.
+       * wcsmbs/wcsnrtombs.c: Likewise.
+       * wcsmbs/wcsrtombs.c: Likewise.
+       * wcsmbs/wctob.c: Likewise.
+       * iconv_gconv_db.c: Likewise.  After init functions returns mangle
+       btowc pointer if necessary.
+       * iconv/gconv_dl.c: Mangle function pointers retrieved from dlsym.
+
+       * iconv/gconv_builtin.c (builtin_map): Change type of size
+       information fields to int8_t.
+
+       * libio/iofwide.c (__libio_codecvt): Mark as const.
+       (__libio_translit): Likewise.
+       * libio/libioP.h (__libio_codecvt): Adjust declaraction.
+
+       * wcsmbs/wcsmbsload.c (to_wc): Mark as const.
+       (to_mb): Likewise.
+
+2005-12-18  Richard Henderson  <rth@redhat.com>
+
+       * sysdeps/alpha/libc-tls.c: Fix directory on include of base file.
+
+2005-12-18  Ulrich Drepper  <drepper@redhat.com>
+
+       * iconv/gconv_builtin.c: Mark map with attribute_relro.
+
+       * sysdeps/unix/sysv/linux/x86_64/sysdep.h (PTR_MANGLE): Define C
+       version for inside ld.so.
+
+       * elf/rtld.c (dl_main): Don't use hp timing code unless it's available.
+
+       * sysdeps/powerpc/powerpc32/setjmp-common.S [IS_IN_rtld]: Avoid
+       call to __sigjmp_save.
+       * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise.
+
+       * stdlib/cxa_atexit.c: Use PTR_MANGLE on function pointer.  Fill in
+       flavor field last and protect with memory barrier.
+       * stdlib/on_exit.c: Likewise.
+       * stdlib/cxa_finalize.c: Use PTR_DEMANGLE on function pointer before
+       using it.
+       * stdlib/exit.c: Likewise.
+
+       * sysdeps/unix/sysv/linux/i386/sysdep.h: Define PTR_MANGLE and
+       PTR_DEMANGLE for C code in libc.
+       * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
+
+2005-12-17  Ulrich Drepper  <drepper@redhat.com>
+
+       * elf/Versions [GLIBC_PRIVATE]: Export __pointer_chk_guard if defined.
+       * elf/rtld.c: Define __pointer_chk_guard_local and if necessary
+       __pointer_chk_guard.
+       (_rtld_global_ro): Initialize _dl_pointer_guard.
+       (dl_main): Initialize __pointer_chk_guard_local and either
+       __pointer_chk_guard or TLS value if necessary.
+       (process_envvars): Recognize and handle LD_POINTER_GUARD.
+       * sysdeps/generic/ldsodefs.h (rtld_global_ro): Add _dl_pointer_guard.
+       * sysdeps/i386/__longjmp.S: Use PTR_DEMANGLE for PC if defined.
+       * sysdeps/x86_64/__longjmp.S: Likewise.
+       * sysdeps/i386/bsd-_setjmp.S: Use PTR_MANGLE for PC if defined.
+       * sysdeps/i386/bsd-_setjmp.S: Likewise.
+       * sysdeps/i386/setjmp.S: Likewise.
+       [IS_IN_rtld]: Avoid call to __sigjmp_save.
+       * sysdeps/i386/setjmp.S: Likewise.
+       * sysdeps/unix/sysv/linux/i386/sysdep.h: Define PTR_MANGLE and
+       PTR_DEMANGLE.
+       * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
+
+       * sysdeps/i386/elf/setjmp.S: Removed.
+       * sysdeps/i386/elf/bsd-setjmp.S: Removed.
+
+       * elf/dl-error.c (_dl_catch_error): Use __sigsetgjmp instead of
+       setjmp.
+       * elf/dl-error.c (_dl_signal_error): Use __longjmp instead of longjmp.
+       * elf/dl-minimal.c (longjmp): Remove definition.
+
+       * sysdeps/x86_64/bsd-setjmp.S [PIC] (setjmp): Add missing jmp.
+
+2005-12-14  Thorsten Kukuk  <kukuk@suse.de>
+
+       * nscd/Makefile: Don't build nscd_nischeck.
+       * nscd/nscd_nischeck.c: Removed.
+
+2005-12-15  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/renameat.c: Move errno setting code in
+       separate function __atfct_seterrno_2.
+       * include/fcntl.h: Declare __atfct_seterrno_2.
+       * posix/unistd.h: Declare linkat, symlinkat, readlinkat.
+       * io/Makefile (routines): Add linkat, symlinkat, readlinkat.
+       * io/Versions [GLIBC_2.4]: Export linkat, symlinkat, readlinkat.
+       * io/linkat.c: New file.
+       * io/readlinkat.c: New file.
+       * io/symlinkat.c: New file.
+       * sysdeps/unix/sysv/linux/linkat.c: New file.
+       * sysdeps/unix/sysv/linux/readlinkat.c: New file.
+       * sysdeps/unix/sysv/linux/symlinkat.c: New file.
+
+2005-12-15  Roland McGrath  <roland@redhat.com>
+
+       [BZ #1997]
+       * manual/stdio.texi (String Streams): For open_memstream, elaborate a
+       little on malloc reference.
+
+       * sysdeps/alpha/fpu/s_cacosf.c: Don't use sysdeps/generic/.
+       * sysdeps/alpha/fpu/s_cacoshf.c: Likewise.
+       * sysdeps/alpha/fpu/s_casinf.c: Likewise.
+       * sysdeps/alpha/fpu/s_casinhf.c: Likewise.
+       * sysdeps/alpha/fpu/s_catanf.c: Likewise.
+       * sysdeps/alpha/fpu/s_catanhf.c: Likewise.
+       * sysdeps/alpha/fpu/s_ccosf.c: Likewise.
+       * sysdeps/alpha/fpu/s_ccoshf.c: Likewise.
+       * sysdeps/alpha/fpu/s_cexpf.c: Likewise.
+       * sysdeps/alpha/fpu/s_clog10f.c: Likewise.
+       * sysdeps/alpha/fpu/s_clogf.c: Likewise.
+       * sysdeps/alpha/fpu/s_cpowf.c: Likewise.
+       * sysdeps/alpha/fpu/s_cprojf.c: Likewise.
+       * sysdeps/alpha/fpu/s_csinf.c: Likewise.
+       * sysdeps/alpha/fpu/s_csinhf.c: Likewise.
+       * sysdeps/alpha/fpu/s_csqrtf.c: Likewise.
+       * sysdeps/alpha/fpu/s_ctanf.c: Likewise.
+       * sysdeps/alpha/fpu/s_ctanhf.c: Likewise.
+       * sysdeps/alpha/libc-tls.c: Likewise.
+       * sysdeps/gnu/glob64.c: Likewise.
+       * sysdeps/gnu/updwtmp.c: Likewise.
+       * sysdeps/gnu/utmp_file.c: Likewise.
+       * sysdeps/i386/bzero.c: Likewise.
+       * sysdeps/i386/ffs.c: Likewise.
+       * sysdeps/i386/i686/ffs.c: Likewise.
+       * sysdeps/i386/memset.c: Likewise.
+       * sysdeps/ia64/fpu/printf_fphex.c: Likewise.
+       * sysdeps/ia64/libc-tls.c: Likewise.
+       * sysdeps/ieee754/ldbl-128/printf_fphex.c: Likewise.
+       * sysdeps/m68k/ffs.c: Likewise.
+       * sysdeps/mach/hurd/getdents.c: Likewise.
+       * sysdeps/mach/hurd/init-posix.c: Likewise.
+       * sysdeps/mach/msync.c: Likewise.
+       * sysdeps/mips/libc-tls.c: Likewise.
+       * sysdeps/posix/profil.c: Likewise.
+       * sysdeps/posix/shm_open.c: Likewise.
+       * sysdeps/posix/shm_unlink.c: Likewise.
+       * sysdeps/posix/sprofil.c: Likewise.
+       * sysdeps/powerpc/ffs.c: Likewise.
+       * sysdeps/rs6000/ffs.c: Likewise.
+       * sysdeps/s390/libc-tls.c: Likewise.
+       * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/glob.c: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/wordexp.c: Likewise.
+       * sysdeps/unix/sysv/linux/ftruncate64.c: Likewise.
+       * sysdeps/unix/sysv/linux/gai_sigqueue.c: Likewise.
+       * sysdeps/unix/sysv/linux/i386/getmsg.c: Likewise.
+       * sysdeps/unix/sysv/linux/i386/getresgid.c: Likewise.
+       * sysdeps/unix/sysv/linux/i386/getresuid.c: Likewise.
+       * sysdeps/unix/sysv/linux/i386/lchown.c: Likewise.
+       * sysdeps/unix/sysv/linux/i386/putmsg.c: Likewise.
+       * sysdeps/unix/sysv/linux/i386/readelflib.c: Likewise.
+       * sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise.
+       * sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
+       * sysdeps/unix/sysv/linux/ia64/readelflib.c: Likewise.
+       * sysdeps/unix/sysv/linux/mips/ftruncate64.c: Likewise.
+       * sysdeps/unix/sysv/linux/mips/readelflib.c: Likewise.
+       * sysdeps/unix/sysv/linux/mips/truncate64.c: Likewise.
+       * sysdeps/unix/sysv/linux/mq_close.c: Likewise.
+       * sysdeps/unix/sysv/linux/mq_getattr.c: Likewise.
+       * sysdeps/unix/sysv/linux/mq_notify.c: Likewise.
+       * sysdeps/unix/sysv/linux/mq_open.c: Likewise.
+       * sysdeps/unix/sysv/linux/mq_receive.c: Likewise.
+       * sysdeps/unix/sysv/linux/mq_send.c: Likewise.
+       * sysdeps/unix/sysv/linux/mq_unlink.c: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/readelflib.c: Likewise.
+       * sysdeps/unix/sysv/linux/s390/readelflib.c: Likewise.
+       * sysdeps/unix/sysv/linux/sched_getaffinity.c: Likewise.
+       * sysdeps/unix/sysv/linux/sched_setaffinity.c: Likewise.
+       * sysdeps/unix/sysv/linux/sigqueue.c: Likewise.
+       * sysdeps/unix/sysv/linux/sigstack.c: Likewise.
+       * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
+       * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
+       * sysdeps/unix/sysv/linux/sparc/readelflib.c: Likewise.
+       * sysdeps/unix/sysv/linux/truncate64.c: Likewise.
+       * sysdeps/unix/sysv/linux/vfork.c: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/readelflib.c: Likewise.
+
+       * sysdeps/unix/sysv/linux/Makefile (inhibit-siglist): Removed.
+
+2005-12-13  Ulrich Drepper  <drepper@redhat.com>
+
+       * locale/programs/charmap-kw.h: Regenerated with new gperf.
+       * locale/programs/locfile-kw.h: Likewise.
+
+       * Makeconfig (+includes): Look in current directory late.
+       * Makerules: Add rules from rules before the rules for the current
+       directory.
+       * sysdeps/generic/__longjmp.c: Moved to...
+       * setjmp/__longjmp.c: ...here.
+       * sysdeps/generic/_exit.c: Moved to...
+       * posix/_exit.c: ...here.
+       * sysdeps/generic/_strerror.c: Moved to...
+       * string/_strerror.c: ...here.
+       * sysdeps/generic/abort.c: Moved to...
+       * stdlib/abort.c: ...here.
+       * sysdeps/generic/accept.c: Moved to...
+       * socket/accept.c: ...here.
+       * sysdeps/generic/access.c: Moved to...
+       * io/access.c: ...here.
+       * sysdeps/generic/acct.c: Moved to...
+       * misc/acct.c: ...here.
+       * sysdeps/generic/add_n.c: Moved to...
+       * stdlib/add_n.c: ...here.
+       * sysdeps/generic/addmul_1.c: Moved to...
+       * stdlib/addmul_1.c: ...here.
+       * sysdeps/generic/adjtime.c: Moved to...
+       * time/adjtime.c: ...here.
+       * sysdeps/generic/aio_cancel.c: Moved to...
+       * rt/aio_cancel.c: ...here.
+       * sysdeps/generic/aio_fsync.c: Moved to...
+       * rt/aio_fsync.c: ...here.
+       * sysdeps/generic/aio_misc.c: Moved to...
+       * rt/aio_misc.c: ...here.
+       * sysdeps/generic/aio_notify.c: Moved to...
+       * rt/aio_notify.c: ...here.
+       * sysdeps/generic/aio_read.c: Moved to...
+       * rt/aio_read.c: ...here.
+       * sysdeps/generic/aio_read64.c: Moved to...
+       * rt/aio_read64.c: ...here.
+       * sysdeps/generic/aio_sigqueue.c: Moved to...
+       * rt/aio_sigqueue.c: ...here.
+       * sysdeps/generic/aio_suspend.c: Moved to...
+       * rt/aio_suspend.c: ...here.
+       * sysdeps/generic/aio_write.c: Moved to...
+       * rt/aio_write.c: ...here.
+       * sysdeps/generic/aio_write64.c: Moved to...
+       * rt/aio_write64.c: ...here.
+       * sysdeps/generic/alarm.c: Moved to...
+       * posix/alarm.c: ...here.
+       * sysdeps/generic/allocrtsig.c: Moved to...
+       * signal/allocrtsig.c: ...here.
+       * sysdeps/generic/alphasort64.c: Moved to...
+       * dirent/alphasort64.c: ...here.
+       * sysdeps/generic/backtrace.c: Moved to...
+       * debug/backtrace.c: ...here.
+       * sysdeps/generic/backtracesyms.c: Moved to...
+       * debug/backtracesyms.c: ...here.
+       * sysdeps/generic/backtracesymsfd.c: Moved to...
+       * debug/backtracesymsfd.c: ...here.
+       * sysdeps/generic/bb_init_func.c: Moved to...
+       * gmon/bb_init_func.c: ...here.
+       * sysdeps/generic/bcopy.c: Moved to...
+       * string/bcopy.c: ...here.
+       * sysdeps/generic/bind.c: Moved to...
+       * socket/bind.c: ...here.
+       * sysdeps/generic/brdinit.c: Moved to...
+       * bare/brdinit.c: ...here.
+       * sysdeps/generic/brk.c: Moved to...
+       * misc/brk.c: ...here.
+       * sysdeps/generic/bsd-_setjmp.c: Moved to...
+       * setjmp/bsd-_setjmp.c: ...here.
+       * sysdeps/generic/bsd-setjmp.c: Moved to...
+       * setjmp/bsd-setjmp.c: ...here.
+       * sysdeps/generic/bzero.c: Moved to...
+       * string/bzero.c: ...here.
+       * sysdeps/generic/cabsf.c: Moved to...
+       * math/cabsf.c: ...here.
+       * sysdeps/generic/cargf.c: Moved to...
+       * math/cargf.c: ...here.
+       * sysdeps/generic/chdir.c: Moved to...
+       * io/chdir.c: ...here.
+       * sysdeps/generic/check_fds.c: Moved to...
+       * csu/check_fds.c: ...here.
+       * sysdeps/generic/check_pf.c: Moved to...
+       * inet/check_pf.c: ...here.
+       * sysdeps/generic/chflags.c: Moved to...
+       * misc/chflags.c: ...here.
+       * sysdeps/generic/chmod.c: Moved to...
+       * io/chmod.c: ...here.
+       * sysdeps/generic/chown.c: Moved to...
+       * io/chown.c: ...here.
+       * sysdeps/generic/chroot.c: Moved to...
+       * misc/chroot.c: ...here.
+       * sysdeps/generic/cimagf.c: Moved to...
+       * math/cimagf.c: ...here.
+       * sysdeps/generic/clock.c: Moved to...
+       * time/clock.c: ...here.
+       * sysdeps/generic/clock_getcpuclockid.c: Moved to...
+       * rt/clock_getcpuclockid.c: ...here.
+       * sysdeps/generic/clock_getres.c: Moved to...
+       * rt/clock_getres.c: ...here.
+       * sysdeps/generic/clock_gettime.c: Moved to...
+       * rt/clock_gettime.c: ...here.
+       * sysdeps/generic/clock_nanosleep.c: Moved to...
+       * rt/clock_nanosleep.c: ...here.
+       * sysdeps/generic/clock_settime.c: Moved to...
+       * rt/clock_settime.c: ...here.
+       * sysdeps/generic/close.c: Moved to...
+       * io/close.c: ...here.
+       * sysdeps/generic/closedir.c: Moved to...
+       * dirent/closedir.c: ...here.
+       * sysdeps/generic/cmp.c: Moved to...
+       * stdlib/cmp.c: ...here.
+       * sysdeps/generic/conjf.c: Moved to...
+       * math/conjf.c: ...here.
+       * sysdeps/generic/connect.c: Moved to...
+       * socket/connect.c: ...here.
+       * sysdeps/generic/console.c: Moved to...
+       * bare/console.c: ...here.
+       * sysdeps/generic/crealf.c: Moved to...
+       * math/crealf.c: ...here.
+       * sysdeps/generic/creat.c: Moved to...
+       * io/creat.c: ...here.
+       * sysdeps/generic/creat64.c: Moved to...
+       * io/creat64.c: ...here.
+       * sysdeps/generic/ctermid.c: Moved to...
+       * stdio-common/ctermid.c: ...here.
+       * sysdeps/generic/cuserid.c: Moved to...
+       * stdio-common/cuserid.c: ...here.
+       * sysdeps/generic/dbl2mpn.c: Moved to...
+       * stdlib/dbl2mpn.c: ...here.
+       * sysdeps/generic/dirfd.c: Moved to...
+       * dirent/dirfd.c: ...here.
+       * sysdeps/generic/div.c: Moved to...
+       * stdlib/div.c: ...here.
+       * sysdeps/generic/divmod_1.c: Moved to...
+       * stdlib/divmod_1.c: ...here.
+       * sysdeps/generic/divrem.c: Moved to...
+       * stdlib/divrem.c: ...here.
+       * sysdeps/generic/dl-brk.c: Moved to...
+       * elf/dl-brk.c: ...here.
+       * sysdeps/generic/dl-cache.c: Moved to...
+       * elf/dl-cache.c: ...here.
+       * sysdeps/generic/dl-environ.c: Moved to...
+       * elf/dl-environ.c: ...here.
+       * sysdeps/generic/dl-execstack.c: Moved to...
+       * elf/dl-execstack.c: ...here.
+       * sysdeps/generic/dl-fptr.c: Moved to...
+       * elf/dl-fptr.c: ...here.
+       * sysdeps/generic/dl-origin.c: Moved to...
+       * elf/dl-origin.c: ...here.
+       * sysdeps/generic/dl-sbrk.c: Moved to...
+       * elf/dl-sbrk.c: ...here.
+       * sysdeps/generic/dl-symaddr.c: Moved to...
+       * elf/dl-symaddr.c: ...here.
+       * sysdeps/generic/dl-sysdep.c: Moved to...
+       * elf/dl-sysdep.c: ...here.
+       * sysdeps/generic/dl-tls.c: Moved to...
+       * elf/dl-tls.c: ...here.
+       * sysdeps/generic/dl-trampoline.c: Moved to...
+       * elf/dl-trampoline.c: ...here.
+       * sysdeps/generic/dup.c: Moved to...
+       * io/dup.c: ...here.
+       * sysdeps/generic/dup2.c: Moved to...
+       * io/dup2.c: ...here.
+       * sysdeps/generic/e_acoshl.c: Moved to...
+       * math/e_acoshl.c: ...here.
+       * sysdeps/generic/e_acosl.c: Moved to...
+       * math/e_acosl.c: ...here.
+       * sysdeps/generic/e_asinl.c: Moved to...
+       * math/e_asinl.c: ...here.
+       * sysdeps/generic/e_atan2l.c: Moved to...
+       * math/e_atan2l.c: ...here.
+       * sysdeps/generic/e_atanhl.c: Moved to...
+       * math/e_atanhl.c: ...here.
+       * sysdeps/generic/e_coshl.c: Moved to...
+       * math/e_coshl.c: ...here.
+       * sysdeps/generic/e_exp10.c: Moved to...
+       * math/e_exp10.c: ...here.
+       * sysdeps/generic/e_exp10f.c: Moved to...
+       * math/e_exp10f.c: ...here.
+       * sysdeps/generic/e_exp10l.c: Moved to...
+       * math/e_exp10l.c: ...here.
+       * sysdeps/generic/e_exp2l.c: Moved to...
+       * math/e_exp2l.c: ...here.
+       * sysdeps/generic/e_expl.c: Moved to...
+       * math/e_expl.c: ...here.
+       * sysdeps/generic/e_fmodl.c: Moved to...
+       * math/e_fmodl.c: ...here.
+       * sysdeps/generic/e_gammal_r.c: Moved to...
+       * math/e_gammal_r.c: ...here.
+       * sysdeps/generic/e_hypotl.c: Moved to...
+       * math/e_hypotl.c: ...here.
+       * sysdeps/generic/e_j0l.c: Moved to...
+       * math/e_j0l.c: ...here.
+       * sysdeps/generic/e_j1l.c: Moved to...
+       * math/e_j1l.c: ...here.
+       * sysdeps/generic/e_jnl.c: Moved to...
+       * math/e_jnl.c: ...here.
+       * sysdeps/generic/e_lgammal_r.c: Moved to...
+       * math/e_lgammal_r.c: ...here.
+       * sysdeps/generic/e_log10l.c: Moved to...
+       * math/e_log10l.c: ...here.
+       * sysdeps/generic/e_log2l.c: Moved to...
+       * math/e_log2l.c: ...here.
+       * sysdeps/generic/e_logl.c: Moved to...
+       * math/e_logl.c: ...here.
+       * sysdeps/generic/e_powl.c: Moved to...
+       * math/e_powl.c: ...here.
+       * sysdeps/generic/e_rem_pio2l.c: Moved to...
+       * math/e_rem_pio2l.c: ...here.
+       * sysdeps/generic/e_scalb.c: Moved to...
+       * math/e_scalb.c: ...here.
+       * sysdeps/generic/e_scalbf.c: Moved to...
+       * math/e_scalbf.c: ...here.
+       * sysdeps/generic/e_scalbl.c: Moved to...
+       * math/e_scalbl.c: ...here.
+       * sysdeps/generic/e_sinhl.c: Moved to...
+       * math/e_sinhl.c: ...here.
+       * sysdeps/generic/e_sqrtl.c: Moved to...
+       * math/e_sqrtl.c: ...here.
+       * sysdeps/generic/enbl-secure.c: Moved to...
+       * elf/enbl-secure.c: ...here.
+       * sysdeps/generic/endutxent.c: Moved to...
+       * login/endutxent.c: ...here.
+       * sysdeps/generic/environ.c: Moved to...
+       * posix/environ.c: ...here.
+       * sysdeps/generic/errlist.c: Moved to...
+       * stdio-common/errlist.c: ...here.
+       * sysdeps/generic/errno-loc.c: Moved to...
+       * csu/errno-loc.c: ...here.
+       * sysdeps/generic/errno-loc.c: Moved to...
+       * csu/errno-loc.c: ...here.
+       * sysdeps/generic/errno.c: Moved to...
+       * csu/errno.c: ...here.
+       * sysdeps/generic/euidaccess.c: Moved to...
+       * io/euidaccess.c: ...here.
+       * sysdeps/generic/exc2signal.c: Moved to...
+       * hurd/exc2signal.c: ...here.
+       * sysdeps/generic/execve.c: Moved to...
+       * posix/execve.c: ...here.
+       * sysdeps/generic/fattach.c: Moved to...
+       * streams/fattach.c: ...here.
+       * sysdeps/generic/fchdir.c: Moved to...
+       * io/fchdir.c: ...here.
+       * sysdeps/generic/fchflags.c: Moved to...
+       * misc/fchflags.c: ...here.
+       * sysdeps/generic/fchmod.c: Moved to...
+       * io/fchmod.c: ...here.
+       * sysdeps/generic/fchown.c: Moved to...
+       * io/fchown.c: ...here.
+       * sysdeps/generic/fchownat.c: Moved to...
+       * io/fchownat.c: ...here.
+       * sysdeps/generic/fclrexcpt.c: Moved to...
+       * math/fclrexcpt.c: ...here.
+       * sysdeps/generic/fcntl.c: Moved to...
+       * io/fcntl.c: ...here.
+       * sysdeps/generic/fdatasync.c: Moved to...
+       * misc/fdatasync.c: ...here.
+       * sysdeps/generic/fdetach.c: Moved to...
+       * streams/fdetach.c: ...here.
+       * sysdeps/generic/fdopendir.c: Moved to...
+       * dirent/fdopendir.c: ...here.
+       * sysdeps/generic/fedisblxcpt.c: Moved to...
+       * math/fedisblxcpt.c: ...here.
+       * sysdeps/generic/feenablxcpt.c: Moved to...
+       * math/feenablxcpt.c: ...here.
+       * sysdeps/generic/fegetenv.c: Moved to...
+       * math/fegetenv.c: ...here.
+       * sysdeps/generic/fegetexcept.c: Moved to...
+       * math/fegetexcept.c: ...here.
+       * sysdeps/generic/fegetround.c: Moved to...
+       * math/fegetround.c: ...here.
+       * sysdeps/generic/feholdexcpt.c: Moved to...
+       * math/feholdexcpt.c: ...here.
+       * sysdeps/generic/fesetenv.c: Moved to...
+       * math/fesetenv.c: ...here.
+       * sysdeps/generic/fesetround.c: Moved to...
+       * math/fesetround.c: ...here.
+       * sysdeps/generic/feupdateenv.c: Moved to...
+       * math/feupdateenv.c: ...here.
+       * sysdeps/generic/fexecve.c: Moved to...
+       * posix/fexecve.c: ...here.
+       * sysdeps/generic/ffs.c: Moved to...
+       * string/ffs.c: ...here.
+       * sysdeps/generic/ffsll.c: Moved to...
+       * string/ffsll.c: ...here.
+       * sysdeps/generic/fgetexcptflg.c: Moved to...
+       * math/fgetexcptflg.c: ...here.
+       * sysdeps/generic/fgetxattr.c: Moved to...
+       * misc/fgetxattr.c: ...here.
+       * sysdeps/generic/flistxattr.c: Moved to...
+       * misc/flistxattr.c: ...here.
+       * sysdeps/generic/flock.c: Moved to...
+       * io/flock.c: ...here.
+       * sysdeps/generic/flockfile.c: Moved to...
+       * stdio-common/flockfile.c: ...here.
+       * sysdeps/generic/fork.c: Moved to...
+       * posix/fork.c: ...here.
+       * sysdeps/generic/fpathconf.c: Moved to...
+       * posix/fpathconf.c: ...here.
+       * sysdeps/generic/fpu_control.c: Moved to...
+       * math/fpu_control.c: ...here.
+       * sysdeps/generic/fraiseexcpt.c: Moved to...
+       * math/fraiseexcpt.c: ...here.
+       * sysdeps/generic/fremovexattr.c: Moved to...
+       * misc/fremovexattr.c: ...here.
+       * sysdeps/generic/fsetexcptflg.c: Moved to...
+       * math/fsetexcptflg.c: ...here.
+       * sysdeps/generic/fsetxattr.c: Moved to...
+       * misc/fsetxattr.c: ...here.
+       * sysdeps/generic/fstatfs.c: Moved to...
+       * io/fstatfs.c: ...here.
+       * sysdeps/generic/fstatfs64.c: Moved to...
+       * io/fstatfs64.c: ...here.
+       * sysdeps/generic/fstatvfs.c: Moved to...
+       * io/fstatvfs.c: ...here.
+       * sysdeps/generic/fstatvfs64.c: Moved to...
+       * io/fstatvfs64.c: ...here.
+       * sysdeps/generic/fsync.c: Moved to...
+       * misc/fsync.c: ...here.
+       * sysdeps/generic/ftestexcept.c: Moved to...
+       * math/ftestexcept.c: ...here.
+       * sysdeps/generic/ftime.c: Moved to...
+       * time/ftime.c: ...here.
+       * sysdeps/generic/ftruncate.c: Moved to...
+       * misc/ftruncate.c: ...here.
+       * sysdeps/generic/ftruncate64.c: Moved to...
+       * misc/ftruncate64.c: ...here.
+       * sysdeps/generic/ftrylockfile.c: Moved to...
+       * stdio-common/ftrylockfile.c: ...here.
+       * sysdeps/generic/funlockfile.c: Moved to...
+       * stdio-common/funlockfile.c: ...here.
+       * sysdeps/generic/futimes.c: Moved to...
+       * misc/futimes.c: ...here.
+       * sysdeps/generic/futimesat.c: Moved to...
+       * misc/futimesat.c: ...here.
+       * sysdeps/generic/fxstat.c: Moved to...
+       * io/fxstat.c: ...here.
+       * sysdeps/generic/fxstat64.c: Moved to...
+       * io/fxstat64.c: ...here.
+       * sysdeps/generic/fxstatat.c: Moved to...
+       * io/fxstatat.c: ...here.
+       * sysdeps/generic/fxstatat64.c: Moved to...
+       * io/fxstatat64.c: ...here.
+       * sysdeps/generic/gai_sigqueue.c: Moved to...
+       * resolv/gai_sigqueue.c: ...here.
+       * sysdeps/generic/gai_strerror.c: Moved to...
+       * posix/gai_strerror.c: ...here.
+       * sysdeps/generic/get_clockfreq.c: Moved to...
+       * rt/get_clockfreq.c: ...here.
+       * sysdeps/generic/getaddrinfo.c: Moved to...
+       * posix/getaddrinfo.c: ...here.
+       * sysdeps/generic/getclktck.c: Moved to...
+       * misc/getclktck.c: ...here.
+       * sysdeps/generic/getcontext.c: Moved to...
+       * stdlib/getcontext.c: ...here.
+       * sysdeps/generic/getcwd.c: Moved to...
+       * io/getcwd.c: ...here.
+       * sysdeps/generic/getdents.c: Moved to...
+       * dirent/getdents.c: ...here.
+       * sysdeps/generic/getdents64.c: Moved to...
+       * dirent/getdents64.c: ...here.
+       * sysdeps/generic/getdomain.c: Moved to...
+       * misc/getdomain.c: ...here.
+       * sysdeps/generic/getdtsz.c: Moved to...
+       * misc/getdtsz.c: ...here.
+       * sysdeps/generic/getegid.c: Moved to...
+       * posix/getegid.c: ...here.
+       * sysdeps/generic/getenv.c: Moved to...
+       * stdlib/getenv.c: ...here.
+       * sysdeps/generic/geteuid.c: Moved to...
+       * posix/geteuid.c: ...here.
+       * sysdeps/generic/getgid.c: Moved to...
+       * posix/getgid.c: ...here.
+       * sysdeps/generic/getgroups.c: Moved to...
+       * posix/getgroups.c: ...here.
+       * sysdeps/generic/gethostid.c: Moved to...
+       * misc/gethostid.c: ...here.
+       * sysdeps/generic/gethostname.c: Moved to...
+       * misc/gethostname.c: ...here.
+       * sysdeps/generic/getipv4sourcefilter.c: Moved to...
+       * inet/getipv4sourcefilter.c: ...here.
+       * sysdeps/generic/getitimer.c: Moved to...
+       * time/getitimer.c: ...here.
+       * sysdeps/generic/getloadavg.c: Moved to...
+       * misc/getloadavg.c: ...here.
+       * sysdeps/generic/getlogin.c: Moved to...
+       * posix/getlogin.c: ...here.
+       * sysdeps/generic/getlogin_r.c: Moved to...
+       * posix/getlogin_r.c: ...here.
+       * sysdeps/generic/getmsg.c: Moved to...
+       * streams/getmsg.c: ...here.
+       * sysdeps/generic/getpagesize.c: Moved to...
+       * misc/getpagesize.c: ...here.
+       * sysdeps/generic/getpeername.c: Moved to...
+       * socket/getpeername.c: ...here.
+       * sysdeps/generic/getpgid.c: Moved to...
+       * posix/getpgid.c: ...here.
+       * sysdeps/generic/getpgrp.c: Moved to...
+       * posix/getpgrp.c: ...here.
+       * sysdeps/generic/getpid.c: Moved to...
+       * posix/getpid.c: ...here.
+       * sysdeps/generic/getpmsg.c: Moved to...
+       * streams/getpmsg.c: ...here.
+       * sysdeps/generic/getppid.c: Moved to...
+       * posix/getppid.c: ...here.
+       * sysdeps/generic/getpriority.c: Moved to...
+       * resource/getpriority.c: ...here.
+       * sysdeps/generic/getpt.c: Moved to...
+       * login/getpt.c: ...here.
+       * sysdeps/generic/getresgid.c: Moved to...
+       * posix/getresgid.c: ...here.
+       * sysdeps/generic/getresuid.c: Moved to...
+       * posix/getresuid.c: ...here.
+       * sysdeps/generic/getrlimit.c: Moved to...
+       * resource/getrlimit.c: ...here.
+       * sysdeps/generic/getrlimit64.c: Moved to...
+       * resource/getrlimit64.c: ...here.
+       * sysdeps/generic/getrusage.c: Moved to...
+       * resource/getrusage.c: ...here.
+       * sysdeps/generic/getsid.c: Moved to...
+       * posix/getsid.c: ...here.
+       * sysdeps/generic/getsockname.c: Moved to...
+       * socket/getsockname.c: ...here.
+       * sysdeps/generic/getsockopt.c: Moved to...
+       * socket/getsockopt.c: ...here.
+       * sysdeps/generic/getsourcefilter.c: Moved to...
+       * inet/getsourcefilter.c: ...here.
+       * sysdeps/generic/getsysstats.c: Moved to...
+       * misc/getsysstats.c: ...here.
+       * sysdeps/generic/gettimeofday.c: Moved to...
+       * time/gettimeofday.c: ...here.
+       * sysdeps/generic/getuid.c: Moved to...
+       * posix/getuid.c: ...here.
+       * sysdeps/generic/getutmp.c: Moved to...
+       * login/getutmp.c: ...here.
+       * sysdeps/generic/getutmpx.c: Moved to...
+       * login/getutmpx.c: ...here.
+       * sysdeps/generic/getutxent.c: Moved to...
+       * login/getutxent.c: ...here.
+       * sysdeps/generic/getutxid.c: Moved to...
+       * login/getutxid.c: ...here.
+       * sysdeps/generic/getutxline.c: Moved to...
+       * login/getutxline.c: ...here.
+       * sysdeps/generic/getxattr.c: Moved to...
+       * misc/getxattr.c: ...here.
+       * sysdeps/generic/glob.c: Moved to...
+       * posix/glob.c: ...here.
+       * sysdeps/generic/glob64.c: Moved to...
+       * posix/glob64.c: ...here.
+       * sysdeps/generic/grantpt.c: Moved to...
+       * login/grantpt.c: ...here.
+       * sysdeps/generic/group_member.c: Moved to...
+       * posix/group_member.c: ...here.
+       * sysdeps/generic/gtty.c: Moved to...
+       * misc/gtty.c: ...here.
+       * sysdeps/generic/herrno-loc.c: Moved to...
+       * inet/herrno-loc.c: ...here.
+       * sysdeps/generic/htonl.c: Moved to...
+       * inet/htonl.c: ...here.
+       * sysdeps/generic/htons.c: Moved to...
+       * inet/htons.c: ...here.
+       * sysdeps/generic/if_index.c: Moved to...
+       * inet/if_index.c: ...here.
+       * sysdeps/generic/ifaddrs.c: Moved to...
+       * inet/ifaddrs.c: ...here.
+       * sysdeps/generic/ifreq.c: Moved to...
+       * inet/ifreq.c: ...here.
+       * sysdeps/generic/init-first.c: Moved to...
+       * csu/init-first.c: ...here.
+       * sysdeps/generic/init-posix.c: Moved to...
+       * posix/init-posix.c: ...here.
+       * sysdeps/generic/inlines.c: Moved to...
+       * stdlib/inlines.c: ...here.
+       * sysdeps/generic/ioctl.c: Moved to...
+       * misc/ioctl.c: ...here.
+       * sysdeps/generic/isastream.c: Moved to...
+       * streams/isastream.c: ...here.
+       * sysdeps/generic/isatty.c: Moved to...
+       * io/isatty.c: ...here.
+       * sysdeps/generic/isfdtype.c: Moved to...
+       * socket/isfdtype.c: ...here.
+       * sysdeps/generic/jmp-unwind.c: Moved to...
+       * setjmp/jmp-unwind.c: ...here.
+       * sysdeps/generic/k_cosl.c: Moved to...
+       * math/k_cosl.c: ...here.
+       * sysdeps/generic/k_rem_pio2l.c: Moved to...
+       * math/k_rem_pio2l.c: ...here.
+       * sysdeps/generic/k_sincosl.c: Moved to...
+       * math/k_sincosl.c: ...here.
+       * sysdeps/generic/k_sinl.c: Moved to...
+       * math/k_sinl.c: ...here.
+       * sysdeps/generic/k_tanl.c: Moved to...
+       * math/k_tanl.c: ...here.
+       * sysdeps/generic/kill.c: Moved to...
+       * signal/kill.c: ...here.
+       * sysdeps/generic/killpg.c: Moved to...
+       * signal/killpg.c: ...here.
+       * sysdeps/generic/labs.c: Moved to...
+       * stdlib/labs.c: ...here.
+       * sysdeps/generic/lchmod.c: Moved to...
+       * io/lchmod.c: ...here.
+       * sysdeps/generic/lchown.c: Moved to...
+       * io/lchown.c: ...here.
+       * sysdeps/generic/ldbl2mpn.c: Moved to...
+       * stdlib/ldbl2mpn.c: ...here.
+       * sysdeps/generic/ldiv.c: Moved to...
+       * stdlib/ldiv.c: ...here.
+       * sysdeps/generic/lgetxattr.c: Moved to...
+       * misc/lgetxattr.c: ...here.
+       * sysdeps/generic/libc-start.c: Moved to...
+       * csu/libc-start.c: ...here.
+       * sysdeps/generic/libc-tls.c: Moved to...
+       * csu/libc-tls.c: ...here.
+       * sysdeps/generic/libc_fatal.c: Moved to...
+       * libio/libc_fatal.c: ...here.
+       * sysdeps/generic/link.c: Moved to...
+       * io/link.c: ...here.
+       * sysdeps/generic/lio_listio.c: Moved to...
+       * rt/lio_listio.c: ...here.
+       * sysdeps/generic/lio_listio64.c: Moved to...
+       * rt/lio_listio64.c: ...here.
+       * sysdeps/generic/listen.c: Moved to...
+       * socket/listen.c: ...here.
+       * sysdeps/generic/listxattr.c: Moved to...
+       * misc/listxattr.c: ...here.
+       * sysdeps/generic/llabs.c: Moved to...
+       * stdlib/llabs.c: ...here.
+       * sysdeps/generic/lldiv.c: Moved to...
+       * stdlib/lldiv.c: ...here.
+       * sysdeps/generic/llistxattr.c: Moved to...
+       * misc/llistxattr.c: ...here.
+       * sysdeps/generic/lockf.c: Moved to...
+       * io/lockf.c: ...here.
+       * sysdeps/generic/lockf64.c: Moved to...
+       * io/lockf64.c: ...here.
+       * sysdeps/generic/longjmp-ts.c: Moved to...
+       * hurd/longjmp-ts.c: ...here.
+       * sysdeps/generic/longjmp.c: Moved to...
+       * setjmp/longjmp.c: ...here.
+       * sysdeps/generic/lremovexattr.c: Moved to...
+       * misc/lremovexattr.c: ...here.
+       * sysdeps/generic/lseek.c: Moved to...
+       * misc/lseek.c: ...here.
+       * sysdeps/generic/lseek64.c: Moved to...
+       * io/lseek64.c: ...here.
+       * sysdeps/generic/lsetxattr.c: Moved to...
+       * misc/lsetxattr.c: ...here.
+       * sysdeps/generic/lshift.c: Moved to...
+       * stdlib/lshift.c: ...here.
+       * sysdeps/generic/lutimes.c: Moved to...
+       * misc/lutimes.c: ...here.
+       * sysdeps/generic/lxstat.c: Moved to...
+       * io/lxstat.c: ...here.
+       * sysdeps/generic/lxstat64.c: Moved to...
+       * io/lxstat64.c: ...here.
+       * sysdeps/generic/madvise.c: Moved to...
+       * misc/madvise.c: ...here.
+       * sysdeps/generic/makecontext.c: Moved to...
+       * stdlib/makecontext.c: ...here.
+       * sysdeps/generic/memccpy.c: Moved to...
+       * string/memccpy.c: ...here.
+       * sysdeps/generic/memchr.c: Moved to...
+       * string/memchr.c: ...here.
+       * sysdeps/generic/memcmp.c: Moved to...
+       * string/memcmp.c: ...here.
+       * sysdeps/generic/memcpy.c: Moved to...
+       * string/memcpy.c: ...here.
+       * sysdeps/generic/memcpy_chk.c: Moved to...
+       * debug/memcpy_chk.c: ...here.
+       * sysdeps/generic/memmem.c: Moved to...
+       * string/memmem.c: ...here.
+       * sysdeps/generic/memmove.c: Moved to...
+       * string/memmove.c: ...here.
+       * sysdeps/generic/memmove_chk.c: Moved to...
+       * debug/memmove_chk.c: ...here.
+       * sysdeps/generic/mempcpy.c: Moved to...
+       * string/mempcpy.c: ...here.
+       * sysdeps/generic/mempcpy_chk.c: Moved to...
+       * debug/mempcpy_chk.c: ...here.
+       * sysdeps/generic/memrchr.c: Moved to...
+       * string/memrchr.c: ...here.
+       * sysdeps/generic/memset.c: Moved to...
+       * string/memset.c: ...here.
+       * sysdeps/generic/memset_chk.c: Moved to...
+       * debug/memset_chk.c: ...here.
+       * sysdeps/generic/mig-reply.c: Moved to...
+       * mach/mig-reply.c: ...here.
+       * sysdeps/generic/mincore.c: Moved to...
+       * misc/mincore.c: ...here.
+       * sysdeps/generic/mkdir.c: Moved to...
+       * io/mkdir.c: ...here.
+       * sysdeps/generic/mkdirat.c: Moved to...
+       * io/mkdirat.c: ...here.
+       * sysdeps/generic/mkfifo.c: Moved to...
+       * io/mkfifo.c: ...here.
+       * sysdeps/generic/mkfifoat.c: Moved to...
+       * io/mkfifoat.c: ...here.
+       * sysdeps/generic/mknod.c: Moved to...
+       * io/mknod.c: ...here.
+       * sysdeps/generic/mknodat.c: Moved to...
+       * io/mknodat.c: ...here.
+       * sysdeps/generic/mlock.c: Moved to...
+       * misc/mlock.c: ...here.
+       * sysdeps/generic/mlockall.c: Moved to...
+       * misc/mlockall.c: ...here.
+       * sysdeps/generic/mmap.c: Moved to...
+       * misc/mmap.c: ...here.
+       * sysdeps/generic/mmap64.c: Moved to...
+       * misc/mmap64.c: ...here.
+       * sysdeps/generic/mod_1.c: Moved to...
+       * stdlib/mod_1.c: ...here.
+       * sysdeps/generic/morecore.c: Moved to...
+       * malloc/morecore.c: ...here.
+       * sysdeps/generic/mp_clz_tab.c: Moved to...
+       * stdlib/mp_clz_tab.c: ...here.
+       * sysdeps/generic/mpn2dbl.c: Moved to...
+       * stdlib/mpn2dbl.c: ...here.
+       * sysdeps/generic/mpn2flt.c: Moved to...
+       * stdlib/mpn2flt.c: ...here.
+       * sysdeps/generic/mpn2ldbl.c: Moved to...
+       * stdlib/mpn2ldbl.c: ...here.
+       * sysdeps/generic/mprotect.c: Moved to...
+       * misc/mprotect.c: ...here.
+       * sysdeps/generic/mq_close.c: Moved to...
+       * rt/mq_close.c: ...here.
+       * sysdeps/generic/mq_getattr.c: Moved to...
+       * rt/mq_getattr.c: ...here.
+       * sysdeps/generic/mq_notify.c: Moved to...
+       * rt/mq_notify.c: ...here.
+       * sysdeps/generic/mq_open.c: Moved to...
+       * rt/mq_open.c: ...here.
+       * sysdeps/generic/mq_receive.c: Moved to...
+       * rt/mq_receive.c: ...here.
+       * sysdeps/generic/mq_send.c: Moved to...
+       * rt/mq_send.c: ...here.
+       * sysdeps/generic/mq_setattr.c: Moved to...
+       * rt/mq_setattr.c: ...here.
+       * sysdeps/generic/mq_timedreceive.c: Moved to...
+       * rt/mq_timedreceive.c: ...here.
+       * sysdeps/generic/mq_timedsend.c: Moved to...
+       * rt/mq_timedsend.c: ...here.
+       * sysdeps/generic/mq_unlink.c: Moved to...
+       * rt/mq_unlink.c: ...here.
+       * sysdeps/generic/msgctl.c: Moved to...
+       * sysvipc/msgctl.c: ...here.
+       * sysdeps/generic/msgget.c: Moved to...
+       * sysvipc/msgget.c: ...here.
+       * sysdeps/generic/msgrcv.c: Moved to...
+       * sysvipc/msgrcv.c: ...here.
+       * sysdeps/generic/msgsnd.c: Moved to...
+       * sysvipc/msgsnd.c: ...here.
+       * sysdeps/generic/msync.c: Moved to...
+       * misc/msync.c: ...here.
+       * sysdeps/generic/mul.c: Moved to...
+       * stdlib/mul.c: ...here.
+       * sysdeps/generic/mul_1.c: Moved to...
+       * stdlib/mul_1.c: ...here.
+       * sysdeps/generic/mul_n.c: Moved to...
+       * stdlib/mul_n.c: ...here.
+       * sysdeps/generic/munlock.c: Moved to...
+       * misc/munlock.c: ...here.
+       * sysdeps/generic/munlockall.c: Moved to...
+       * misc/munlockall.c: ...here.
+       * sysdeps/generic/munmap.c: Moved to...
+       * misc/munmap.c: ...here.
+       * sysdeps/generic/nanosleep.c: Moved to...
+       * posix/nanosleep.c: ...here.
+       * sysdeps/generic/nice.c: Moved to...
+       * resource/nice.c: ...here.
+       * sysdeps/generic/nscd_setup_thread.c: Moved to...
+       * nscd/nscd_setup_thread.c: ...here.
+       * sysdeps/generic/open.c: Moved to...
+       * io/open.c: ...here.
+       * sysdeps/generic/open64.c: Moved to...
+       * io/open64.c: ...here.
+       * sysdeps/generic/openat.c: Moved to...
+       * io/openat.c: ...here.
+       * sysdeps/generic/openat64.c: Moved to...
+       * io/openat64.c: ...here.
+       * sysdeps/generic/opendir.c: Moved to...
+       * dirent/opendir.c: ...here.
+       * sysdeps/generic/opensock.c: Moved to...
+       * socket/opensock.c: ...here.
+       * sysdeps/generic/pathconf.c: Moved to...
+       * posix/pathconf.c: ...here.
+       * sysdeps/generic/pause.c: Moved to...
+       * posix/pause.c: ...here.
+       * sysdeps/generic/pipe.c: Moved to...
+       * io/pipe.c: ...here.
+       * sysdeps/generic/poll.c: Moved to...
+       * io/poll.c: ...here.
+       * sysdeps/generic/posix_fadvise.c: Moved to...
+       * io/posix_fadvise.c: ...here.
+       * sysdeps/generic/posix_fadvise64.c: Moved to...
+       * io/posix_fadvise64.c: ...here.
+       * sysdeps/generic/posix_fallocate.c: Moved to...
+       * io/posix_fallocate.c: ...here.
+       * sysdeps/generic/posix_fallocate64.c: Moved to...
+       * io/posix_fallocate64.c: ...here.
+       * sysdeps/generic/posix_madvise.c: Moved to...
+       * posix/posix_madvise.c: ...here.
+       * sysdeps/generic/pread.c: Moved to...
+       * posix/pread.c: ...here.
+       * sysdeps/generic/pread64.c: Moved to...
+       * posix/pread64.c: ...here.
+       * sysdeps/generic/printf_fphex.c: Moved to...
+       * stdio-common/printf_fphex.c: ...here.
+       * sysdeps/generic/prof-freq.c: Moved to...
+       * gmon/prof-freq.c: ...here.
+       * sysdeps/generic/profil.c: Moved to...
+       * gmon/profil.c: ...here.
+       * sysdeps/generic/pselect.c: Moved to...
+       * misc/pselect.c: ...here.
+       * sysdeps/generic/ptrace.c: Moved to...
+       * misc/ptrace.c: ...here.
+       * sysdeps/generic/ptsname.c: Moved to...
+       * login/ptsname.c: ...here.
+       * sysdeps/generic/putenv.c: Moved to...
+       * stdlib/putenv.c: ...here.
+       * sysdeps/generic/putmsg.c: Moved to...
+       * streams/putmsg.c: ...here.
+       * sysdeps/generic/putpmsg.c: Moved to...
+       * streams/putpmsg.c: ...here.
+       * sysdeps/generic/pututxline.c: Moved to...
+       * login/pututxline.c: ...here.
+       * sysdeps/generic/pwrite.c: Moved to...
+       * posix/pwrite.c: ...here.
+       * sysdeps/generic/pwrite64.c: Moved to...
+       * posix/pwrite64.c: ...here.
+       * sysdeps/generic/raise.c: Moved to...
+       * signal/raise.c: ...here.
+       * sysdeps/generic/rawmemchr.c: Moved to...
+       * string/rawmemchr.c: ...here.
+       * sysdeps/generic/read.c: Moved to...
+       * io/read.c: ...here.
+       * sysdeps/generic/readdir.c: Moved to...
+       * dirent/readdir.c: ...here.
+       * sysdeps/generic/readdir64.c: Moved to...
+       * dirent/readdir64.c: ...here.
+       * sysdeps/generic/readdir64_r.c: Moved to...
+       * dirent/readdir64_r.c: ...here.
+       * sysdeps/generic/readdir_r.c: Moved to...
+       * dirent/readdir_r.c: ...here.
+       * sysdeps/generic/readelflib.c: Moved to...
+       * elf/readelflib.c: ...here.
+       * sysdeps/generic/readlink.c: Moved to...
+       * io/readlink.c: ...here.
+       * sysdeps/generic/readonly-area.c: Moved to...
+       * debug/readonly-area.c: ...here.
+       * sysdeps/generic/readv.c: Moved to...
+       * misc/readv.c: ...here.
+       * sysdeps/generic/reboot.c: Moved to...
+       * misc/reboot.c: ...here.
+       * sysdeps/generic/recv.c: Moved to...
+       * socket/recv.c: ...here.
+       * sysdeps/generic/recvfrom.c: Moved to...
+       * socket/recvfrom.c: ...here.
+       * sysdeps/generic/recvmsg.c: Moved to...
+       * socket/recvmsg.c: ...here.
+       * sysdeps/generic/remap_file_pages.c: Moved to...
+       * misc/remap_file_pages.c: ...here.
+       * sysdeps/generic/remove.c: Moved to...
+       * stdio-common/remove.c: ...here.
+       * sysdeps/generic/removexattr.c: Moved to...
+       * misc/removexattr.c: ...here.
+       * sysdeps/generic/rename.c: Moved to...
+       * stdio-common/rename.c: ...here.
+       * sysdeps/generic/renameat.c: Moved to...
+       * stdio-common/renameat.c: ...here.
+       * sysdeps/generic/res-state.c: Moved to...
+       * resolv/res-state.c: ...here.
+       * sysdeps/generic/revoke.c: Moved to...
+       * misc/revoke.c: ...here.
+       * sysdeps/generic/rewinddir.c: Moved to...
+       * dirent/rewinddir.c: ...here.
+       * sysdeps/generic/rmdir.c: Moved to...
+       * io/rmdir.c: ...here.
+       * sysdeps/generic/rshift.c: Moved to...
+       * stdlib/rshift.c: ...here.
+       * sysdeps/generic/s_asinhl.c: Moved to...
+       * math/s_asinhl.c: ...here.
+       * sysdeps/generic/s_atanl.c: Moved to...
+       * math/s_atanl.c: ...here.
+       * sysdeps/generic/s_cacos.c: Moved to...
+       * math/s_cacos.c: ...here.
+       * sysdeps/generic/s_cacosf.c: Moved to...
+       * math/s_cacosf.c: ...here.
+       * sysdeps/generic/s_cacosh.c: Moved to...
+       * math/s_cacosh.c: ...here.
+       * sysdeps/generic/s_cacoshf.c: Moved to...
+       * math/s_cacoshf.c: ...here.
+       * sysdeps/generic/s_cacoshl.c: Moved to...
+       * math/s_cacoshl.c: ...here.
+       * sysdeps/generic/s_cacosl.c: Moved to...
+       * math/s_cacosl.c: ...here.
+       * sysdeps/generic/s_casin.c: Moved to...
+       * math/s_casin.c: ...here.
+       * sysdeps/generic/s_casinf.c: Moved to...
+       * math/s_casinf.c: ...here.
+       * sysdeps/generic/s_casinh.c: Moved to...
+       * math/s_casinh.c: ...here.
+       * sysdeps/generic/s_casinhf.c: Moved to...
+       * math/s_casinhf.c: ...here.
+       * sysdeps/generic/s_casinhl.c: Moved to...
+       * math/s_casinhl.c: ...here.
+       * sysdeps/generic/s_casinl.c: Moved to...
+       * math/s_casinl.c: ...here.
+       * sysdeps/generic/s_catan.c: Moved to...
+       * math/s_catan.c: ...here.
+       * sysdeps/generic/s_catanf.c: Moved to...
+       * math/s_catanf.c: ...here.
+       * sysdeps/generic/s_catanh.c: Moved to...
+       * math/s_catanh.c: ...here.
+       * sysdeps/generic/s_catanhf.c: Moved to...
+       * math/s_catanhf.c: ...here.
+       * sysdeps/generic/s_catanhl.c: Moved to...
+       * math/s_catanhl.c: ...here.
+       * sysdeps/generic/s_catanl.c: Moved to...
+       * math/s_catanl.c: ...here.
+       * sysdeps/generic/s_cbrtl.c: Moved to...
+       * math/s_cbrtl.c: ...here.
+       * sysdeps/generic/s_ccos.c: Moved to...
+       * math/s_ccos.c: ...here.
+       * sysdeps/generic/s_ccosf.c: Moved to...
+       * math/s_ccosf.c: ...here.
+       * sysdeps/generic/s_ccosh.c: Moved to...
+       * math/s_ccosh.c: ...here.
+       * sysdeps/generic/s_ccoshf.c: Moved to...
+       * math/s_ccoshf.c: ...here.
+       * sysdeps/generic/s_ccoshl.c: Moved to...
+       * math/s_ccoshl.c: ...here.
+       * sysdeps/generic/s_ccosl.c: Moved to...
+       * math/s_ccosl.c: ...here.
+       * sysdeps/generic/s_cexp.c: Moved to...
+       * math/s_cexp.c: ...here.
+       * sysdeps/generic/s_cexpf.c: Moved to...
+       * math/s_cexpf.c: ...here.
+       * sysdeps/generic/s_cexpl.c: Moved to...
+       * math/s_cexpl.c: ...here.
+       * sysdeps/generic/s_clog.c: Moved to...
+       * math/s_clog.c: ...here.
+       * sysdeps/generic/s_clog10.c: Moved to...
+       * math/s_clog10.c: ...here.
+       * sysdeps/generic/s_clog10f.c: Moved to...
+       * math/s_clog10f.c: ...here.
+       * sysdeps/generic/s_clog10l.c: Moved to...
+       * math/s_clog10l.c: ...here.
+       * sysdeps/generic/s_clogf.c: Moved to...
+       * math/s_clogf.c: ...here.
+       * sysdeps/generic/s_clogl.c: Moved to...
+       * math/s_clogl.c: ...here.
+       * sysdeps/generic/s_cpow.c: Moved to...
+       * math/s_cpow.c: ...here.
+       * sysdeps/generic/s_cpowf.c: Moved to...
+       * math/s_cpowf.c: ...here.
+       * sysdeps/generic/s_cpowl.c: Moved to...
+       * math/s_cpowl.c: ...here.
+       * sysdeps/generic/s_cproj.c: Moved to...
+       * math/s_cproj.c: ...here.
+       * sysdeps/generic/s_cprojf.c: Moved to...
+       * math/s_cprojf.c: ...here.
+       * sysdeps/generic/s_cprojl.c: Moved to...
+       * math/s_cprojl.c: ...here.
+       * sysdeps/generic/s_csin.c: Moved to...
+       * math/s_csin.c: ...here.
+       * sysdeps/generic/s_csinf.c: Moved to...
+       * math/s_csinf.c: ...here.
+       * sysdeps/generic/s_csinh.c: Moved to...
+       * math/s_csinh.c: ...here.
+       * sysdeps/generic/s_csinhf.c: Moved to...
+       * math/s_csinhf.c: ...here.
+       * sysdeps/generic/s_csinhl.c: Moved to...
+       * math/s_csinhl.c: ...here.
+       * sysdeps/generic/s_csinl.c: Moved to...
+       * math/s_csinl.c: ...here.
+       * sysdeps/generic/s_csqrt.c: Moved to...
+       * math/s_csqrt.c: ...here.
+       * sysdeps/generic/s_csqrtf.c: Moved to...
+       * math/s_csqrtf.c: ...here.
+       * sysdeps/generic/s_csqrtl.c: Moved to...
+       * math/s_csqrtl.c: ...here.
+       * sysdeps/generic/s_ctan.c: Moved to...
+       * math/s_ctan.c: ...here.
+       * sysdeps/generic/s_ctanf.c: Moved to...
+       * math/s_ctanf.c: ...here.
+       * sysdeps/generic/s_ctanh.c: Moved to...
+       * math/s_ctanh.c: ...here.
+       * sysdeps/generic/s_ctanhf.c: Moved to...
+       * math/s_ctanhf.c: ...here.
+       * sysdeps/generic/s_ctanhl.c: Moved to...
+       * math/s_ctanhl.c: ...here.
+       * sysdeps/generic/s_ctanl.c: Moved to...
+       * math/s_ctanl.c: ...here.
+       * sysdeps/generic/s_erfl.c: Moved to...
+       * math/s_erfl.c: ...here.
+       * sysdeps/generic/s_expm1l.c: Moved to...
+       * math/s_expm1l.c: ...here.
+       * sysdeps/generic/s_fdim.c: Moved to...
+       * math/s_fdim.c: ...here.
+       * sysdeps/generic/s_fdimf.c: Moved to...
+       * math/s_fdimf.c: ...here.
+       * sysdeps/generic/s_fdiml.c: Moved to...
+       * math/s_fdiml.c: ...here.
+       * sysdeps/generic/s_fma.c: Moved to...
+       * math/s_fma.c: ...here.
+       * sysdeps/generic/s_fmaf.c: Moved to...
+       * math/s_fmaf.c: ...here.
+       * sysdeps/generic/s_fmal.c: Moved to...
+       * math/s_fmal.c: ...here.
+       * sysdeps/generic/s_fmax.c: Moved to...
+       * math/s_fmax.c: ...here.
+       * sysdeps/generic/s_fmaxf.c: Moved to...
+       * math/s_fmaxf.c: ...here.
+       * sysdeps/generic/s_fmaxl.c: Moved to...
+       * math/s_fmaxl.c: ...here.
+       * sysdeps/generic/s_fmin.c: Moved to...
+       * math/s_fmin.c: ...here.
+       * sysdeps/generic/s_fminf.c: Moved to...
+       * math/s_fminf.c: ...here.
+       * sysdeps/generic/s_fminl.c: Moved to...
+       * math/s_fminl.c: ...here.
+       * sysdeps/generic/s_ldexp.c: Moved to...
+       * math/s_ldexp.c: ...here.
+       * sysdeps/generic/s_ldexpf.c: Moved to...
+       * math/s_ldexpf.c: ...here.
+       * sysdeps/generic/s_ldexpl.c: Moved to...
+       * math/s_ldexpl.c: ...here.
+       * sysdeps/generic/s_log1pl.c: Moved to...
+       * math/s_log1pl.c: ...here.
+       * sysdeps/generic/s_nan.c: Moved to...
+       * math/s_nan.c: ...here.
+       * sysdeps/generic/s_nanf.c: Moved to...
+       * math/s_nanf.c: ...here.
+       * sysdeps/generic/s_nanl.c: Moved to...
+       * math/s_nanl.c: ...here.
+       * sysdeps/generic/s_nextafter.c: Moved to...
+       * math/s_nextafter.c: ...here.
+       * sysdeps/generic/s_nexttowardf.c: Moved to...
+       * math/s_nexttowardf.c: ...here.
+       * sysdeps/generic/s_nexttowardl.c: Moved to...
+       * math/s_nexttowardl.c: ...here.
+       * sysdeps/generic/s_significand.c: Moved to...
+       * math/s_significand.c: ...here.
+       * sysdeps/generic/s_significandf.c: Moved to...
+       * math/s_significandf.c: ...here.
+       * sysdeps/generic/s_significandl.c: Moved to...
+       * math/s_significandl.c: ...here.
+       * sysdeps/generic/s_tanhl.c: Moved to...
+       * math/s_tanhl.c: ...here.
+       * sysdeps/generic/sbrk.c: Moved to...
+       * misc/sbrk.c: ...here.
+       * sysdeps/generic/scandir64.c: Moved to...
+       * dirent/scandir64.c: ...here.
+       * sysdeps/generic/sched_getaffinity.c: Moved to...
+       * posix/sched_getaffinity.c: ...here.
+       * sysdeps/generic/sched_getp.c: Moved to...
+       * posix/sched_getp.c: ...here.
+       * sysdeps/generic/sched_gets.c: Moved to...
+       * posix/sched_gets.c: ...here.
+       * sysdeps/generic/sched_primax.c: Moved to...
+       * posix/sched_primax.c: ...here.
+       * sysdeps/generic/sched_primin.c: Moved to...
+       * posix/sched_primin.c: ...here.
+       * sysdeps/generic/sched_rr_gi.c: Moved to...
+       * posix/sched_rr_gi.c: ...here.
+       * sysdeps/generic/sched_setaffinity.c: Moved to...
+       * posix/sched_setaffinity.c: ...here.
+       * sysdeps/generic/sched_setp.c: Moved to...
+       * posix/sched_setp.c: ...here.
+       * sysdeps/generic/sched_sets.c: Moved to...
+       * posix/sched_sets.c: ...here.
+       * sysdeps/generic/sched_yield.c: Moved to...
+       * posix/sched_yield.c: ...here.
+       * sysdeps/generic/seekdir.c: Moved to...
+       * dirent/seekdir.c: ...here.
+       * sysdeps/generic/segfault.c: Moved to...
+       * debug/segfault.c: ...here.
+       * sysdeps/generic/select.c: Moved to...
+       * misc/select.c: ...here.
+       * sysdeps/generic/semctl.c: Moved to...
+       * sysvipc/semctl.c: ...here.
+       * sysdeps/generic/semget.c: Moved to...
+       * sysvipc/semget.c: ...here.
+       * sysdeps/generic/semop.c: Moved to...
+       * sysvipc/semop.c: ...here.
+       * sysdeps/generic/semtimedop.c: Moved to...
+       * sysvipc/semtimedop.c: ...here.
+       * sysdeps/generic/send.c: Moved to...
+       * socket/send.c: ...here.
+       * sysdeps/generic/sendfile.c: Moved to...
+       * io/sendfile.c: ...here.
+       * sysdeps/generic/sendfile64.c: Moved to...
+       * io/sendfile64.c: ...here.
+       * sysdeps/generic/sendmsg.c: Moved to...
+       * socket/sendmsg.c: ...here.
+       * sysdeps/generic/sendto.c: Moved to...
+       * socket/sendto.c: ...here.
+       * sysdeps/generic/setcontext.c: Moved to...
+       * stdlib/setcontext.c: ...here.
+       * sysdeps/generic/setdomain.c: Moved to...
+       * misc/setdomain.c: ...here.
+       * sysdeps/generic/setegid.c: Moved to...
+       * misc/setegid.c: ...here.
+       * sysdeps/generic/setenv.c: Moved to...
+       * stdlib/setenv.c: ...here.
+       * sysdeps/generic/seteuid.c: Moved to...
+       * misc/seteuid.c: ...here.
+       * sysdeps/generic/setfpucw.c: Moved to...
+       * math/setfpucw.c: ...here.
+       * sysdeps/generic/setgid.c: Moved to...
+       * posix/setgid.c: ...here.
+       * sysdeps/generic/setgroups.c: Moved to...
+       * grp/setgroups.c: ...here.
+       * sysdeps/generic/sethostid.c: Moved to...
+       * misc/sethostid.c: ...here.
+       * sysdeps/generic/sethostname.c: Moved to...
+       * misc/sethostname.c: ...here.
+       * sysdeps/generic/setipv4sourcefilter.c: Moved to...
+       * inet/setipv4sourcefilter.c: ...here.
+       * sysdeps/generic/setitimer.c: Moved to...
+       * time/setitimer.c: ...here.
+       * sysdeps/generic/setjmp.c: Moved to...
+       * setjmp/setjmp.c: ...here.
+       * sysdeps/generic/setlogin.c: Moved to...
+       * posix/setlogin.c: ...here.
+       * sysdeps/generic/setpgid.c: Moved to...
+       * posix/setpgid.c: ...here.
+       * sysdeps/generic/setpgrp.c: Moved to...
+       * posix/setpgrp.c: ...here.
+       * sysdeps/generic/setpriority.c: Moved to...
+       * resource/setpriority.c: ...here.
+       * sysdeps/generic/setregid.c: Moved to...
+       * misc/setregid.c: ...here.
+       * sysdeps/generic/setresgid.c: Moved to...
+       * posix/setresgid.c: ...here.
+       * sysdeps/generic/setresuid.c: Moved to...
+       * posix/setresuid.c: ...here.
+       * sysdeps/generic/setreuid.c: Moved to...
+       * misc/setreuid.c: ...here.
+       * sysdeps/generic/setrlimit.c: Moved to...
+       * resource/setrlimit.c: ...here.
+       * sysdeps/generic/setrlimit64.c: Moved to...
+       * resource/setrlimit64.c: ...here.
+       * sysdeps/generic/setsid.c: Moved to...
+       * posix/setsid.c: ...here.
+       * sysdeps/generic/setsockopt.c: Moved to...
+       * socket/setsockopt.c: ...here.
+       * sysdeps/generic/setsourcefilter.c: Moved to...
+       * inet/setsourcefilter.c: ...here.
+       * sysdeps/generic/settimeofday.c: Moved to...
+       * time/settimeofday.c: ...here.
+       * sysdeps/generic/setuid.c: Moved to...
+       * posix/setuid.c: ...here.
+       * sysdeps/generic/setutxent.c: Moved to...
+       * login/setutxent.c: ...here.
+       * sysdeps/generic/setxattr.c: Moved to...
+       * misc/setxattr.c: ...here.
+       * sysdeps/generic/shm_open.c: Moved to...
+       * rt/shm_open.c: ...here.
+       * sysdeps/generic/shm_unlink.c: Moved to...
+       * rt/shm_unlink.c: ...here.
+       * sysdeps/generic/shmat.c: Moved to...
+       * sysvipc/shmat.c: ...here.
+       * sysdeps/generic/shmctl.c: Moved to...
+       * sysvipc/shmctl.c: ...here.
+       * sysdeps/generic/shmdt.c: Moved to...
+       * sysvipc/shmdt.c: ...here.
+       * sysdeps/generic/shmget.c: Moved to...
+       * sysvipc/shmget.c: ...here.
+       * sysdeps/generic/shutdown.c: Moved to...
+       * socket/shutdown.c: ...here.
+       * sysdeps/generic/sigaction.c: Moved to...
+       * signal/sigaction.c: ...here.
+       * sysdeps/generic/sigaltstack.c: Moved to...
+       * signal/sigaltstack.c: ...here.
+       * sysdeps/generic/sigblock.c: Moved to...
+       * signal/sigblock.c: ...here.
+       * sysdeps/generic/sigfillset.c: Moved to...
+       * signal/sigfillset.c: ...here.
+       * sysdeps/generic/sigignore.c: Moved to...
+       * signal/sigignore.c: ...here.
+       * sysdeps/generic/sigintr.c: Moved to...
+       * signal/sigintr.c: ...here.
+       * sysdeps/generic/sigjmp.c: Moved to...
+       * setjmp/sigjmp.c: ...here.
+       * sysdeps/generic/siglist.c: Moved to...
+       * stdio-common/siglist.c: ...here.
+       * sysdeps/generic/signal.c: Moved to...
+       * signal/signal.c: ...here.
+       * sysdeps/generic/sigpause.c: Moved to...
+       * signal/sigpause.c: ...here.
+       * sysdeps/generic/sigpending.c: Moved to...
+       * signal/sigpending.c: ...here.
+       * sysdeps/generic/sigprocmask.c: Moved to...
+       * signal/sigprocmask.c: ...here.
+       * sysdeps/generic/sigqueue.c: Moved to...
+       * signal/sigqueue.c: ...here.
+       * sysdeps/generic/sigreturn.c: Moved to...
+       * signal/sigreturn.c: ...here.
+       * sysdeps/generic/sigset.c: Moved to...
+       * signal/sigset.c: ...here.
+       * sysdeps/generic/sigsetmask.c: Moved to...
+       * signal/sigsetmask.c: ...here.
+       * sysdeps/generic/sigstack.c: Moved to...
+       * signal/sigstack.c: ...here.
+       * sysdeps/generic/sigsuspend.c: Moved to...
+       * signal/sigsuspend.c: ...here.
+       * sysdeps/generic/sigtimedwait.c: Moved to...
+       * signal/sigtimedwait.c: ...here.
+       * sysdeps/generic/sigvec.c: Moved to...
+       * signal/sigvec.c: ...here.
+       * sysdeps/generic/sigwait.c: Moved to...
+       * signal/sigwait.c: ...here.
+       * sysdeps/generic/sigwaitinfo.c: Moved to...
+       * signal/sigwaitinfo.c: ...here.
+       * sysdeps/generic/sleep.c: Moved to...
+       * posix/sleep.c: ...here.
+       * sysdeps/generic/sockatmark.c: Moved to...
+       * socket/sockatmark.c: ...here.
+       * sysdeps/generic/socket.c: Moved to...
+       * socket/socket.c: ...here.
+       * sysdeps/generic/socketpair.c: Moved to...
+       * socket/socketpair.c: ...here.
+       * sysdeps/generic/spawni.c: Moved to...
+       * posix/spawni.c: ...here.
+       * sysdeps/generic/speed.c: Moved to...
+       * termios/speed.c: ...here.
+       * sysdeps/generic/sprofil.c: Moved to...
+       * gmon/sprofil.c: ...here.
+       * sysdeps/generic/sstk.c: Moved to...
+       * misc/sstk.c: ...here.
+       * sysdeps/generic/start.c: Moved to...
+       * csu/start.c: ...here.
+       * sysdeps/generic/statfs.c: Moved to...
+       * io/statfs.c: ...here.
+       * sysdeps/generic/statfs64.c: Moved to...
+       * io/statfs64.c: ...here.
+       * sysdeps/generic/statvfs.c: Moved to...
+       * io/statvfs.c: ...here.
+       * sysdeps/generic/statvfs64.c: Moved to...
+       * io/statvfs64.c: ...here.
+       * sysdeps/generic/stime.c: Moved to...
+       * time/stime.c: ...here.
+       * sysdeps/generic/stpcpy.c: Moved to...
+       * string/stpcpy.c: ...here.
+       * sysdeps/generic/stpcpy_chk.c: Moved to...
+       * debug/stpcpy_chk.c: ...here.
+       * sysdeps/generic/stpncpy.c: Moved to...
+       * string/stpncpy.c: ...here.
+       * sysdeps/generic/stpncpy_chk.c: Moved to...
+       * debug/stpncpy_chk.c: ...here.
+       * sysdeps/generic/strcasecmp.c: Moved to...
+       * string/strcasecmp.c: ...here.
+       * sysdeps/generic/strcasecmp_l.c: Moved to...
+       * string/strcasecmp_l.c: ...here.
+       * sysdeps/generic/strcasestr.c: Moved to...
+       * string/strcasestr.c: ...here.
+       * sysdeps/generic/strcat.c: Moved to...
+       * string/strcat.c: ...here.
+       * sysdeps/generic/strcat_chk.c: Moved to...
+       * debug/strcat_chk.c: ...here.
+       * sysdeps/generic/strchr.c: Moved to...
+       * string/strchr.c: ...here.
+       * sysdeps/generic/strchrnul.c: Moved to...
+       * string/strchrnul.c: ...here.
+       * sysdeps/generic/strcmp.c: Moved to...
+       * string/strcmp.c: ...here.
+       * sysdeps/generic/strcpy.c: Moved to...
+       * string/strcpy.c: ...here.
+       * sysdeps/generic/strcpy_chk.c: Moved to...
+       * debug/strcpy_chk.c: ...here.
+       * sysdeps/generic/strcspn.c: Moved to...
+       * string/strcspn.c: ...here.
+       * sysdeps/generic/string-inlines.c: Moved to...
+       * string/string-inlines.c: ...here.
+       * sysdeps/generic/strlen.c: Moved to...
+       * string/strlen.c: ...here.
+       * sysdeps/generic/strncase.c: Moved to...
+       * string/strncase.c: ...here.
+       * sysdeps/generic/strncase_l.c: Moved to...
+       * string/strncase_l.c: ...here.
+       * sysdeps/generic/strncat.c: Moved to...
+       * string/strncat.c: ...here.
+       * sysdeps/generic/strncat_chk.c: Moved to...
+       * debug/strncat_chk.c: ...here.
+       * sysdeps/generic/strncmp.c: Moved to...
+       * string/strncmp.c: ...here.
+       * sysdeps/generic/strncpy.c: Moved to...
+       * string/strncpy.c: ...here.
+       * sysdeps/generic/strncpy_chk.c: Moved to...
+       * debug/strncpy_chk.c: ...here.
+       * sysdeps/generic/strnlen.c: Moved to...
+       * string/strnlen.c: ...here.
+       * sysdeps/generic/strpbrk.c: Moved to...
+       * string/strpbrk.c: ...here.
+       * sysdeps/generic/strrchr.c: Moved to...
+       * string/strrchr.c: ...here.
+       * sysdeps/generic/strsep.c: Moved to...
+       * string/strsep.c: ...here.
+       * sysdeps/generic/strspn.c: Moved to...
+       * string/strspn.c: ...here.
+       * sysdeps/generic/strstr.c: Moved to...
+       * string/strstr.c: ...here.
+       * sysdeps/generic/strtoimax.c: Moved to...
+       * stdlib/strtoimax.c: ...here.
+       * sysdeps/generic/strtok.c: Moved to...
+       * string/strtok.c: ...here.
+       * sysdeps/generic/strtok_r.c: Moved to...
+       * string/strtok_r.c: ...here.
+       * sysdeps/generic/strtol.c: Moved to...
+       * stdlib/strtol.c: ...here.
+       * sysdeps/generic/strtol_l.c: Moved to...
+       * stdlib/strtol_l.c: ...here.
+       * sysdeps/generic/strtold_l.c: Moved to...
+       * stdlib/strtold_l.c: ...here.
+       * sysdeps/generic/strtoll.c: Moved to...
+       * stdlib/strtoll.c: ...here.
+       * sysdeps/generic/strtoll_l.c: Moved to...
+       * stdlib/strtoll_l.c: ...here.
+       * sysdeps/generic/strtoul.c: Moved to...
+       * stdlib/strtoul.c: ...here.
+       * sysdeps/generic/strtoul_l.c: Moved to...
+       * stdlib/strtoul_l.c: ...here.
+       * sysdeps/generic/strtoull.c: Moved to...
+       * stdlib/strtoull.c: ...here.
+       * sysdeps/generic/strtoull_l.c: Moved to...
+       * stdlib/strtoull_l.c: ...here.
+       * sysdeps/generic/strtoumax.c: Moved to...
+       * stdlib/strtoumax.c: ...here.
+       * sysdeps/generic/strtsupp.c: Moved to...
+       * bare/strtsupp.c: ...here.
+       * sysdeps/generic/stty.c: Moved to...
+       * misc/stty.c: ...here.
+       * sysdeps/generic/sub_n.c: Moved to...
+       * stdlib/sub_n.c: ...here.
+       * sysdeps/generic/submul_1.c: Moved to...
+       * stdlib/submul_1.c: ...here.
+       * sysdeps/generic/swapcontext.c: Moved to...
+       * stdlib/swapcontext.c: ...here.
+       * sysdeps/generic/swapoff.c: Moved to...
+       * misc/swapoff.c: ...here.
+       * sysdeps/generic/swapon.c: Moved to...
+       * misc/swapon.c: ...here.
+       * sysdeps/generic/symlink.c: Moved to...
+       * io/symlink.c: ...here.
+       * sysdeps/generic/sync.c: Moved to...
+       * misc/sync.c: ...here.
+       * sysdeps/generic/syscall.c: Moved to...
+       * misc/syscall.c: ...here.
+       * sysdeps/generic/sysconf.c: Moved to...
+       * posix/sysconf.c: ...here.
+       * sysdeps/generic/sysdep.c: Moved to...
+       * csu/sysdep.c: ...here.
+       * sysdeps/generic/syslog.c: Moved to...
+       * misc/syslog.c: ...here.
+       * sysdeps/generic/system.c: Moved to...
+       * stdlib/system.c: ...here.
+       * sysdeps/generic/sysv_signal.c: Moved to...
+       * signal/sysv_signal.c: ...here.
+       * sysdeps/generic/t_sincosl.c: Moved to...
+       * math/t_sincosl.c: ...here.
+       * sysdeps/generic/tcdrain.c: Moved to...
+       * termios/tcdrain.c: ...here.
+       * sysdeps/generic/tcflow.c: Moved to...
+       * termios/tcflow.c: ...here.
+       * sysdeps/generic/tcflush.c: Moved to...
+       * termios/tcflush.c: ...here.
+       * sysdeps/generic/tcgetattr.c: Moved to...
+       * termios/tcgetattr.c: ...here.
+       * sysdeps/generic/tcgetpgrp.c: Moved to...
+       * termios/tcgetpgrp.c: ...here.
+       * sysdeps/generic/tcsendbrk.c: Moved to...
+       * termios/tcsendbrk.c: ...here.
+       * sysdeps/generic/tcsetattr.c: Moved to...
+       * termios/tcsetattr.c: ...here.
+       * sysdeps/generic/tcsetpgrp.c: Moved to...
+       * termios/tcsetpgrp.c: ...here.
+       * sysdeps/generic/telldir.c: Moved to...
+       * dirent/telldir.c: ...here.
+       * sysdeps/generic/tempname.c: Moved to...
+       * stdio-common/tempname.c: ...here.
+       * sysdeps/generic/time.c: Moved to...
+       * time/time.c: ...here.
+       * sysdeps/generic/timer_create.c: Moved to...
+       * rt/timer_create.c: ...here.
+       * sysdeps/generic/timer_delete.c: Moved to...
+       * rt/timer_delete.c: ...here.
+       * sysdeps/generic/timer_getoverr.c: Moved to...
+       * rt/timer_getoverr.c: ...here.
+       * sysdeps/generic/timer_gettime.c: Moved to...
+       * rt/timer_gettime.c: ...here.
+       * sysdeps/generic/timer_settime.c: Moved to...
+       * rt/timer_settime.c: ...here.
+       * sysdeps/generic/times.c: Moved to...
+       * posix/times.c: ...here.
+       * sysdeps/generic/tmpfile.c: Moved to...
+       * stdio-common/tmpfile.c: ...here.
+       * sysdeps/generic/tmpfile64.c: Moved to...
+       * stdio-common/tmpfile64.c: ...here.
+       * sysdeps/generic/trampoline.c: Moved to...
+       * hurd/trampoline.c: ...here.
+       * sysdeps/generic/truncate.c: Moved to...
+       * misc/truncate.c: ...here.
+       * sysdeps/generic/truncate64.c: Moved to...
+       * misc/truncate64.c: ...here.
+       * sysdeps/generic/tst-timer.c: Moved to...
+       * rt/tst-timer.c: ...here.
+       * sysdeps/generic/ttyname.c: Moved to...
+       * io/ttyname.c: ...here.
+       * sysdeps/generic/ttyname_r.c: Moved to...
+       * io/ttyname_r.c: ...here.
+       * sysdeps/generic/ualarm.c: Moved to...
+       * misc/ualarm.c: ...here.
+       * sysdeps/generic/udiv_qrnnd.c: Moved to...
+       * stdlib/udiv_qrnnd.c: ...here.
+       * sysdeps/generic/ulimit.c: Moved to...
+       * resource/ulimit.c: ...here.
+       * sysdeps/generic/umask.c: Moved to...
+       * io/umask.c: ...here.
+       * sysdeps/generic/uname.c: Moved to...
+       * posix/uname.c: ...here.
+       * sysdeps/generic/unlink.c: Moved to...
+       * io/unlink.c: ...here.
+       * sysdeps/generic/unlinkat.c: Moved to...
+       * io/unlinkat.c: ...here.
+       * sysdeps/generic/unlockpt.c: Moved to...
+       * login/unlockpt.c: ...here.
+       * sysdeps/generic/updwtmp.c: Moved to...
+       * login/updwtmp.c: ...here.
+       * sysdeps/generic/updwtmpx.c: Moved to...
+       * login/updwtmpx.c: ...here.
+       * sysdeps/generic/usleep.c: Moved to...
+       * misc/usleep.c: ...here.
+       * sysdeps/generic/ustat.c: Moved to...
+       * misc/ustat.c: ...here.
+       * sysdeps/generic/utime.c: Moved to...
+       * io/utime.c: ...here.
+       * sysdeps/generic/utimes.c: Moved to...
+       * misc/utimes.c: ...here.
+       * sysdeps/generic/utmp_file.c: Moved to...
+       * login/utmp_file.c: ...here.
+       * sysdeps/generic/utmpxname.c: Moved to...
+       * login/utmpxname.c: ...here.
+       * sysdeps/generic/versionsort64.c: Moved to...
+       * dirent/versionsort64.c: ...here.
+       * sysdeps/generic/vfork.c: Moved to...
+       * posix/vfork.c: ...here.
+       * sysdeps/generic/vhangup.c: Moved to...
+       * misc/vhangup.c: ...here.
+       * sysdeps/generic/vlimit.c: Moved to...
+       * resource/vlimit.c: ...here.
+       * sysdeps/generic/vtimes.c: Moved to...
+       * resource/vtimes.c: ...here.
+       * sysdeps/generic/w_acos.c: Moved to...
+       * math/w_acos.c: ...here.
+       * sysdeps/generic/w_acosf.c: Moved to...
+       * math/w_acosf.c: ...here.
+       * sysdeps/generic/w_acosh.c: Moved to...
+       * math/w_acosh.c: ...here.
+       * sysdeps/generic/w_acoshf.c: Moved to...
+       * math/w_acoshf.c: ...here.
+       * sysdeps/generic/w_acoshl.c: Moved to...
+       * math/w_acoshl.c: ...here.
+       * sysdeps/generic/w_acosl.c: Moved to...
+       * math/w_acosl.c: ...here.
+       * sysdeps/generic/w_asin.c: Moved to...
+       * math/w_asin.c: ...here.
+       * sysdeps/generic/w_asinf.c: Moved to...
+       * math/w_asinf.c: ...here.
+       * sysdeps/generic/w_asinl.c: Moved to...
+       * math/w_asinl.c: ...here.
+       * sysdeps/generic/w_atan2.c: Moved to...
+       * math/w_atan2.c: ...here.
+       * sysdeps/generic/w_atan2f.c: Moved to...
+       * math/w_atan2f.c: ...here.
+       * sysdeps/generic/w_atan2l.c: Moved to...
+       * math/w_atan2l.c: ...here.
+       * sysdeps/generic/w_atanh.c: Moved to...
+       * math/w_atanh.c: ...here.
+       * sysdeps/generic/w_atanhf.c: Moved to...
+       * math/w_atanhf.c: ...here.
+       * sysdeps/generic/w_atanhl.c: Moved to...
+       * math/w_atanhl.c: ...here.
+       * sysdeps/generic/w_cosh.c: Moved to...
+       * math/w_cosh.c: ...here.
+       * sysdeps/generic/w_coshf.c: Moved to...
+       * math/w_coshf.c: ...here.
+       * sysdeps/generic/w_coshl.c: Moved to...
+       * math/w_coshl.c: ...here.
+       * sysdeps/generic/w_drem.c: Moved to...
+       * math/w_drem.c: ...here.
+       * sysdeps/generic/w_dremf.c: Moved to...
+       * math/w_dremf.c: ...here.
+       * sysdeps/generic/w_dreml.c: Moved to...
+       * math/w_dreml.c: ...here.
+       * sysdeps/generic/w_exp10.c: Moved to...
+       * math/w_exp10.c: ...here.
+       * sysdeps/generic/w_exp10f.c: Moved to...
+       * math/w_exp10f.c: ...here.
+       * sysdeps/generic/w_exp10l.c: Moved to...
+       * math/w_exp10l.c: ...here.
+       * sysdeps/generic/w_exp2.c: Moved to...
+       * math/w_exp2.c: ...here.
+       * sysdeps/generic/w_exp2f.c: Moved to...
+       * math/w_exp2f.c: ...here.
+       * sysdeps/generic/w_exp2l.c: Moved to...
+       * math/w_exp2l.c: ...here.
+       * sysdeps/generic/w_expl.c: Moved to...
+       * math/w_expl.c: ...here.
+       * sysdeps/generic/w_fmod.c: Moved to...
+       * math/w_fmod.c: ...here.
+       * sysdeps/generic/w_fmodf.c: Moved to...
+       * math/w_fmodf.c: ...here.
+       * sysdeps/generic/w_fmodl.c: Moved to...
+       * math/w_fmodl.c: ...here.
+       * sysdeps/generic/w_hypot.c: Moved to...
+       * math/w_hypot.c: ...here.
+       * sysdeps/generic/w_hypotf.c: Moved to...
+       * math/w_hypotf.c: ...here.
+       * sysdeps/generic/w_hypotl.c: Moved to...
+       * math/w_hypotl.c: ...here.
+       * sysdeps/generic/w_j0.c: Moved to...
+       * math/w_j0.c: ...here.
+       * sysdeps/generic/w_j0f.c: Moved to...
+       * math/w_j0f.c: ...here.
+       * sysdeps/generic/w_j0l.c: Moved to...
+       * math/w_j0l.c: ...here.
+       * sysdeps/generic/w_j1.c: Moved to...
+       * math/w_j1.c: ...here.
+       * sysdeps/generic/w_j1f.c: Moved to...
+       * math/w_j1f.c: ...here.
+       * sysdeps/generic/w_j1l.c: Moved to...
+       * math/w_j1l.c: ...here.
+       * sysdeps/generic/w_jn.c: Moved to...
+       * math/w_jn.c: ...here.
+       * sysdeps/generic/w_jnf.c: Moved to...
+       * math/w_jnf.c: ...here.
+       * sysdeps/generic/w_jnl.c: Moved to...
+       * math/w_jnl.c: ...here.
+       * sysdeps/generic/w_lgamma.c: Moved to...
+       * math/w_lgamma.c: ...here.
+       * sysdeps/generic/w_lgamma_r.c: Moved to...
+       * math/w_lgamma_r.c: ...here.
+       * sysdeps/generic/w_lgammaf.c: Moved to...
+       * math/w_lgammaf.c: ...here.
+       * sysdeps/generic/w_lgammaf_r.c: Moved to...
+       * math/w_lgammaf_r.c: ...here.
+       * sysdeps/generic/w_lgammal.c: Moved to...
+       * math/w_lgammal.c: ...here.
+       * sysdeps/generic/w_lgammal_r.c: Moved to...
+       * math/w_lgammal_r.c: ...here.
+       * sysdeps/generic/w_log.c: Moved to...
+       * math/w_log.c: ...here.
+       * sysdeps/generic/w_log10.c: Moved to...
+       * math/w_log10.c: ...here.
+       * sysdeps/generic/w_log10f.c: Moved to...
+       * math/w_log10f.c: ...here.
+       * sysdeps/generic/w_log10l.c: Moved to...
+       * math/w_log10l.c: ...here.
+       * sysdeps/generic/w_log2.c: Moved to...
+       * math/w_log2.c: ...here.
+       * sysdeps/generic/w_log2f.c: Moved to...
+       * math/w_log2f.c: ...here.
+       * sysdeps/generic/w_log2l.c: Moved to...
+       * math/w_log2l.c: ...here.
+       * sysdeps/generic/w_logf.c: Moved to...
+       * math/w_logf.c: ...here.
+       * sysdeps/generic/w_logl.c: Moved to...
+       * math/w_logl.c: ...here.
+       * sysdeps/generic/w_pow.c: Moved to...
+       * math/w_pow.c: ...here.
+       * sysdeps/generic/w_powf.c: Moved to...
+       * math/w_powf.c: ...here.
+       * sysdeps/generic/w_powl.c: Moved to...
+       * math/w_powl.c: ...here.
+       * sysdeps/generic/w_remainder.c: Moved to...
+       * math/w_remainder.c: ...here.
+       * sysdeps/generic/w_remainderf.c: Moved to...
+       * math/w_remainderf.c: ...here.
+       * sysdeps/generic/w_remainderl.c: Moved to...
+       * math/w_remainderl.c: ...here.
+       * sysdeps/generic/w_scalb.c: Moved to...
+       * math/w_scalb.c: ...here.
+       * sysdeps/generic/w_scalbf.c: Moved to...
+       * math/w_scalbf.c: ...here.
+       * sysdeps/generic/w_scalbl.c: Moved to...
+       * math/w_scalbl.c: ...here.
+       * sysdeps/generic/w_sinh.c: Moved to...
+       * math/w_sinh.c: ...here.
+       * sysdeps/generic/w_sinhf.c: Moved to...
+       * math/w_sinhf.c: ...here.
+       * sysdeps/generic/w_sinhl.c: Moved to...
+       * math/w_sinhl.c: ...here.
+       * sysdeps/generic/w_sqrt.c: Moved to...
+       * math/w_sqrt.c: ...here.
+       * sysdeps/generic/w_sqrtf.c: Moved to...
+       * math/w_sqrtf.c: ...here.
+       * sysdeps/generic/w_sqrtl.c: Moved to...
+       * math/w_sqrtl.c: ...here.
+       * sysdeps/generic/w_tgamma.c: Moved to...
+       * math/w_tgamma.c: ...here.
+       * sysdeps/generic/w_tgammaf.c: Moved to...
+       * math/w_tgammaf.c: ...here.
+       * sysdeps/generic/w_tgammal.c: Moved to...
+       * math/w_tgammal.c: ...here.
+       * sysdeps/generic/wait.c: Moved to...
+       * posix/wait.c: ...here.
+       * sysdeps/generic/wait3.c: Moved to...
+       * posix/wait3.c: ...here.
+       * sysdeps/generic/wait4.c: Moved to...
+       * posix/wait4.c: ...here.
+       * sysdeps/generic/waitid.c: Moved to...
+       * posix/waitid.c: ...here.
+       * sysdeps/generic/waitpid.c: Moved to...
+       * posix/waitpid.c: ...here.
+       * sysdeps/generic/wcstoimax.c: Moved to...
+       * stdlib/wcstoimax.c: ...here.
+       * sysdeps/generic/wcstol.c: Moved to...
+       * wcsmbs/wcstol.c: ...here.
+       * sysdeps/generic/wcstol_l.c: Moved to...
+       * wcsmbs/wcstol_l.c: ...here.
+       * sysdeps/generic/wcstoll.c: Moved to...
+       * wcsmbs/wcstoll.c: ...here.
+       * sysdeps/generic/wcstoll_l.c: Moved to...
+       * wcsmbs/wcstoll_l.c: ...here.
+       * sysdeps/generic/wcstoul.c: Moved to...
+       * wcsmbs/wcstoul.c: ...here.
+       * sysdeps/generic/wcstoul_l.c: Moved to...
+       * wcsmbs/wcstoul_l.c: ...here.
+       * sysdeps/generic/wcstoull.c: Moved to...
+       * wcsmbs/wcstoull.c: ...here.
+       * sysdeps/generic/wcstoull_l.c: Moved to...
+       * wcsmbs/wcstoull_l.c: ...here.
+       * sysdeps/generic/wcstoumax.c: Moved to...
+       * stdlib/wcstoumax.c: ...here.
+       * sysdeps/generic/wordcopy.c: Moved to...
+       * string/wordcopy.c: ...here.
+       * sysdeps/generic/wordexp.c: Moved to...
+       * posix/wordexp.c: ...here.
+       * sysdeps/generic/write.c: Moved to...
+       * io/write.c: ...here.
+       * sysdeps/generic/writev.c: Moved to...
+       * misc/writev.c: ...here.
+       * sysdeps/generic/xmknod.c: Moved to...
+       * io/xmknod.c: ...here.
+       * sysdeps/generic/xmknodat.c: Moved to...
+       * io/xmknodat.c: ...here.
+       * sysdeps/generic/xpg-strerror.c: Moved to...
+       * string/xpg-strerror.c: ...here.
+       * sysdeps/generic/xstat.c: Moved to...
+       * io/xstat.c: ...here.
+       * sysdeps/generic/xstat64.c: Moved to...
+       * io/xstat64.c: ...here.
+       * catgets/gencat.c: Use "config.h" to refer to the local config.h file.
+       * stdlib/stdtod_l.c: Use "..." for gmp-impl.h and longlong.h headers.
+       * sysdeps/ieee754/ldbl-96/printf_fphex.c: Adjust for files moving
+       out of sysdeps/generic.
+       * sysdeps/ieee754/ldbl-96/strtold_l.c: Likewise.
+       * sysdeps/powerpc/elf/libc-start.c: Likewise.
+       * sysdeps/unix/sysv/linux/dl-sbrk.c: Likewise.
+       * sysdeps/unix/sysv/linux/dl-sysdep.c: Likewise.
+       * sysdeps/unix/sysv/linux/segfault.c: Likewise.
+       * sysdeps/unix/sysv/linux/sigreturn.c: Likewise.
+       * sysdeps/unix/sysv/linux/syslog.c: Likewise.
+       * sysdeps/unix/sysv/linux/updwtmp.c: Likewise.
+       * sysdeps/unix/sysv/linux/utmp_file.c: Likewise.
+       * sysdeps/unix/sysv/linux/i386/getrlimit64.c: Likewise.
+       * sysdeps/unix/sysv/linux/i386/glob64.c: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h: Likewise.
+       * sysdeps/wordsize-32/llabs.c: Likewise.
+       * sysdeps/wordsize-32/lldiv.c: Likewise.
+       * sysdeps/wordsize-64/glob.c: Likewise.
+       * sysdeps/wordsize-64/labs.c: Likewise.
+       * sysdeps/wordsize-64/ldiv.c: Likewise.
+       * sysdeps/wordsize-64/strtol.c: Likewise.
+       * sysdeps/wordsize-64/strtol_l.c: Likewise.
+       * sysdeps/wordsize-64/strtoul.c: Likewise.
+       * sysdeps/wordsize-64/strtoul_l.c: Likewise.
+       * sysdeps/wordsize-64/wcstol.c: Likewise.
+       * sysdeps/wordsize-64/wcstol_l.c: Likewise.
+       * sysdeps/wordsize-64/wcstoul.c: Likewise.
+       * sysdeps/wordsize-64/wcstoul_l.c: Likewise.
+       * sysdeps/x86_64/fpu/printf_fphex.c: Likewise.
+       * wcsmbs/Makefile (strtox-CFLAGS): remove -I../stdlib.
+       (CPPFLAGS-wcstold_l.c): Add -I../stdlib.
+
+2005-12-13  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/generic/Makefile: Remove remaining bits/endian.h cruft.
+
+2005-12-13  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/generic/signame.c: Removed.
+       * sysdeps/generic/signame.h: Removed.
+       * sysdeps/generic/configure.in: Removed.
+       * sysdeps/generic/Dist: Remove these files.
+
+       * sysdeps/generic/det_endian.c: Removed.
+       * sysdeps/generic/Makefile: Remove rule to build it.
+       * sysdeps/generic/Dist: Don't distribute it.
+
+2005-12-13  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/powerpc/dl-procinfo.c: New file.
+       * sysdeps/powerpc/dl-procinfo.h: New file.
+
+2005-12-12  Ulrich Drepper  <drepper@redhat.com>
+
+       * io/sys/stat.h: Add restrict to fstatat declarations.
+
+2005-12-10  Ulrich Drepper  <drepper@redhat.com>
+
+       * posix/regex_internal.h: Include <stdint.h> if available.
+
+2005-12-06  Paolo Bonzini  <bonzini@gnu.org>
+
+       * posix/regex_internal.h (SIZE_MAX): Provide a default definition.
+
+2005-12-08  Ulrich Drepper  <drepper@redhat.com>
+
+       * nis/nis_call.c (inetstr2int): Optimize.
+
+2005-12-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * nis/nis_call.c (__nisbind_create): Remove __nisbind_destroy,
+       ->clnt cannot be != NULL.
+       (__do_niscall): No need to use __nisbind_destroy, __nisbind_next
+       did it.
+       (__nisbind_connect): use_auth is already TRUE, otherwise we would
+       not be here.
+
+       * nis/nis_lookup.c (nis_lookup): Remove unnecessary
+       __nisbind_destroy calls.  __nisbind_next does all that.
+
+       * nis/ypclnt.c (yp_update): Before trying default authentication,
+       free DES descriptor.
+
+2005-12-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * nis/nis_table.c (nis_list): Fix memory handling in error case.
+
+2005-12-07  Ulrich Drepper  <drepper@redhat.com>
+
+       * nis/nis_table.c (nis_list): Remove have_tablepath, just use the
+       pointer value itself.
+
+2005-12-06  Ulrich Drepper  <drepper@redhat.com>
+
+       * catgets/gencat.c: Use GPL, not LGPL.
+       * elf/cache.c: Likewise.
+       * elf/chroot_canon.c: Likewise.
+       * elf/ldconfig.c: Likewise.
+       * elf/readlib.c: Likewise.
+       * iconv/dummy-repertoire.c: Likewise.
+       * iconv/iconv_charmap.c: Likewise.
+       * iconv/iconv_prog.c: Likewise.
+       * iconv/iconvconfig.c: Likewise.
+       * locale/programs/3level.h: Likewise.
+       * locale/programs/charmap-dir.c: Likewise.
+       * locale/programs/charmap-dir.h: Likewise.
+       * locale/programs/charmap-kw.gperf: Likewise.
+       * locale/programs/charmap.c: Likewise.
+       * locale/programs/charmap.h: Likewise.
+       * locale/programs/config.h: Likewise.
+       * locale/programs/ld-address.c: Likewise.
+       * locale/programs/ld-collate.c: Likewise.
+       * locale/programs/ld-ctype.c: Likewise.
+       * locale/programs/ld-identification.c: Likewise.
+       * locale/programs/ld-measurement.c: Likewise.
+       * locale/programs/ld-messages.c: Likewise.
+       * locale/programs/ld-monetary.c: Likewise.
+       * locale/programs/ld-name.c: Likewise.
+       * locale/programs/ld-numeric.c: Likewise.
+       * locale/programs/ld-paper.c: Likewise.
+       * locale/programs/ld-telephone.c: Likewise.
+       * locale/programs/ld-time.c: Likewise.
+       * locale/programs/linereader.c: Likewise.
+       * locale/programs/linereader.h: Likewise.
+       * locale/programs/locale-spec.c: Likewise.
+       * locale/programs/locale.c: Likewise.
+       * locale/programs/localedef.c: Likewise.
+       * locale/programs/localedef.h: Likewise.
+       * locale/programs/locarchive.c: Likewise.
+       * locale/programs/locfile-kw.gperf: Likewise.
+       * locale/programs/locfile-token.h: Likewise.
+       * locale/programs/locfile.c: Likewise.
+       * locale/programs/locfile.h: Likewise.
+       * locale/programs/repertoire.c: Likewise.
+       * locale/programs/repertoire.h: Likewise.
+       * locale/programs/simple-hash.c: Likewise.
+       * locale/programs/simple-hash.h: Likewise.
+       * locale/programs/xmalloc.c: Likewise.
+       * locale/programs/xstrdup.c: Likewise.
+       * malloc/memusagestat.c: Likewise.
+       * nscd/aicache.c: Likewise.
+       * nscd/cache.c: Likewise.
+       * nscd/connections.c: Likewise.
+       * nscd/dbg_log.c: Likewise.
+       * nscd/gai.c: Likewise.
+       * nscd/getgrgid_r.c: Likewise.
+       * nscd/getgrnam_r.c: Likewise.
+       * nscd/gethstbyad_r.c: Likewise.
+       * nscd/gethstbynm2_r.c: Likewise.
+       * nscd/getpwnam_r.c: Likewise.
+       * nscd/getpwuid_r.c: Likewise.
+       * nscd/grpcache.c: Likewise.
+       * nscd/hstcache.c: Likewise.
+       * nscd/initgrcache.c: Likewise.
+       * nscd/mem.c: Likewise.
+       * nscd/nscd.c: Likewise.
+       * nscd/nscd_conf.c: Likewise.
+       * nscd/pwdcache.c: Likewise.
+       * posix/getconf.c: Likewise.
+       * sysdeps/generic/nscd_setup_thread.c: Likewise.
+       * sysdeps/unix/sysv/linux/nscd_setup_thread.c: Likewise.
+
+       * sunrpc/auth_des.c (authdes_pk_create): If conversation key
+       cannot be created, free memory.
+       Reported by rprasad@vmware.com.
+
+2005-11-15  Mike Frysinger  <vapier@gentoo.org>
+
+       * sysdeps/hppa/bits/setjmp.h: Add _BITS_SETJMP_H preprocessor
+       protection and allow pthread.h to include bits/setjmp.h as well as
+       setjmp.h.
+       * sysdeps/m68k/bits/setjmp.h: Likewise.
+       * sysdeps/s390/bits/setjmp.h: Make sure only setjmp.h or pthread.h
+       are allow to include bits/setjmp.h.
+       * sysdeps/mips/bits/setjmp.h (_JMPBUF_UNWINDS): Cast rhs to match lhs
+       cast of address.
+       * sysdeps/sh/bits/setjmp.h: Likewise.
+
+2005-11-12  Jim Meyering  <jim@meyering.net>
+
+       * sysdeps/unix/opendir.c (__alloc_dir): Declare STATP parameter
+       to be pointer to const.
+       * include/dirent.h: Update decl.
+
+2005-12-05  Roland McGrath  <roland@redhat.com>
+
+       * hurd/hurdmalloc.c: Remove $ tag $ magic.
+       * mach/err_kern.sub: Likewise.
+       * mach/err_server.sub: Likewise.
+       * mach/err_us.sub: Likewise.
+       * mach/error_compat.c: Likewise.
+       * mach/errorlib.h: Likewise.
+       * mach/errstring.c: Likewise.
+       * mach/mach/error.h: Likewise.
+       * mach/mach_error.c: Likewise.
+       * mach/mach_error.h: Likewise.
+       * mach/msg-destroy.c: Likewise.
+       * mach/msgserver.c: Likewise.
+       * sysdeps/mach/sys/reboot.h: Likewise.
+
+       * sysdeps/generic/dwarf2.h: Replace license text with glibc LGPL.
+
+2005-11-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * malloc/tst-mallocfork.c (do_test): Make sure sa_flags is
+       initialized.  Reported by John Reiser <jreiser@BitWagon.com>.
+
+2005-12-05  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * stdlib/longlong.h: Update from GCC.
+
+2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * soft-fp/soft-fp.h: Include <stdlib.h>.
+
+       * soft-fp/floatdisf.c (__floatdisf): Return float.
+
+2005-12-05  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/unix/sysv/linux/kernel-features.h
+       (__ASSUME_POSIX_CPU_TIMERS): New macro, for 2.6.12 and later.
+
+2005-12-03  Ulrich Drepper  <drepper@redhat.com>
+
+       * nis/nis_table.c (nis_list): Optimize freeing and reallocation of
+       result record.
+
+       * nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyaddr_r):
+       Better sized buffers.  Correct error case handling.
+       * nis/nis_error.c (nis_sperror_r): Let snprintf determine whether
+       there is an overflow.
+       * nis/nss_nisplus/nisplus-service.c: Fix locking to use
+       _nss_create_tablename.  Avoid unnecessary copying, remove
+       unnecessary variables, general cleanup.
+       * nis/nss_nisplus/nisplus-rpc.c: Likewise.
+       * nis/nss_nisplus/nisplus-proto.c: Likewise..
+       * nis/nss_nisplus/nisplus-network.c: Fix locking to use
+       _nss_create_tablename.  Avoid unnecessary copying, general cleanup.
+       * nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_getipnodebyname_r):
+       Removed.
+       Fix locking to use _nss_create_tablename.  Avoid unnecessary copying,
+       general cleanup.
+       * nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_getntohost_r):
+       Correctly construct request.
+       Fix locking to use _nss_create_tablename.  Avoid unnecessary copying,
+       general cleanup.
+       * nis/nss_nisplus/nisplus-alias.c: Fix locking to use
+       _nss_create_tablename.  Avoid unnecessary copying, general cleanup.
+       * nis/nss_nisplus/nisplus-netgrp.c (_nss_nisplus_setnetgrent):
+       Rewrite to use snprintf.
+       * nis/nss_nisplus/nisplus-publickey.c (_nss_nisplus_netname2user):
+       Likewise.
+
+2005-12-02  Ulrich Drepper  <drepper@redhat.com>
+
+       * nis/nss_nisplus/nisplus-pwd.c (_nss_pwd_create_tablename):
+       Renamed from _nss_create_tablename.  Export from file (but not DSO).
+       (pwd_tablename_val): Renamed from tablename_val, mark hidden.
+       (pwd_tablename_len): Renamed from tablename_len, mark hidden.
+       Change all users.
+       * nis/nss_nisplus/nisplus-spwd.c (_nss_create_tablename): Removed.
+       Use _nss_pwd_create_tablename now.  Use pwd_tablename_val and
+       pwd_tablename_len.  Remove unnecessary variables, general cleanup.
+
+       * nis/nss_nisplus/nisplus-pwd.c: Fix locking to use
+       _nss_create_tablename.  Avoid unnecessary copying, remove
+       unnecessary variables, general cleanup.
+       * nis/nss_nisplus/nisplus-grp.c: Likewise.
+
+       * io/Makefile (routines): Add mknodat, xmknodat, mkdirat, mkfifoat.
+       (static-only-routines): Add mknodat.
+       * io/Versions [GLIBC_2.4]: Add mkdirat, mkfifoat, __xmknodat.
+       * io/sys/stat.h: Declare mkditat, mknodat, mkfifoat, __xmknodat.
+       Define mknodat inline function.
+       * include/sys/stat.h: Add hidden proto for __xmknodat.
+       * sysdeps/generic/mkdirat.c: New file.
+       * sysdeps/generic/mkfifoat.c: New file.
+       * sysdeps/generic/mknodat.c: New file.
+       * sysdeps/generic/xmknodat.c: New file.
+       * sysdeps/unix/mkfifoat.c: New file.
+       * sysdeps/unix/sysv/linux/mkdirat.c: New file.
+       * sysdeps/unix/sysv/linux/xmknodat.c: New file.
+
+       * sysdeps/generic/xmknod.c: Add one more parameter check.
+
+2005-11-28  Andreas Jaeger  <aj@suse.de>
+
+       * sysdeps/unix/sysv/linux/mips/bits/mman.h (MREMAP_FIXED): Added,
+       Patch by René Rebe <rene@exactcode.de>.
+
+2005-11-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/posix/getaddrinfo.c: Avoid RFC 3484 sorting if there are
+       multiple return records but only one address.
+
+       * sysdeps/posix/getaddrinfo.c (gaih_inet): Avoid some code duplication.
+
+2005-11-27  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/unix/sysv/linux/fchownat.c: Include alloca.h, sysdep.h.
+       Reported by René Rebe <rene@exactcode.de>.
+
+2005-11-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/posix/euidaccess.c [_LIBC] (euidaccess): Don't cache
+       euid and egid.
+
+       * nis/nis_table.c (nis_list): Add more free calls in error cases.
+
+2005-11-26  Richard Henderson  <rth@redhat.com>
+
+       * sysdeps/alpha/strncmp.S: Don't read too much data when pointers
+       are co-aligned, and count is aligned with the end of the word.
+
+2005-11-26  Ulrich Drepper  <drepper@redhat.com>
+
+       * nis/nis_lookup.c (nis_lookup): Mark RPCTIMEOUT as const.  Pretty
+       printing.
+
+       * nis/nis_table.c (__create_ib_request): Use strdupa instead of
+       variable size array.
+       (RPCTIMEOUT): Mark as const.
+
+       * nis/ypclnt.c (yp_bind_ypbindprog): Initialize clnt_saddr by hand.
+       (ypdomainname): Renamed from __ypdomainname.  No need for initializer.
+       (ypbindlist): Renamed from __ypbindlist.
+       (do_ypcall): Check memory allocation suceeded before calling
+       yp_bind_ypbindprog.
+       (yperr_string): Reduce size of function by using only one gettext call.
+       (ypbinderr_string): Likewise.
+       (yp_match): Free response in case memory for return value cannot be
+       allocated.
+       (yp_first): Likewise.
+       (yp_next): Likewise.
+       (do_ypcall_tr): New function which translates error codes as well.
+       (yp_match, yp_next, yp_master, yp_order, yp_maplist): Use it.
+       (yp_all): Correct test for invalid parameter.
+       Pretty printing.
+       (RPCTIMEOUT, UDPTIMEOUT): Mark as const.
+
+2005-11-25  Richard Henderson  <rth@redhat.com>
+
+       * sysdeps/unix/sysv/linux/alpha/fxstatat.c (__fxstatat): Fix typo.
+       (__fxstatat64): Alias from __fxstatat; remove other cnp errors.
+       * sysdeps/unix/sysv/linux/alpha/sigaction.c: Include sys/cdefs.h
+       and stddef.h.
+       * sysdeps/unix/sysv/linux/alpha/bits/mman.h (MREMAP_FIXED): Define.
+
+2005-11-25  Ulrich Drepper  <drepper@redhat.com>
+
+       * Makeconfig (+cflags): Add -fmerge-all-constants by default.
+
+       [BZ #1912]
+       * nss/function.def: Add entry to use gethostbyname2 for files.
+
+2005-11-25  Thorsten Kukuk  <kukuk@suse.de>
+
+       * sysdeps/unix/sysv/linux/fxstatat64.c: Include string.h.
+
+2005-11-25  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #1926]
+       * nss/nss_files/files-netgrp.c (_nss_files_endnetgrent): Change
+       return value type to match expected type.
+
+       [BZ #1925]
+       * nis/ypclnt.c (yp_order): Correct test for invalid parameter.
+
+2005-11-24  Ulrich Drepper  <drepper@redhat.com>
+
+       * scripts/check-c++-types.sh: Improve comments.
+
+       * scripts/check-local-headers.sh: New file.
+       * Makefile (tests): Run check-local-headers.sh.
+
+2005-11-23  Thorsten Kukuk  <kukuk@suse.de>
+
+       * include/sys/sendfile.h: New file.
+
+2005-11-24  Andreas Schwab  <schwab@suse.de>
+
+       * time/sys/time.h: Remove nonnull attribute from futimesat.
+
+2005-11-22  Ulrich Drepper  <drepper@redhat.com>
+
+       * nscd/connections.c (sendfileall): Define.
+       (handle_request): Use it instead of sendfile call.
+       * nscd/nscd-client.h: Declare sendfileall.
+       * nscd/aicache.c: Use sendfileall instead of sendfile.
+       * nscd/grpcache.c: Likewise.
+       * nscd/hstcache.c: Likewise.
+       * nscd/initgrcache.c: Likewise.
+       * nscd/pwdcache.c: Likewise.
+
+       [BZ #1908]
+       * manual/install.texi (Tools for Compilation): Require gawk.
+
+2005-11-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/generic/ldsodefs.h (struct rtld_global): Remove
+       unused is_static field from slotinfo array.
+
+2005-11-21  Jakub Jelinek  <jakub@redhat.com>
+
+       * sunrpc/bindrsvprt.c (bindresvport): Wrap around to startport
+       in the loop if port is bigger than endport, initially set to
+       ENDPORT.  When changing startport, set endport and port
+       appropriately.
+
+2005-11-21  Ulrich Drepper  <drepper@redhat.com>
+
+       * Makefile.in: Remove RCS ID line.
+       * config-name.in: Likewise.
+       * config.make.in: Likewise.
+       * malloc/arena.c: Likewise.
+       * malloc/hooks.c: Likewise.
+       * malloc/malloc.c: Likewise.
+       * manual/dir: Likewise.
+       * math/math_private.h: Likewise.
+       * resolv/gethnamaddr.c: Likewise.
+       * scripts/mkinstalldirs: Likewise.
+       * sunrpc/rpc_clntout.c: Likewise.
+       * sunrpc/rpc_cout.c: Likewise.
+       * sunrpc/rpc_hout.c: Likewise.
+       * sunrpc/rpc_main.c: Likewise.
+       * sunrpc/rpc_parse.c: Likewise.
+       * sunrpc/rpc_sample.c: Likewise.
+       * sunrpc/rpc_scan.c: Likewise.
+       * sunrpc/rpc_svcout.c: Likewise.
+       * sunrpc/rpc_tblout.c: Likewise.
+       * sunrpc/rpc_util.c: Likewise.
+       * sysdeps/unix/sysv/linux/sys/quote.h: Likewise.
+
+       * nscd/nscd_helper.c: Pretty printing.
+
 2005-11-19  Roland McGrath  <roland@redhat.com>
 
        * elf/elf.h: Revert last change.
index 97f74f7e1fac9a1816b93e70aeb4bb300548be4a..45a970402ede6e27cdff96f3959dcd049aaf36b4 100644 (file)
@@ -557,6 +557,10 @@ else
 +gccwarn := -Wall -Wwrite-strings -Winline -Wstrict-prototypes
 endif
 
+# We do not depend on the address of constants in different files to be
+# actually different, so allow the compiler to merge them all.
++merge-constants = -fmerge-all-constants
+
 # This is the program that generates makefile dependencies from C source files.
 # The -MP flag tells GCC >= 3.2 (which we now require) to produce dummy
 # targets for headers so that removed headers don't break the build.
@@ -611,21 +615,22 @@ ifeq      "$(strip $(+cflags))" ""
 +cflags        := $(default_cflags)
 endif  # $(+cflags) == ""
 
-+cflags := $(+cflags) $(addprefix -mcpu=,$(with-cpu)) $(+gccwarn)
++cflags += $(addprefix -mcpu=,$(with-cpu)) $(+gccwarn) $(+merge-constants)
 +gcc-nowarn := -w
 
 # Don't duplicate options if we inherited variables from the parent.
 +cflags        := $(sort $(+cflags))
 
 
-# These are flags given to the C compiler to tell it to look for include
-# files (including ones given in angle brackets) in the current directory,
-# in the parent library source directory and in the include directory.
+# These are flags given to the C compiler to tell it to look for
+# include files (including ones given in angle brackets) in the parent
+# library source directory, in the include directory, and in the
+# current directory.
 # `+sysdep-includes' will be defined by Makerules.
-+includes = -I$(..)include -I. \
-           $(patsubst %/,-I%,$(objpfx)) $(patsubst %/,-I%,$(..)) \
++includes = -I$(..)include $(patsubst %/,-I%,$(..)) \
            $(libio-include) $(includes) \
-           $(+sysdep-includes) $(sysincludes)
+           $(+sysdep-includes) $(sysincludes) -I. \
+           $(patsubst %/,-I%,$(objpfx))
 
 # Since libio has several internal header files, we use a -I instead
 # of many little headers in the include directory.
index f2d0b1bed0bad9e91e822e95c3c6f2700bbfc51d..3a20a7fc227e4c16f78165afd0712750292efa10 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -235,7 +235,7 @@ mostlyclean: parent-mostlyclean
 tests-clean:
        @$(MAKE) subdir_testclean no_deps=t
 
-tests: $(objpfx)c++-types-check.out
+tests: $(objpfx)c++-types-check.out $(objpfx)check-local-headers.out
 ifneq ($(CXX),no)
 check-data := $(firstword $(wildcard \
                $(foreach M,$(config-machine) $(base-machine),\
@@ -250,6 +250,9 @@ $(objpfx)c++-types-check.out:
 endif
 endif
 
+$(objpfx)check-local-headers.out: scripts/check-local-headers.sh
+       scripts/check-local-headers.sh "$(includedir)" "$(objpfx)" > $@
+
 ifneq ($(PERL),no)
 installed-headers = argp/argp.h assert/assert.h catgets/nl_types.h \
                    crypt/crypt.h ctype/ctype.h debug/execinfo.h \
index ccdfb73c86c74145af930cfbb67e3a4068e8b17a..1c1e2c1df14273fa3ba25bdfbde636c05cd11f56 100644 (file)
@@ -1,5 +1,3 @@
-# Generated from $Id$.
-
 srcdir = @srcdir@
 
 # Uncomment the line below if you want to do parallel build.
index 3ffff58db33fc638444bc3fa08ed082fd644e8f6..d0b1d8975d608efd71a0fb609c4c540f3746c36c 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -208,53 +208,6 @@ before-compile += $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
 # later directory would be chosen over a .c file in an earlier directory,
 # which does not preserve the desired sysdeps ordering behavior.
 
-# It matters that this set of rules, for compiling from sources in
-# the current directory (the $srcdir/$subdir) come before the
-# generated sysdep rules in included from sysd-rules below.  When
-# compiling in the source tree, generated sources go into the current
-# directory, and those should be chosen before any sources in sysdeps.
-define o-iterator-doit
-$(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-define o-iterator-doit
-$(objpfx)%$o: %.s $(before-compile); $$(compile-command.s)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-define o-iterator-doit
-$(objpfx)%$o: %.c $(before-compile); $$(compile-command.c)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-# Omit the objpfx rules when building in the source tree, because
-# objpfx is empty and so these rules just override the ones above.
-ifdef objpfx
-# Define first rules to find the source files in $(objpfx).
-# Generated source files will end up there.
-define o-iterator-doit
-$(objpfx)%$o: $(objpfx)%.S $(before-compile); $$(compile-command.S)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-define o-iterator-doit
-$(objpfx)%$o: $(objpfx)%.s $(before-compile); $$(compile-command.s)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-
-define o-iterator-doit
-$(objpfx)%$o: $(objpfx)%.c $(before-compile); $$(compile-command.c)
-endef
-object-suffixes-left := $(all-object-suffixes)
-include $(o-iterator)
-endif
-
 # System-dependent makefiles can put in `inhibit-sysdep-asm' wildcard
 # patterns matching sysdep directories whose assembly source files should
 # be suppressed.
@@ -304,6 +257,7 @@ $(+sysdir_pfx)sysd-rules: $(+sysdir_pfx)config.make $(..)Makerules \
           echo "\$$(objpfx)m_%.S: $$dir/s_%.S; \$$(+make-include-of-dep)";   \
           echo "\$$(objpfx)m_%.c: $$dir/s_%.c; \$$(+make-include-of-dep)";   \
         done;                                                                \
+        echo "\$$(objpfx)m_%.c: s_%.c; \$$(+make-include-of-dep)";   \
         echo 'sysd-rules-done = t') > $@T
        mv -f $@T $@
 
@@ -318,6 +272,53 @@ echo '#include <$<>' > $@T
 mv -f $@T $@
 endef
 
+# It matters that this set of rules, for compiling from sources in
+# the current directory (the $srcdir/$subdir) come before the
+# generated sysdep rules in included from sysd-rules below.  When
+# compiling in the source tree, generated sources go into the current
+# directory, and those should be chosen before any sources in sysdeps.
+define o-iterator-doit
+$(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+define o-iterator-doit
+$(objpfx)%$o: %.s $(before-compile); $$(compile-command.s)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+define o-iterator-doit
+$(objpfx)%$o: %.c $(before-compile); $$(compile-command.c)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+# Omit the objpfx rules when building in the source tree, because
+# objpfx is empty and so these rules just override the ones above.
+ifdef objpfx
+# Define first rules to find the source files in $(objpfx).
+# Generated source files will end up there.
+define o-iterator-doit
+$(objpfx)%$o: $(objpfx)%.S $(before-compile); $$(compile-command.S)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+define o-iterator-doit
+$(objpfx)%$o: $(objpfx)%.s $(before-compile); $$(compile-command.s)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
+define o-iterator-doit
+$(objpfx)%$o: $(objpfx)%.c $(before-compile); $$(compile-command.c)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+endif
+
 # Generate version maps, but wait until sysdep-subdirs is known
 ifeq ($(sysd-sorted-done),t)
 ifeq ($(versioning),yes)
diff --git a/NEWS b/NEWS
index 86c7b5e83331cf59cab4ad5a4db2a1937454ed5b..41755c383b50b94cf781644c2cffc2b0beae9542 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2005-11-11
+GNU C Library NEWS -- history of user-visible changes.  2005-12-15
 Copyright (C) 1992-2002,2003,2004,2005 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -28,7 +28,7 @@ Version 2.4
   recommend using the stable 2.3 branch.
 
 * New interfaces: fdopendir, openat, fstatat, fchownat, futimesat, renameat,
-  unlinkat.
+  unlinkat, mkdirat, mkfifoat, mknodat, linkat, symlinkat, readlinkat.
 \f
 Version 2.3.6
 
similarity index 100%
rename from sysdeps/generic/brdinit.c
rename to bare/brdinit.c
similarity index 100%
rename from sysdeps/generic/console.c
rename to bare/console.c
similarity index 100%
rename from sysdeps/generic/strtsupp.c
rename to bare/strtsupp.c
index 39938097d3be8a8b93369775e0e7b0c23d13372f..2afecadcbecdecd28a843acae38c915f56f41e8e 100644 (file)
@@ -2,23 +2,21 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
-# include <config.h>
+# include "config.h"
 #endif
 
 #include <argp.h>
index 6380b09254eb5964010e444e3431518dc9693715..cdac43d8606f3c5a2310e85885715da86a3b0fa5 100644 (file)
@@ -1,5 +1,4 @@
 /* @configure_input@ -*- C -*-
-   Generated from $Id$.
 
    This is used only by the generic `uname' function for systems with no real
    `uname' call.  If this data is not correct, it does not matter much.  */
index 748ea96b2e92aacc280d7399f2f7f4242a7aa154..3af1e396e946134af676480d6ab486fab32a6648 100644 (file)
@@ -1,5 +1,4 @@
 # @configure_input@
-# From $Id$.
 # Don't edit this file.  Put configuration parameters in configparms instead.
 
 version = @VERSION@
similarity index 100%
rename from sysdeps/generic/check_fds.c
rename to csu/check_fds.c
similarity index 100%
rename from sysdeps/generic/errno-loc.c
rename to csu/errno-loc.c
similarity index 100%
rename from sysdeps/generic/errno.c
rename to csu/errno.c
similarity index 100%
rename from sysdeps/generic/libc-tls.c
rename to csu/libc-tls.c
similarity index 100%
rename from sysdeps/generic/start.c
rename to csu/start.c
similarity index 100%
rename from sysdeps/generic/sysdep.c
rename to csu/sysdep.c
similarity index 100%
rename from sysdeps/generic/segfault.c
rename to debug/segfault.c
similarity index 100%
rename from sysdeps/generic/closedir.c
rename to dirent/closedir.c
similarity index 100%
rename from sysdeps/generic/dirfd.c
rename to dirent/dirfd.c
similarity index 100%
rename from sysdeps/generic/getdents.c
rename to dirent/getdents.c
similarity index 100%
rename from sysdeps/generic/opendir.c
rename to dirent/opendir.c
similarity index 100%
rename from sysdeps/generic/readdir.c
rename to dirent/readdir.c
similarity index 100%
rename from sysdeps/generic/seekdir.c
rename to dirent/seekdir.c
similarity index 100%
rename from sysdeps/generic/telldir.c
rename to dirent/telldir.c
index 9c53f1615e85597dfb513413b83ab84bbef661c5..87e27c5a7a9e5d8383aeec0f3877f0fbe016846f 100644 (file)
@@ -60,5 +60,7 @@ ld {
     _dl_make_stack_executable;
     # Only here for gdb while a better method is developed.
     _dl_debug_state;
+    # Pointer protection.
+    __pointer_chk_guard;
   }
 }
index d5f313657c01f9b56e5b188974b6b65849346240..9ce3d161a7fac06ee9e52aa90b4325cb7e84b7b3 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 1999.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <errno.h>
 #include <error.h>
index d29a032163e5e7c8cb4a8ee415be5694f3694e58..41d6e82625878c5d29bd27b4f61bf5137445fb4d 100644 (file)
@@ -1,22 +1,20 @@
 /* Return the canonical absolute name of a given file inside chroot.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2004
+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2004, 2005
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <stdlib.h>
 #include <string.h>
similarity index 100%
rename from sysdeps/generic/dl-brk.c
rename to elf/dl-brk.c
similarity index 100%
rename from sysdeps/generic/dl-cache.c
rename to elf/dl-cache.c
index 3a0d9bb8a7ee2c7bdfd9335bf871b6a93299fb93..b5374e949caee7f3e044a68a1154be64b48769ac 100644 (file)
@@ -112,7 +112,8 @@ _dl_signal_error (int errcode, const char *objname, const char *occation,
          lcatch->errstring = _dl_out_of_memory;
          lcatch->malloced = false;
        }
-      longjmp (lcatch->env, errcode ?: -1);
+      /* We do not restore the signal mask because none was saved.  */
+      __longjmp (lcatch->env, errcode ?: -1);
     }
   else
     {
@@ -169,7 +170,8 @@ _dl_catch_error (const char **objname, const char **errstring,
 
   struct catch **const catchp = &CATCH_HOOK;
   old = *catchp;
-  errcode = setjmp (c.env);
+  /* Do not save the signal mask.  */
+  errcode = __sigsetjmp (c.env, 0);
   if (__builtin_expect (errcode, 0) == 0)
     {
       *catchp = &c;
similarity index 100%
rename from sysdeps/generic/dl-fptr.c
rename to elf/dl-fptr.c
index adb85e6753f5de848cb3e3770ddbc48f855b6147..868d3bd2ede07f5ca52522195e2db78a8aa727f6 100644 (file)
@@ -1,5 +1,5 @@
 /* Minimal replacements for basic facilities used in the dynamic linker.
-   Copyright (C) 1995-1998,2000-2002,2004 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998,2000-2002,2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -148,12 +148,6 @@ __sigjmp_save (sigjmp_buf env, int savemask __attribute__ ((unused)))
   env[0].__mask_was_saved = 0;
   return 0;
 }
-
-void weak_function
-longjmp (jmp_buf env, int val)
-{
-  __longjmp (env[0].__jmpbuf, val);
-}
 \f
 /* Define our own version of the internal function used by strerror.  We
    only provide the messages for some common errors.  This avoids pulling
similarity index 100%
rename from sysdeps/generic/dl-origin.c
rename to elf/dl-origin.c
similarity index 100%
rename from sysdeps/generic/dl-sbrk.c
rename to elf/dl-sbrk.c
similarity index 100%
rename from sysdeps/generic/dl-sysdep.c
rename to elf/dl-sysdep.c
similarity index 100%
rename from sysdeps/generic/dl-tls.c
rename to elf/dl-tls.c
index d96295cbc1332b28b7664d3bc7e4ab78edf0d737..e63b312bd0d1e296dcc6f30045f447c98c6fef56 100644 (file)
@@ -2,20 +2,18 @@
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 1999.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #define PROCINFO_CLASS static
 #include <alloca.h>
index 4fbc3e5e4c8adcba00ccd1656a464cae5d922817..65c8e9d65d56afc5cf2d689a08e2324ff96343dc 100644 (file)
@@ -1,22 +1,20 @@
-/* Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
                  Jakub Jelinek <jakub@redhat.com>, 1999.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* The code in this file and in readelflib is a heavily simplified
    version of the readelf program that's part of the current binutils
index a89f89b3a532b746dbb36ea3033f30ad76e979c5..aee3ea9a2a6c306bb60e8073f6afe07675be2dd8 100644 (file)
@@ -90,6 +90,15 @@ INTDEF(_dl_argv)
 uintptr_t __stack_chk_guard attribute_relro;
 #endif
 
+/* Only exported for architectures that don't store the pointer guard
+   value in thread local area.  */
+uintptr_t __pointer_chk_guard_local
+     attribute_relro attribute_hidden __attribute__ ((nocommon));
+#ifndef THREAD_SET_POINTER_GUARD
+strong_alias (__pointer_chk_guard_local, __pointer_chk_guard)
+#endif
+
+
 /* List of auditing DSOs.  */
 static struct audit_list
 {
@@ -142,6 +151,7 @@ struct rtld_global_ro _rtld_global_ro attribute_relro =
     ._dl_hwcap_mask = HWCAP_IMPORTANT,
     ._dl_lazy = 1,
     ._dl_fpu_control = _FPU_DEFAULT,
+    ._dl_pointer_guard = 1,
 
     /* Function pointers.  */
     ._dl_debug_printf = _dl_debug_printf,
@@ -1823,6 +1833,22 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
   __stack_chk_guard = stack_chk_guard;
 #endif
 
+  /* Set up the pointer guard as well, if necessary.  */
+  if (GLRO(dl_pointer_guard))
+    {
+      // XXX If it is cheap, we should use a separate value.
+      uintptr_t pointer_chk_guard = stack_chk_guard;
+#ifndef HP_TIMING_NONAVAIL
+      hp_timing_t now;
+      HP_TIMING_NOW (now);
+      pointer_chk_guard ^= now;
+#endif
+#ifdef THREAD_SET_POINTER_GUARD
+      THREAD_SET_POINTER_GUARD (pointer_chk_guard);
+#endif
+      __pointer_chk_guard_local = pointer_chk_guard;
+    }
+
   if (__builtin_expect (mode, normal) != normal)
     {
       /* We were run just to list the shared libraries.  It is
@@ -2575,7 +2601,13 @@ process_envvars (enum mode *modep)
 #endif
          if (!INTUSE(__libc_enable_secure)
              && memcmp (envline, "USE_LOAD_BIAS", 13) == 0)
-           GLRO(dl_use_load_bias) = envline[14] == '1' ? -1 : 0;
+           {
+             GLRO(dl_use_load_bias) = envline[14] == '1' ? -1 : 0;
+             break;
+           }
+
+         if (memcmp (envline, "POINTER_GUARD", 13) == 0)
+           GLRO(dl_pointer_guard) = envline[14] == '0';
          break;
 
        case 14:
index c65d6d075eab58632f9f53e0c2e9e7b603b51dbd..991d75fc73afba3be454a30a986db20da467a054 100644 (file)
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-fc4
-fedora-sync-date := 2005-11-19 19:59 UTC
-fedora-sync-tag := fedora-glibc-20051119T1959
+fedora-sync-date := 2005-12-19 10:03 UTC
+fedora-sync-tag := fedora-glibc-20051219T1003
index 29ecf0e1fee958fed58f44006aa22f3b1dd47671..6ea4c95d97e17650a9a63cb48a0db0d0a5730668 100644 (file)
@@ -1,4 +1,4 @@
-%define glibcrelease 18
+%define glibcrelease 19
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define xenarches i686 athlon
@@ -30,7 +30,7 @@ Patch1: %{name}-ppc-assume.patch
 Patch2: %{name}-ia64-lib64.patch
 Buildroot: %{_tmppath}/glibc-%{PACKAGE_VERSION}-root
 Obsoletes: zoneinfo, libc-static, libc-devel, libc-profile, libc-headers,
-Obsoletes: gencat, locale, ldconfig, locale-ja
+Obsoletes: gencat, locale, ldconfig, locale-ja, glibc-profile
 Provides: ldconfig
 Autoreq: false
 Requires: glibc-common = %{version}-%{release}
@@ -150,24 +150,6 @@ executables.
 Install glibc-headers if you are going to develop programs which will
 use the standard C libraries.
 
-%package profile
-Summary: The GNU libc libraries, including support for gprof profiling.
-Group: Development/Libraries
-Obsoletes: libc-profile
-Autoreq: true
-
-%description profile
-The glibc-profile package includes the GNU libc libraries and support
-for profiling using the gprof program.  Profiling is analyzing a
-program's functions to see how much CPU time they use and determining
-which functions are calling other functions during execution.  To use
-gprof to profile a program, your program needs to use the GNU libc
-libraries included in glibc-profile (instead of the standard GNU libc
-libraries included in the glibc package).
-
-If you are going to use the gprof program to profile a program, you'll
-need to install the glibc-profile package.
-
 %package common
 Summary: Common binaries and locale data for glibc
 Conflicts: %{name} < %{version}
@@ -503,7 +485,8 @@ CC="$GCC" CFLAGS="$build_CFLAGS" ../configure --prefix=%{_prefix} \
        --enable-add-ons=nptl$AddOns --without-cvs $EnableKernel \
        --with-headers=%{_prefix}/include --enable-bind-now \
        --with-tls --with-__thread --build %{nptl_target_cpu}-redhat-linux \
-       --host %{nptl_target_cpu}-redhat-linux
+       --host %{nptl_target_cpu}-redhat-linux \
+       --disable-profile
 make %{?_smp_mflags} -r CFLAGS="$build_CFLAGS" PARALLELMFLAGS=-s
 
 cd ..
@@ -512,7 +495,6 @@ cd ..
 build_nptl linuxnptl
 
 %if %{buildxen}
-EnableKernel="$EnableKernel --disable-profile"
 build_nptl linuxnptl-nosegneg -mno-tls-direct-seg-refs
 %endif
 
@@ -691,7 +673,6 @@ for i in $RPM_BUILD_ROOT%{_prefix}/bin/{xtrace,memusage}; do
   chmod 755 $i; rm -f $i.tmp
 done
 
-grep '%{_prefix}/%{_lib}/lib.*_p\.a' < rpm.filelist > profile.filelist || :
 grep '%{_infodir}' < rpm.filelist | grep -v '%{_infodir}/dir' > devel.filelist
 grep '%{_prefix}/include/gnu/stubs-[32164]\+\.h' < rpm.filelist >> devel.filelist || :
 
@@ -934,7 +915,7 @@ case "$-" in *x*) save_trace=yes;; esac
 set +x
 echo Cutting down the list of unpackaged files
 for i in `sed '/%%dir/d;/%%config/d;/%%verify/d;s/%%lang([^)]*) //' \
-         common.filelist devel.filelist headers.filelist profile.filelist \
+         common.filelist devel.filelist headers.filelist \
          utils.filelist nscd.filelist`; do
   [ -f "$RPM_BUILD_ROOT$i" ] && rm -f "$RPM_BUILD_ROOT$i" || :
 done
@@ -1051,9 +1032,6 @@ rm -f *.filelist*
 %files -f headers.filelist headers
 %defattr(-,root,root)
 
-%files -f profile.filelist profile
-%defattr(-,root,root)
-
 %files -f utils.filelist utils
 %defattr(-,root,root)
 
@@ -1095,6 +1073,14 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Mon Dec 19 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-19
+- update from CVS
+  - sysdeps/generic reorg
+  - setjmp/longjmp jump pointer mangling
+- rebuilt with GCC 4.1-RH prerelease, worked around broken _Pragma ()
+  handling in it
+- remove glibc-profile subpackage
+
 * Sat Nov 19 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-18
 - update from CVS
   - change <sys/stat.h> for broken apps that #define const /**/,
similarity index 100%
rename from sysdeps/generic/prof-freq.c
rename to gmon/prof-freq.c
similarity index 100%
rename from sysdeps/generic/profil.c
rename to gmon/profil.c
similarity index 100%
rename from sysdeps/generic/sprofil.c
rename to gmon/sprofil.c
similarity index 100%
rename from sysdeps/generic/setgroups.c
rename to grp/setgroups.c
index 4839d9853540c2ee4770c62b7d200daa63d37c09..12da1f2abc50ef0a1c2e107166331cc28ea0703a 100644 (file)
  * the rights to redistribute these changes.
  */
 /*
- * HISTORY
- * $Log$
- * Revision 1.15  2001/09/19 03:04:09  drepper
- * (bcopy): Removed.
- * (realloc): Replace bcopy with memcpy.
- *
- * Revision 1.14  2001/04/01 05:03:14  roland
- * 2001-03-11  Roland McGrath  <roland@frob.com>
- *
- *     * mach/mach_error.h: Fix ancient #endif syntax.
- *     * hurd/hurdmalloc.c: Likewise.
- *
- * Revision 1.13  1996/12/20 01:32:01  drepper
- * Update from main archive 961219
- *
- * Revision 1.12  1996/11/15 19:44:13  thomas
- * Tue Nov 12 16:58:41 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
- *
- *     * mach/msg-destroy.c (mach_msg_destroy_port,
- *     mach_msg_destroy_memory): Use prototype syntax.
- *     * hurd/hurdmalloc.c (more_memory, malloc_fork_prepare,
- *     malloc_fork_parent, malloc_fork_child): Likewise.
- *
- * Revision 1.11  1996/06/06 15:13:47  miles
- * Changes to bring in line with the hurd libthreads/malloc.c:
- *   (more_memory): Use assert_perror instead of MACH_CALL.
- *   "cthread_internals.h": Include removed.
- *   (realloc): Use LOG2_MIN_SIZE.
- *   (LOG2_MIN_SIZE): New macro.
- *   (realloc): Don't bother allocating a new block if the
- *     new size request fits in the old one and doesn't waste any space.
- *     Only free the old block if we successfully got a new one.
- *   [MCHECK] (struct header): New type.
- *   (union header): Only define if !MCHECK.
- *   (HEADER_SIZE, HEADER_NEXT, HEADER_FREE, HEADER_CHECK): New macros.
- *   [MCHECK] (MIN_SIZE): Add correct definition for this case.
- *   (more_memory, malloc, free, realloc): Use above macros, and add
- *     appropriate checks & frobs in MCHECK case.
- *
- * Revision 1.6  1996/03/07 21:13:08  miles
- * (realloc):
- *   Use LOG2_MIN_SIZE.
- *   Don't bother allocating a new block if the new size request fits in the old
- *     one and doesn't waste any space.
- *   Only free the old block if we successfully got a new one.
- * (LOG2_MIN_SIZE): New macro.
- *
- * Revision 1.5  1996/03/06 23:51:04  miles
- * [MCHECK] (struct header): New type.
- * (union header): Only define if !MCHECK.
- * (HEADER_SIZE, HEADER_NEXT, HEADER_FREE, HEADER_CHECK): New macros.
- * [MCHECK] (MIN_SIZE): Add correct definition for this case.
- * (more_memory, malloc, free, realloc):
- *   Use above macros, and add appropriate checks & frobs in MCHECK case.
- *
- * Revision 1.4  1994/05/05 11:21:42  roland
- * entered into RCS
+ * (pre-GNU) HISTORY
  *
  * Revision 2.7  91/05/14  17:57:34  mrt
  *     Correcting copyright
index a195460f9aea3d4039b709bf20912b159d253208..a87685c505668dd165ab89aee416d2a8bf58da42 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* For iconv we don't have to handle repertoire maps.  Provide dummy
    definitions to allow the use of linereader.c unchanged.  */
index f3f49b7db367e1a363820bfebb87de481e6254af..cd43d3d6fb693ff7502139a1ab4d5f43aca885fb 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert characters in input buffer using conversion descriptor to
    output buffer.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997-2001, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
    02111-1307 USA.  */
 
 #include <assert.h>
-#include <gconv_int.h>
-#include <sys/param.h>
 #include <dlfcn.h>
 #include <stddef.h>
+#include <sys/param.h>
+
+#include <gconv_int.h>
+#include <sysdep.h>
+
 
 int
 internal_function
@@ -45,9 +48,15 @@ __gconv (__gconv_t cd, const unsigned char **inbuf,
   cd->__data[last_step].__outbuf = outbuf != NULL ? *outbuf : NULL;
   cd->__data[last_step].__outbufend = outbufend;
 
+  __gconv_fct fct = cd->__steps->__fct;
+#ifdef PTR_DEMANGLE
+  if (cd->__steps->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
+
   if (inbuf == NULL || *inbuf == NULL)
     /* We just flush.  */
-    result = DL_CALL_FCT (cd->__steps->__fct,
+    result = DL_CALL_FCT (fct,
                          (cd->__steps, cd->__data, NULL, NULL, NULL,
                           irreversible,
                           cd->__data[last_step].__outbuf == NULL ? 2 : 1, 0));
@@ -60,7 +69,7 @@ __gconv (__gconv_t cd, const unsigned char **inbuf,
       do
        {
          last_start = *inbuf;
-         result = DL_CALL_FCT (cd->__steps->__fct,
+         result = DL_CALL_FCT (fct,
                                (cd->__steps, cd->__data, inbuf, inbufend,
                                 NULL, irreversible, 0, 0));
        }
index f653d6c7f32bc60d5484d1e4033abbdebc8aadab..d8beabd416d527204884caf2fdef55803716d305 100644 (file)
@@ -1,5 +1,5 @@
 /* Table for builtin transformation mapping.
-   Copyright (C) 1997-1999, 2000-2002 Free Software Foundation, Inc.
+   Copyright (C) 1997-1999, 2000-2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -20,6 +20,7 @@
 
 #include <endian.h>
 #include <limits.h>
+#include <stdint.h>
 #include <string.h>
 
 #include <gconv_int.h>
 #include <assert.h>
 
 
-static struct builtin_map
+static const struct builtin_map
 {
   const char *name;
   __gconv_fct fct;
   __gconv_btowc_fct btowc_fct;
 
-  int min_needed_from;
-  int max_needed_from;
-  int min_needed_to;
-  int max_needed_to;
+  int8_t min_needed_from;
+  int8_t max_needed_from;
+  int8_t min_needed_to;
+  int8_t max_needed_to;
 
 } map[] =
 {
index 8dc6b14d2584c97e151df259e878ab9c01c88fe4..3431ce0812470dd75845898dda91c7c49ad592c0 100644 (file)
@@ -1,5 +1,5 @@
 /* Provide access to the collection of available transformation modules.
-   Copyright (C) 1997-2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1997-2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -18,6 +18,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <limits.h>
 #include <search.h>
 #include <stdlib.h>
@@ -28,6 +29,7 @@
 
 #include <dlfcn.h>
 #include <gconv_int.h>
+#include <sysdep.h>
 
 
 /* Simple data structure for alias mapping.  We have two names, `from'
@@ -180,7 +182,15 @@ free_derivation (void *p)
   for (cnt = 0; cnt < deriv->nsteps; ++cnt)
     if (deriv->steps[cnt].__counter > 0
        && deriv->steps[cnt].__end_fct != NULL)
-      DL_CALL_FCT (deriv->steps[cnt].__end_fct, (&deriv->steps[cnt]));
+      {
+       assert (deriv->steps[cnt].__shlib_handle != NULL);
+
+       __gconv_end_fct end_fct = deriv->steps[cnt].__end_fct;
+#ifdef PTR_DEMANGLE
+       PTR_DEMANGLE (end_fct);
+#endif
+       DL_CALL_FCT (end_fct, (&deriv->steps[cnt]));
+      }
 
   /* Free the name strings.  */
   free ((char *) deriv->steps[0].__from_name);
@@ -196,22 +206,30 @@ void
 internal_function
 __gconv_release_step (struct __gconv_step *step)
 {
-  if (--step->__counter == 0)
+  /* Skip builtin modules; they are not reference counted.  */
+  if (step->__shlib_handle != NULL && --step->__counter == 0)
     {
       /* Call the destructor.  */
       if (step->__end_fct != NULL)
-       DL_CALL_FCT (step->__end_fct, (step));
-
-#ifndef STATIC_GCONV
-      /* Skip builtin modules; they are not reference counted.  */
-      if (step->__shlib_handle != NULL)
        {
-         /* Release the loaded module.  */
-         __gconv_release_shlib (step->__shlib_handle);
-         step->__shlib_handle = NULL;
+         assert (step->__shlib_handle != NULL);
+
+         __gconv_end_fct end_fct = step->__end_fct;
+#ifdef PTR_DEMANGLE
+         PTR_DEMANGLE (end_fct);
+#endif
+         DL_CALL_FCT (end_fct, (step));
        }
+
+#ifndef STATIC_GCONV
+      /* Release the loaded module.  */
+      __gconv_release_shlib (step->__shlib_handle);
+      step->__shlib_handle = NULL;
 #endif
     }
+  else
+    /* Builtin modules should not have end functions.  */
+    assert (step->__end_fct == NULL);
 }
 
 static int
@@ -272,10 +290,15 @@ gen_steps (struct derivation_step *best, const char *toset,
              result[step_cnt].__btowc_fct = NULL;
 
              /* Call the init function.  */
-             if (result[step_cnt].__init_fct != NULL)
+             __gconv_init_fct init_fct = result[step_cnt].__init_fct;
+             if (init_fct != NULL)
                {
-                 status = DL_CALL_FCT (result[step_cnt].__init_fct,
-                                       (&result[step_cnt]));
+                 assert (result[step_cnt].__shlib_handle != NULL);
+
+# ifdef PTR_DEMANGLE
+                 PTR_DEMANGLE (init_fct);
+# endif
+                 status = DL_CALL_FCT (init_fct, (&result[step_cnt]));
 
                  if (__builtin_expect (status, __GCONV_OK) != __GCONV_OK)
                    {
@@ -285,6 +308,11 @@ gen_steps (struct derivation_step *best, const char *toset,
                      result[step_cnt].__end_fct = NULL;
                      break;
                    }
+
+# ifdef PTR_MANGLE
+                 if (result[step_cnt].__btowc_fct != NULL)
+                   PTR_MANGLE (result[step_cnt].__btowc_fct);
+# endif
                }
            }
          else
@@ -362,8 +390,19 @@ increment_counter (struct __gconv_step *steps, size_t nsteps)
            }
 
          /* Call the init function.  */
-         if (step->__init_fct != NULL)
-           DL_CALL_FCT (step->__init_fct, (step));
+         __gconv_init_fct init_fct = step->__init_fct;
+         if (init_fct != NULL)
+           {
+#ifdef PTR_DEMANGLE
+             PTR_DEMANGLE (init_fct);
+#endif
+             DL_CALL_FCT (init_fct, (step));
+
+#ifdef PTR_MANGLE
+             if (step->__btowc_fct != NULL)
+               PTR_MANGLE (step->__btowc_fct);
+#endif
+           }
        }
     }
   return result;
index 95040172108d41b38be00aa55f964773a8cd8e55..8217b7e55322b8a8820f06289df24b6ac041cd60 100644 (file)
@@ -1,5 +1,5 @@
 /* Handle loading/unloading of shared object for transformation.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -29,6 +29,7 @@
 #include <sys/param.h>
 
 #include <gconv_int.h>
+#include <sysdep.h>
 
 
 #ifdef DEBUG
@@ -130,6 +131,14 @@ __gconv_find_shlib (const char *name)
                  found->init_fct = __libc_dlsym (found->handle, "gconv_init");
                  found->end_fct = __libc_dlsym (found->handle, "gconv_end");
 
+#ifdef PTR_MANGLE
+                 PTR_MANGLE (found->fct);
+                 if (found->init_fct != NULL)
+                   PTR_MANGLE (found->init_fct);
+                 if (found->end_fct !=  NULL)
+                   PTR_MANGLE (found->end_fct);
+#endif
+
                  /* We have succeeded in loading the shared object.  */
                  found->counter = 1;
                }
index 03a8f5fa23f2f647302bd8135f5443a71be6044d..b83081efca74720fcc9f1517d775c4d3ce238ac9 100644 (file)
@@ -1,22 +1,20 @@
 /* Convert using charmaps and possibly iconv().
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <assert.h>
 #include <errno.h>
index 5b3d35ecaaecf8ff0ba4e4febb1b3b2f2c7024f9..a7036af99c0a1f4c47e68693dc6f49bbbd30a7e6 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <argp.h>
 #include <assert.h>
index df66f11f0803499aa3d8e9ac55a5a5e48575af5f..96a86191e9afad4b507209714cecc73aa7824cfc 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <argp.h>
 #include <assert.h>
index c74935693fcadba2f6025a157945ef80b908d509..baace6b3fbbd05e5d5cd2cc6b7a4ac2f386ef476 100644 (file)
 # include <dlfcn.h>
 #endif
 
+#include <sysdep.h>
+
 #ifndef DL_CALL_FCT
 # define DL_CALL_FCT(fct, args) fct args
 #endif
@@ -393,10 +395,17 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
 {
   struct __gconv_step *next_step = step + 1;
   struct __gconv_step_data *next_data = data + 1;
-  __gconv_fct fct;
+  __gconv_fct fct = NULL;
   int status;
 
-  fct = (data->__flags & __GCONV_IS_LAST) ? NULL : next_step->__fct;
+  if ((data->__flags & __GCONV_IS_LAST) == 0)
+    {
+      fct = next_step->__fct;
+#ifdef PTR_DEMANGLE
+      if (next_step->__shlib_handle != NULL)
+       PTR_DEMANGLE (fct);
+#endif
+    }
 
   /* If the function is called with no input this means we have to reset
      to the initial state.  The possibly partly converted input is
index 4e95ffd6cd0ad021830d0def61defd26efe0456e..681024fd02d01213380eac4205b7138178e65a3f 100644 (file)
@@ -25,6 +25,6 @@ extern int __alphasort64 (const void *a, const void *b)
      __attribute_pure__;
 extern int __versionsort64 (const void *a, const void *b)
      __attribute_pure__;
-extern DIR *__alloc_dir (int fd, bool close_fd, struct stat64 *statp)
+extern DIR *__alloc_dir (int fd, bool close_fd, const struct stat64 *statp)
      internal_function;
 #endif
index 6080faba3e28bcc4f3a2dd2701f58c93460164fe..610e322cfd6323f750053a77341956c0dcd732f8 100644 (file)
@@ -21,5 +21,8 @@ libc_hidden_proto (__fcntl)
 /* Helper functions for the various *at functions.  For Linux.  */
 extern void __atfct_seterrno (int errval, int fd, const char *buf)
   attribute_hidden;
+extern void __atfct_seterrno_2 (int errval, int fd1, const char *buf1,
+                               int fd2, const char *buf2)
+  attribute_hidden;
 
 #endif
diff --git a/include/sys/sendfile.h b/include/sys/sendfile.h
new file mode 100644 (file)
index 0000000..abe0976
--- /dev/null
@@ -0,0 +1 @@
+#include <io/sys/sendfile.h>
index 2e2566d9ef571d1e0e03988d44037e49d2a4ca93..4a4d05d938fbdf08f6eb4432669e10401f99529a 100644 (file)
@@ -29,6 +29,7 @@ extern __inline__ int __mknod (__const char *__path, __mode_t __mode,
 {
   return __xmknod (_MKNOD_VER, __path, __mode, &__dev);
 }
+libc_hidden_proto (__xmknodat)
 
 
 /* The `stat', `fstat', `lstat' functions have to be handled special since
similarity index 100%
rename from sysdeps/generic/check_pf.c
rename to inet/check_pf.c
similarity index 100%
rename from sysdeps/generic/htonl.c
rename to inet/htonl.c
similarity index 100%
rename from sysdeps/generic/htons.c
rename to inet/htons.c
similarity index 100%
rename from sysdeps/generic/if_index.c
rename to inet/if_index.c
similarity index 100%
rename from sysdeps/generic/ifaddrs.c
rename to inet/ifaddrs.c
similarity index 100%
rename from sysdeps/generic/ifreq.c
rename to inet/ifreq.c
index 9339ffe699e6910d8a1e5414a673aad6e193ac21..4731e24d2472ed2f6c9a71ca06a53a0bea69204b 100644 (file)
@@ -28,13 +28,14 @@ headers := sys/stat.h bits/stat.h sys/statfs.h bits/statfs.h sys/vfs.h \
 
 routines :=                                                            \
        utime                                                           \
-       mkfifo                                                          \
-       stat fstat lstat mknod stat64 fstat64 lstat64 fstatat fstatat64 \
-       xstat fxstat lxstat xmknod xstat64 fxstat64 lxstat64            \
+       mkfifo mkfifoat                                                 \
+       stat fstat lstat stat64 fstat64 lstat64 fstatat fstatat64       \
+       xstat fxstat lxstat xstat64 fxstat64 lxstat64                   \
+       mknod mknodat xmknod xmknodat                                   \
        fxstatat fxstatat64                                             \
        statfs fstatfs statfs64 fstatfs64                               \
        statvfs fstatvfs statvfs64 fstatvfs64                           \
-       umask chmod fchmod lchmod mkdir                                 \
+       umask chmod fchmod lchmod mkdir mkdirat                         \
        open open64 openat openat64 close                               \
        read write lseek lseek64 access euidaccess                      \
        fcntl flock lockf lockf64                                       \
@@ -44,7 +45,7 @@ routines :=                                                           \
        getcwd getwd getdirname                                         \
        chown fchown lchown fchownat                                    \
        ttyname ttyname_r isatty                                        \
-       link symlink readlink                                           \
+       link linkat symlink symlinkat readlink readlinkat               \
        unlink unlinkat rmdir                                           \
        ftw ftw64 fts poll                                              \
        posix_fadvise posix_fadvise64                                   \
@@ -54,8 +55,8 @@ routines :=                                                           \
 # These routines will be omitted from the libc shared object.
 # Instead the static object files will be included in a special archive
 # linked against when the shared library will be used.
-static-only-routines = stat fstat lstat mknod stat64 fstat64 lstat64   \
-                      fstatat fstatat64
+static-only-routines = stat fstat lstat stat64 fstat64 lstat64 \
+                      fstatat fstatat64 mknod mknodat
 
 others         := pwd
 test-srcs      := ftwtest
index 65ee77182e8666a7f9c335725de953e2aa87807e..2f0f94f3bbbeb8c0e96efb7eb8314346d726c1b3 100644 (file)
@@ -100,7 +100,11 @@ libc {
   GLIBC_2.4 {
     fchownat;
     __fxstatat; __fxstatat64;
+    linkat;
+    mkdirat; mkfifoat; __xmknodat;
     openat; openat64;
+    readlinkat;
+    symlinkat;
     unlinkat;
   }
 }
similarity index 100%
rename from sysdeps/generic/access.c
rename to io/access.c
similarity index 100%
rename from sysdeps/generic/chdir.c
rename to io/chdir.c
similarity index 100%
rename from sysdeps/generic/chmod.c
rename to io/chmod.c
similarity index 100%
rename from sysdeps/generic/chown.c
rename to io/chown.c
similarity index 100%
rename from sysdeps/generic/close.c
rename to io/close.c
similarity index 100%
rename from sysdeps/generic/creat.c
rename to io/creat.c
similarity index 100%
rename from sysdeps/generic/creat64.c
rename to io/creat64.c
similarity index 100%
rename from sysdeps/generic/dup.c
rename to io/dup.c
similarity index 100%
rename from sysdeps/generic/dup2.c
rename to io/dup2.c
similarity index 100%
rename from sysdeps/generic/euidaccess.c
rename to io/euidaccess.c
similarity index 100%
rename from sysdeps/generic/fchdir.c
rename to io/fchdir.c
similarity index 100%
rename from sysdeps/generic/fchmod.c
rename to io/fchmod.c
similarity index 100%
rename from sysdeps/generic/fchown.c
rename to io/fchown.c
similarity index 100%
rename from sysdeps/generic/fchownat.c
rename to io/fchownat.c
similarity index 100%
rename from sysdeps/generic/fcntl.c
rename to io/fcntl.c
similarity index 100%
rename from sysdeps/generic/flock.c
rename to io/flock.c
similarity index 100%
rename from sysdeps/generic/fstatfs.c
rename to io/fstatfs.c
similarity index 100%
rename from sysdeps/generic/fstatfs64.c
rename to io/fstatfs64.c
similarity index 100%
rename from sysdeps/generic/fstatvfs.c
rename to io/fstatvfs.c
similarity index 100%
rename from sysdeps/generic/fstatvfs64.c
rename to io/fstatvfs64.c
similarity index 100%
rename from sysdeps/generic/fxstat.c
rename to io/fxstat.c
similarity index 100%
rename from sysdeps/generic/fxstat64.c
rename to io/fxstat64.c
similarity index 100%
rename from sysdeps/generic/fxstatat.c
rename to io/fxstatat.c
similarity index 100%
rename from sysdeps/generic/fxstatat64.c
rename to io/fxstatat64.c
similarity index 100%
rename from sysdeps/generic/getcwd.c
rename to io/getcwd.c
similarity index 100%
rename from sysdeps/generic/isatty.c
rename to io/isatty.c
similarity index 100%
rename from sysdeps/generic/lchmod.c
rename to io/lchmod.c
similarity index 100%
rename from sysdeps/generic/lchown.c
rename to io/lchown.c
similarity index 100%
rename from sysdeps/generic/link.c
rename to io/link.c
diff --git a/io/linkat.c b/io/linkat.c
new file mode 100644 (file)
index 0000000..6420d50
--- /dev/null
@@ -0,0 +1,51 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <unistd.h>
+
+
+/* Make a link to FROM relative to FROMFD called TO relative to TOFD.  */
+int
+linkat (fromfd, from, tofd, to)
+     int fromfd;
+     const char *from;
+     int tofd;
+     const char *to;
+{
+  if (from == NULL || to == NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  if ((tofd != AT_FDCWD && tofd < 0 && *to != '/')
+      || (fromfd != AT_FDCWD && fromfd < 0 && *from != '/'))
+    {
+      __set_errno (EBADF);
+      return -1;
+    }
+
+  __set_errno (ENOSYS);
+  return -1;
+}
+stub_warning (linkat)
+
+#include <stub-tag.h>
similarity index 100%
rename from sysdeps/generic/lockf.c
rename to io/lockf.c
similarity index 100%
rename from sysdeps/generic/lockf64.c
rename to io/lockf64.c
similarity index 100%
rename from sysdeps/generic/lseek64.c
rename to io/lseek64.c
similarity index 100%
rename from sysdeps/generic/lxstat.c
rename to io/lxstat.c
similarity index 100%
rename from sysdeps/generic/lxstat64.c
rename to io/lxstat64.c
similarity index 100%
rename from sysdeps/generic/mkdir.c
rename to io/mkdir.c
diff --git a/io/mkdirat.c b/io/mkdirat.c
new file mode 100644 (file)
index 0000000..ccea3aa
--- /dev/null
@@ -0,0 +1,58 @@
+/* Copyright (C) 1991, 1995, 1996, 1997, 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+
+/* Create a directory named PATH relative to FD with protections MODE.  */
+int
+mkdirat (fd, path, mode)
+     int fd;
+     const char *path;
+     mode_t mode;
+{
+  if (path == NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  if (fd != AT_FDCWD && path[0] != '/')
+    {
+      /* Check FD is associated with a directory.  */
+      struct stat64 st;
+      if (__fxstat64 (_STAT_VER, fd, &st) != 0)
+       return -1;
+
+      if (!S_ISDIR (st.st_mode))
+       {
+         __set_errno (ENOTDIR);
+         return -1;
+       }
+    }
+
+  __set_errno (ENOSYS);
+  return -1;
+}
+stub_warning (mkdirat)
+
+#include <stub-tag.h>
similarity index 100%
rename from sysdeps/generic/mkfifo.c
rename to io/mkfifo.c
diff --git a/io/mkfifoat.c b/io/mkfifoat.c
new file mode 100644 (file)
index 0000000..48c38c8
--- /dev/null
@@ -0,0 +1,60 @@
+/* Copyright (C) 1991, 1995, 1996, 1997, 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+
+/* Create a named pipe (FIFO) named PATH relative to FD with
+   protections MODE.  */
+int
+mkfifoat (fd, path, mode)
+     int fd;
+     const char *path;
+     mode_t mode;
+{
+  if (path == NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  if (fd != AT_FDCWD && path[0] != '/')
+    {
+      /* Check FD is associated with a directory.  */
+      struct stat64 st;
+      if (__fxstat64 (_STAT_VER, fd, &st) != 0)
+       return -1;
+
+      if (!S_ISDIR (st.st_mode))
+       {
+         __set_errno (ENOTDIR);
+         return -1;
+       }
+    }
+
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+
+stub_warning (mkfifoat)
+#include <stub-tag.h>
similarity index 100%
rename from sysdeps/generic/mknod.c
rename to io/mknod.c
diff --git a/io/mknodat.c b/io/mknodat.c
new file mode 100644 (file)
index 0000000..ac515b5
--- /dev/null
@@ -0,0 +1,60 @@
+/* Copyright (C) 1995, 1996, 2001, 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   In addition to the permissions in the GNU Lesser General Public
+   License, the Free Software Foundation gives you unlimited
+   permission to link the compiled version of this file with other
+   programs, and to distribute those programs without any restriction
+   coming from the use of this file. (The GNU Lesser General Public
+   License restrictions do apply in other respects; for example, they
+   cover modification of the file, and distribution when not linked
+   into another program.)
+
+   Note that people who make modified versions of this file are not
+   obligated to grant this special exception for their modified
+   versions; it is their choice whether to do so. The GNU Lesser
+   General Public License gives permission to release a modified
+   version without this exception; this exception also makes it
+   possible to release a modified version which carries forward this
+   exception.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+/* This definition is only used if inlining fails for this function; see
+   the last page of <sys/stat.h>.  The real work is done by the `x'
+   function which is passed a version number argument.  We arrange in the
+   makefile that when not inlined this function is always statically
+   linked; that way a dynamically-linked executable always encodes the
+   version number corresponding to the data structures it uses, so the `x'
+   functions in the shared library can adapt without needing to recompile
+   all callers.  */
+
+int
+mknodat (int fd, const char *path, mode_t mode, dev_t dev)
+{
+  return __xmknodat (_MKNOD_VER, fd, path, mode, &dev);
+}
+
+
+/* Hide the symbol so that no definition but the one locally in the
+   executable or DSO is used.  */
+#ifdef HAVE_DOT_HIDDEN
+asm (".hidden\tmknodat");
+#endif
similarity index 100%
rename from sysdeps/generic/open.c
rename to io/open.c
similarity index 100%
rename from sysdeps/generic/open64.c
rename to io/open64.c
similarity index 100%
rename from sysdeps/generic/openat.c
rename to io/openat.c
similarity index 100%
rename from sysdeps/generic/openat64.c
rename to io/openat64.c
similarity index 100%
rename from sysdeps/generic/pipe.c
rename to io/pipe.c
similarity index 100%
rename from sysdeps/generic/poll.c
rename to io/poll.c
similarity index 100%
rename from sysdeps/generic/read.c
rename to io/read.c
similarity index 100%
rename from sysdeps/generic/readlink.c
rename to io/readlink.c
diff --git a/io/readlinkat.c b/io/readlinkat.c
new file mode 100644 (file)
index 0000000..c6a032c
--- /dev/null
@@ -0,0 +1,50 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+/* Read the contents of the symbolic link PATH relative to FD into no
+   more than LEN bytes of BUF.  The contents are not null-terminated.
+   Returns the number of characters read, or -1 for errors.  */
+int
+readlinkat (fd, path, buf, len)
+     int fd;
+     const char *path;
+     char *buf;
+     size_t len;
+{
+  if (path == NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  if (fd != AT_FDCWD && fd < 0 && *path != '/')
+    {
+      __set_errno (EBADF);
+      return -1;
+    }
+
+  __set_errno (ENOSYS);
+  return -1;
+}
+stub_warning (readlinkat)
+
+#include <stub-tag.h>
similarity index 100%
rename from sysdeps/generic/rmdir.c
rename to io/rmdir.c
similarity index 100%
rename from sysdeps/generic/sendfile.c
rename to io/sendfile.c
similarity index 100%
rename from sysdeps/generic/sendfile64.c
rename to io/sendfile64.c
similarity index 100%
rename from sysdeps/generic/statfs.c
rename to io/statfs.c
similarity index 100%
rename from sysdeps/generic/statfs64.c
rename to io/statfs64.c
similarity index 100%
rename from sysdeps/generic/statvfs.c
rename to io/statvfs.c
similarity index 100%
rename from sysdeps/generic/statvfs64.c
rename to io/statvfs64.c
similarity index 100%
rename from sysdeps/generic/symlink.c
rename to io/symlink.c
similarity index 59%
rename from sysdeps/generic/det_endian.c
rename to io/symlinkat.c
index 4c86be3a855ba39280a9652b9344db235944719b..5c2f3f553a522d7b3bae1abf80800e844ea696d0 100644 (file)
@@ -1,7 +1,5 @@
-/* Determine the "endianness" of the CPU.
-   Copyright (C) 1991, 1992, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Torbjorn Granlund (tege@sics.se).
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <stdio.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <unistd.h>
 
-main ()
-{
-  unsigned long int i;
-
-  if (sizeof (i) != 4)
-    puts ("#error \"Not a 32-bit machine!\"");
-
-  i = (((((('4' << 8) + '3') << 8) + '2') << 8) + '1');
 
-  printf ("#define __BYTE_ORDER %.4s\n", (char *) &i);
-
-  exit (0);
+/* Make a link to FROM called TO relative to FD.  */
+int
+symlinkat (from, fd, to)
+     const char *from;
+     int fd;
+     const char *to;
+{
+  if (from == NULL || to == NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  if (fd != AT_FDCWD && fd < 0 && *to != '/')
+    {
+      __set_errno (EBADF);
+      return -1;
+    }
+
+  __set_errno (ENOSYS);
+  return -1;
 }
+stub_warning (symlinkat)
+
+#include <stub-tag.h>
index 03152990e76af73675510510a9965f4ad9ea3c48..6ce3a1be662b65f3b898903c8745e88f94ee4693 100644 (file)
@@ -233,20 +233,23 @@ extern int fstat64 (int __fd, struct stat64 *__buf) __THROW __nonnull ((2));
    Relative path names are interpreted relative to FD unless FD is
    AT_FDCWD.  */
 # ifndef __USE_FILE_OFFSET64
-extern int fstatat (int __fd, __const char *__file, struct stat *__buf,
-                   int __flag) __THROW __nonnull ((2, 3));
+extern int fstatat (int __fd, __const char *__restrict __file,
+                   struct stat *__restrict __buf, int __flag)
+     __THROW __nonnull ((2, 3));
 # else
 #  ifdef __REDIRECT_NTH
-extern int __REDIRECT_NTH (fstatat, (int __fd, __const char *__file,
-                                    struct stat *__buf, int __flag),
+extern int __REDIRECT_NTH (fstatat, (int __fd, __const char *__restrict __file,
+                                    struct stat *__restrict __buf,
+                                    int __flag),
                           fstatat64) __nonnull ((2, 3));
 #  else
 #   define fstatat fstatat64
 #  endif
 # endif
 
-extern int fstatat64 (int __fd, __const char *__file, struct stat64 *__buf,
-                     int __flag) __THROW __nonnull ((2, 3));
+extern int fstatat64 (int __fd, __const char *__restrict __file,
+                     struct stat64 *__restrict __buf, int __flag)
+     __THROW __nonnull ((2, 3));
 #endif
 
 #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
@@ -305,6 +308,14 @@ extern __mode_t getumask (void) __THROW;
 extern int mkdir (__const char *__path, __mode_t __mode)
      __THROW __nonnull ((1));
 
+#ifdef __USE_GNU
+/* Like mkdir, create a new directory with permission bits MODE.  But
+   interpret relative PATH names relative to the directory associated
+   with FD.  */
+extern int mkdirat (int __fd, __const char *__path, __mode_t __mode)
+     __THROW __nonnull ((2));
+#endif
+
 /* Create a device file named PATH, with permission and special bits MODE
    and device number DEV (which can be constructed from major and minor
    device numbers with the `makedev' macro above).  */
@@ -313,10 +324,26 @@ extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
      __THROW __nonnull ((1));
 #endif
 
+#ifdef __USE_GNU
+/* Like mknod, create a new device file with permission bits MODE and
+   device number DEV.  But interpret relative PATH names relative to
+   the directory associated with FD.  */
+extern int mknodat (int __fd, __const char *__path, __mode_t __mode,
+                   __dev_t __dev) __THROW __nonnull ((2));
+#endif
+
 
 /* Create a new FIFO named PATH, with permission bits MODE.  */
 extern int mkfifo (__const char *__path, __mode_t __mode)
      __THROW __nonnull ((1));
+
+#ifdef __USE_GNU
+/* Like mkfifo, create a new FIFO with permission bits MODE.  But
+   interpret relative PATH names relative to the directory associated
+   with FD.  */
+extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode)
+     __THROW __nonnull ((2));
+#endif
 \f
 /* To allow the `struct stat' structure and the file type `mode_t'
    bits to vary without changing shared library major version number,
@@ -388,6 +415,10 @@ extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename,
 extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
                     __dev_t *__dev) __THROW __nonnull ((2, 4));
 
+extern int __xmknodat (int __ver, int __fd, __const char *__path,
+                      __mode_t __mode, __dev_t *__dev)
+     __THROW __nonnull ((3, 5));
+
 #if defined __GNUC__ && __GNUC__ >= 2
 /* Inlined versions of the real stat and mknod functions.  */
 
@@ -428,6 +459,15 @@ __NTH (mknod (__const char *__path, __mode_t __mode, __dev_t __dev))
 }
 # endif
 
+# ifdef __USE_GNU
+extern __inline__ int
+__NTH (mknodat (int __fd, __const char *__path, __mode_t __mode,
+               __dev_t __dev))
+{
+  return __xmknodat (_MKNOD_VER, __fd, __path, __mode, &__dev);
+}
+# endif
+
 # if defined __USE_LARGEFILE64 \
   && (! defined __USE_FILE_OFFSET64 \
       || (defined __REDIRECT_NTH && defined __OPTIMIZE__))
similarity index 100%
rename from sysdeps/generic/ttyname.c
rename to io/ttyname.c
similarity index 100%
rename from sysdeps/generic/ttyname_r.c
rename to io/ttyname_r.c
similarity index 100%
rename from sysdeps/generic/umask.c
rename to io/umask.c
similarity index 100%
rename from sysdeps/generic/unlink.c
rename to io/unlink.c
similarity index 100%
rename from sysdeps/generic/unlinkat.c
rename to io/unlinkat.c
similarity index 100%
rename from sysdeps/generic/utime.c
rename to io/utime.c
similarity index 100%
rename from sysdeps/generic/write.c
rename to io/write.c
similarity index 90%
rename from sysdeps/generic/xmknod.c
rename to io/xmknod.c
index 57ed46060debd92c5cdf1c618e29a2f74ab49678..c2daa46e074d2d5ef1e0f588cab1d6d98a61aeb8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1993,1995,1996,1997,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1993,1995-1997,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -32,6 +32,12 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
       return -1;
     }
 
+  if (path == NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
   __set_errno (ENOSYS);
   return -1;
 }
diff --git a/io/xmknodat.c b/io/xmknodat.c
new file mode 100644 (file)
index 0000000..56d88c7
--- /dev/null
@@ -0,0 +1,63 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+/* Create a device file named PATH relative to FD, with permission and
+   special bits MODE and device number DEV (which can be constructed
+   from major and minor device numbers with the `makedev' macro
+   above).  */
+int
+__xmknodat (int vers, int fd, const char *path, mode_t mode, dev_t *dev)
+{
+  if (vers != _MKNOD_VER)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  if (path == NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  if (fd != AT_FDCWD && path[0] != '/')
+    {
+      /* Check FD is associated with a directory.  */
+      struct stat64 st;
+      if (__fxstat64 (_STAT_VER, fd, &st) != 0)
+       return -1;
+
+      if (!S_ISDIR (st.st_mode))
+       {
+         __set_errno (ENOTDIR);
+         return -1;
+       }
+    }
+
+  __set_errno (ENOSYS);
+  return -1;
+}
+stub_warning (__xmknodat)
+
+libc_hidden_def (__xmknodat)
+#include <stub-tag.h>
similarity index 100%
rename from sysdeps/generic/xstat.c
rename to io/xstat.c
similarity index 100%
rename from sysdeps/generic/xstat64.c
rename to io/xstat64.c
index 7af9a633f8c38fa6c3c3deed373a58c111711329..a9936687ddb78b3615f5f95e6dfe672eb2fd6658 100644 (file)
@@ -40,6 +40,7 @@
 # include <wcsmbs/wcsmbsload.h>
 # include <iconv/gconv_int.h>
 # include <shlib-compat.h>
+# include <sysdep.h>
 #endif
 
 
@@ -68,7 +69,7 @@ static int do_always_noconv (struct _IO_codecvt *codecvt);
 
 
 /* The functions used in `codecvt' for libio are always the same.  */
-struct _IO_codecvt __libio_codecvt =
+const struct _IO_codecvt __libio_codecvt =
 {
   .__codecvt_destr = NULL,             /* Destructor, never used.  */
   .__codecvt_do_out = do_out,
@@ -82,7 +83,7 @@ struct _IO_codecvt __libio_codecvt =
 
 
 #ifdef _LIBC
-struct __gconv_trans_data __libio_translit attribute_hidden =
+const struct __gconv_trans_data __libio_translit attribute_hidden =
 {
   .__trans_fct = __gconv_transliterate
 };
@@ -126,12 +127,11 @@ _IO_fwide (fp, mode)
         selected locale for LC_CTYPE.  */
 #ifdef _LIBC
       {
-       struct gconv_fcts fcts;
-
        /* Clear the state.  We start all over again.  */
        memset (&fp->_wide_data->_IO_state, '\0', sizeof (__mbstate_t));
        memset (&fp->_wide_data->_IO_last_state, '\0', sizeof (__mbstate_t));
 
+       struct gconv_fcts fcts;
        __wcsmbs_clone_conv (&fcts);
        assert (fcts.towc_nsteps == 1);
        assert (fcts.tomb_nsteps == 1);
@@ -159,7 +159,8 @@ _IO_fwide (fp, mode)
        cc->__cd_out.__cd.__data[0].__statep = &fp->_wide_data->_IO_state;
 
        /* And now the transliteration.  */
-       cc->__cd_out.__cd.__data[0].__trans = &__libio_translit;
+       cc->__cd_out.__cd.__data[0].__trans
+         = (struct __gconv_trans_data  *) &__libio_translit;
       }
 #else
 # ifdef _GLIBCPP_USE_WCHAR_T
@@ -232,7 +233,13 @@ do_out (struct _IO_codecvt *codecvt, __mbstate_t *statep,
   codecvt->__cd_out.__cd.__data[0].__outbufend = (unsigned char *) to_end;
   codecvt->__cd_out.__cd.__data[0].__statep = statep;
 
-  status = DL_CALL_FCT (gs->__fct,
+  __gconv_fct fct = gs->__fct;
+#ifdef PTR_DEMANGLE
+  if (gs->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
+
+  status = DL_CALL_FCT (fct,
                        (gs, codecvt->__cd_out.__cd.__data, &from_start_copy,
                         (const unsigned char *) from_end, NULL,
                         &dummy, 0, 0));
@@ -298,7 +305,13 @@ do_unshift (struct _IO_codecvt *codecvt, __mbstate_t *statep,
   codecvt->__cd_out.__cd.__data[0].__outbufend = (unsigned char *) to_end;
   codecvt->__cd_out.__cd.__data[0].__statep = statep;
 
-  status = DL_CALL_FCT (gs->__fct,
+  __gconv_fct fct = gs->__fct;
+#ifdef PTR_DEMANGLE
+  if (gs->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
+
+  status = DL_CALL_FCT (fct,
                        (gs, codecvt->__cd_out.__cd.__data, NULL, NULL,
                         NULL, &dummy, 1, 0));
 
@@ -361,7 +374,13 @@ do_in (struct _IO_codecvt *codecvt, __mbstate_t *statep,
   codecvt->__cd_in.__cd.__data[0].__outbufend = (unsigned char *) to_end;
   codecvt->__cd_in.__cd.__data[0].__statep = statep;
 
-  status = DL_CALL_FCT (gs->__fct,
+  __gconv_fct fct = gs->__fct;
+#ifdef PTR_DEMANGLE
+  if (gs->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
+
+  status = DL_CALL_FCT (fct,
                        (gs, codecvt->__cd_in.__cd.__data, &from_start_copy,
                         (const unsigned char *) from_end, NULL,
                         &dummy, 0, 0));
@@ -459,7 +478,13 @@ do_length (struct _IO_codecvt *codecvt, __mbstate_t *statep,
   codecvt->__cd_in.__cd.__data[0].__outbufend = (unsigned char *) &to_buf[max];
   codecvt->__cd_in.__cd.__data[0].__statep = statep;
 
-  status = DL_CALL_FCT (gs->__fct,
+  __gconv_fct fct = gs->__fct;
+#ifdef PTR_DEMANGLE
+  if (gs->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
+
+  status = DL_CALL_FCT (fct,
                        (gs, codecvt->__cd_in.__cd.__data, &cp,
                         (const unsigned char *) from_end, NULL,
                         &dummy, 0, 0));
index 319b0fd5f3052d2cca41f1e0d895cecfa5f9578e..be3b38a2e4a5fea9bdc3df8d59eb01cfa6050b96 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997-2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1997-2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -469,7 +469,7 @@ extern const struct _IO_jump_t _IO_streambuf_jumps;
 extern const struct _IO_jump_t _IO_old_proc_jumps attribute_hidden;
 extern const struct _IO_jump_t _IO_str_jumps attribute_hidden;
 extern const struct _IO_jump_t _IO_wstr_jumps attribute_hidden;
-extern struct _IO_codecvt __libio_codecvt attribute_hidden;
+extern const struct _IO_codecvt __libio_codecvt attribute_hidden;
 extern int _IO_do_write (_IO_FILE *, const char *, _IO_size_t) __THROW;
 extern int _IO_new_do_write (_IO_FILE *, const char *, _IO_size_t) __THROW;
 extern int _IO_old_do_write (_IO_FILE *, const char *, _IO_size_t) __THROW;
index fa92b11bbdb11d9bd056f52a4df51d94fc955303..88f1b49724e8ddd916ebac326c0919904b3cf3e2 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2001, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Bruno Haible <haible@clisp.cons.org>, 2000.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* Construction of sparse 3-level tables.
    See wchar-lookup.h or coll-lookup.h for their structure and the
index 903bd5cabc2b0fdc0d67c0642b2199ce0c605649..07d0cdcfd0616a69c641717793d01005ca9166a6 100644 (file)
@@ -1,20 +1,18 @@
-/* Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <dirent.h>
 #include <errno.h>
index 1d07c64ec1050ca01e28430bc038d89717f8dcc4..256db8dc35dee4d841aa57b20d3d68faaf7e010b 100644 (file)
@@ -1,20 +1,18 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _CHARMAP_DIR_H
 #define _CHARMAP_DIR_H 1
index 83da36aa7455777d143913d24c234087809c709d..64f74525009dbd118f07a732d2cf0309fa8e2f47 100644 (file)
@@ -1,22 +1,20 @@
 %{
-/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,1999,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <string.h>
 
index 089f45d7d8ba9ed3dc94b1db43f846c3a07a3f52..25996f4346a8a012475d29bbe2e443933d336000 100644 (file)
@@ -1,27 +1,56 @@
-/* ANSI-C code produced by gperf version 2.7.2 */
+/* ANSI-C code produced by gperf version 3.0.1 */
 /* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N charmap_hash programs/charmap-kw.gperf  */
-/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "programs/charmap-kw.gperf"
+
+/* Copyright (C) 1995,1996,1997,1998,1999,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <string.h>
 
 #include "locfile-token.h"
+#line 23 "programs/charmap-kw.gperf"
 struct keyword_t ;
 
 #define TOTAL_KEYWORDS 17
@@ -47,15 +76,15 @@ hash (register const char *str, register unsigned int len)
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
-      36, 36, 36, 36, 36, 36, 36, 36, 25, 10,
-      15, 20, 36, 36, 36, 36, 36, 36, 36, 36,
-      36, 36, 36, 36, 36, 36, 36, 10,  0,  0,
-       5, 36,  0,  0, 36, 36, 36,  0,  0, 36,
+      36, 36, 36, 36, 36, 36, 36, 36, 25, 20,
+      15, 10, 36, 36, 36, 36, 36, 36, 36, 36,
+      36, 36, 36, 36, 36, 36, 36,  5,  0,  0,
+       5, 36,  0,  0, 36, 36, 36,  5,  0, 36,
        0, 36,  0, 36,  0, 36, 36,  0, 36, 36,
-      36, 36, 36, 36, 36,  0, 36,  0,  0,  0,
-      10,  0, 36,  0,  0,  0, 36, 36, 36,  0,
+      36, 36, 36, 36, 36,  0, 36,  5,  0,  0,
+       5,  0, 36,  5,  0,  0, 36, 36, 36,  0,
        0,  0,  0,  0,  0,  0,  0,  0, 36, 36,
-      25, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+       0, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
       36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
@@ -75,17 +104,19 @@ hash (register const char *str, register unsigned int len)
   switch (hval)
     {
       default:
-      case 9:
         hval += asso_values[(unsigned char)str[8]];
+      /*FALLTHROUGH*/
       case 8:
       case 7:
       case 6:
       case 5:
         hval += asso_values[(unsigned char)str[4]];
+      /*FALLTHROUGH*/
       case 4:
       case 3:
       case 2:
         hval += asso_values[(unsigned char)str[1]];
+      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -102,29 +133,46 @@ charmap_hash (register const char *str, register unsigned int len)
   static const struct keyword_t wordlist[] =
     {
       {""}, {""}, {""},
+#line 38 "programs/charmap-kw.gperf"
       {"END",             tok_end,             0},
       {""},
+#line 39 "programs/charmap-kw.gperf"
       {"WIDTH",           tok_width,           0},
+#line 34 "programs/charmap-kw.gperf"
       {"escseq",          tok_escseq,          1},
+#line 36 "programs/charmap-kw.gperf"
       {"include",         tok_include,         1},
       {""}, {""},
+#line 27 "programs/charmap-kw.gperf"
       {"mb_cur_min",      tok_mb_cur_min,      1},
+#line 28 "programs/charmap-kw.gperf"
       {"escape_char",     tok_escape_char,     1},
+#line 29 "programs/charmap-kw.gperf"
       {"comment_char",    tok_comment_char,    1},
+#line 25 "programs/charmap-kw.gperf"
       {"code_set_name",   tok_code_set_name,   1},
+#line 40 "programs/charmap-kw.gperf"
       {"WIDTH_VARIABLE",  tok_width_variable,  0},
-      {"g1esc",           tok_g1esc,           1},
+#line 26 "programs/charmap-kw.gperf"
+      {"mb_cur_max",      tok_mb_cur_max,      1},
+#line 35 "programs/charmap-kw.gperf"
       {"addset",          tok_addset,          1},
+#line 37 "programs/charmap-kw.gperf"
       {"CHARMAP",         tok_charmap,         0},
+#line 41 "programs/charmap-kw.gperf"
       {"WIDTH_DEFAULT",   tok_width_default,   0},
       {""},
-      {"g2esc",           tok_g2esc,           1},
-      {""}, {""}, {""}, {""},
+#line 33 "programs/charmap-kw.gperf"
       {"g3esc",           tok_g3esc,           1},
       {""}, {""}, {""}, {""},
-      {"g0esc",           tok_g0esc,           1},
+#line 32 "programs/charmap-kw.gperf"
+      {"g2esc",           tok_g2esc,           1},
+      {""}, {""}, {""}, {""},
+#line 31 "programs/charmap-kw.gperf"
+      {"g1esc",           tok_g1esc,           1},
       {""}, {""}, {""}, {""},
-      {"mb_cur_max",      tok_mb_cur_max,      1}
+#line 30 "programs/charmap-kw.gperf"
+      {"g0esc",           tok_g0esc,           1}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
index b8aa1aafc46458e7d90691db4d36108d7baa4b53..6ac898d161097657c5eb92892540c739ec1f859f 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996, 1998-2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1998-2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index a4a6d3833ba7182ebd2461a63f649cfca4a708f3..a3f31d63330956874f8de2d6e1908e5c5f9a6d52 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996-1999, 2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999, 2001, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _CHARMAP_H
 #define _CHARMAP_H
index 12a921c1cf7c8d227b953a540c4a0d1747992b85..6f9bfde9038706122d0999ac9226cfd98370bc72 100644 (file)
@@ -1,22 +1,20 @@
 /* Configuration for localedef program.
-   Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,1998,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _LD_CONFIG_H
 #define _LD_CONFIG_H   1
index 5a7d821de63bea2bee39ae1343f42fb65541fe7b..4d649b0456346b177c95ee84e264ecdb075c8db3 100644 (file)
@@ -2,20 +2,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 00ad2ee4887e2e7e681bca1bdf05985a2dd7daae..66638d50c838fbc3685d79b91737dd948bcd58c6 100644 (file)
@@ -2,20 +2,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index ed8fa919d547881115299dbf8c356fddef0f0fb7..b0b2e3f805327435e80c31ea300cb7e18a7f5cb2 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index ae5ea6fb16e2367139de8f08b73b31537e655f8d..d050f7aaa90bf53578119b116f1337b220f7e22d 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index e3ec90199e9e32c9cace57cf0e0351f40950994b..6a9b847a1a3cb08163629f009026e4f8af02d026 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index d5cc393e4b25859ee4507963705c84d6cc91c9d3..e98574f1306f4eb76de93c7eebdfda964c9f1aa0 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 868ab6980ed34e2b24a1b083718a74865e897bad..27636d6498183618224fb39f5b3ce259e18fa048 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 80b42f70484809027eb7a01d350050a74dee4461..c1153fd51d0403c2013ea42e6844b38a80b9f1f1 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 594c0c8c1b7da2f4019d3d03d0c001b8adba6440..a101a402f49703645653b4979873148ed76465b2 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 2910954f04d34dd5f94894b9ed92cc8f054f426a..38f9af3e60e682619b226ebfbf3937658efe90eb 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 5a60c016b0ce76447ff757ed4de83096efd5b657..4075a14f46866bc8b6b137d97ef94b9a7ed79a29 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index a7dd25c80db358e92d751b281d9f613debbaac8b..2d63275d3cc059b4a9a4154f74c5350cac729dc9 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 5c8cf65012f0b2167f8cfb6f020ad6b95eb8de24..1d3e60f69f33c73d2f84b8df913fb37a9cb3ecaf 100644 (file)
@@ -2,20 +2,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 27043b24565081fd7d55a2eb98ff45117f553e3b..d4d7e830a6ec831c7071011d809ba336c24f1602 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _LINEREADER_H
 #define _LINEREADER_H 1
index a1a3aba47f7e1d8bab615cb9f79edcb78f3fc637..6ad3d95efed36e5029ad407dab4f7ebd7d2fe364 100644 (file)
@@ -1,22 +1,20 @@
 /* Handle special requests.
-   Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index d64bb0b5609353f20756917569ee36c3a9ecc7fa..526eb2b929b5f077b17daf773418373992b0ade6 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 326113c1753fa44601e5701176bcbd2c171d9ccd..dfabaa9f8acabede4c6c85fab0f00a35bfdd3c19 100644 (file)
@@ -2,20 +2,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 41f72860d4bf09bfda2ea5c0ca21c87cc79cbd51..f8cc4ca9c1f0d9050ca76b7f671308cae4561d35 100644 (file)
@@ -1,22 +1,20 @@
 /* General definitions for localedef(1).
-   Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1998,1999,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _LOCALEDEF_H
 #define _LOCALEDEF_H   1
index 1a1c7701d1236eb4cba2c0ced178871fdd40ca69..5c0d5f18ce94aae764cbb81a704bf792cd9d9603 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 7a9285d97e1a93a17f125acccbda26450ce24517..efdb9afab988f2eee75c6425cc07d79c7def6c4f 100644 (file)
@@ -1,22 +1,20 @@
 %{
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <string.h>
 
index da4a63e033bba2870e3b1ef8c54c7ce34de1a805..8692b0936c703ed10e43c1272111e281f1d84e3c 100644 (file)
@@ -1,35 +1,64 @@
-/* ANSI-C code produced by gperf version 2.7.2 */
+/* ANSI-C code produced by gperf version 3.0.1 */
 /* Command-line: gperf -acCgopt -k'1,2,5,9,$' -L ANSI-C -N locfile_hash programs/locfile-kw.gperf  */
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 1 "programs/locfile-kw.gperf"
+
+/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <string.h>
 
 #include "locfile-token.h"
+#line 23 "programs/locfile-kw.gperf"
 struct keyword_t ;
 
 #define TOTAL_KEYWORDS 175
 #define MIN_WORD_LENGTH 3
 #define MAX_WORD_LENGTH 22
 #define MIN_HASH_VALUE 3
-#define MAX_HASH_VALUE 687
-/* maximum key range = 685, duplicates = 0 */
+#define MAX_HASH_VALUE 610
+/* maximum key range = 608, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -43,49 +72,51 @@ hash (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-        5,   0, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688,  15, 688,   0,   0,   0,
-        5,   0,   0,   0, 688, 688,   0, 688,   0,   5,
-      688, 688,  15,   0,   5,  15, 688, 688, 688,   0,
-      688, 688, 688, 688, 688,  75, 688,   0,   0,  65,
-        5,   0,  85,  40,   5, 155, 688,  10, 105, 120,
-      125,  35,   5,  20,   5, 190,   0, 125,  35,  10,
-       30,  35,   0, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
-      688, 688, 688, 688, 688, 688
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+        5,   0, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611,   5, 611,   0,   0,   0,
+        0,   0,  10,   0, 611, 611,   0, 611,   0,   5,
+      611, 611,   0,   0,   0,  10, 611, 611, 611,   0,
+      611, 611, 611, 611, 611,   0, 611, 145, 105,  25,
+       15,   0, 190, 110,  10,  35, 611,   0,  80,  65,
+        5, 130,  40,  50,   5,   0,  10,  35,  50,  20,
+        5,  10,   0, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+      611, 611, 611, 611, 611, 611
     };
   register int hval = len;
 
   switch (hval)
     {
       default:
-      case 9:
         hval += asso_values[(unsigned char)str[8]];
+      /*FALLTHROUGH*/
       case 8:
       case 7:
       case 6:
       case 5:
         hval += asso_values[(unsigned char)str[4]];
+      /*FALLTHROUGH*/
       case 4:
       case 3:
       case 2:
         hval += asso_values[(unsigned char)str[1]];
+      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -102,314 +133,470 @@ locfile_hash (register const char *str, register unsigned int len)
   static const struct keyword_t wordlist[] =
     {
       {""}, {""}, {""},
+#line 30 "programs/locfile-kw.gperf"
       {"END",                    tok_end,                    0},
-      {""}, {""}, {""},
+      {""}, {""},
+#line 69 "programs/locfile-kw.gperf"
+      {"IGNORE",                 tok_ignore,                 0},
+#line 127 "programs/locfile-kw.gperf"
       {"LC_TIME",                tok_lc_time,                0},
-      {"era",                    tok_era,                    0},
-      {"date",                   tok_date,                   0},
+#line 29 "programs/locfile-kw.gperf"
+      {"LC_CTYPE",               tok_lc_ctype,               0},
+      {""},
+#line 164 "programs/locfile-kw.gperf"
       {"LC_ADDRESS",             tok_lc_address,             0},
+#line 149 "programs/locfile-kw.gperf"
       {"LC_MESSAGES",            tok_lc_messages,            0},
-      {"LC_TELEPHONE",           tok_lc_telephone,           0},
-      {"LC_CTYPE",               tok_lc_ctype,               0},
-      {"era_t_fmt",              tok_era_t_fmt,              0},
-      {"print",                  tok_print,                  0},
-      {"height",                 tok_height,                 0},
+#line 157 "programs/locfile-kw.gperf"
+      {"LC_NAME",                tok_lc_name,                0},
+#line 154 "programs/locfile-kw.gperf"
+      {"LC_PAPER",               tok_lc_paper,               0},
+#line 182 "programs/locfile-kw.gperf"
+      {"LC_MEASUREMENT",         tok_lc_measurement,         0},
+#line 55 "programs/locfile-kw.gperf"
+      {"LC_COLLATE",             tok_lc_collate,             0},
+      {""},
+#line 184 "programs/locfile-kw.gperf"
       {"LC_IDENTIFICATION",      tok_lc_identification,      0},
+#line 197 "programs/locfile-kw.gperf"
+      {"revision",               tok_revision,               0},
+#line 68 "programs/locfile-kw.gperf"
+      {"UNDEFINED",              tok_undefined,              0},
+#line 123 "programs/locfile-kw.gperf"
+      {"LC_NUMERIC",             tok_lc_numeric,             0},
+#line 80 "programs/locfile-kw.gperf"
+      {"LC_MONETARY",            tok_lc_monetary,            0},
+#line 177 "programs/locfile-kw.gperf"
+      {"LC_TELEPHONE",           tok_lc_telephone,           0},
       {""},
-      {"era_d_fmt",              tok_era_d_fmt,              0},
-      {"LC_COLLATE",             tok_lc_collate,             0},
-      {"IGNORE",                 tok_ignore,                 0},
-      {"LC_NAME",                tok_lc_name,                0},
-      {"backward",               tok_backward,               0},
+#line 130 "programs/locfile-kw.gperf"
       {"week",                   tok_week,                   0},
-      {"LC_NUMERIC",             tok_lc_numeric,             0},
+      {""},
+#line 74 "programs/locfile-kw.gperf"
+      {"define",                 tok_define,                 0},
+#line 150 "programs/locfile-kw.gperf"
+      {"yesexpr",                tok_yesexpr,                0},
+#line 139 "programs/locfile-kw.gperf"
+      {"era_year",               tok_era_year,               0},
+      {""},
+#line 53 "programs/locfile-kw.gperf"
+      {"translit_ignore",        tok_translit_ignore,        0},
+#line 152 "programs/locfile-kw.gperf"
+      {"yesstr",                 tok_yesstr,                 0},
+      {""},
+#line 87 "programs/locfile-kw.gperf"
+      {"negative_sign",          tok_negative_sign,          0},
+      {""},
+#line 135 "programs/locfile-kw.gperf"
+      {"t_fmt",                  tok_t_fmt,                  0},
+#line 155 "programs/locfile-kw.gperf"
+      {"height",                 tok_height,                 0},
+      {""}, {""},
+#line 51 "programs/locfile-kw.gperf"
+      {"translit_start",         tok_translit_start,         0},
+#line 134 "programs/locfile-kw.gperf"
+      {"d_fmt",                  tok_d_fmt,                  0},
+      {""},
+#line 52 "programs/locfile-kw.gperf"
+      {"translit_end",           tok_translit_end,           0},
+#line 92 "programs/locfile-kw.gperf"
+      {"n_cs_precedes",          tok_n_cs_precedes,          0},
+#line 142 "programs/locfile-kw.gperf"
+      {"era_t_fmt",              tok_era_t_fmt,              0},
+#line 38 "programs/locfile-kw.gperf"
+      {"space",                  tok_space,                  0},
+#line 71 "programs/locfile-kw.gperf"
       {"reorder-end",            tok_reorder_end,            0},
+#line 72 "programs/locfile-kw.gperf"
+      {"reorder-sections-after", tok_reorder_sections_after, 0},
       {""},
-      {"reorder-after",          tok_reorder_after,          0},
-      {"UNDEFINED",              tok_undefined,              0},
+#line 140 "programs/locfile-kw.gperf"
+      {"era_d_fmt",              tok_era_d_fmt,              0},
+#line 185 "programs/locfile-kw.gperf"
+      {"title",                  tok_title,                  0},
+      {""}, {""},
+#line 147 "programs/locfile-kw.gperf"
+      {"timezone",               tok_timezone,               0},
       {""},
-      {"LC_MONETARY",            tok_lc_monetary,            0},
+#line 73 "programs/locfile-kw.gperf"
+      {"reorder-sections-end",   tok_reorder_sections_end,   0},
+      {""}, {""}, {""},
+#line 93 "programs/locfile-kw.gperf"
+      {"n_sep_by_space",         tok_n_sep_by_space,         0},
+      {""}, {""},
+#line 98 "programs/locfile-kw.gperf"
+      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0},
+      {""}, {""}, {""},
+#line 25 "programs/locfile-kw.gperf"
+      {"escape_char",            tok_escape_char,            0},
       {""},
+#line 27 "programs/locfile-kw.gperf"
       {"repertoiremap",          tok_repertoiremap,          0},
-      {"LC_MEASUREMENT",         tok_lc_measurement,         0},
-      {""}, {""}, {""},
-      {"LC_PAPER",               tok_lc_paper,               0},
+#line 45 "programs/locfile-kw.gperf"
+      {"charclass",              tok_charclass,              0},
+#line 42 "programs/locfile-kw.gperf"
+      {"print",                  tok_print,                  0},
+#line 43 "programs/locfile-kw.gperf"
+      {"xdigit",                 tok_xdigit,                 0},
+#line 108 "programs/locfile-kw.gperf"
+      {"duo_n_cs_precedes",      tok_duo_n_cs_precedes,      0},
+#line 125 "programs/locfile-kw.gperf"
+      {"thousands_sep",          tok_thousands_sep,          0},
+#line 193 "programs/locfile-kw.gperf"
+      {"territory",              tok_territory,              0},
+#line 35 "programs/locfile-kw.gperf"
+      {"digit",                  tok_digit,                  0},
+      {""}, {""},
+#line 90 "programs/locfile-kw.gperf"
+      {"p_cs_precedes",          tok_p_cs_precedes,          0},
+      {""},
+#line 156 "programs/locfile-kw.gperf"
+      {"width",                  tok_width,                  0},
+#line 61 "programs/locfile-kw.gperf"
+      {"script",                 tok_script,                 0},
+#line 28 "programs/locfile-kw.gperf"
+      {"include",                tok_include,                0},
+      {""},
+#line 77 "programs/locfile-kw.gperf"
+      {"else",                   tok_else,                   0},
+#line 180 "programs/locfile-kw.gperf"
+      {"int_select",             tok_int_select,             0},
       {""}, {""}, {""}, {""},
-      {"day",                    tok_day,                    0},
+#line 32 "programs/locfile-kw.gperf"
+      {"upper",                  tok_upper,                  0},
       {""}, {""},
-      {"yesstr",                 tok_yesstr,                 0},
-      {""}, {""}, {""}, {""}, {""},
-      {"toupper",                tok_toupper,                0},
-      {"era_year",               tok_era_year,               0},
+#line 190 "programs/locfile-kw.gperf"
+      {"tel",                    tok_tel,                    0},
+#line 91 "programs/locfile-kw.gperf"
+      {"p_sep_by_space",         tok_p_sep_by_space,         0},
       {""}, {""},
-      {"order_start",            tok_order_start,            0},
-      {"tolower",                tok_tolower,                0},
+#line 96 "programs/locfile-kw.gperf"
+      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
       {""}, {""},
-      {"graph",                  tok_graph,                  0},
+#line 40 "programs/locfile-kw.gperf"
+      {"punct",                  tok_punct,                  0},
+      {""}, {""},
+#line 99 "programs/locfile-kw.gperf"
+      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
       {""}, {""}, {""},
-      {"order_end",              tok_order_end,              0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 106 "programs/locfile-kw.gperf"
+      {"duo_p_cs_precedes",      tok_duo_p_cs_precedes,      0},
+      {""}, {""},
+#line 46 "programs/locfile-kw.gperf"
+      {"class",                  tok_class,                  0},
+#line 112 "programs/locfile-kw.gperf"
+      {"duo_int_n_cs_precedes",  tok_duo_int_n_cs_precedes,  0},
+#line 113 "programs/locfile-kw.gperf"
+      {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
+#line 109 "programs/locfile-kw.gperf"
+      {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
+#line 117 "programs/locfile-kw.gperf"
+      {"duo_int_n_sign_posn",    tok_duo_int_n_sign_posn,    0},
+      {""}, {""}, {""},
+#line 47 "programs/locfile-kw.gperf"
+      {"charconv",               tok_charconv,               0},
+      {""}, {""},
+#line 183 "programs/locfile-kw.gperf"
+      {"measurement",            tok_measurement,            0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 57 "programs/locfile-kw.gperf"
+      {"section-symbol",         tok_section_symbol,         0},
+#line 181 "programs/locfile-kw.gperf"
+      {"int_prefix",             tok_int_prefix,             0},
+      {""}, {""}, {""}, {""},
+#line 137 "programs/locfile-kw.gperf"
+      {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
+      {""}, {""},
+#line 97 "programs/locfile-kw.gperf"
+      {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
       {""},
-      {"abday",                  tok_abday,                  0},
+#line 41 "programs/locfile-kw.gperf"
+      {"graph",                  tok_graph,                  0},
+      {""}, {""},
+#line 124 "programs/locfile-kw.gperf"
+      {"decimal_point",          tok_decimal_point,          0},
+      {""}, {""},
+#line 110 "programs/locfile-kw.gperf"
+      {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
+#line 111 "programs/locfile-kw.gperf"
+      {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
+#line 107 "programs/locfile-kw.gperf"
+      {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
+#line 116 "programs/locfile-kw.gperf"
+      {"duo_int_p_sign_posn",    tok_duo_int_p_sign_posn,    0},
+#line 153 "programs/locfile-kw.gperf"
+      {"nostr",                  tok_nostr,                  0},
+      {""}, {""},
+#line 138 "programs/locfile-kw.gperf"
+      {"era",                    tok_era,                    0},
       {""},
-      {"yesexpr",                tok_yesexpr,                0},
+#line 82 "programs/locfile-kw.gperf"
+      {"currency_symbol",        tok_currency_symbol,        0},
+      {""},
+#line 163 "programs/locfile-kw.gperf"
+      {"name_ms",                tok_name_ms,                0},
+#line 161 "programs/locfile-kw.gperf"
+      {"name_mrs",               tok_name_mrs,               0},
+#line 162 "programs/locfile-kw.gperf"
+      {"name_miss",              tok_name_miss,              0},
+#line 81 "programs/locfile-kw.gperf"
+      {"int_curr_symbol",        tok_int_curr_symbol,        0},
+#line 186 "programs/locfile-kw.gperf"
+      {"source",                 tok_source,                 0},
+#line 160 "programs/locfile-kw.gperf"
+      {"name_mr",                tok_name_mr,                0},
+#line 159 "programs/locfile-kw.gperf"
+      {"name_gen",               tok_name_gen,               0},
+#line 198 "programs/locfile-kw.gperf"
+      {"date",                   tok_date,                   0},
       {""}, {""},
-      {"t_fmt",                  tok_t_fmt,                  0},
-      {""}, {""}, {""}, {""},
-      {"d_fmt",                  tok_d_fmt,                  0},
+#line 187 "programs/locfile-kw.gperf"
+      {"address",                tok_address,                0},
+#line 158 "programs/locfile-kw.gperf"
+      {"name_fmt",               tok_name_fmt,               0},
+#line 31 "programs/locfile-kw.gperf"
+      {"copy",                   tok_copy,                   0},
       {""}, {""},
+#line 49 "programs/locfile-kw.gperf"
+      {"tolower",                tok_tolower,                0},
+#line 129 "programs/locfile-kw.gperf"
+      {"day",                    tok_day,                    0},
+#line 103 "programs/locfile-kw.gperf"
+      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
+#line 101 "programs/locfile-kw.gperf"
+      {"int_n_sign_posn",        tok_int_n_sign_posn,        0},
+      {""}, {""},
+#line 148 "programs/locfile-kw.gperf"
       {"date_fmt",               tok_date_fmt,               0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"grouping",               tok_grouping,               0},
+#line 63 "programs/locfile-kw.gperf"
+      {"order_end",              tok_order_end,              0},
       {""}, {""},
-      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
-      {""}, {""}, {""}, {""},
-      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
-      {"contact",                tok_contact,                0},
-      {"tel",                    tok_tel,                    0},
-      {"else",                   tok_else,                   0},
-      {"alpha",                  tok_alpha,                  0},
-      {"country_ab3",            tok_country_ab3,            0},
-      {""}, {""}, {""}, {""},
-      {"country_ab2",            tok_country_ab2,            0},
-      {"country_post",           tok_country_post,           0},
-      {"fax",                    tok_fax,                    0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"map",                    tok_map,                    0},
-      {""},
-      {"blank",                  tok_blank,                  0},
+#line 166 "programs/locfile-kw.gperf"
+      {"country_name",           tok_country_name,           0},
+#line 70 "programs/locfile-kw.gperf"
+      {"reorder-after",          tok_reorder_after,          0},
+#line 118 "programs/locfile-kw.gperf"
+      {"uno_valid_from",         tok_uno_valid_from,         0},
+#line 115 "programs/locfile-kw.gperf"
+      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
+#line 151 "programs/locfile-kw.gperf"
+      {"noexpr",                 tok_noexpr,                 0},
       {""},
-      {"forward",                tok_forward,                0},
+#line 194 "programs/locfile-kw.gperf"
       {"audience",               tok_audience,               0},
       {""},
-      {"punct",                  tok_punct,                  0},
-      {"define",                 tok_define,                 0},
-      {"abbreviation",           tok_abbreviation,           0},
-      {""},
-      {"copy",                   tok_copy,                   0},
-      {""}, {""}, {""},
-      {"decimal_point",          tok_decimal_point,          0},
+#line 44 "programs/locfile-kw.gperf"
+      {"blank",                  tok_blank,                  0},
       {""},
-      {"upper",                  tok_upper,                  0},
-      {""}, {""},
-      {"category",               tok_category,               0},
+#line 48 "programs/locfile-kw.gperf"
+      {"toupper",                tok_toupper,                0},
+#line 67 "programs/locfile-kw.gperf"
+      {"position",               tok_position,               0},
+#line 120 "programs/locfile-kw.gperf"
+      {"duo_valid_from",         tok_duo_valid_from,         0},
+#line 39 "programs/locfile-kw.gperf"
+      {"cntrl",                  tok_cntrl,                  0},
       {""},
-      {"conversion_rate",        tok_conversion_rate,        0},
+#line 26 "programs/locfile-kw.gperf"
+      {"comment_char",           tok_comment_char,           0},
+#line 86 "programs/locfile-kw.gperf"
+      {"positive_sign",          tok_positive_sign,          0},
       {""}, {""}, {""}, {""},
-      {"lower",                  tok_lower,                  0},
-      {""},
-      {"collating-element",      tok_collating_element,      0},
-      {"duo_p_sep_by_space",     tok_duo_p_sep_by_space,     0},
-      {""},
-      {"title",                  tok_title,                  0},
+#line 132 "programs/locfile-kw.gperf"
+      {"mon",                    tok_mon,                    0},
       {""}, {""},
-      {"timezone",               tok_timezone,               0},
+#line 171 "programs/locfile-kw.gperf"
+      {"country_car",            tok_country_car,            0},
       {""},
-      {"digit",                  tok_digit,                  0},
-      {""}, {""}, {""}, {""},
-      {"postal_fmt",             tok_postal_fmt,             0},
+#line 60 "programs/locfile-kw.gperf"
+      {"symbol-equivalence",     tok_symbol_equivalence,     0},
+#line 102 "programs/locfile-kw.gperf"
+      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0},
+#line 100 "programs/locfile-kw.gperf"
+      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
+      {""}, {""}, {""}, {""}, {""}, {""},
+#line 172 "programs/locfile-kw.gperf"
+      {"country_isbn",           tok_country_isbn,           0},
+#line 36 "programs/locfile-kw.gperf"
+      {"outdigit",               tok_outdigit,               0},
+      {""},
+#line 114 "programs/locfile-kw.gperf"
+      {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
       {""},
+#line 133 "programs/locfile-kw.gperf"
       {"d_t_fmt",                tok_d_t_fmt,                0},
-      {"position",               tok_position,               0},
-      {"p_sep_by_space",         tok_p_sep_by_space,         0},
-      {"nostr",                  tok_nostr,                  0},
-      {"noexpr",                 tok_noexpr,                 0},
+      {""}, {""},
+#line 33 "programs/locfile-kw.gperf"
+      {"lower",                  tok_lower,                  0},
       {""},
-      {"charconv",               tok_charconv,               0},
+#line 167 "programs/locfile-kw.gperf"
+      {"country_post",           tok_country_post,           0},
+#line 146 "programs/locfile-kw.gperf"
+      {"cal_direction",          tok_cal_direction,          0},
       {""},
-      {"width",                  tok_width,                  0},
-      {"country_car",            tok_country_car,            0},
-      {"comment_char",           tok_comment_char,           0},
-      {""}, {""}, {""}, {""},
-      {"lang_ab",                tok_lang_ab,                0},
-      {"lang_lib",               tok_lang_lib,               0},
+#line 189 "programs/locfile-kw.gperf"
+      {"email",                  tok_email,                  0},
+#line 141 "programs/locfile-kw.gperf"
+      {"era_d_t_fmt",            tok_era_d_t_fmt,            0},
+      {""}, {""},
+#line 173 "programs/locfile-kw.gperf"
       {"lang_name",              tok_lang_name,              0},
-      {""}, {""}, {""}, {""},
-      {"elif",                   tok_elif,                   0},
       {""},
-      {"xdigit",                 tok_xdigit,                 0},
+#line 179 "programs/locfile-kw.gperf"
+      {"tel_dom_fmt",            tok_tel_dom_fmt,            0},
       {""}, {""}, {""},
-      {"space",                  tok_space,                  0},
-      {""},
-      {"address",                tok_address,                0},
+#line 54 "programs/locfile-kw.gperf"
+      {"default_missing",        tok_default_missing,        0},
+#line 89 "programs/locfile-kw.gperf"
+      {"frac_digits",            tok_frac_digits,            0},
+      {""}, {""}, {""},
+#line 88 "programs/locfile-kw.gperf"
+      {"int_frac_digits",        tok_int_frac_digits,        0},
+#line 170 "programs/locfile-kw.gperf"
+      {"country_num",            tok_country_num,            0},
+#line 119 "programs/locfile-kw.gperf"
+      {"uno_valid_to",           tok_uno_valid_to,           0},
       {""}, {""}, {""}, {""}, {""},
-      {"name_fmt",               tok_name_fmt,               0},
-      {""},
-      {"t_fmt_ampm",             tok_t_fmt_ampm,             0},
-      {""},
-      {"name_mr",                tok_name_mr,                0},
-      {""},
-      {"from",                   tok_from,                   0},
+#line 50 "programs/locfile-kw.gperf"
+      {"map",                    tok_map,                    0},
       {""},
-      {"escape_char",            tok_escape_char,            0},
+#line 105 "programs/locfile-kw.gperf"
+      {"duo_frac_digits",        tok_duo_frac_digits,        0},
+#line 178 "programs/locfile-kw.gperf"
+      {"tel_int_fmt",            tok_tel_int_fmt,            0},
+#line 121 "programs/locfile-kw.gperf"
       {"duo_valid_to",           tok_duo_valid_to,           0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"reorder-sections-end",   tok_reorder_sections_end,   0},
+#line 144 "programs/locfile-kw.gperf"
+      {"first_weekday",          tok_first_weekday,          0},
       {""},
-      {"reorder-sections-after", tok_reorder_sections_after, 0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"territory",              tok_territory,              0},
+#line 143 "programs/locfile-kw.gperf"
+      {"alt_digits",             tok_alt_digits,             0},
+#line 95 "programs/locfile-kw.gperf"
+      {"n_sign_posn",            tok_n_sign_posn,            0},
+#line 84 "programs/locfile-kw.gperf"
+      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
+#line 145 "programs/locfile-kw.gperf"
+      {"first_workday",          tok_first_workday,          0},
+#line 64 "programs/locfile-kw.gperf"
+      {"from",                   tok_from,                   0},
+#line 131 "programs/locfile-kw.gperf"
+      {"abmon",                  tok_abmon,                  0},
       {""}, {""},
-      {"country_name",           tok_country_name,           0},
+#line 192 "programs/locfile-kw.gperf"
       {"language",               tok_language,               0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
-      {"tel_int_fmt",            tok_tel_int_fmt,            0},
-      {"mon_grouping",           tok_mon_grouping,           0},
-      {"positive_sign",          tok_positive_sign,          0},
+      {""}, {""},
+#line 195 "programs/locfile-kw.gperf"
+      {"application",            tok_application,            0},
       {""},
-      {"abmon",                  tok_abmon,                  0},
-      {"measurement",            tok_measurement,            0},
-      {""}, {""}, {""},
+#line 126 "programs/locfile-kw.gperf"
+      {"grouping",               tok_grouping,               0},
+#line 78 "programs/locfile-kw.gperf"
+      {"elif",                   tok_elif,                   0},
+#line 128 "programs/locfile-kw.gperf"
+      {"abday",                  tok_abday,                  0},
+      {""},
+#line 196 "programs/locfile-kw.gperf"
+      {"abbreviation",           tok_abbreviation,           0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 56 "programs/locfile-kw.gperf"
       {"coll_weight_max",        tok_coll_weight_max,        0},
-      {"collating-symbol",       tok_collating_symbol,       0},
-      {""}, {""}, {""}, {""},
-      {"script",                 tok_script,                 0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"cal_direction",          tok_cal_direction,          0},
-      {""}, {""}, {""}, {""},
-      {"duo_n_sep_by_space",     tok_duo_n_sep_by_space,     0},
-      {""}, {""}, {""}, {""},
-      {"mon",                    tok_mon,                    0},
-      {"translit_start",         tok_translit_start,         0},
-      {"translit_ignore",        tok_translit_ignore,        0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 66 "programs/locfile-kw.gperf"
+      {"backward",               tok_backward,               0},
+#line 104 "programs/locfile-kw.gperf"
+      {"duo_int_frac_digits",    tok_duo_int_frac_digits,    0},
       {""},
-      {"translit_end",           tok_translit_end,           0},
-      {"first_weekday",          tok_first_weekday,          0},
-      {""}, {""},
+#line 94 "programs/locfile-kw.gperf"
       {"p_sign_posn",            tok_p_sign_posn,            0},
       {""},
-      {"first_workday",          tok_first_workday,          0},
-      {"n_sep_by_space",         tok_n_sep_by_space,         0},
+#line 199 "programs/locfile-kw.gperf"
+      {"category",               tok_category,               0},
       {""},
-      {"source",                 tok_source,                 0},
-      {"mon_decimal_point",      tok_mon_decimal_point,      0},
-      {"symbol-equivalence",     tok_symbol_equivalence,     0},
+#line 122 "programs/locfile-kw.gperf"
+      {"conversion_rate",        tok_conversion_rate,        0},
       {""},
-      {"endif",                  tok_endif,                  0},
+#line 83 "programs/locfile-kw.gperf"
+      {"mon_decimal_point",      tok_mon_decimal_point,      0},
       {""}, {""}, {""},
-      {"duo_valid_from",         tok_duo_valid_from,         0},
-      {"default_missing",        tok_default_missing,        0},
-      {""}, {""},
-      {"int_p_sep_by_space",     tok_int_p_sep_by_space,     0},
-      {""},
-      {"alt_digits",             tok_alt_digits,             0},
+#line 62 "programs/locfile-kw.gperf"
+      {"order_start",            tok_order_start,            0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""},
-      {"duo_int_p_sep_by_space", tok_duo_int_p_sep_by_space, 0},
-      {""}, {""},
-      {"duo_p_sign_posn",        tok_duo_p_sign_posn,        0},
-      {""}, {""}, {""},
-      {"duo_currency_symbol",    tok_duo_currency_symbol,    0},
+#line 188 "programs/locfile-kw.gperf"
+      {"contact",                tok_contact,                0},
       {""}, {""}, {""},
-      {"outdigit",               tok_outdigit,               0},
-      {""}, {""}, {""}, {""},
-      {"revision",               tok_revision,               0},
+#line 169 "programs/locfile-kw.gperf"
+      {"country_ab3",            tok_country_ab3,            0},
       {""}, {""}, {""}, {""},
-      {"name_gen",               tok_name_gen,               0},
-      {""},
-      {"email",                  tok_email,                  0},
-      {""},
-      {"uno_valid_to",           tok_uno_valid_to,           0},
-      {"negative_sign",          tok_negative_sign,          0},
+#line 168 "programs/locfile-kw.gperf"
+      {"country_ab2",            tok_country_ab2,            0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"alnum",                  tok_alnum,                  0},
-      {""}, {""}, {""}, {""}, {""},
-      {"country_num",            tok_country_num,            0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"am_pm",                  tok_am_pm,                  0},
       {""},
-      {"mon_thousands_sep",      tok_mon_thousands_sep,      0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"currency_symbol",        tok_currency_symbol,        0},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"country_isbn",           tok_country_isbn,           0},
-      {""}, {""}, {""}, {""},
-      {"name_ms",                tok_name_ms,                0},
-      {"name_mrs",               tok_name_mrs,               0},
+#line 174 "programs/locfile-kw.gperf"
+      {"lang_ab",                tok_lang_ab,                0},
+#line 176 "programs/locfile-kw.gperf"
+      {"lang_lib",               tok_lang_lib,               0},
       {""}, {""}, {""}, {""},
-      {"thousands_sep",          tok_thousands_sep,          0},
-      {""},
-      {"cntrl",                  tok_cntrl,                  0},
-      {""}, {""}, {""}, {""}, {""},
-      {"n_sign_posn",            tok_n_sign_posn,            0},
-      {"include",                tok_include,                0},
-      {""}, {""},
-      {"ifdef",                  tok_ifdef,                  0},
+#line 191 "programs/locfile-kw.gperf"
+      {"fax",                    tok_fax,                    0},
       {""},
-      {"duo_p_cs_precedes",      tok_duo_p_cs_precedes,      0},
+#line 136 "programs/locfile-kw.gperf"
+      {"am_pm",                  tok_am_pm,                  0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""},
-      {"p_cs_precedes",          tok_p_cs_precedes,          0},
-      {"uno_valid_from",         tok_uno_valid_from,         0},
-      {"undef",                  tok_undef,                  0},
-      {""}, {""},
-      {"int_n_sep_by_space",     tok_int_n_sep_by_space,     0},
+#line 37 "programs/locfile-kw.gperf"
+      {"alnum",                  tok_alnum,                  0},
+      {""}, {""}, {""},
+#line 175 "programs/locfile-kw.gperf"
       {"lang_term",              tok_lang_term,              0},
-      {""}, {""},
-      {"duo_int_n_sep_by_space", tok_duo_int_n_sep_by_space, 0},
-      {""},
-      {"duo_int_p_sign_posn",    tok_duo_int_p_sign_posn,    0},
-      {"duo_n_sign_posn",        tok_duo_n_sign_posn,        0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""},
-      {"application",            tok_application,            0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-      {"int_p_sign_posn",        tok_int_p_sign_posn,        0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"duo_int_curr_symbol",    tok_duo_int_curr_symbol,    0},
-      {""}, {""}, {""}, {""}, {""},
-      {"int_prefix",             tok_int_prefix,             0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 79 "programs/locfile-kw.gperf"
+      {"endif",                  tok_endif,                  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-      {"duo_frac_digits",        tok_duo_frac_digits,        0},
-      {""}, {""}, {""}, {""}, {""},
-      {"duo_int_p_cs_precedes",  tok_duo_int_p_cs_precedes,  0},
+#line 165 "programs/locfile-kw.gperf"
+      {"postal_fmt",             tok_postal_fmt,             0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
-      {"frac_digits",            tok_frac_digits,            0},
-      {""}, {""},
-      {"charclass",              tok_charclass,              0},
+      {""}, {""}, {""}, {""}, {""}, {""},
+#line 75 "programs/locfile-kw.gperf"
+      {"undef",                  tok_undef,                  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
-      {"duo_n_cs_precedes",      tok_duo_n_cs_precedes,      0},
-      {""}, {""},
-      {"int_curr_symbol",        tok_int_curr_symbol,        0},
       {""}, {""},
-      {"n_cs_precedes",          tok_n_cs_precedes,          0},
-      {""},
-      {"int_select",             tok_int_select,             0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"duo_int_n_sign_posn",    tok_duo_int_n_sign_posn,    0},
-      {"class",                  tok_class,                  0},
+#line 58 "programs/locfile-kw.gperf"
+      {"collating-element",      tok_collating_element,      0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""},
-      {"int_p_cs_precedes",      tok_int_p_cs_precedes,      0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""},
-      {"duo_int_frac_digits",    tok_duo_int_frac_digits,    0},
-      {""}, {""}, {""}, {""}, {""},
-      {"int_n_sign_posn",        tok_int_n_sign_posn,        0},
-      {""}, {""}, {""},
-      {"name_miss",              tok_name_miss,              0},
+#line 85 "programs/locfile-kw.gperf"
+      {"mon_grouping",           tok_mon_grouping,           0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""},
+#line 65 "programs/locfile-kw.gperf"
+      {"forward",                tok_forward,                0},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 59 "programs/locfile-kw.gperf"
+      {"collating-symbol",       tok_collating_symbol,       0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""},
-      {"duo_int_n_cs_precedes",  tok_duo_int_n_cs_precedes,  0},
+#line 34 "programs/locfile-kw.gperf"
+      {"alpha",                  tok_alpha,                  0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-      {"int_frac_digits",        tok_int_frac_digits,        0},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {"section-symbol",         tok_section_symbol,         0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-      {"int_n_cs_precedes",      tok_int_n_cs_precedes,      0}
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 76 "programs/locfile-kw.gperf"
+      {"ifdef",                  tok_ifdef,                  0}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
index cada206655b9882d0888820c955209aaa5fa042a..beb979c6329f60b62bf5cf4fb9924411bf633988 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _TOKEN_H
 #define _TOKEN_H
index 1d3276a6bfc82df75fbff5ccd568a667a36328fd..bc12fbb332445185347ef96dcf5a881d5864b67e 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index db34f462e3b0d191ab3d2d37b22f121efb0f5938..f6290f0ee0eba4e6eebe994a9d87cb9c230d66a2 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _LOCFILE_H
 #define _LOCFILE_H     1
index 933b88f5cda1c10b73ab06895715384075f90645..7f7ba713b28dcf62d125190611021c5fb20c6a5c 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998,1999,2000,2001,2002,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2002,2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index d463c81690a5d3deeb76cd69ea52b03e17fe652b..75877044ca441405808203ce0ee7b54b3e465870 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _REPERTOIREMAP_H
 #define _REPERTOIREMAP_H       1
index c319068677d6f69a3583913e249a2f3afe1de49e..86bbdd5b13b68a52ce937f22fe658da4f50bda6d 100644 (file)
@@ -1,22 +1,20 @@
 /* Implement simple hashing table with string based keys.
-   Copyright (C) 1994-1997, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, October 1994.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index 469caedc191abde9a95b377d4f854c25c7cf5d27..7261ebc396cbe171ef0d712d0ae260e1dca18e9c 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1995-1999, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2001, 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef _SIMPLE_HASH_H
 #define _SIMPLE_HASH_H
index 9f3c2c1cd127f762b39b3d8c21e0b6d1055ff914..a95dc5a40f300b6b6f0144d75779d1b737337196 100644 (file)
@@ -1,21 +1,20 @@
 /* xmalloc.c -- malloc with out of memory checking
-   Copyright (C) 1990,91,92,93,94,95,96,97,2004 Free Software Foundation, Inc.
+   Copyright (C) 1990,91,92,93,94,95,96,97,2004,2005
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
index 7838d201abbe8d383b5405b9500c8a09c60dd911..12fb3a8287f8537b3984178787c0cf592e31abc0 100644 (file)
@@ -1,21 +1,19 @@
 /* xstrdup.c -- copy a string with out of memory checking
-   Copyright (C) 1990, 1996, 1997, 1999, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1990,1996,1997,1999,2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
index ebb5f15c3a043389e890cc11495873638fce5848..ad32e0bb5295de36fbfcfa720829af0b5b17c8ef 100644 (file)
@@ -1,3 +1,7 @@
+2005-11-21  Ulrich Drepper  <drepper@redhat.com>
+
+       * locales/se_NO: Remove RCS ID line.
+
 2005-11-16  Ulrich Drepper  <drepper@redhat.com>
 
        [BZ 1872]
index 1c98500a2ccc4e58170a5e8b3a4d2ad89f44edf7..d9eccf54efb23ea0722219e58f084997ff6c4551 100644 (file)
@@ -1,4 +1,3 @@
-#      $Id$    
 comment_char %
 escape_char  /
 %
@@ -71,7 +70,7 @@ collating-symbol <scaron>
 collating-symbol <oumlaut>
 collating-symbol <oslash>
 
-% 
+%
 reorder-after <CAP>
 <MIN>
 
@@ -267,7 +266,7 @@ am_pm       "";""
 t_fmt_ampm  ""
 
 % Denne linjen vil gi f.eks.:
-% duorasdat, borgem<U00E1>nu 23. b. 2001 00:47:57 CEST 
+% duorasdat, borgem<U00E1>nu 23. b. 2001 00:47:57 CEST
 date_fmt       "<U0025><U0041><U002C><U0020><U0025><U0042><U0020><U0025><U0064><U002E>/
 <U0020><U0062><U002E><U0020><U0025><U0059><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>/
 <U0020><U0025><U005A>"
similarity index 100%
rename from sysdeps/generic/getpt.c
rename to login/getpt.c
similarity index 100%
rename from sysdeps/generic/getutmp.c
rename to login/getutmp.c
similarity index 100%
rename from sysdeps/generic/getutmpx.c
rename to login/getutmpx.c
similarity index 100%
rename from sysdeps/generic/getutxid.c
rename to login/getutxid.c
similarity index 100%
rename from sysdeps/generic/grantpt.c
rename to login/grantpt.c
similarity index 100%
rename from sysdeps/generic/ptsname.c
rename to login/ptsname.c
similarity index 100%
rename from sysdeps/generic/unlockpt.c
rename to login/unlockpt.c
similarity index 100%
rename from sysdeps/generic/updwtmp.c
rename to login/updwtmp.c
similarity index 100%
rename from sysdeps/generic/updwtmpx.c
rename to login/updwtmpx.c
index e2e498d2b728d539f5a95274ce611dff9f485323..ab00ae40f28c89881b292b76e3bc722205fcd0a7 100644 (file)
  * rights to redistribute these changes.
  */
 /*
- * HISTORY
- * $Log$
- * Revision 1.5  1996/12/20 01:32:34  drepper
- * Update from main archive 961219
- *
- * Revision 1.5  1996/12/19 20:23:39  drepper
- * Spelling corrections.
- *
- * Revision 1.4  1993/12/17 06:14:52  mib
- * entered into RCS
+ * (pre-GNU) HISTORY
  *
  * Revision 2.3  92/04/01  19:38:02  rpd
  *     Added err_codes_device.
index 1594246462f088ed335da81cb8caa7f145263140..a2f806aa09293ebbf12815686312978a7a818ad1 100644 (file)
@@ -1,48 +1,45 @@
-/* 
+/*
  * Mach Operating System
  * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
  * All Rights Reserved.
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS 
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
  */
 /*
  * HISTORY
- * $Log$
- * Revision 1.1  1992/10/06 18:29:53  roland
- * entered into RCS
  *
  * Revision 2.2  92/01/16  00:10:29  rpd
  *     Moved from user collection to mk collection.
- * 
+ *
  * Revision 2.3  91/08/29  15:51:39  rpd
  *     Fixed err_codes_netname.
  *     [91/08/22            rpd]
- * 
+ *
  * Revision 2.2  91/03/27  16:05:51  mrt
  *     First checkin
- * 
+ *
  * Revision 2.3  90/10/29  17:27:20  dpj
  *     Merged-up to U25
  *     [90/09/02  20:00:25  dpj]
- * 
+ *
  */
 /*
  *     File:   err_server.sub
@@ -371,4 +368,3 @@ static struct error_subsystem err_server_sub[] = {
        },
 
 };
-
index 7261165d8df63e4fac0c6c90441aed9ee7f1d56c..184f11d369d49069f9471de8d2578dd4a5d918e2 100644 (file)
@@ -1,40 +1,37 @@
-/* 
+/*
  * Mach Operating System
  * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
  * All Rights Reserved.
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS 
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
  */
 /*
  * HISTORY
- * $Log$
- * Revision 1.2  1993/11/23 21:14:05  mib
- * entered into RCS
  *
  * Revision 2.2  92/01/16  00:10:45  rpd
  *     Moved from user collection to mk collection.
- * 
+ *
  * Revision 2.2  91/03/27  16:06:06  mrt
  *     First checkin
- * 
+ *
  */
 /*
  *     File:   err_us.sub
@@ -49,8 +46,3 @@
 static struct error_subsystem err_us_sub[] = {
        {0,0,0}
 };
-
-
-
-
-
index e874dd43d48647758e225ae1994bda612a2178e2..8f7bd87c0f9c8c89a98986b419b674a11bed0ab9 100644 (file)
@@ -1,54 +1,33 @@
-/* 
+/*
  * Mach Operating System
  * Copyright (c) 1991,1990,1989 Carnegie Mellon University
  * All Rights Reserved.
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
+ *
  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie Mellon
  * the rights to redistribute these changes.
  */
 
 /* This file was broken out from:
-       $Log$
-       Revision 1.2  1997/03/16 17:41:36  drepper
-       (__mach_error_map_compat): Give full prototype.
-
-       Revision 1.2  1997/03/14 15:26:28  thomas
-       Wed Mar  5 10:40:05 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
-
-               * mach/mach_error.c (mach_error_string_int): Give full prototype.
-               * mach/errstring.c (mach_error_string_int): Likewise.
-               * mach/error_compat.c (__mach_error_map_compat): Likewise.
-
-               * mach/spin-solid.c: Include <mach/mach_traps.h>.
-               * mach/spin-solid.c (__spin_lock_solid): Provide arg to
-               swtch_pri.
-
-               * mach/mach_init.c: Include <mach/mig_support.h>.
-
-               * mach/mach_error.h (mach_error_string, mach_error,
-               mach_error_type): Always provide prototypes.
-
-       Revision 1.1  1993/11/30 17:35:24  roland
-       entered into RCS
 
        Revision 2.3  92/04/01  19:38:18  rpd
+
    The static do_compat function is renamed to be globally accessible.
  */
 
@@ -62,9 +41,9 @@ __mach_error_map_compat(mach_error_t  *org_err)
 {
        mach_error_t            err = *org_err;
 
-       /* 
-        * map old error numbers to 
-        * to new error sys & subsystem 
+       /*
+        * map old error numbers to
+        * to new error sys & subsystem
         */
 
        if ((-200 < err) && (err <= -100))
index 7fe6350b434c3369304f0c2dbce26234c62b2503..ff0c55eb3646af3b1a197c076a96f56e8bbf95b2 100644 (file)
@@ -1,47 +1,41 @@
-/* 
+/*
  * Mach Operating System
  * Copyright (c) 1991,1990,1989 Carnegie Mellon University
  * All Rights Reserved.
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS 
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
  */
 /*
- * HISTORY
- * $Log$
- * Revision 1.5  1995/03/10 23:57:44  roland
- * (errors): Use const for decl.
- *
- * Revision 1.4  1993/12/17  21:56:16  roland
- * entered into RCS
+ * (pre-GNU) HISTORY
  *
  * Revision 2.3  92/03/31  15:18:52  rpd
  *     Added KERN_DEVICE_MOD for device errors.
  *     [92/03/09            rpd]
- * 
+ *
  * Revision 2.2  92/01/16  00:21:17  rpd
  *     Moved from user collection to mk collection.
- * 
+ *
  * Revision 2.2  91/03/27  15:37:37  mrt
  *     First checkin
- * 
+ *
  */
 /*
  *     File:   errorlib.h
index e56fa728cc29b8fa78a145a7814216b185b1aa66..52cf1eb46efbb4178280a8a739f0656a3b097791 100644 (file)
@@ -1,62 +1,40 @@
-/* 
+/*
  * Mach Operating System
  * Copyright (c) 1991,1990,1989 Carnegie Mellon University
  * All Rights Reserved.
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
+ *
  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie Mellon
  * the rights to redistribute these changes.
  */
 /*
- * HISTORY
- * $Log$
- * Revision 1.2  1997/03/16 17:41:48  drepper
- * (mach_error_string_int): Give full prototype.
- *
- * Revision 1.2  1997/03/14 15:26:29  thomas
- * Wed Mar  5 10:40:05 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
- *
- *     * mach/mach_error.c (mach_error_string_int): Give full prototype.
- *     * mach/errstring.c (mach_error_string_int): Likewise.
- *     * mach/error_compat.c (__mach_error_map_compat): Likewise.
- *
- *     * mach/spin-solid.c: Include <mach/mach_traps.h>.
- *     * mach/spin-solid.c (__spin_lock_solid): Provide arg to
- *     swtch_pri.
- *
- *     * mach/mach_init.c: Include <mach/mig_support.h>.
- *
- *     * mach/mach_error.h (mach_error_string, mach_error,
- *     mach_error_type): Always provide prototypes.
- *
- * Revision 1.1  1993/11/30 17:35:58  roland
- * entered into RCS
+ * (pre-GNU) HISTORY
  *
  * Revision 2.3  92/04/01  19:38:18  rpd
  *     Updated do_compat for kernel device errors,
  *     bootstrap file-system errors.
  *     [92/03/09            rpd]
- * 
+ *
  * Revision 2.2  92/02/20  15:58:08  elf
  *     Created from mach_error.c.
  *     [92/02/11            rpd]
- * 
+ *
  */
 
 #define EXPORT_BOOLEAN
index 70f189f65e1d5b6372fe437ca305b2672745b111..084d8afd37756f2d96ecd66f989eb21b385e2d11 100644 (file)
  * the rights to redistribute these changes.
  */
 /*
- * HISTORY
- * $Log$
- * Revision 1.3  1997/03/16 17:43:08  drepper
- * (mach_error_fn_t): Comment out declaration; it appears to be entirely
- * unused dead code.
- *
- * Revision 1.3  1997/03/14 15:27:35  thomas
- * Wed Mar  5 10:40:05 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
- *
- *     * mach/mach/mach_traps.h: Include <mach/kern_return.h>.
- *
- *     * mach/mach/error.h (mach_error_fn_t): Comment out declaration; it
- *     appears to be entirely unused dead code.
- *
- * Revision 1.2  1996/12/20 01:32:36  drepper
- * Update from main archive 961219
- *
- * Revision 1.2  1996/12/19 20:23:56  drepper
- * Spelling corrections.
- *
- * Revision 1.1  1993/12/17 21:40:28  roland
- * entered into RCS
+ * (pre-GNU) HISTORY
  *
  * Revision 2.6  93/01/14  17:41:31  danner
  *     Standardized include symbol name.
index f6f945fd73bcf22fd72a449c08b412834ad9e5f9..8bbb2ec74e861ba6cff4e072a3b8ecd2fe9c79b5 100644 (file)
@@ -1,73 +1,51 @@
-/* 
+/*
  * Mach Operating System
  * Copyright (c) 1991,1990,1989 Carnegie Mellon University
  * All Rights Reserved.
- * 
+ *
  * Permission to use, copy, modify and distribute this software and its
  * documentation is hereby granted, provided that both the copyright
  * notice and this permission notice appear in all copies of the
  * software, derivative works or modified versions, and any portions
  * thereof, and that both notices appear in supporting documentation.
- * 
+ *
  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
+ *
  * Carnegie Mellon requests users of this software to return to
- * 
+ *
  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  *  School of Computer Science
  *  Carnegie Mellon University
  *  Pittsburgh PA 15213-3890
- * 
+ *
  * any improvements or extensions that they make and grant Carnegie Mellon
  * the rights to redistribute these changes.
  */
 /*
- * HISTORY
- * $Log$
- * Revision 1.2  1997/03/16 17:42:02  drepper
- * (mach_error_string_int): Give full prototype.
- *
- * Revision 1.2  1997/03/14 15:26:30  thomas
- * Wed Mar  5 10:40:05 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
- *
- *     * mach/mach_error.c (mach_error_string_int): Give full prototype.
- *     * mach/errstring.c (mach_error_string_int): Likewise.
- *     * mach/error_compat.c (__mach_error_map_compat): Likewise.
- *
- *     * mach/spin-solid.c: Include <mach/mach_traps.h>.
- *     * mach/spin-solid.c (__spin_lock_solid): Provide arg to
- *     swtch_pri.
- *
- *     * mach/mach_init.c: Include <mach/mig_support.h>.
- *
- *     * mach/mach_error.h (mach_error_string, mach_error,
- *     mach_error_type): Always provide prototypes.
- *
- * Revision 1.1  1992/10/06 18:29:54  roland
- * entered into RCS
+ * (pre-GNU) HISTORY
  *
  * Revision 2.4  92/02/19  15:10:52  elf
  *     Moved mach_error_string and mach_error_type to mach_error_string.c.
  *     [92/02/11            rpd]
- * 
+ *
  * Revision 2.3  92/01/23  15:22:06  rpd
  *     Changed <servers/errorlib.h> to <errorlib.h>.
  *     [92/01/16            rpd]
- * 
+ *
  * Revision 2.2  92/01/16  00:08:03  rpd
  *     Moved from user collection to mk collection.
- * 
+ *
  * Revision 2.3  91/08/29  15:51:50  rpd
  *     Changed IPC_MIG_MOD to MACH_IPC_MIG_MOD, to get the new error strings.
  *     [91/08/22            rpd]
- * 
+ *
  * Revision 2.2  91/03/27  16:06:29  mrt
  *     Changed include of "errorlib.h" to <servers/errorlib.h>
  *     Added new copyright
  *     [91/03/20            mrt]
- * 
+ *
  */
 /*
  *     File:   mach_error.c
@@ -85,7 +63,7 @@
 extern char * mach_error_string_int(mach_error_t, boolean_t *);
 
 void
-mach_error( str, err ) 
+mach_error( str, err )
        char    *str;
        mach_error_t            err;
 {
index 78f7c526ea80e0ba6985833963d8f3b722e6d0f2..fc4a3fed7e6a6a1ad351abf190e11bf71b27880a 100644 (file)
  * rights to redistribute these changes.
  */
 /*
- * HISTORY
- * $Log$
- * Revision 1.4  2001/04/01 05:03:14  roland
- * 2001-03-11  Roland McGrath  <roland@frob.com>
- *
- *     * mach/mach_error.h: Fix ancient #endif syntax.
- *     * hurd/hurdmalloc.c: Likewise.
- *
- * Revision 1.3  1997/03/16 17:42:25  drepper
- * (mach_error_string, mach_error, mach_error_type): Always provide
- * prototypes.
- * (mach_error_fn_t): Comment out declaration; it appears to be entirely
- * unused dead code.
- *
- * Revision 1.3  1997/03/14 15:26:31  thomas
- * Wed Mar  5 10:40:05 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
- *
- *     * mach/mach_error.c (mach_error_string_int): Give full prototype.
- *     * mach/errstring.c (mach_error_string_int): Likewise.
- *     * mach/error_compat.c (__mach_error_map_compat): Likewise.
- *
- *     * mach/spin-solid.c: Include <mach/mach_traps.h>.
- *     * mach/spin-solid.c (__spin_lock_solid): Provide arg to
- *     swtch_pri.
- *
- *     * mach/mach_init.c: Include <mach/mig_support.h>.
- *
- *     * mach/mach_error.h (mach_error_string, mach_error,
- *     mach_error_type): Always provide prototypes.
- *
- * Revision 1.2  1993/11/23 20:39:08  mib
- * entered into RCS
+ * (pre-GNU) HISTORY
  *
  * Revision 2.2  92/01/16  00:08:10  rpd
  *     Moved from user collection to mk collection.
similarity index 100%
rename from sysdeps/generic/mig-reply.c
rename to mach/mig-reply.c
index 9ecbdc051209701e9dee1d68ab9dce75c69b19ac..19f96d4e218bb9887c9b771543cfdd71a7696d8a 100644 (file)
  * the rights to redistribute these changes.
  */
 /*
- * HISTORY
- * $Log$
- * Revision 1.6  2002/02/17 07:13:36  roland
- * 2002-02-16  Roland McGrath  <roland@frob.com>
- *
- *     * mach/msg-destroy.c (__mach_msg_destroy) [MACH_MSG_PORT_DESCRIPTOR]:
- *     Grok the OSF flavor of message format.
- *     (mach_msg_destroy_port): For MAKE_SEND and
- *     MAKE_SEND_ONCE rights, create an destroy a right to ensure proper
- *     no-senders notification.
- *
- * Revision 1.5  1997/06/21 01:40:07  drepper
- * More 64bit changes.
- *
- * Revision 1.4  1996/11/15 19:44:43  thomas
- * Tue Nov 12 16:58:41 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
- *
- *     * mach/mach.h (__mach_msg_destroy, mach_msg_destroy, __mach_msg):
- *     Provide prototypes.
- *
- *     * mach/msg-destroy.c (mach_msg_destroy_port,
- *     mach_msg_destroy_memory): Use prototype syntax.
- *     * hurd/hurdmalloc.c (more_memory, malloc_fork_prepare,
- *     malloc_fork_parent, malloc_fork_child): Likewise.
- *
- * Revision 1.3  1995/01/23 22:16:52  roland
- * (mach_msg_destroy): Define as weak alias for __mach_msg_destroy.
- *
- * Revision 1.2  1993/08/03  06:13:18  roland
- * entered into RCS
+ * (pre-GNU) HISTORY
  *
  * Revision 2.4  91/05/14  17:53:15  mrt
  *     Correcting copyright
index 82dc3d0c8fda9929dd72805b39945a2f7a3f566e..9478ae1914adf01d11dc325c3380ebf1fdec2335 100644 (file)
  * the rights to redistribute these changes.
  */
 /*
- * HISTORY
- * $Log$
- * Revision 1.9  2002/02/18 20:56:35  roland
- * 2002-02-18  Roland McGrath  <roland@frob.com>
- *
- *     * mach/msgserver.c (__mach_msg_server_timeout) [! MACH_RCV_LARGE]:
- *     Double MAX_SIZE and don't retry on MACH_RCV_TOO_LARGE.
- *
- * Revision 1.8  2002/02/17 07:13:32  roland
- * 2002-02-16  Roland McGrath  <roland@frob.com>
- *
- *     * mach/msgserver.c [NDR_CHAR_ASCII] (mig_reply_header_t): #define as
- *     mig_reply_error_t for OSF Mach variant.
- *
- * Revision 1.7  2001/07/06 04:55:34  aj
- * Update to LGPL v2.1.
- *
- * Revision 1.6  2001/04/09 21:23:38  roland
- * 2001-04-07  Roland McGrath  <roland@frob.com>
- *
- *     * mach/msgserver.c (__mach_msg_server_timeout): Add an assert.
- *
- * Revision 1.5  1996/12/20 01:32:35  drepper
- * Update from main archive 961219
- *
- * Revision 1.5  1996/12/19 20:23:45  drepper
- * Spelling corrections.
- *
- * Revision 1.4  1996/01/29 15:44:23  roland
- * Declare DEMUX arg with prototype.
- *
- * Revision 1.3  1995/01/21  15:00:57  roland
- * Converted to use weak aliases with macros from libc-symbols.h.
- *
- * Revision 1.2  1994/10/10  07:20:14  roland
- * Increase default MAX_SIZE to two pages.
- *
- * Revision 1.1  1993/12/06  23:25:25  roland
- * entered into RCS
+ * (pre-GNU) HISTORY
  *
  * Revision 2.4  91/05/14  17:53:22  mrt
  *     Correcting copyright
index abbca1f02e7b62795a01ab4a74f41910220cfa03..d0d223e94e42a8972c6acbe17c2c2f28a7499dcf 100644 (file)
@@ -18,8 +18,6 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-/* $Id$ */
-
 #include <stdbool.h>
 
 /* Compile-time constants.  */
index 5dd2d65e6208241e5ca38b39f00c38488953512d..708f0faf83116cdac9666825dda172ecb8be2f5d 100644 (file)
@@ -18,8 +18,6 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-/* $Id$ */
-
 /* What to do if the standard debugging hooks are in place and a
    corrupt pointer is detected: do nothing (0), print an error message
    (1), or call abort() (2). */
index f9aa5b1226f1f8a29c04d5dba82005ced0298e08..7730963637fbcab8b63bcbf02c1b6aa78370c292 100644 (file)
@@ -24,7 +24,6 @@
   Doug Lea and adapted to multiple threads/arenas by Wolfram Gloger.
 
 * Version ptmalloc2-20011215
-  $Id$
   based on:
   VERSION 2.7.0 Sun Mar 11 14:14:06 2001  Doug Lea  (dl at gee)
 
index b1cad9b25118603adfed1dac95e1b113fea13bc1..91e00af6d44a3ff67246b05f696b64cb3433e1b4 100644 (file)
@@ -1,22 +1,20 @@
 /* Generate graphic from memory profiling data.
-   Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #define _FILE_OFFSET_BITS 64
 
@@ -311,7 +309,7 @@ main (int argc, char *argv[])
        (maxsize_heap / heap_scale);
       gdImageDashedLine (im_out, 40, ysize - 20 - cnt, xsize - 40,
                         ysize - 20 - cnt, red);
-      snprintf (buf, sizeof (buf), heap_format, maxsize_heap / 4 * line / 
+      snprintf (buf, sizeof (buf), heap_format, maxsize_heap / 4 * line /
                heap_scale);
       gdImageString (im_out, gdFontSmall, 39 - strlen (buf) * 6,
                     ysize - 26 - cnt, buf, red);
similarity index 100%
rename from sysdeps/generic/morecore.c
rename to malloc/morecore.c
index abbc9d83b6bac238da5c916352bba9c3fea98c16..f90ce948873dda590e33d867c808b2589b831e62 100644 (file)
@@ -22,9 +22,8 @@ do_test (void)
 {
   pid_t parent = getpid ();
 
-  struct sigaction action;
+  struct sigaction action = { .sa_handler = sig_handler };
   sigemptyset (&action.sa_mask);
-  action.sa_handler = sig_handler;
 
   malloc (sizeof (int));
 
index f5920b12be3fd877b0d7edbcf22c5f5b3e3c9ec1..ee98f79f59b321f5bbde99bf2775565f272669df 100644 (file)
@@ -1,4 +1,3 @@
-$Id$
 This is the file .../info/dir, which contains the topmost node of the
 Info hierarchy.  The first time you invoke Info you start off
 looking at that node, which is (dir)Top.
index dee5c9b6b647bf64c3d14712c8217a9f527a4d34..b538f77fb2de3bc0f5da54ca681012435ca6e0cf 100644 (file)
@@ -357,11 +357,10 @@ understand all the tags used in the document, and the installation
 mechanism for the info files is not present or works differently.
 
 @item
-GNU @code{awk} 3.0, or some other POSIX awk
+GNU @code{awk} 3.0, or higher
 
-@code{Awk} is used in several places to generate files.  The scripts
-should work with any POSIX-compliant @code{awk} implementation;
-@code{gawk} 3.0 and @code{mawk} 1.3 are known to work.
+@code{Awk} is used in several places to generate files.
+@code{gawk} 3.0 is known to work.
 
 @item
 Perl 5
index 29de41a16754409ce01797cea7561a5c68fe4a9e..e4278b7a32f8522b2e457a579995575f28eb3ade 100644 (file)
@@ -4852,8 +4852,9 @@ Got r
 @comment GNU
 @deftypefun {FILE *} open_memstream (char **@var{ptr}, size_t *@var{sizeloc})
 This function opens a stream for writing to a buffer.  The buffer is
-allocated dynamically (as with @code{malloc}; @pxref{Unconstrained
-Allocation}) and grown as necessary.
+allocated dynamically and grown as necessary, using @code{malloc}.
+After you've closed the stream, this buffer is your responsibility to
+clean up using @code{free} or @code{realloc}.  @xref{Unconstrained Allocation}.
 
 When the stream is closed with @code{fclose} or flushed with
 @code{fflush}, the locations @var{ptr} and @var{sizeloc} are updated to
similarity index 100%
rename from sysdeps/generic/cabsf.c
rename to math/cabsf.c
similarity index 100%
rename from sysdeps/generic/cargf.c
rename to math/cargf.c
similarity index 100%
rename from sysdeps/generic/cimagf.c
rename to math/cimagf.c
similarity index 100%
rename from sysdeps/generic/conjf.c
rename to math/conjf.c
similarity index 100%
rename from sysdeps/generic/crealf.c
rename to math/crealf.c
similarity index 100%
rename from sysdeps/generic/e_acoshl.c
rename to math/e_acoshl.c
similarity index 100%
rename from sysdeps/generic/e_acosl.c
rename to math/e_acosl.c
similarity index 100%
rename from sysdeps/generic/e_asinl.c
rename to math/e_asinl.c
similarity index 100%
rename from sysdeps/generic/e_atan2l.c
rename to math/e_atan2l.c
similarity index 100%
rename from sysdeps/generic/e_atanhl.c
rename to math/e_atanhl.c
similarity index 100%
rename from sysdeps/generic/e_coshl.c
rename to math/e_coshl.c
similarity index 100%
rename from sysdeps/generic/e_exp10.c
rename to math/e_exp10.c
similarity index 100%
rename from sysdeps/generic/e_exp10f.c
rename to math/e_exp10f.c
similarity index 100%
rename from sysdeps/generic/e_exp10l.c
rename to math/e_exp10l.c
similarity index 100%
rename from sysdeps/generic/e_exp2l.c
rename to math/e_exp2l.c
similarity index 100%
rename from sysdeps/generic/e_expl.c
rename to math/e_expl.c
similarity index 100%
rename from sysdeps/generic/e_fmodl.c
rename to math/e_fmodl.c
similarity index 100%
rename from sysdeps/generic/e_hypotl.c
rename to math/e_hypotl.c
similarity index 100%
rename from sysdeps/generic/e_j0l.c
rename to math/e_j0l.c
similarity index 100%
rename from sysdeps/generic/e_j1l.c
rename to math/e_j1l.c
similarity index 100%
rename from sysdeps/generic/e_jnl.c
rename to math/e_jnl.c
similarity index 100%
rename from sysdeps/generic/e_log10l.c
rename to math/e_log10l.c
similarity index 100%
rename from sysdeps/generic/e_log2l.c
rename to math/e_log2l.c
similarity index 100%
rename from sysdeps/generic/e_logl.c
rename to math/e_logl.c
similarity index 100%
rename from sysdeps/generic/e_powl.c
rename to math/e_powl.c
similarity index 98%
rename from sysdeps/generic/e_scalb.c
rename to math/e_scalb.c
index a7664db5465e36902d36d185b8ec4cc50e9ec284..606af537245f76400b93221e91d5dd815cecb715 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: e_scalb.c,v 1.6 1995/05/10 20:46:09 jtc Exp $";
  */
 
 #include <fenv.h>
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef _SCALB_INT
similarity index 98%
rename from sysdeps/generic/e_scalbf.c
rename to math/e_scalbf.c
index 5c6326bc16ec758758c9a79dddf16989a164f5c5..95a72eb56de87bad6ca4ae4531046c5e1d43c23a 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: e_scalbf.c,v 1.3 1995/05/10 20:46:12 jtc Exp $";
 #endif
 
 #include <fenv.h>
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef _SCALB_INT
similarity index 98%
rename from sysdeps/generic/e_scalbl.c
rename to math/e_scalbl.c
index a34369c0b515a0c23b5527b7d951a43324f7cc76..1f5677d9f4fcae1d567cd8e82087e6157b4dd65e 100644 (file)
@@ -25,7 +25,7 @@ static char rcsid[] = "$NetBSD: $";
  */
 
 #include <fenv.h>
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef _SCALB_INT
similarity index 100%
rename from sysdeps/generic/e_sinhl.c
rename to math/e_sinhl.c
similarity index 100%
rename from sysdeps/generic/e_sqrtl.c
rename to math/e_sqrtl.c
similarity index 100%
rename from sysdeps/generic/fclrexcpt.c
rename to math/fclrexcpt.c
similarity index 100%
rename from sysdeps/generic/fegetenv.c
rename to math/fegetenv.c
similarity index 100%
rename from sysdeps/generic/fesetenv.c
rename to math/fesetenv.c
similarity index 100%
rename from sysdeps/generic/k_cosl.c
rename to math/k_cosl.c
similarity index 100%
rename from sysdeps/generic/k_sincosl.c
rename to math/k_sincosl.c
similarity index 100%
rename from sysdeps/generic/k_sinl.c
rename to math/k_sinl.c
similarity index 100%
rename from sysdeps/generic/k_tanl.c
rename to math/k_tanl.c
index a6a85d3b1eccbf6c3bf8132154ddfe901a57e85d..572e546831448b254eea71eb1490b26eedcdb840 100644 (file)
@@ -11,7 +11,6 @@
 
 /*
  * from: @(#)fdlibm.h 5.1 93/09/24
- * $Id$
  */
 
 #ifndef _MATH_PRIVATE_H_
similarity index 100%
rename from sysdeps/generic/s_asinhl.c
rename to math/s_asinhl.c
similarity index 100%
rename from sysdeps/generic/s_atanl.c
rename to math/s_atanl.c
similarity index 100%
rename from sysdeps/generic/s_cacos.c
rename to math/s_cacos.c
similarity index 100%
rename from sysdeps/generic/s_cacosf.c
rename to math/s_cacosf.c
similarity index 100%
rename from sysdeps/generic/s_cacosh.c
rename to math/s_cacosh.c
similarity index 100%
rename from sysdeps/generic/s_cacoshf.c
rename to math/s_cacoshf.c
similarity index 100%
rename from sysdeps/generic/s_cacoshl.c
rename to math/s_cacoshl.c
similarity index 100%
rename from sysdeps/generic/s_cacosl.c
rename to math/s_cacosl.c
similarity index 100%
rename from sysdeps/generic/s_casin.c
rename to math/s_casin.c
similarity index 100%
rename from sysdeps/generic/s_casinf.c
rename to math/s_casinf.c
similarity index 100%
rename from sysdeps/generic/s_casinh.c
rename to math/s_casinh.c
similarity index 100%
rename from sysdeps/generic/s_casinhf.c
rename to math/s_casinhf.c
similarity index 100%
rename from sysdeps/generic/s_casinhl.c
rename to math/s_casinhl.c
similarity index 100%
rename from sysdeps/generic/s_casinl.c
rename to math/s_casinl.c
similarity index 100%
rename from sysdeps/generic/s_catan.c
rename to math/s_catan.c
similarity index 100%
rename from sysdeps/generic/s_catanf.c
rename to math/s_catanf.c
similarity index 100%
rename from sysdeps/generic/s_catanh.c
rename to math/s_catanh.c
similarity index 100%
rename from sysdeps/generic/s_catanhf.c
rename to math/s_catanhf.c
similarity index 100%
rename from sysdeps/generic/s_catanhl.c
rename to math/s_catanhl.c
similarity index 100%
rename from sysdeps/generic/s_catanl.c
rename to math/s_catanl.c
similarity index 100%
rename from sysdeps/generic/s_cbrtl.c
rename to math/s_cbrtl.c
similarity index 100%
rename from sysdeps/generic/s_ccos.c
rename to math/s_ccos.c
similarity index 100%
rename from sysdeps/generic/s_ccosf.c
rename to math/s_ccosf.c
similarity index 100%
rename from sysdeps/generic/s_ccosh.c
rename to math/s_ccosh.c
similarity index 100%
rename from sysdeps/generic/s_ccoshf.c
rename to math/s_ccoshf.c
similarity index 100%
rename from sysdeps/generic/s_ccoshl.c
rename to math/s_ccoshl.c
similarity index 100%
rename from sysdeps/generic/s_ccosl.c
rename to math/s_ccosl.c
similarity index 100%
rename from sysdeps/generic/s_cexp.c
rename to math/s_cexp.c
similarity index 100%
rename from sysdeps/generic/s_cexpf.c
rename to math/s_cexpf.c
similarity index 100%
rename from sysdeps/generic/s_cexpl.c
rename to math/s_cexpl.c
similarity index 100%
rename from sysdeps/generic/s_clog.c
rename to math/s_clog.c
similarity index 100%
rename from sysdeps/generic/s_clog10.c
rename to math/s_clog10.c
similarity index 100%
rename from sysdeps/generic/s_clog10f.c
rename to math/s_clog10f.c
similarity index 100%
rename from sysdeps/generic/s_clog10l.c
rename to math/s_clog10l.c
similarity index 100%
rename from sysdeps/generic/s_clogf.c
rename to math/s_clogf.c
similarity index 100%
rename from sysdeps/generic/s_clogl.c
rename to math/s_clogl.c
similarity index 100%
rename from sysdeps/generic/s_cpow.c
rename to math/s_cpow.c
similarity index 100%
rename from sysdeps/generic/s_cpowf.c
rename to math/s_cpowf.c
similarity index 100%
rename from sysdeps/generic/s_cpowl.c
rename to math/s_cpowl.c
similarity index 100%
rename from sysdeps/generic/s_cproj.c
rename to math/s_cproj.c
similarity index 100%
rename from sysdeps/generic/s_cprojf.c
rename to math/s_cprojf.c
similarity index 100%
rename from sysdeps/generic/s_cprojl.c
rename to math/s_cprojl.c
similarity index 100%
rename from sysdeps/generic/s_csin.c
rename to math/s_csin.c
similarity index 100%
rename from sysdeps/generic/s_csinf.c
rename to math/s_csinf.c
similarity index 100%
rename from sysdeps/generic/s_csinh.c
rename to math/s_csinh.c
similarity index 100%
rename from sysdeps/generic/s_csinhf.c
rename to math/s_csinhf.c
similarity index 100%
rename from sysdeps/generic/s_csinhl.c
rename to math/s_csinhl.c
similarity index 100%
rename from sysdeps/generic/s_csinl.c
rename to math/s_csinl.c
similarity index 100%
rename from sysdeps/generic/s_csqrt.c
rename to math/s_csqrt.c
similarity index 100%
rename from sysdeps/generic/s_csqrtf.c
rename to math/s_csqrtf.c
similarity index 100%
rename from sysdeps/generic/s_csqrtl.c
rename to math/s_csqrtl.c
similarity index 100%
rename from sysdeps/generic/s_ctan.c
rename to math/s_ctan.c
similarity index 100%
rename from sysdeps/generic/s_ctanf.c
rename to math/s_ctanf.c
similarity index 100%
rename from sysdeps/generic/s_ctanh.c
rename to math/s_ctanh.c
similarity index 100%
rename from sysdeps/generic/s_ctanhf.c
rename to math/s_ctanhf.c
similarity index 100%
rename from sysdeps/generic/s_ctanhl.c
rename to math/s_ctanhl.c
similarity index 100%
rename from sysdeps/generic/s_ctanl.c
rename to math/s_ctanl.c
similarity index 100%
rename from sysdeps/generic/s_erfl.c
rename to math/s_erfl.c
similarity index 100%
rename from sysdeps/generic/s_expm1l.c
rename to math/s_expm1l.c
similarity index 100%
rename from sysdeps/generic/s_fdim.c
rename to math/s_fdim.c
similarity index 100%
rename from sysdeps/generic/s_fdimf.c
rename to math/s_fdimf.c
similarity index 100%
rename from sysdeps/generic/s_fdiml.c
rename to math/s_fdiml.c
similarity index 100%
rename from sysdeps/generic/s_fma.c
rename to math/s_fma.c
similarity index 100%
rename from sysdeps/generic/s_fmaf.c
rename to math/s_fmaf.c
similarity index 100%
rename from sysdeps/generic/s_fmal.c
rename to math/s_fmal.c
similarity index 100%
rename from sysdeps/generic/s_fmax.c
rename to math/s_fmax.c
similarity index 100%
rename from sysdeps/generic/s_fmaxf.c
rename to math/s_fmaxf.c
similarity index 100%
rename from sysdeps/generic/s_fmaxl.c
rename to math/s_fmaxl.c
similarity index 100%
rename from sysdeps/generic/s_fmin.c
rename to math/s_fmin.c
similarity index 100%
rename from sysdeps/generic/s_fminf.c
rename to math/s_fminf.c
similarity index 100%
rename from sysdeps/generic/s_fminl.c
rename to math/s_fminl.c
similarity index 98%
rename from sysdeps/generic/s_ldexp.c
rename to math/s_ldexp.c
index 12c336fad49d7d94fac1b5037ff7d0ec6bc45462..62e123cd01a785fe3b0128b7bc1b48065bcdb98a 100644 (file)
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: s_ldexp.c,v 1.6 1995/05/10 20:47:40 jtc Exp $";
 #endif
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 #include <errno.h>
 
similarity index 98%
rename from sysdeps/generic/s_ldexpf.c
rename to math/s_ldexpf.c
index 631db422a398b3446f99af24230e6ddc07d73240..1ea5e09f8fd89e26af0a0a2fd4ce85819f459ede 100644 (file)
@@ -17,7 +17,7 @@
 static char rcsid[] = "$NetBSD: s_ldexpf.c,v 1.3 1995/05/10 20:47:42 jtc Exp $";
 #endif
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 #include <errno.h>
 
similarity index 98%
rename from sysdeps/generic/s_ldexpl.c
rename to math/s_ldexpl.c
index 123a6b3b589484c84c02ef9efb562fbeb76ca081..df8b29f94d60bd58b03ef7a1007263ea073adaf7 100644 (file)
@@ -18,7 +18,7 @@
 static char rcsid[] = "$NetBSD: $";
 #endif
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 #include <errno.h>
 
similarity index 100%
rename from sysdeps/generic/s_log1pl.c
rename to math/s_log1pl.c
similarity index 100%
rename from sysdeps/generic/s_nan.c
rename to math/s_nan.c
similarity index 100%
rename from sysdeps/generic/s_nanf.c
rename to math/s_nanf.c
similarity index 100%
rename from sysdeps/generic/s_nanl.c
rename to math/s_nanl.c
similarity index 99%
rename from sysdeps/generic/s_nextafter.c
rename to math/s_nextafter.c
index c2d799d5df3f0c128bf10235b9bd96c945b8a760..9c678b79c57c0efb9cf3e8fd412deb284daf94c9 100644 (file)
@@ -25,7 +25,7 @@ static char rcsid[] = "$NetBSD: s_nextafter.c,v 1.8 1995/05/10 20:47:58 jtc Exp
 #define __nexttoward __internal___nexttoward
 #define nexttoward __internal_nexttoward
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 #include <float.h>
 
similarity index 99%
rename from sysdeps/generic/s_nexttowardf.c
rename to math/s_nexttowardf.c
index 4f502c210eac80ff80decec074ef2b8c31fa1b21..1a1026612e2ebe076e44fe57150fcd66a49a31cb 100644 (file)
@@ -20,7 +20,7 @@
  *   Special cases:
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 #include <float.h>
 
similarity index 98%
rename from sysdeps/generic/s_significand.c
rename to math/s_significand.c
index f95b6481c25442e54e71818894556577693f3c2e..4a02dbcba1fd43bc5b6283fe7fc59bdedb0033a3 100644 (file)
@@ -20,7 +20,7 @@ static char rcsid[] = "$NetBSD: s_significand.c,v 1.6 1995/05/10 20:48:11 jtc Ex
  * for exercising the fraction-part(F) IEEE 754-1985 test vector.
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 97%
rename from sysdeps/generic/s_significandf.c
rename to math/s_significandf.c
index cf5eb59efc84ee9162aff59cad540a1747986516..69de1e6b0effb9171ee7c6009d2fcc6a7817774c 100644 (file)
@@ -17,7 +17,7 @@
 static char rcsid[] = "$NetBSD: s_significandf.c,v 1.3 1995/05/10 20:48:13 jtc Exp $";
 #endif
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/s_significandl.c
rename to math/s_significandl.c
index d84e806fdc27e6b2b6533af1c42aff80e32de90e..9fa0e4ff91d41b0f772497f82e0a58fb08c24cf8 100644 (file)
@@ -24,7 +24,7 @@ static char rcsid[] = "$NetBSD: $";
  * for exercising the fraction-part(F) IEEE 754-1985 test vector.
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 100%
rename from sysdeps/generic/s_tanhl.c
rename to math/s_tanhl.c
similarity index 100%
rename from sysdeps/generic/setfpucw.c
rename to math/setfpucw.c
similarity index 100%
rename from sysdeps/generic/t_sincosl.c
rename to math/t_sincosl.c
similarity index 98%
rename from sysdeps/generic/w_acos.c
rename to math/w_acos.c
index 5a1158ea7a8c695fb885b25f28b5f6245695cf70..f4e6e3c91097942708e34a8b9ef3deee9f18b14c 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_acos.c,v 1.6 1995/05/10 20:48:26 jtc Exp $";
  * wrap_acos(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_acosf.c
rename to math/w_acosf.c
index 28260ddd3ecb52e029b5c3068f8522196efd4871..a8998efb840ed9f7da7bd02ee39e33f8c852b768 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_acosf.c,v 1.3 1995/05/10 20:48:29 jtc Exp $";
  * wrap_acosf(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_acosh.c
rename to math/w_acosh.c
index 2b5d60f7ea7771c732b373edbbc8282d13a0af20..e8322ec6673b23b18da188a3f1cdcebee0f45d21 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_acosh.c,v 1.6 1995/05/10 20:48:31 jtc Exp $";
  * wrapper acosh(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_acoshf.c
rename to math/w_acoshf.c
index f701983dc24608e1022ad32e7773b814dcbc575a..62f94b80e7a10f66181ce5f384f709aaad3adf18 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: w_acoshf.c,v 1.3 1995/05/10 20:48:33 jtc Exp $";
  * wrapper acoshf(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_acoshl.c
rename to math/w_acoshl.c
index a37d4c15d95004b9eceb865a53e02d1c280bbc1e..ae67911ae5a9f9d1ae2b2dc6c8697287b8c75a32 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper acoshl(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_acosl.c
rename to math/w_acosl.c
index cd9cecf2f942e522db1ac675ca10be5addc5e929..9ab4de899fb64f6e09d5b44a5d98f2e8cf5a1656 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrap_acosl(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_asin.c
rename to math/w_asin.c
index a7ca4ef9fd44f4e78cad637f3e932d2c78a057d9..d531fbd26a2a6419a3a177d050de49e1d52ba2dd 100644 (file)
@@ -19,7 +19,7 @@ static char rcsid[] = "$NetBSD: w_asin.c,v 1.6 1995/05/10 20:48:35 jtc Exp $";
  */
 
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_asinf.c
rename to math/w_asinf.c
index d7f7a253b0b9f0a2eee5dd1c6476f8a98ba9b25e..b19b5c54e3db60f4081bcac97e65c60c041a8ed5 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: w_asinf.c,v 1.3 1995/05/10 20:48:37 jtc Exp $";
  */
 
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_asinl.c
rename to math/w_asinl.c
index 0ac3038e957c2a503a7ab603ebc6ecfea4684266..fb5ee35fc07d94516df7d1726bb79ea0f2a57087 100644 (file)
@@ -23,7 +23,7 @@ static char rcsid[] = "$NetBSD: $";
  */
 
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_atan2.c
rename to math/w_atan2.c
index 801baa2347035bcb273574eb5f8dd0978c4ef3f2..f0a10d4102e6a16ed713797e004ecb8135ee3711 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_atan2.c,v 1.6 1995/05/10 20:48:39 jtc Exp $";
  * wrapper atan2(y,x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_atan2f.c
rename to math/w_atan2f.c
index 09caa06f00ca629eb959e8722ff9aaf4eccaa18c..efb08f076bff698c1c9239c3fdde67850f803a68 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_atan2f.c,v 1.3 1995/05/10 20:48:42 jtc Exp $";
  * wrapper atan2f(y,x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_atan2l.c
rename to math/w_atan2l.c
index 2897c8c5f939efa6355390afca82dcdb0f03bde8..9672e9615fdb70225de8e2a9a793ed2fe1636bfa 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper atan2l(y,x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_atanh.c
rename to math/w_atanh.c
index e7995b183077fd23ce48d9d4807e4e5c73023edf..b81f65c311f259492ba7cc5874b87bea69abcf32 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_atanh.c,v 1.6 1995/05/10 20:48:43 jtc Exp $";
  * wrapper atanh(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_atanhf.c
rename to math/w_atanhf.c
index 0b24f2c71a7c615cc6867196479a138d3e9e44e8..52a144c05ace1e7a5f6161b9f5c86f8a1e09086e 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_atanhf.c,v 1.3 1995/05/10 20:48:45 jtc Exp $";
  * wrapper atanhf(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_atanhl.c
rename to math/w_atanhl.c
index d675fc6fe7eb94a84beae3616b18e4ece9b3aa0f..5ce53b847d7eb1967bda39bf800fd29e5f63782e 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper atanhl(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_cosh.c
rename to math/w_cosh.c
index 709f485c6d562af9475098875a4ff59c8156c8a8..033a034059130b426f793fdfa3ae47c33a343fb3 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_cosh.c,v 1.6 1995/05/10 20:48:47 jtc Exp $";
  * wrapper cosh(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_coshf.c
rename to math/w_coshf.c
index c38fd1d93f94c5bc5377eae0bc53511ba966e951..8e24ca9adc63690cc42c6f71c5e5d278587cfee2 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_coshf.c,v 1.3 1995/05/10 20:48:49 jtc Exp $";
  * wrapper coshf(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_coshl.c
rename to math/w_coshl.c
index cc1929a9ec8c3b252b78b6cf69decf1d4a031713..5f4623a81a67b59accaac6fd6444963f74e93c32 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper coshl(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 100%
rename from sysdeps/generic/w_drem.c
rename to math/w_drem.c
similarity index 93%
rename from sysdeps/generic/w_dremf.c
rename to math/w_dremf.c
index b740ea304c2c872bb045f0eb1a0779c697b2a9ab..c3d391d6340d619f5889d6ab3a115cd8cf4523af 100644 (file)
@@ -5,7 +5,7 @@
  * Placed into the Public Domain, 1994.
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 float
similarity index 100%
rename from sysdeps/generic/w_dreml.c
rename to math/w_dreml.c
similarity index 98%
rename from sysdeps/generic/w_exp10.c
rename to math/w_exp10.c
index 597506f22f0e4d6e7f9d5db0a97c888675d35e3d..9447d8fa2a6354b648d4f3d7177c18737edafaf6 100644 (file)
@@ -17,7 +17,7 @@
  * wrapper exp10(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_exp10f.c
rename to math/w_exp10f.c
index 1c510a3bfaf51f8d94824291855ded5957997033..78e71be069670001961cf2732d1df7b5f198bd91 100644 (file)
@@ -17,7 +17,7 @@
  * wrapper expf10(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_exp10l.c
rename to math/w_exp10l.c
index aebddcb2011f892fce22cc4d9674a33b2020e623..368ed77304e1bdf294e0d877a7ce9e1821553aa0 100644 (file)
@@ -18,7 +18,7 @@
  * wrapper exp10l(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 97%
rename from sysdeps/generic/w_exp2.c
rename to math/w_exp2.c
index ccf6a1cd6a52062d45a183a2ea1d8a79f7d1dcf7..446e5ea91cb29d85b9d8062cd956d8844b3feaf9 100644 (file)
@@ -3,7 +3,7 @@
  */
 
 #include <float.h>
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 static const double o_threshold= (double) DBL_MAX_EXP;
similarity index 97%
rename from sysdeps/generic/w_exp2f.c
rename to math/w_exp2f.c
index 13cfc9a19f75bc2c16621843aef90d8962177d8c..9120c88b60e48731e9b8d491fd70dd01ae499980 100644 (file)
@@ -3,7 +3,7 @@
  */
 
 #include <float.h>
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 static const float o_threshold= (float) FLT_MAX_EXP;
similarity index 97%
rename from sysdeps/generic/w_exp2l.c
rename to math/w_exp2l.c
index f492301223f387ce9b053ee944f5e7722f705d78..fea5425ac462b7809bf89044eb64cee39c54df0d 100644 (file)
@@ -3,7 +3,7 @@
  */
 
 #include <float.h>
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 static const long double o_threshold = (long double) LDBL_MAX_EXP;
similarity index 100%
rename from sysdeps/generic/w_expl.c
rename to math/w_expl.c
similarity index 98%
rename from sysdeps/generic/w_fmod.c
rename to math/w_fmod.c
index 0ceeb98c5587edc079e4c0d0d3aae2e71975b15f..43a1d8ef5c6a97ea0c3f1abbfb6aa1a1235a047b 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_fmod.c,v 1.6 1995/05/10 20:48:55 jtc Exp $";
  * wrapper fmod(x,y)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_fmodf.c
rename to math/w_fmodf.c
index 9afe5ddfddfc0f49cc47e848a673a6dbb2d3cbaf..2bd133f2d71e2bdaf953f003086bc06e885ff4e8 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_fmodf.c,v 1.3 1995/05/10 20:48:57 jtc Exp $";
  * wrapper fmodf(x,y)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_fmodl.c
rename to math/w_fmodl.c
index 71ed4a94a4db7d8db15f662249e47c024561d0e3..7b9a297cfdf34a0656ccd159dcefaec0f9b0e579 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper fmodl(x,y)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_hypot.c
rename to math/w_hypot.c
index e91db1708382f729810ee70409690c63c15685a4..ab929f78adaf19259fae9b5b18ed880d020c108a 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_hypot.c,v 1.6 1995/05/10 20:49:07 jtc Exp $";
  * wrapper hypot(x,y)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_hypotf.c
rename to math/w_hypotf.c
index a7e5c1fdb6d0f99353f32650611da50bf2f3bbea..b6be39e39fa463fd202dedef52d00f88b4cd7f78 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_hypotf.c,v 1.3 1995/05/10 20:49:09 jtc Exp $";
  * wrapper hypotf(x,y)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_hypotl.c
rename to math/w_hypotl.c
index 2ec215fd134a5bdcc701196b1d2755ff930d85f9..916afbd417358cc3f84d6361935dc8107c65f91b 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper hypotl(x,y)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_j0.c
rename to math/w_j0.c
index 5a018760bb98d919c48c0c3e0c5ee8a7af3f9bfd..5ab3544aa7a9ec8bda5b0239b3ee738236fe0cc7 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_j0.c,v 1.6 1995/05/10 20:49:11 jtc Exp $";
  * wrapper j0(double x), y0(double x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 99%
rename from sysdeps/generic/w_j0f.c
rename to math/w_j0f.c
index 32e2eebb565dce747a814de277b4b5b14d767918..bb2b82f060804df186aecb18d81ce474e0fa08a0 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_j0f.c,v 1.3 1995/05/10 20:49:13 jtc Exp $";
  * wrapper j0f(float x), y0f(float x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_j0l.c
rename to math/w_j0l.c
index b74d9ddcff2dbbfa7f891c535712cec6c014b446..fde0f64f89a55a30287761164d0cbdf52a1725b0 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper j0l(long double x), y0l(long double x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_j1.c
rename to math/w_j1.c
index 39fe8543b1c184cc717eba183331eaebc8abdf64..db8c4ce333143377985b3a53a522d31c1f07a411 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_j1.c,v 1.6 1995/05/10 20:49:15 jtc Exp $";
  * wrapper of j1,y1
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 99%
rename from sysdeps/generic/w_j1f.c
rename to math/w_j1f.c
index 2a7c8db819cf11aad8b1765296e63de7b22bc09d..35b186206e400d6b09cb44101b86affd093f2a90 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_j1f.c,v 1.3 1995/05/10 20:49:17 jtc Exp $";
  * wrapper of j1f,y1f
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_j1l.c
rename to math/w_j1l.c
index 49a486cf8ed1344566a13b963baea0ea70e56776..5ecfd1ec6e51523d05450d796c29407da89770fc 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper of j1l,y1l
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 99%
rename from sysdeps/generic/w_jn.c
rename to math/w_jn.c
index 85fc383fb7540b1b8c5d6b37f4599c994219eacb..3a28443dcfd668a92b4b7d60a59f2ef0db7c4364 100644 (file)
@@ -40,7 +40,7 @@ static char rcsid[] = "$NetBSD: w_jn.c,v 1.6 1995/05/10 20:49:19 jtc Exp $";
  *
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 99%
rename from sysdeps/generic/w_jnf.c
rename to math/w_jnf.c
index 63ad33557300138ab339f55b34f7a41fb48a2dbc..628701d7fa131bcd2063046100d9bc2ef9e716ad 100644 (file)
@@ -17,7 +17,7 @@
 static char rcsid[] = "$NetBSD: w_jnf.c,v 1.3 1995/05/10 20:49:21 jtc Exp $";
 #endif
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 99%
rename from sysdeps/generic/w_jnl.c
rename to math/w_jnl.c
index 866e3cdb00c25619f09127cee4c5933b84156deb..021c16a104356602b7b60acf62587b09e7eaa7e9 100644 (file)
@@ -44,7 +44,7 @@ static char rcsid[] = "$NetBSD: $";
  *
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_lgamma.c
rename to math/w_lgamma.c
index 7c7f34ff39dc69c46765125dcd8b47ef6430f0ed..ab75f75997434bdae103f0cde78cd41978913d9e 100644 (file)
@@ -20,7 +20,7 @@ static char rcsid[] = "$NetBSD: w_lgamma.c,v 1.6 1995/05/10 20:49:24 jtc Exp $";
  * Method: call __ieee754_lgamma_r
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_lgamma_r.c
rename to math/w_lgamma_r.c
index f3e7d821e251300609f7057401bfb0a03c300750..17a7d013e98a9755a35a62b7a0f871739ab0ae68 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_lgamma_r.c,v 1.6 1995/05/10 20:49:27 jtc Exp $
  * wrapper double lgamma_r(double x, int *signgamp)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_lgammaf.c
rename to math/w_lgammaf.c
index d0f6d0d17c2b1b680104704340eaee8b04e82860..7c3c058d7504cf28ddb53b15d87460bd69c3dae4 100644 (file)
@@ -17,7 +17,7 @@
 static char rcsid[] = "$NetBSD: w_lgammaf.c,v 1.3 1995/05/10 20:49:30 jtc Exp $";
 #endif
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_lgammaf_r.c
rename to math/w_lgammaf_r.c
index 66962acc7e0df1618e7970fc79c8a512501f5a15..a32c325638777603ac26e5878a0b601b3cd0d4d2 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_lgammaf_r.c,v 1.3 1995/05/10 20:49:32 jtc Exp
  * wrapper float lgammaf_r(float x, int *signgamp)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_lgammal.c
rename to math/w_lgammal.c
index 1ee51a6f49de2d1ee5df8e72b00c3469e31c70e2..f250e50388e79a87a5b849803a904afef0fdd2ee 100644 (file)
@@ -24,7 +24,7 @@ static char rcsid[] = "$NetBSD: $";
  * Method: call __ieee754_lgammal_r
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_lgammal_r.c
rename to math/w_lgammal_r.c
index 71f5c005d05aaf0b1d1cff6e0d2d32ab1f569c28..2dfea8a4651d07a71ba38929fb4f014fe83da604 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper long double lgammal_r(long double x, int *signgamp)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_log.c
rename to math/w_log.c
index 5f0af7973141d55edf32d04109c7ccc83772fb12..6f6f74fd1472300cfb2374ce631ed760928a6c48 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_log.c,v 1.6 1995/05/10 20:49:33 jtc Exp $";
  * wrapper log(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_log10.c
rename to math/w_log10.c
index 8a0a70bdf75810f1d172da108b3f08920e426426..9425db3ddf62d887a9a61c3e9ece9d29ae1cdcad 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_log10.c,v 1.6 1995/05/10 20:49:35 jtc Exp $";
  * wrapper log10(X)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_log10f.c
rename to math/w_log10f.c
index f90cb0cabcd5d9538df2e52171d869b05c190141..c63fcd1ec297265ca4c44afaa6a80353cf63ad49 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_log10f.c,v 1.3 1995/05/10 20:49:37 jtc Exp $";
  * wrapper log10f(X)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_log10l.c
rename to math/w_log10l.c
index 0d0861689d3f01e44a6cf1516dfb5042b74e8083..25c051d37578d33b18680e44e493966619223a58 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper log10l(X)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 96%
rename from sysdeps/generic/w_log2.c
rename to math/w_log2.c
index 7966ff359f15756c8aa01460e157f8a794a2b8dc..d56a6ee6637c090a625abff42d85520165cd1330 100644 (file)
@@ -2,7 +2,7 @@
  * wrapper log2(X)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 double
similarity index 96%
rename from sysdeps/generic/w_log2f.c
rename to math/w_log2f.c
index 1e2eb85d7b5182fe283a2a7e513722c4bd9eff9f..ec8d2971612b1b8470404438956048d8f3709f65 100644 (file)
@@ -2,7 +2,7 @@
  * wrapper log2(X)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 float
similarity index 96%
rename from sysdeps/generic/w_log2l.c
rename to math/w_log2l.c
index f41757c5e4679ab1b5253282fc99a532a61f511b..b1d8706f2ab86449830bedb71155f18cfa8ff14b 100644 (file)
@@ -2,7 +2,7 @@
  * wrapper log2l(X)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 long double
similarity index 98%
rename from sysdeps/generic/w_logf.c
rename to math/w_logf.c
index 9eabe4b34cf39e528896c5fc9cda456ddcda959d..46d97491147b6fa6523730e06b68c834e65c501a 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_logf.c,v 1.3 1995/05/10 20:49:40 jtc Exp $";
  * wrapper logf(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_logl.c
rename to math/w_logl.c
index bb979c26c35083681c4ec5dd1d6a36b670504b27..5a38f2003807f765f59294afdbcf91f3f6085c9f 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper logl(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_pow.c
rename to math/w_pow.c
index 5850651a1a45e31ce37b06b2f8b3f29c218780c2..707cffcc43a811380fc3b785f751e328c262fc46 100644 (file)
@@ -16,7 +16,7 @@
  * wrapper pow(x,y) return x**y
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 99%
rename from sysdeps/generic/w_powf.c
rename to math/w_powf.c
index 32196fd89facb18ead446d07fb6e4c13e345754c..2480fe559ee2863e18fa3e654402b89b16eddb48 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_powf.c,v 1.3 1995/05/10 20:49:41 jtc Exp $";
  * wrapper powf(x,y) return x**y
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_powl.c
rename to math/w_powl.c
index 17feb9fc61661d7ae7759a4bd5a1ba30ea15381c..d8be7b7b03fe4a02e287afc5cc32d4ab7eaf0ef5 100644 (file)
@@ -18,7 +18,7 @@
  * wrapper powl(x,y) return x**y
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 
similarity index 98%
rename from sysdeps/generic/w_remainder.c
rename to math/w_remainder.c
index d85a3febce78c9cb6dad5db128e42a4efd0af525..9d7a7c53830869cfdf51bf09ec5046f126a20b66 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_remainder.c,v 1.6 1995/05/10 20:49:44 jtc Exp
  * wrapper remainder(x,p)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_remainderf.c
rename to math/w_remainderf.c
index 58255f5be5a10c2c424354fd3a6c514e8c47fb8b..486e626c289eef7a1f722a805b7a2f3c46647fde 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_remainderf.c,v 1.3 1995/05/10 20:49:46 jtc Exp
  * wrapper remainderf(x,p)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_remainderl.c
rename to math/w_remainderl.c
index 284140174d8e0ba9ae1791cc1c48e07e8bc404e9..7635fb93638a2ff392c8c59287325243498429df 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper remainderl(x,p)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_scalb.c
rename to math/w_scalb.c
index c981b858a9f870ec7ef2d254e4150f73e5be6b9e..0086c2adfd1b657af0df00d7e4ba063b6120e8a9 100644 (file)
@@ -20,7 +20,7 @@ static char rcsid[] = "$NetBSD: w_scalb.c,v 1.6 1995/05/10 20:49:48 jtc Exp $";
  * should use scalbn() instead.
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #include <errno.h>
similarity index 98%
rename from sysdeps/generic/w_scalbf.c
rename to math/w_scalbf.c
index 51056083e830adfada6072929ec2e7aaa3235438..60cb5670ed78d1f5489226ffa74df9e4cdfd79f0 100644 (file)
@@ -23,7 +23,7 @@ static char rcsid[] = "$NetBSD: w_scalbf.c,v 1.3 1995/05/10 20:49:50 jtc Exp $";
  * should use scalbn() instead.
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #include <errno.h>
similarity index 98%
rename from sysdeps/generic/w_scalbl.c
rename to math/w_scalbl.c
index 6a7d30710481d58536435b22e69f504b9aeace96..c8a45d460de78ab0ced6c8d8f4c8e70552e9be1d 100644 (file)
@@ -24,7 +24,7 @@ static char rcsid[] = "$NetBSD: $";
  * should use scalbnl() instead.
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #include <errno.h>
similarity index 98%
rename from sysdeps/generic/w_sinh.c
rename to math/w_sinh.c
index 9b34cd1873af1fb849fb04010c6346b859593144..5bde8a2ddd2beb2bdeab74350438b0c6aff9dd2d 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_sinh.c,v 1.6 1995/05/10 20:49:51 jtc Exp $";
  * wrapper sinh(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_sinhf.c
rename to math/w_sinhf.c
index a69cf3072d710c423f7334b2177908dc30cdff0b..c29c46620fcf18aa0249ffc291360ff4123d20ab 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_sinhf.c,v 1.3 1995/05/10 20:49:54 jtc Exp $";
  * wrapper sinhf(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_sinhl.c
rename to math/w_sinhl.c
index 3e93cc598d38a4b2a83358410e4b77b93a293e22..19eb774d64e2024da83703f0101baf506df9b56a 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper sinhl(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_sqrt.c
rename to math/w_sqrt.c
index be15d959ea84978077b2e4994077c360a543a7e8..41ab1d18b23016d912e151f71eb7e737518fe68f 100644 (file)
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_sqrt.c,v 1.6 1995/05/10 20:49:55 jtc Exp $";
  * wrapper sqrt(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_sqrtf.c
rename to math/w_sqrtf.c
index f5ccc73868e9783acd1f17c218a90d336054a841..21beb550f44fcac199346a1e6e21537be133a73a 100644 (file)
@@ -21,7 +21,7 @@ static char rcsid[] = "$NetBSD: w_sqrtf.c,v 1.3 1995/05/10 20:49:59 jtc Exp $";
  * wrapper sqrtf(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_sqrtl.c
rename to math/w_sqrtl.c
index 5873ce93ab4266785bdadf659d3267b8b82cd575..0b03eebe1da5126bd11feb0d1011a806c69ee887 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * wrapper sqrtl(x)
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_tgamma.c
rename to math/w_tgamma.c
index 6e34b62be4a607c6046611b44dea0d6a34fc3aab..3ce6e77b490303ef458e81fdf03f04dbc56c7013 100644 (file)
@@ -19,7 +19,7 @@ static char rcsid[] = "$NetBSD: w_gamma.c,v 1.7 1995/11/20 22:06:43 jtc Exp $";
  * depending on the library mode.
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_tgammaf.c
rename to math/w_tgammaf.c
index e7b0d87ab5d881f7d8db459bc96440f24587a0be..d3698059e7480dc380e049411b31366c5811bb9b 100644 (file)
@@ -17,7 +17,7 @@
 static char rcsid[] = "$NetBSD: w_gammaf.c,v 1.4 1995/11/20 22:06:48 jtc Exp $";
 #endif
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 98%
rename from sysdeps/generic/w_tgammal.c
rename to math/w_tgammal.c
index 793fa17ac1ce6d495bb507f9b5e11121300e0592..75970a34d4750c6778bed8677a261f8d4d8885d6 100644 (file)
@@ -22,7 +22,7 @@ static char rcsid[] = "$NetBSD: $";
  * Return the Gamma function of x.
  */
 
-#include "math.h"
+#include <math.h>
 #include "math_private.h"
 
 #ifdef __STDC__
similarity index 100%
rename from sysdeps/generic/acct.c
rename to misc/acct.c
similarity index 100%
rename from sysdeps/generic/brk.c
rename to misc/brk.c
similarity index 100%
rename from sysdeps/generic/chflags.c
rename to misc/chflags.c
similarity index 100%
rename from sysdeps/generic/chroot.c
rename to misc/chroot.c
similarity index 100%
rename from sysdeps/generic/fchflags.c
rename to misc/fchflags.c
similarity index 100%
rename from sysdeps/generic/fdatasync.c
rename to misc/fdatasync.c
similarity index 100%
rename from sysdeps/generic/fgetxattr.c
rename to misc/fgetxattr.c
similarity index 100%
rename from sysdeps/generic/fsetxattr.c
rename to misc/fsetxattr.c
similarity index 100%
rename from sysdeps/generic/fsync.c
rename to misc/fsync.c
similarity index 100%
rename from sysdeps/generic/ftruncate.c
rename to misc/ftruncate.c
similarity index 100%
rename from sysdeps/generic/futimes.c
rename to misc/futimes.c
similarity index 100%
rename from sysdeps/generic/futimesat.c
rename to misc/futimesat.c
similarity index 100%
rename from sysdeps/generic/getclktck.c
rename to misc/getclktck.c
similarity index 100%
rename from sysdeps/generic/getdomain.c
rename to misc/getdomain.c
similarity index 100%
rename from sysdeps/generic/getdtsz.c
rename to misc/getdtsz.c
similarity index 100%
rename from sysdeps/generic/gethostid.c
rename to misc/gethostid.c
similarity index 100%
rename from sysdeps/generic/getxattr.c
rename to misc/getxattr.c
similarity index 100%
rename from sysdeps/generic/gtty.c
rename to misc/gtty.c
similarity index 100%
rename from sysdeps/generic/ioctl.c
rename to misc/ioctl.c
similarity index 100%
rename from sysdeps/generic/lgetxattr.c
rename to misc/lgetxattr.c
similarity index 100%
rename from sysdeps/generic/listxattr.c
rename to misc/listxattr.c
similarity index 100%
rename from sysdeps/generic/lseek.c
rename to misc/lseek.c
similarity index 100%
rename from sysdeps/generic/lsetxattr.c
rename to misc/lsetxattr.c
similarity index 100%
rename from sysdeps/generic/lutimes.c
rename to misc/lutimes.c
similarity index 100%
rename from sysdeps/generic/madvise.c
rename to misc/madvise.c
similarity index 100%
rename from sysdeps/generic/mincore.c
rename to misc/mincore.c
similarity index 100%
rename from sysdeps/generic/mlock.c
rename to misc/mlock.c
similarity index 100%
rename from sysdeps/generic/mlockall.c
rename to misc/mlockall.c
similarity index 100%
rename from sysdeps/generic/mmap.c
rename to misc/mmap.c
similarity index 100%
rename from sysdeps/generic/mmap64.c
rename to misc/mmap64.c
similarity index 100%
rename from sysdeps/generic/mprotect.c
rename to misc/mprotect.c
similarity index 100%
rename from sysdeps/generic/msync.c
rename to misc/msync.c
similarity index 100%
rename from sysdeps/generic/munlock.c
rename to misc/munlock.c
similarity index 100%
rename from sysdeps/generic/munmap.c
rename to misc/munmap.c
similarity index 100%
rename from sysdeps/generic/pselect.c
rename to misc/pselect.c
similarity index 100%
rename from sysdeps/generic/ptrace.c
rename to misc/ptrace.c
similarity index 100%
rename from sysdeps/generic/readv.c
rename to misc/readv.c
similarity index 100%
rename from sysdeps/generic/reboot.c
rename to misc/reboot.c
similarity index 100%
rename from sysdeps/generic/revoke.c
rename to misc/revoke.c
similarity index 100%
rename from sysdeps/generic/sbrk.c
rename to misc/sbrk.c
similarity index 100%
rename from sysdeps/generic/select.c
rename to misc/select.c
similarity index 100%
rename from sysdeps/generic/setdomain.c
rename to misc/setdomain.c
similarity index 100%
rename from sysdeps/generic/setegid.c
rename to misc/setegid.c
similarity index 100%
rename from sysdeps/generic/seteuid.c
rename to misc/seteuid.c
similarity index 100%
rename from sysdeps/generic/sethostid.c
rename to misc/sethostid.c
similarity index 100%
rename from sysdeps/generic/setregid.c
rename to misc/setregid.c
similarity index 100%
rename from sysdeps/generic/setreuid.c
rename to misc/setreuid.c
similarity index 100%
rename from sysdeps/generic/setxattr.c
rename to misc/setxattr.c
similarity index 100%
rename from sysdeps/generic/sstk.c
rename to misc/sstk.c
similarity index 100%
rename from sysdeps/generic/stty.c
rename to misc/stty.c
similarity index 100%
rename from sysdeps/generic/swapoff.c
rename to misc/swapoff.c
similarity index 100%
rename from sysdeps/generic/swapon.c
rename to misc/swapon.c
similarity index 100%
rename from sysdeps/generic/sync.c
rename to misc/sync.c
similarity index 100%
rename from sysdeps/generic/syscall.c
rename to misc/syscall.c
similarity index 100%
rename from sysdeps/generic/syslog.c
rename to misc/syslog.c
similarity index 100%
rename from sysdeps/generic/truncate.c
rename to misc/truncate.c
similarity index 100%
rename from sysdeps/generic/ualarm.c
rename to misc/ualarm.c
similarity index 100%
rename from sysdeps/generic/usleep.c
rename to misc/usleep.c
similarity index 100%
rename from sysdeps/generic/ustat.c
rename to misc/ustat.c
similarity index 100%
rename from sysdeps/generic/utimes.c
rename to misc/utimes.c
similarity index 100%
rename from sysdeps/generic/vhangup.c
rename to misc/vhangup.c
similarity index 100%
rename from sysdeps/generic/writev.c
rename to misc/writev.c
index 14041a160c40cd8ce4e87dfa2970274c41af260e..5b432b7981455c2557d133fb1c5f5ed0139ad4a6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 2001, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2001, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
 
@@ -40,25 +40,16 @@ extern u_short __pmap_getnisport (struct sockaddr_in *address, u_long program,
 unsigned long
 inetstr2int (const char *str)
 {
-  char buffer[strlen (str) + 3];
-  size_t buflen;
-  size_t i, j;
-
-  buflen = stpcpy (buffer, str) - buffer;
-
-  j = 0;
-  for (i = 0; i < buflen; ++i)
-    if (buffer[i] == '.')
+  size_t j = 0;
+  for (size_t i = 0; str[i] != '\0'; ++i)
+    if (str[i] == '.' && ++j == 4)
       {
-       ++j;
-       if (j == 4)
-         {
-           buffer[i] = '\0';
-           break;
-         }
+       char buffer[i + 1];
+       buffer[i] = '\0';
+       return inet_addr (memcpy (buffer, str, i));
       }
 
-  return inet_addr (buffer);
+  return inet_addr (str);
 }
 
 void
@@ -179,7 +170,6 @@ __nisbind_connect (dir_binding *dbp)
        }
       else
        dbp->clnt->cl_auth = authunix_create_default ();
-      dbp->use_auth = TRUE;
     }
 
   return NIS_SUCCESS;
@@ -215,10 +205,7 @@ __nisbind_create (dir_binding *dbp, const nis_server *serv_val,
 
   dbp->class = -1;
   if (__nis_findfastest (dbp) < 1)
-    {
-      __nisbind_destroy (dbp);
-      return NIS_NAMEUNREACHABLE;
-    }
+    return NIS_NAMEUNREACHABLE;
 
   return NIS_SUCCESS;
 }
@@ -585,7 +572,6 @@ __do_niscall (const_nis_name name, u_long prog, xdrproc_t xargs,
          if (__nisbind_next (&bptr) != NIS_SUCCESS)
            {
              nis_free_directory (dir);
-             __nisbind_destroy (&bptr);
              return NIS_NAMEUNREACHABLE;
            }
        }
index 147f88ce155d374ca2dd806122c4f2829081ebf7..7db885ef9398bfe584755a5ae94de66a426fa6f2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997, 1998, 1999, 2004 Free Software Foundation, Inc.
+/* Copyright (c) 1997, 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
 
@@ -102,26 +102,21 @@ char *
 nis_sperror_r (const nis_error status, const char *label,
               char *buffer, size_t buflen)
 {
-  const char *cptr;
-
-  cptr = nis_sperrno (status);
-
-  if ((strlen (cptr) + strlen (label) + 3) > buflen)
+  if (snprintf (buffer, buflen, "%s: %s", label, nis_sperrno (status))
+      >= buflen)
     {
       errno = ERANGE;
       return NULL;
     }
 
-    sprintf (buffer, "%s: %s", label, cptr);
-
-    return buffer;
+  return buffer;
 }
 libnsl_hidden_def (nis_sperror_r)
 
 char *
 nis_sperror (const nis_error status, const char *label)
 {
-  static char buffer[NIS_MAXNAMELEN +1];
+  static char buffer[NIS_MAXNAMELEN + 1];
 
   return nis_sperror_r (status, label, buffer, sizeof (buffer));
 }
index 0b97e67a61ad7af9ea0b8080dd57c470a9f90164..4cb34dd1a852e2d0cdf797ad09a688c12a583ac1 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 1997.
 
@@ -81,7 +81,6 @@ nis_lookup (const_nis_name name, const unsigned int flags)
        {
          if (__nisbind_next (&bptr) != NIS_SUCCESS)
            {
-             __nisbind_destroy (&bptr);
              nis_free_directory (dir);
              NIS_RES_STATUS (res) = NIS_NAMEUNREACHABLE;
              return res;
@@ -90,7 +89,7 @@ nis_lookup (const_nis_name name, const unsigned int flags)
 
       do
        {
-         static struct timeval RPCTIMEOUT = {10, 0};
+         static const struct timeval RPCTIMEOUT = {10, 0};
          enum clnt_stat result;
 
        again:
@@ -107,8 +106,8 @@ nis_lookup (const_nis_name name, const unsigned int flags)
 
              if (NIS_RES_STATUS (res) == NIS_SUCCESS)
                {
-                   if (__type_of(NIS_RES_OBJECT (res)) == NIS_LINK_OBJ &&
-                       flags & FOLLOW_LINKS) /* We are following links */
+                   if (__type_of(NIS_RES_OBJECT (res)) == NIS_LINK_OBJ
+                       && (flags & FOLLOW_LINKS)) /* We are following links */
                      {
                        if (count_links)
                          free (req.ns_name);
@@ -137,16 +136,17 @@ nis_lookup (const_nis_name name, const unsigned int flags)
                      }
                }
              else
-               if ((NIS_RES_STATUS (res) == NIS_SYSTEMERROR) ||
-                   (NIS_RES_STATUS (res) == NIS_NOSUCHNAME) ||
-                   (NIS_RES_STATUS (res) == NIS_NOT_ME))
+               if (NIS_RES_STATUS (res) == NIS_SYSTEMERROR
+                   || NIS_RES_STATUS (res) == NIS_NOSUCHNAME
+                   || NIS_RES_STATUS (res) == NIS_NOT_ME)
                  {
                    if (link_first_try)
                      {
                        __nisbind_destroy (&bptr);
                        nis_free_directory (dir);
 
-                       if (__nisfind_server (req.ns_name, &dir) != NIS_SUCCESS)
+                       if (__nisfind_server (req.ns_name, &dir)
+                           != NIS_SUCCESS)
                          return res;
 
                        if (__nisbind_create (&bptr,
@@ -166,7 +166,6 @@ nis_lookup (const_nis_name name, const unsigned int flags)
                      {
                        if (__nisbind_next (&bptr) != NIS_SUCCESS)
                          {
-                           __nisbind_destroy (&bptr);
                            nis_free_directory (dir);
                            return res;
                          }
index 2531a3fbc59f69578272634cbae11ddab38019c9..2ef28ac59b769fca0acd3db6d2bf4b3b61d69352 100644 (file)
 static struct ib_request *
 __create_ib_request (const_nis_name name, unsigned int flags)
 {
-  struct ib_request *ibreq = calloc (1, sizeof (ib_request));
-  char buf[strlen (name) + 1];
+  struct ib_request *ibreq = calloc (1, sizeof (struct ib_request));
   nis_attr *search_val = NULL;
   size_t search_len = 0;
-  char *cptr;
   size_t size = 0;
 
   if (ibreq == NULL)
@@ -39,7 +37,7 @@ __create_ib_request (const_nis_name name, unsigned int flags)
 
   ibreq->ibr_flags = flags;
 
-  cptr = strcpy (buf, name);
+  char *cptr = strdupa (name);
 
   /* Not of "[key=value,key=value,...],foo.." format? */
   if (cptr[0] != '[')
@@ -49,8 +47,8 @@ __create_ib_request (const_nis_name name, unsigned int flags)
   ibreq->ibr_name = strchr (cptr, ']');
   if (ibreq->ibr_name == NULL || ibreq->ibr_name[1] != ',')
     {
-      ibreq->ibr_name = NULL; /* Or the xdr_* functions will dump */
-      nis_free_request (ibreq);
+      /* The object has not really been built yet so we use free.  */
+      free (ibreq);
       return NULL;
     }
 
@@ -120,17 +118,16 @@ __create_ib_request (const_nis_name name, unsigned int flags)
   return ibreq;
 }
 
-static struct timeval RPCTIMEOUT = {10, 0};
+static const struct timeval RPCTIMEOUT = {10, 0};
 
 static char *
 __get_tablepath (char *name, dir_binding *bptr)
 {
   enum clnt_stat result;
-  nis_result *res = calloc (1, sizeof (nis_result));
+  nis_result res;
   struct ns_request req;
 
-  if (res == NULL)
-    return NULL;
+  memset (&res, '\0', sizeof (res));
 
   req.ns_name = name;
   req.ns_object.ns_object_len = 0;
@@ -138,20 +135,16 @@ __get_tablepath (char *name, dir_binding *bptr)
 
   result = clnt_call (bptr->clnt, NIS_LOOKUP, (xdrproc_t) _xdr_ns_request,
                      (caddr_t) &req, (xdrproc_t) _xdr_nis_result,
-                     (caddr_t) res, RPCTIMEOUT);
+                     (caddr_t) &res, RPCTIMEOUT);
 
-  if (result == RPC_SUCCESS && NIS_RES_STATUS (res) == NIS_SUCCESS &&
-      __type_of (NIS_RES_OBJECT (res)) == NIS_TABLE_OBJ)
-    {
-      char *cptr = strdup (NIS_RES_OBJECT (res)->TA_data.ta_path);
-      nis_freeresult (res);
-      return cptr;
-    }
+  const char *cptr;
+  if (result == RPC_SUCCESS && NIS_RES_STATUS (&res) == NIS_SUCCESS
+      && __type_of (NIS_RES_OBJECT (&res)) == NIS_TABLE_OBJ)
+    cptr = NIS_RES_OBJECT (&res)->TA_data.ta_path;
   else
-    {
-      nis_freeresult (res);
-      return strdup ("");
-    }
+    cptr = "";
+
+  return strdup (cptr);
 }
 
 nis_result *
@@ -171,8 +164,8 @@ nis_list (const_nis_name name, unsigned int flags,
   nis_name namebuf[2] = {NULL, NULL};
   int name_nr = 0;
   nis_cb *cb = NULL;
-  char *tableptr, *tablepath = NULL;
-  int have_tablepath = 0;
+  char *tableptr;
+  char *tablepath = NULL;
   int first_try = 0; /* Do we try the old binding at first ? */
 
   if (res == NULL)
@@ -205,6 +198,7 @@ nis_list (const_nis_name name, unsigned int flags,
       ibreq->ibr_name = strdup (names[name_nr]);
       if (ibreq->ibr_name == NULL)
        {
+         nis_freenames (names);
          nis_free_request (ibreq);
          NIS_RES_STATUS (res) = NIS_NOMEMORY;
          return res;
@@ -227,30 +221,24 @@ nis_list (const_nis_name name, unsigned int flags,
 
       status = __nisfind_server (ibreq->ibr_name, &dir);
       if (status != NIS_SUCCESS)
-        {
-         nis_free_request (ibreq);
+       {
           NIS_RES_STATUS (res) = status;
-          return res;
-        }
+          goto fail3;
+       }
 
       status = __nisbind_create (&bptr, dir->do_servers.do_servers_val,
-                                 dir->do_servers.do_servers_len, flags);
+                                dir->do_servers.do_servers_len, flags);
       if (status != NIS_SUCCESS)
         {
-         nis_free_request (ibreq);
           NIS_RES_STATUS (res) = status;
-          nis_free_directory (dir);
-          return res;
+         goto fail2;
         }
 
       while (__nisbind_connect (&bptr) != NIS_SUCCESS)
        if (__nisbind_next (&bptr) != NIS_SUCCESS)
          {
-           __nisbind_destroy (&bptr);
-           nis_free_directory (dir);
-           nis_free_request (ibreq);
            NIS_RES_STATUS (res) = NIS_NAMEUNREACHABLE;
-           return res;
+           goto fail;
          }
 
       if (callback != NULL)
@@ -274,8 +262,8 @@ nis_list (const_nis_name name, unsigned int flags,
          case NIS_PARTIAL:
          case NIS_SUCCESS:
          case NIS_S_SUCCESS:
-           if (__type_of (NIS_RES_OBJECT (res)) == NIS_LINK_OBJ &&
-               flags & FOLLOW_LINKS)           /* We are following links.  */
+           if (__type_of (NIS_RES_OBJECT (res)) == NIS_LINK_OBJ
+               && (flags & FOLLOW_LINKS))      /* We are following links.  */
              {
                free (ibreq->ibr_name);
                ibreq->ibr_name = NULL;
@@ -291,8 +279,22 @@ nis_list (const_nis_name name, unsigned int flags,
                  strdup (NIS_RES_OBJECT (res)->LI_data.li_name);
                if (ibreq->ibr_name == NULL)
                  {
-                   nis_free_request (ibreq);
                    NIS_RES_STATUS (res) = NIS_NOMEMORY;
+                 fail:
+                   __nisbind_destroy (&bptr);
+                 fail2:
+                   nis_free_directory (dir);
+                 fail3:
+                   free (tablepath);
+                   if (cb)
+                     {
+                       __nis_destroy_callback (cb);
+                       ibreq->ibr_cbhost.ibr_cbhost_len = 0;
+                       ibreq->ibr_cbhost.ibr_cbhost_val = NULL;
+                     }
+                   if (names != namebuf)
+                     nis_freenames (names);
+                   nis_free_request (ibreq);
                    return res;
                  }
                if (NIS_RES_OBJECT (res)->LI_data.li_attrs.li_attrs_len)
@@ -303,27 +305,30 @@ nis_list (const_nis_name name, unsigned int flags,
                      ibreq->ibr_srch.ibr_srch_val =
                        NIS_RES_OBJECT (res)->LI_data.li_attrs.li_attrs_val;
                    }
+               /* The following is a non-obvious optimization.  A
+                  nis_freeresult call would call xdr_free as the
+                  following code.  But it also would unnecessarily
+                  free the result structure.  We avoid this here
+                  along with the necessary tests.  */
+#if 1
+               xdr_free ((xdrproc_t) _xdr_nis_result, (char *)res);
+               memset (res, '\0', sizeof (*res));
+#else
                nis_freeresult (res);
                res = calloc (1, sizeof (nis_result));
                if (res == NULL)
-                 {
-                   if (have_tablepath)
-                     free (tablepath);
-                   __nisbind_destroy (&bptr);
-                   nis_free_directory (dir);
-                   return NULL;
-                 }
+                 goto fail;
+#endif
                first_try = 1; /* Try at first the old binding */
                goto again;
              }
-           else if ((flags & FOLLOW_PATH) &&
-                    NIS_RES_STATUS (res) == NIS_PARTIAL)
+           else if ((flags & FOLLOW_PATH)
+                    && NIS_RES_STATUS (res) == NIS_PARTIAL)
              {
-               if (!have_tablepath)
+               if (tablepath == NULL)
                  {
                    tablepath = __get_tablepath (ibreq->ibr_name, &bptr);
                    tableptr = tablepath;
-                   have_tablepath = 1;
                  }
                if (tableptr == NULL)
                  {
@@ -337,27 +342,37 @@ nis_list (const_nis_name name, unsigned int flags,
                    ibreq->ibr_name = strdup ("");
                    if (ibreq->ibr_name == NULL)
                      {
-                       nis_free_request (ibreq);
                        NIS_RES_STATUS (res) = NIS_NOMEMORY;
-                       return res;
+                       goto fail;
                      }
                    ++done;
                  }
                else
                  {
                    ibreq->ibr_name = strdup (ibreq->ibr_name);
+                   /* The following is a non-obvious optimization.  A
+                      nis_freeresult call would call xdr_free as the
+                      following code.  But it also would unnecessarily
+                      free the result structure.  We avoid this here
+                      along with the necessary tests.  */
+#if 1
+                   xdr_free ((xdrproc_t) _xdr_nis_result, (char *)res);
+                   memset (res, '\0', sizeof (*res));
+                   if (ibreq->ibr_name == NULL)
+                     {
+                       NIS_RES_STATUS (res) = NIS_NOMEMORY;
+                       goto fail;
+                     }
+#else
                    nis_freeresult (res);
                    res = calloc (1, sizeof (nis_result));
                    if (res == NULL || ibreq->ibr_name == NULL)
                      {
                        free (res);
-                       nis_free_request (ibreq);
-                       if (have_tablepath)
-                         free (tablepath);
-                       __nisbind_destroy (&bptr);
-                       nis_free_directory (dir);
-                       return NULL;
+                       res = NULL;
+                       goto fail;
                      }
+#endif
                    first_try = 1;
                    goto again;
                  }
@@ -375,11 +390,10 @@ nis_list (const_nis_name name, unsigned int flags,
                  ++done;
                else
                  {
-                   if (!have_tablepath)
+                   if (tablepath == NULL)
                      {
                        tablepath = __get_tablepath (ibreq->ibr_name, &bptr);
                        tableptr = tablepath;
-                       have_tablepath = 1;
                      }
                    if (tableptr == NULL)
                      {
@@ -397,9 +411,8 @@ nis_list (const_nis_name name, unsigned int flags,
                      ibreq->ibr_name = strdup (ibreq->ibr_name);
                    if (ibreq->ibr_name == NULL)
                      {
-                       nis_free_request (ibreq);
                        NIS_RES_STATUS (res) = NIS_NOMEMORY;
-                       return res;
+                       goto fail;
                      }
                  }
              }
@@ -448,9 +461,8 @@ nis_list (const_nis_name name, unsigned int flags,
                ibreq->ibr_name = strdup (names[name_nr]);
                if (ibreq->ibr_name == NULL)
                  {
-                   nis_free_request (ibreq);
                    NIS_RES_STATUS (res) = NIS_NOMEMORY;
-                   return res;
+                   goto fail;
                  }
                first_try = 1; /* Try old binding at first */
                goto again;
@@ -464,12 +476,15 @@ nis_list (const_nis_name name, unsigned int flags,
          __nis_destroy_callback (cb);
          ibreq->ibr_cbhost.ibr_cbhost_len = 0;
          ibreq->ibr_cbhost.ibr_cbhost_val = NULL;
+         cb = NULL;
        }
 
       __nisbind_destroy (&bptr);
       nis_free_directory (dir);
     }
 
+  free (tablepath);
+
   if (names != namebuf)
     nis_freenames (names);
 
index 152e5fc3fccafa2848025ff3ad7ebe5359b68ca4..6aa93ab3bc8dec0db7c70c48cc032cb83caef931 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2001,2002,2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
 
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <atomic.h>
 #include <nss.h>
 #include <errno.h>
 #include <ctype.h>
@@ -32,7 +33,7 @@ __libc_lock_define_initialized (static, lock)
 static nis_result *result;
 static u_long next_entry;
 static nis_name tablename_val;
-static u_long tablename_len;
+static size_t tablename_len;
 
 #define NISENTRYVAL(idx,col,res) \
         ((res)->objects.objects_val[(idx)].EN_data.en_cols.en_cols_val[(col)].ec_value.ec_value_val)
@@ -45,19 +46,26 @@ _nss_create_tablename (int *errnop)
 {
   if (tablename_val == NULL)
     {
-      char buf [40 + strlen (nis_local_directory ())];
-      char *p;
+      const char *local_dir = nis_local_directory ();
+      size_t local_dir_len = strlen (local_dir);
+      static const char prefix[] = "mail_aliases.org_dir.";
 
-      p = __stpcpy (buf, "mail_aliases.org_dir.");
-      p = __stpcpy (p, nis_local_directory ());
-      tablename_val = __strdup (buf);
+      char *p = malloc (sizeof (prefix) + local_dir_len);
       if (tablename_val == NULL)
        {
          *errnop = errno;
          return NSS_STATUS_TRYAGAIN;
        }
-      tablename_len = strlen (tablename_val);
+
+      memcpy (__stpcpy (p, prefix), local_dir, local_dir_len + 1);
+
+      tablename_len = sizeof (prefix) - 1 + local_dir_len;
+
+      atomic_write_barrier ();
+
+      tablename_val = p;
     }
+
   return NSS_STATUS_SUCCESS;
 }
 
@@ -75,81 +83,73 @@ _nss_nisplus_parse_aliasent (nis_result *result, unsigned long entry,
                 "mail_aliases") != 0
       || result->objects.objects_val[entry].EN_data.en_cols.en_cols_len < 2)
     return 0;
-  else
+
+  char *first_unused = buffer + NISENTRYLEN (0, 1, result) + 1;
+  size_t room_left = (buflen - (buflen % __alignof__ (char *))
+                     - NISENTRYLEN (0, 1, result) - 2);
+
+  if (NISENTRYLEN (entry, 1, result) >= buflen)
     {
-      char *first_unused = buffer + NISENTRYLEN (0, 1, result) + 1;
-      size_t room_left =
-       buflen - (buflen % __alignof__ (char *)) -
-       NISENTRYLEN (0, 1, result) - 2;
-      char *line;
-      char *cp;
-
-      if (NISENTRYLEN (entry, 1, result) >= buflen)
-       {
-         /* The line is too long for our buffer.  */
-       no_more_room:
-         *errnop = ERANGE;
-         return -1;
-       }
-      else
-       {
-         cp = __stpncpy (buffer, NISENTRYVAL (entry, 1, result),
-                        NISENTRYLEN (entry, 1, result));
-         *cp = '\0';
-       }
+      /* The line is too long for our buffer.  */
+    no_more_room:
+      *errnop = ERANGE;
+      return -1;
+    }
+
+  char *cp = __stpncpy (buffer, NISENTRYVAL (entry, 1, result),
+                       NISENTRYLEN (entry, 1, result));
+  *cp = '\0';
+
+  if (NISENTRYLEN(entry, 0, result) >= room_left)
+    goto no_more_room;
+
+  alias->alias_local = 0;
+  alias->alias_members_len = 0;
+  *first_unused = '\0';
+  ++first_unused;
+  cp = __stpncpy (first_unused, NISENTRYVAL (entry, 0, result),
+                 NISENTRYLEN (entry, 0, result));
+  *cp = '\0';
+  alias->alias_name = first_unused;
+
+  /* Terminate the line for any case.  */
+  cp = strpbrk (alias->alias_name, "#\n");
+  if (cp != NULL)
+    *cp = '\0';
+
+  first_unused += strlen (alias->alias_name) +1;
+  /* Adjust the pointer so it is aligned for
+     storing pointers.  */
+  first_unused += __alignof__ (char *) - 1;
+  first_unused -= ((first_unused - (char *) 0) % __alignof__ (char *));
+  alias->alias_members = (char **) first_unused;
+
+  char *line = buffer;
+  while (*line != '\0')
+    {
+      /* Skip leading blanks.  */
+      while (isspace (*line))
+       ++line;
+
+      if (*line == '\0')
+       break;
 
-      if (NISENTRYLEN(entry, 0, result) >= room_left)
+      if (room_left < sizeof (char *))
        goto no_more_room;
+      room_left -= sizeof (char *);
+      alias->alias_members[alias->alias_members_len] = line;
+
+      while (*line != '\0' && *line != ',')
+       ++line;
 
-      alias->alias_local = 0;
-      alias->alias_members_len = 0;
-      *first_unused = '\0';
-      ++first_unused;
-      cp = __stpncpy (first_unused, NISENTRYVAL (entry, 0, result),
-                     NISENTRYLEN (entry, 0, result));
-      *cp = '\0';
-      alias->alias_name = first_unused;
-
-      /* Terminate the line for any case.  */
-      cp = strpbrk (alias->alias_name, "#\n");
-      if (cp != NULL)
-       *cp = '\0';
-
-      first_unused += strlen (alias->alias_name) +1;
-      /* Adjust the pointer so it is aligned for
-        storing pointers.  */
-      first_unused += __alignof__ (char *) - 1;
-      first_unused -= ((first_unused - (char *) 0) % __alignof__ (char *));
-      alias->alias_members = (char **) first_unused;
-
-      line = buffer;
-
-      while (*line != '\0')
+      if (line != alias->alias_members[alias->alias_members_len])
        {
-         /* Skip leading blanks.  */
-         while (isspace (*line))
-           ++line;
-
-         if (*line == '\0')
-           break;
-
-         if (room_left < sizeof (char *))
-           goto no_more_room;
-         room_left -= sizeof (char *);
-         alias->alias_members[alias->alias_members_len] = line;
-
-         while (*line != '\0' && *line != ',')
-           ++line;
-
-         if (line != alias->alias_members[alias->alias_members_len])
-           {
-             *line++ = '\0';
-             alias->alias_members_len++;
-           }
+         *line++ = '\0';
+         alias->alias_members_len++;
        }
-
-      return alias->alias_members_len == 0 ? 0 : 1;
     }
+
+  return alias->alias_members_len == 0 ? 0 : 1;
 }
 
 static enum nss_status
@@ -158,9 +158,11 @@ internal_setaliasent (void)
   enum nss_status status;
   int err;
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result !=  NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   if (_nss_create_tablename (&err) != NSS_STATUS_SUCCESS)
     return NSS_STATUS_UNAVAIL;
@@ -203,9 +205,11 @@ _nss_nisplus_endaliasent (void)
 {
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
   next_entry = 0;
 
   __libc_lock_unlock (lock);
@@ -240,7 +244,8 @@ internal_nisplus_getaliasent_r (struct aliasent *alias,
        return NSS_STATUS_TRYAGAIN;
 
       ++next_entry;
-    } while (!parse_res);
+    }
+  while (!parse_res);
 
   return NSS_STATUS_SUCCESS;
 }
@@ -268,7 +273,12 @@ _nss_nisplus_getaliasbyname_r (const char *name, struct aliasent *alias,
 
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
+
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
@@ -278,35 +288,34 @@ _nss_nisplus_getaliasbyname_r (const char *name, struct aliasent *alias,
       *errnop = EINVAL;
       return NSS_STATUS_UNAVAIL;
     }
-  else
-    {
-      nis_result *result;
-      char buf[strlen (name) + 30 + tablename_len];
-      int olderr = errno;
 
-      sprintf (buf, "[name=%s],%s", name, tablename_val);
+  char buf[strlen (name) + 9 + tablename_len];
+  int olderr = errno;
 
-      result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+  snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val);
 
-      if (result == NULL)
-       {
-         *errnop = ENOMEM;
-         return NSS_STATUS_TRYAGAIN;
-       }
-      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-       return niserr2nss (result->status);
+  nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-      parse_res = _nss_nisplus_parse_aliasent (result, 0, alias,
-                                              buffer, buflen, errnop);
-      if (parse_res < 1)
-       {
-         __set_errno (olderr);
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-         if (parse_res == -1)
-           return NSS_STATUS_TRYAGAIN;
-         else
-           return NSS_STATUS_NOTFOUND;
-       }
-      return NSS_STATUS_SUCCESS;
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    return niserr2nss (result->status);
+
+  parse_res = _nss_nisplus_parse_aliasent (result, 0, alias,
+                                          buffer, buflen, errnop);
+  if (__builtin_expect (parse_res < 1, 0))
+    {
+      __set_errno (olderr);
+
+      if (parse_res == -1)
+       return NSS_STATUS_TRYAGAIN;
+      else
+       return NSS_STATUS_NOTFOUND;
     }
+
+  return NSS_STATUS_SUCCESS;
 }
index 028309c84114789a1b715d94cef813084841b179..fcc550e743b27b59923c5905a6da670526262a0b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997,1998,2000,2001,2002,2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2000-2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
 
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <nss.h>
-#include <errno.h>
+#include <atomic.h>
 #include <ctype.h>
-#include <string.h>
-#include <bits/libc-lock.h>
+#include <errno.h>
+#include <inttypes.h>
 #include <netdb.h>
+#include <nss.h>
+#include <string.h>
 #include <netinet/ether.h>
-#include <rpcsvc/nis.h>
 #include <netinet/if_ether.h>
+#include <rpcsvc/nis.h>
+#include <bits/libc-lock.h>
 
 #include "nss-nisplus.h"
 
@@ -70,7 +72,14 @@ _nss_nisplus_parse_etherent (nis_result *result, struct etherent *ether,
   room_left -= (NISENTRYLEN (0, 0, result) +1);
   ether->e_name = p;
 
-  ether->e_addr = *ether_aton (NISENTRYVAL (0, 1, result));
+  struct ether_addr *ea = ether_aton (NISENTRYVAL (0, 1, result));
+  if (ea == NULL)
+    {
+      *errnop = EINVAL;
+      return -2;
+    }
+
+  ether->e_addr = *ea;
 
   return 1;
 }
@@ -80,18 +89,24 @@ _nss_create_tablename (int *errnop)
 {
   if (tablename_val == NULL)
     {
-      char buf [40 + strlen (nis_local_directory ())];
-      char *p;
+      const char *local_dir = nis_local_directory ();
+      size_t local_dir_len = strlen (local_dir);
+      static const char prefix[] = "ethers.org_dir.";
 
-      p = __stpcpy (buf, "ethers.org_dir.");
-      p = __stpcpy (p, nis_local_directory ());
-      tablename_val = __strdup (buf);
+      char *p = malloc (sizeof (prefix) + local_dir_len);
       if (tablename_val == NULL)
        {
          *errnop = errno;
          return NSS_STATUS_TRYAGAIN;
        }
-      tablename_len = strlen (tablename_val);
+
+      memcpy (__stpcpy (p, prefix), local_dir, local_dir_len + 1);
+
+      tablename_len = sizeof (prefix) - 1 + local_dir_len;
+
+      atomic_write_barrier ();
+
+      tablename_val = p;
     }
   return NSS_STATUS_SUCCESS;
 }
@@ -107,9 +122,11 @@ _nss_nisplus_setetherent (int stayopen)
 
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   if (_nss_create_tablename (&err) != NSS_STATUS_SUCCESS)
     status = NSS_STATUS_UNAVAIL;
@@ -124,9 +141,11 @@ _nss_nisplus_endetherent (void)
 {
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   __libc_lock_unlock (lock);
 
@@ -137,8 +156,6 @@ static enum nss_status
 internal_nisplus_getetherent_r (struct etherent *ether, char *buffer,
                                size_t buflen, int *errnop)
 {
-  int parse_res;
-
   if (tablename_val == NULL)
     {
       enum nss_status status = _nss_create_tablename (errnop);
@@ -148,6 +165,7 @@ internal_nisplus_getetherent_r (struct etherent *ether, char *buffer,
     }
 
   /* Get the next entry until we found a correct one. */
+  int parse_res;
   do
     {
       nis_result *saved_result;
@@ -161,11 +179,8 @@ internal_nisplus_getetherent_r (struct etherent *ether, char *buffer,
        }
       else
        {
-         nis_result *res2;
-
-         res2 = nis_next_entry(tablename_val, &result->cookie);
          saved_result = result;
-         result = res2;
+         result = nis_next_entry (tablename_val, &result->cookie);
          if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
            {
              nis_freeresult (saved_result);
@@ -178,17 +193,15 @@ internal_nisplus_getetherent_r (struct etherent *ether, char *buffer,
       if (parse_res == -1)
        {
          nis_freeresult (result);
-         *errnop = ERANGE;
          result = saved_result;
          return NSS_STATUS_TRYAGAIN;
        }
-      else
-       {
-         if (saved_result != NULL)
-           nis_freeresult (saved_result);
-       }
 
-    } while (!parse_res);
+      if (saved_result != NULL)
+       nis_freeresult (saved_result);
+
+    }
+  while (!parse_res);
 
   return NSS_STATUS_SUCCESS;
 }
@@ -212,8 +225,6 @@ enum nss_status
 _nss_nisplus_gethostton_r (const char *name, struct etherent *eth,
                           char *buffer, size_t buflen, int *errnop)
 {
-  int parse_res;
-
   if (tablename_val == NULL)
     {
       enum nss_status status = _nss_create_tablename (errnop);
@@ -227,56 +238,57 @@ _nss_nisplus_gethostton_r (const char *name, struct etherent *eth,
       *errnop = EINVAL;
       return NSS_STATUS_UNAVAIL;
     }
-  else
-    {
-      nis_result *result;
-      char buf[strlen (name) + 40 + tablename_len];
-      int olderr = errno;
 
-      sprintf (buf, "[name=%s],%s", name, tablename_val);
+  char buf[strlen (name) + 9 + tablename_len];
+  int olderr = errno;
 
-      result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+  snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val);
 
-      if (result == NULL)
-       {
-         *errnop = ENOMEM;
-         return NSS_STATUS_TRYAGAIN;
-       }
-      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-       {
-         enum nss_status status = niserr2nss (result->status);
-         nis_freeresult (result);
-         return status;
-       }
+  nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-      parse_res = _nss_nisplus_parse_etherent (result, eth, buffer,
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
+
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
+      nis_freeresult (result);
+      return status;
+    }
+
+  int parse_res = _nss_nisplus_parse_etherent (result, eth, buffer,
                                               buflen, errnop);
-      if (parse_res < 1)
-       {
-         __set_errno (olderr);
+  if (__builtin_expect (parse_res < 1, 0))
+    {
+      __set_errno (olderr);
 
-         if (parse_res == -1)
-           {
-             nis_freeresult (result);
-             *errnop = ERANGE;
-             return NSS_STATUS_TRYAGAIN;
-           }
-         else
-          return NSS_STATUS_NOTFOUND;
+      if (parse_res == -1)
+       {
+         nis_freeresult (result);
+         return NSS_STATUS_TRYAGAIN;
        }
-      return NSS_STATUS_SUCCESS;
+      else
+       return NSS_STATUS_NOTFOUND;
     }
+
+  return NSS_STATUS_SUCCESS;
 }
 
 enum nss_status
-_nss_nisplus_getntohost_r (const struct ether_addr *addr,
-                          struct etherent *eth,
+_nss_nisplus_getntohost_r (const struct ether_addr *addr, struct etherent *eth,
                           char *buffer, size_t buflen, int *errnop)
 {
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
@@ -286,44 +298,44 @@ _nss_nisplus_getntohost_r (const struct ether_addr *addr,
       *errnop = EINVAL;
       return NSS_STATUS_UNAVAIL;
     }
-  else
-    {
-      int parse_res;
-      nis_result *result;
-      char buf[255 + tablename_len];
 
-      sprintf (buf, "[addr=%x:%x:%x:%x:%x:%x],ethers.org_dir",
-              addr->ether_addr_octet[0], addr->ether_addr_octet[1],
-              addr->ether_addr_octet[2], addr->ether_addr_octet[3],
-              addr->ether_addr_octet[4], addr->ether_addr_octet[5]);
+  char buf[26 + tablename_len];
 
-      result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+  snprintf (buf, sizeof (buf),
+           "[addr=%" PRIx8 ":%" PRIx8 ":%" PRIx8 ":%" PRIx8 ":%" PRIx8
+           ":%" PRIx8 "],%s",
+           addr->ether_addr_octet[0], addr->ether_addr_octet[1],
+           addr->ether_addr_octet[2], addr->ether_addr_octet[3],
+           addr->ether_addr_octet[4], addr->ether_addr_octet[5],
+           tablename_val);
 
-      if (result == NULL)
-       {
-         *errnop = ENOMEM;
-         return NSS_STATUS_TRYAGAIN;
-       }
-      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-       {
-         enum nss_status status = niserr2nss (result->status);
-         nis_freeresult (result);
-         return status;
-       }
+  nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-      parse_res = _nss_nisplus_parse_etherent (result, eth, buffer,
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
+
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
+      nis_freeresult (result);
+      return status;
+    }
+
+  int parse_res = _nss_nisplus_parse_etherent (result, eth, buffer,
                                               buflen, errnop);
-      if (parse_res < 1)
+  if (__builtin_expect (parse_res < 1, 0))
+    {
+      if (parse_res == -1)
        {
-         if (parse_res == -1)
-           {
-             nis_freeresult (result);
-             *errnop = ERANGE;
-             return NSS_STATUS_TRYAGAIN;
-           }
-         else
-           return NSS_STATUS_NOTFOUND;
+         nis_freeresult (result);
+         return NSS_STATUS_TRYAGAIN;
        }
-      return NSS_STATUS_SUCCESS;
+
+      return NSS_STATUS_NOTFOUND;
     }
+
+  return NSS_STATUS_SUCCESS;
 }
index daca94fc87f5236d409af63dede14f4a6cf4216d..423f7e72911f82529267e94d892e5a730e7b06b4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
 
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <atomic.h>
 #include <nss.h>
 #include <grp.h>
 #include <ctype.h>
 #include "nss-nisplus.h"
 #include "nisplus-parser.h"
 
+
 __libc_lock_define_initialized (static, lock);
 
 static nis_result *result;
 static unsigned long next_entry;
 static nis_name tablename_val;
-static u_long tablename_len;
+static size_t tablename_len;
 
 static enum nss_status
 _nss_create_tablename (int *errnop)
 {
   if (tablename_val == NULL)
     {
-      char buf [40 + strlen (nis_local_directory ())];
-      char *p;
+      const char *local_dir = nis_local_directory ();
+      size_t local_dir_len = strlen (local_dir);
+      static const char prefix[] = "group.org_dir.";
 
-      p = __stpcpy (buf, "group.org_dir.");
-      p = __stpcpy (p, nis_local_directory ());
-      tablename_val = __strdup (buf);
+      char *p = malloc (sizeof (prefix) + local_dir_len);
       if (tablename_val == NULL)
        {
          *errnop = errno;
          return NSS_STATUS_TRYAGAIN;
        }
-      tablename_len = strlen (tablename_val);
+
+      memcpy (__stpcpy (p, prefix), local_dir, local_dir_len + 1);
+
+      tablename_len = sizeof (prefix) - 1 + local_dir_len;
+
+      atomic_write_barrier ();
+
+      tablename_val = p;
     }
+
   return NSS_STATUS_SUCCESS;
 }
 
@@ -60,16 +69,20 @@ static enum nss_status
 internal_setgrent (void)
 {
   enum nss_status status;
-  int err;
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
   next_entry = 0;
 
   if (tablename_val == NULL)
-    if (_nss_create_tablename (&err) != NSS_STATUS_SUCCESS)
-      return NSS_STATUS_UNAVAIL;
+    {
+      int err;
+      if (_nss_create_tablename (&err) != NSS_STATUS_SUCCESS)
+       return NSS_STATUS_UNAVAIL;
+    }
 
   result = nis_list (tablename_val, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
   if (result == NULL)
@@ -108,9 +121,11 @@ _nss_nisplus_endgrent (void)
 {
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   __libc_lock_unlock (lock);
 
@@ -173,8 +188,12 @@ _nss_nisplus_getgrnam_r (const char *name, struct group *gr,
 
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
@@ -184,47 +203,46 @@ _nss_nisplus_getgrnam_r (const char *name, struct group *gr,
       *errnop = EINVAL;
       return NSS_STATUS_NOTFOUND;
     }
-  else
+
+  nis_result *result;
+  char buf[strlen (name) + 9 + tablename_len];
+  int olderr = errno;
+
+  snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val);
+
+  result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
+
+  if (result == NULL)
     {
-      nis_result *result;
-      char buf[strlen (name) + 24 + tablename_len];
-      int olderr = errno;
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-      sprintf (buf, "[name=%s],%s", name, tablename_val);
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
 
-      result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
+      nis_freeresult (result);
+      return status;
+    }
 
-      if (result == NULL)
+  parse_res = _nss_nisplus_parse_grent (result, 0, gr, buffer, buflen, errnop);
+  nis_freeresult (result);
+  if (__builtin_expect (parse_res < 1, 0))
+    {
+      if (parse_res == -1)
        {
-         *errnop = ENOMEM;
+         *errnop = ERANGE;
          return NSS_STATUS_TRYAGAIN;
        }
-      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-       {
-         enum nss_status status = niserr2nss (result->status);
-
-         nis_freeresult (result);
-         return status;
-       }
-
-      parse_res = _nss_nisplus_parse_grent (result, 0, gr, buffer, buflen,
-                                           errnop);
-      nis_freeresult (result);
-      if (parse_res < 1)
+      else
        {
-         if (parse_res == -1)
-           {
-             *errnop = ERANGE;
-             return NSS_STATUS_TRYAGAIN;
-           }
-         else
-           {
-             __set_errno (olderr);
-             return NSS_STATUS_NOTFOUND;
-           }
+         __set_errno (olderr);
+         return NSS_STATUS_NOTFOUND;
        }
-      return NSS_STATUS_SUCCESS;
     }
+
+  return NSS_STATUS_SUCCESS;
 }
 
 enum nss_status
@@ -233,53 +251,57 @@ _nss_nisplus_getgrgid_r (const gid_t gid, struct group *gr,
 {
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
 
-  {
-    int parse_res;
-    nis_result *result;
-    char buf[36 + tablename_len];
-    int olderr = errno;
+  int parse_res;
+  nis_result *result;
+  char buf[8 + 3 * sizeof (unsigned long int) + tablename_len];
+  int olderr = errno;
 
-    sprintf (buf, "[gid=%lu],%s", (unsigned long int) gid, tablename_val);
+  snprintf (buf, sizeof (buf), "[gid=%lu],%s",
+           (unsigned long int) gid, tablename_val);
 
-    result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+  result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-    if (result == NULL)
-      {
-       *errnop = ENOMEM;
-       return NSS_STATUS_TRYAGAIN;
-      }
-    if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-      {
-       enum nss_status status = niserr2nss (result->status);
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-       __set_errno (olderr);
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
 
-       nis_freeresult (result);
-       return status;
-      }
-
-    parse_res = _nss_nisplus_parse_grent (result, 0, gr, buffer, buflen,
-                                         errnop);
-
-    nis_freeresult (result);
-    if (parse_res < 1)
-      {
-       __set_errno (olderr);
-
-       if (parse_res == -1)
-         {
-           *errnop = ERANGE;
-           return NSS_STATUS_TRYAGAIN;
-         }
-       else
-         return NSS_STATUS_NOTFOUND;
-      }
-    return NSS_STATUS_SUCCESS;
-  }
+      __set_errno (olderr);
+
+      nis_freeresult (result);
+      return status;
+    }
+
+  parse_res = _nss_nisplus_parse_grent (result, 0, gr, buffer, buflen, errnop);
+
+  nis_freeresult (result);
+  if (__builtin_expect (parse_res < 1, 0))
+    {
+      __set_errno (olderr);
+
+      if (parse_res == -1)
+       {
+         *errnop = ERANGE;
+         return NSS_STATUS_TRYAGAIN;
+       }
+      else
+       return NSS_STATUS_NOTFOUND;
+    }
+
+  return NSS_STATUS_SUCCESS;
 }
index 540469894e0bb4ba8f15666f3334671be32b156f..81f8a984dcda6839eb2cc096ee4ca45382ba4447 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
 
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <nss.h>
-#include <netdb.h>
-#include <errno.h>
+#include <atomic.h>
 #include <ctype.h>
+#include <errno.h>
+#include <netdb.h>
+#include <nss.h>
 #include <string.h>
-#include <netinet/in.h>
 #include <arpa/inet.h>
-#include <bits/libc-lock.h>
+#include <netinet/in.h>
 #include <rpcsvc/nis.h>
+#include <bits/libc-lock.h>
 
 #include "nss-nisplus.h"
 
@@ -180,19 +181,26 @@ _nss_create_tablename (int *errnop)
 {
   if (tablename_val == NULL)
     {
-      char buf [40 + strlen (nis_local_directory ())];
-      char *p;
+      const char *local_dir = nis_local_directory ();
+      size_t local_dir_len = strlen (local_dir);
+      static const char prefix[] = "hosts.org_dir.";
 
-      p = __stpcpy (buf, "hosts.org_dir.");
-      p = __stpcpy (p, nis_local_directory ());
-      tablename_val = __strdup (buf);
+      char *p = malloc (sizeof (prefix) + local_dir_len);
       if (tablename_val == NULL)
        {
          *errnop = errno;
          return NSS_STATUS_TRYAGAIN;
        }
-      tablename_len = strlen (tablename_val);
+
+      memcpy (__stpcpy (p, prefix), local_dir, local_dir_len + 1);
+
+      tablename_len = sizeof (prefix) - 1 + local_dir_len;
+
+      atomic_write_barrier ();
+
+      tablename_val = p;
     }
+
   return NSS_STATUS_SUCCESS;
 }
 
@@ -204,9 +212,11 @@ _nss_nisplus_sethostent (int stayopen)
 
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   if (tablename_val == NULL)
     status = _nss_create_tablename (&err);
@@ -221,9 +231,11 @@ _nss_nisplus_endhostent (void)
 {
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   __libc_lock_unlock (lock);
 
@@ -335,8 +347,12 @@ internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
 
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        {
          *herrnop = NETDB_INTERNAL;
@@ -350,75 +366,81 @@ internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
       *herrnop = NETDB_INTERNAL;
       return NSS_STATUS_NOTFOUND;
     }
-  else
-    {
-      nis_result *result;
-      char buf[strlen (name) + 255 + tablename_len];
-      int olderr = errno;
 
-      /* Search at first in the alias list, and use the correct name
-        for the next search */
-      sprintf (buf, "[name=%s],%s", name, tablename_val);
-      result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+  nis_result *result;
+  char buf[strlen (name) + 10 + tablename_len];
+  int olderr = errno;
 
-      if (result != NULL)
-       {
-         /* If we do not find it, try it as original name. But if the
-            database is correct, we should find it in the first case, too */
-         if ((result->status != NIS_SUCCESS
-              && result->status != NIS_S_SUCCESS)
-             || __type_of (result->objects.objects_val) != NIS_ENTRY_OBJ
-             || strcmp (result->objects.objects_val->EN_data.en_type,
-                        "hosts_tbl") != 0
-             || result->objects.objects_val->EN_data.en_cols.en_cols_len < 3)
-           sprintf (buf, "[cname=%s],%s", name, tablename_val);
-         else
-           sprintf (buf, "[cname=%s],%s", NISENTRYVAL(0, 0, result),
-                    tablename_val);
-
-         nis_freeresult (result);
-         result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
-       }
+  /* Search at first in the alias list, and use the correct name
+     for the next search.  */
+  snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val);
+  result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-      if (result == NULL)
+  if (result != NULL)
+    {
+      char *bufptr = buf;
+
+      /* If we did not find it, try it as original name. But if the
+        database is correct, we should find it in the first case, too.  */
+      if ((result->status != NIS_SUCCESS
+          && result->status != NIS_S_SUCCESS)
+         || __type_of (result->objects.objects_val) != NIS_ENTRY_OBJ
+         || strcmp (result->objects.objects_val->EN_data.en_type,
+                    "hosts_tbl") != 0
+         || result->objects.objects_val->EN_data.en_cols.en_cols_len < 3)
+       snprintf (buf, sizeof (buf), "[cname=%s],%s", name, tablename_val);
+      else
        {
-         *errnop = ENOMEM;
-         return NSS_STATUS_TRYAGAIN;
+         /* We need to allocate a new buffer since there is no
+            guarantee the returned name has a length limit.  */
+         const char *entryval = NISENTRYVAL(0, 0, result);
+         size_t buflen = strlen (entryval) + 10 + tablename_len;
+         bufptr = alloca (buflen);
+         snprintf (bufptr, buflen, "[cname=%s],%s",
+                   entryval, tablename_val);
        }
-      retval = niserr2nss (result->status);
-      if (retval != NSS_STATUS_SUCCESS)
-        {
-          if (retval == NSS_STATUS_TRYAGAIN)
-            {
-             *errnop = errno;
-              *herrnop = NETDB_INTERNAL;
-            }
-         else
-           __set_errno (olderr);
-         nis_freeresult (result);
-          return retval;
-        }
-
-      parse_res = _nss_nisplus_parse_hostent (result, af, host, buffer,
-                                             buflen, errnop, flags);
 
       nis_freeresult (result);
+      result = nis_list (bufptr, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+    }
 
-      if (parse_res > 0)
-       return NSS_STATUS_SUCCESS;
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-      *herrnop = NETDB_INTERNAL;
-      if (parse_res == -1)
+  retval = niserr2nss (result->status);
+  if (__builtin_expect (retval != NSS_STATUS_SUCCESS, 0))
+    {
+      if (retval == NSS_STATUS_TRYAGAIN)
        {
-         *errnop = ERANGE;
-         return NSS_STATUS_TRYAGAIN;
+         *errnop = errno;
+         *herrnop = NETDB_INTERNAL;
        }
       else
-       {
-         __set_errno (olderr);
-         return NSS_STATUS_NOTFOUND;
-       }
+       __set_errno (olderr);
+      nis_freeresult (result);
+      return retval;
     }
+
+  parse_res = _nss_nisplus_parse_hostent (result, af, host, buffer,
+                                         buflen, errnop, flags);
+
+  nis_freeresult (result);
+
+  if (parse_res > 0)
+    return NSS_STATUS_SUCCESS;
+
+  *herrnop = NETDB_INTERNAL;
+  if (parse_res == -1)
+    {
+      *errnop = ERANGE;
+      return NSS_STATUS_TRYAGAIN;
+    }
+
+  __set_errno (olderr);
+  return NSS_STATUS_NOTFOUND;
 }
 
 enum nss_status
@@ -431,17 +453,6 @@ _nss_nisplus_gethostbyname2_r (const char *name, int af, struct hostent *host,
                         ((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0));
 }
 
-#if 0
-enum nss_status
-_nss_nisplus_getipnodebyname_r (const char *name, int af, int flags,
-                               struct hostent *result, char *buffer,
-                               size_t buflen, int *errnop, int *herrnop)
-{
-  return internal_gethostbyname2_r (name, af, result, buffer, buflen,
-                                   errnop, herrnop, flags);
-}
-#endif
-
 enum nss_status
 _nss_nisplus_gethostbyname_r (const char *name, struct hostent *host,
                              char *buffer, size_t buflen, int *errnop,
@@ -469,62 +480,63 @@ _nss_nisplus_gethostbyaddr_r (const void *addr, socklen_t addrlen, int af,
 {
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
 
   if (addr == NULL)
     return NSS_STATUS_NOTFOUND;
-  else
-    {
-      nis_result *result;
-      char buf[255 + tablename_len];
-      int retval, parse_res;
-      int olderr = errno;
 
-      sprintf (buf, "[addr=%s],%s",
-              inet_ntoa (*(const struct in_addr *) addr), tablename_val);
-      result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
-
-      if (result == NULL)
-       {
-         __set_errno (ENOMEM);
-         return NSS_STATUS_TRYAGAIN;
-       }
-      retval = niserr2nss (result->status);
-      if (retval != NSS_STATUS_SUCCESS)
-        {
-          if (retval == NSS_STATUS_TRYAGAIN)
-            {
-             *errnop = errno;
-              *herrnop = NETDB_INTERNAL;
-            }
-         else
-           __set_errno (olderr);
-         nis_freeresult (result);
-          return retval;
-        }
+  char buf[24 + tablename_len];
+  int retval, parse_res;
+  int olderr = errno;
 
-      parse_res = _nss_nisplus_parse_hostent (result, af, host,
-                                             buffer, buflen, errnop,
-                    ((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0));
-      nis_freeresult (result);
+  snprintf (buf, sizeof (buf), "[addr=%s],%s",
+          inet_ntoa (*(const struct in_addr *) addr), tablename_val);
+  nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-      if (parse_res > 0)
-       return NSS_STATUS_SUCCESS;
+  if (result == NULL)
+    {
+      __set_errno (ENOMEM);
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-      *herrnop = NETDB_INTERNAL;
-      if (parse_res == -1)
+  retval = niserr2nss (result->status);
+  if (__builtin_expect (retval != NSS_STATUS_SUCCESS, 0))
+    {
+      if (retval == NSS_STATUS_TRYAGAIN)
        {
-         *errnop = ERANGE;
-         return NSS_STATUS_TRYAGAIN;
+         *errnop = errno;
+         *herrnop = NETDB_INTERNAL;
        }
       else
-       {
-         __set_errno (olderr);
-         return NSS_STATUS_NOTFOUND;
-       }
+       __set_errno (olderr);
+      nis_freeresult (result);
+      return retval;
+    }
+
+  parse_res = _nss_nisplus_parse_hostent (result, af, host,
+                                         buffer, buflen, errnop,
+                                         ((_res.options & RES_USE_INET6)
+                                          ? AI_V4MAPPED : 0));
+  nis_freeresult (result);
+
+  if (parse_res > 0)
+    return NSS_STATUS_SUCCESS;
+
+  *herrnop = NETDB_INTERNAL;
+  if (parse_res == -1)
+    {
+      *errnop = ERANGE;
+      return NSS_STATUS_TRYAGAIN;
     }
+
+  __set_errno (olderr);
+  return NSS_STATUS_NOTFOUND;
 }
index 344d65f4c495c4afe0e84a5d4fac78731895760d..31a8cdf0976c27044e24c11c3f717e60d7bb28ff 100644 (file)
@@ -150,15 +150,14 @@ internal_endnetgrent (struct __netgrent *netgrp)
 enum nss_status
 _nss_nisplus_setnetgrent (const char *group, struct __netgrent *netgrp)
 {
-  enum nss_status status;
-  char buf[strlen (group) + 30];
+  char buf[strlen (group) + 25];
 
   if (group == NULL || group[0] == '\0')
     return NSS_STATUS_UNAVAIL;
 
-  status = NSS_STATUS_SUCCESS;
+  enum nss_status status = NSS_STATUS_SUCCESS;
 
-  sprintf (buf, "[name=%s],netgroup.org_dir", group);
+  snprintf (buf, sizeof (buf), "[name=%s],netgroup.org_dir", group);
 
   netgrp->data = (char *) nis_list (buf, EXPAND_NAME, NULL, NULL);
 
index 422b02b82acb64259113e17c914b3a2f40e4b2b9..dc6b99e5051d5cbc39231b75f6137ab022c0f269 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997,1998,2000,2001,2002,2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2000-2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
 
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <nss.h>
-#include <netdb.h>
-#include <errno.h>
+#include <atomic.h>
 #include <ctype.h>
+#include <errno.h>
+#include <netdb.h>
+#include <nss.h>
 #include <stdint.h>
 #include <string.h>
 #include <arpa/inet.h>
-#include <bits/libc-lock.h>
 #include <rpcsvc/nis.h>
+#include <bits/libc-lock.h>
 
 #include "nss-nisplus.h"
 
@@ -44,12 +45,10 @@ static u_long tablename_len;
 
 static int
 _nss_nisplus_parse_netent (nis_result *result, struct netent *network,
-                           char *buffer, size_t buflen, int *errnop)
+                          char *buffer, size_t buflen, int *errnop)
 {
   char *first_unused = buffer;
   size_t room_left = buflen;
-  unsigned int i;
-  char *p, *line;
 
   if (result == NULL)
     return 0;
@@ -61,7 +60,7 @@ _nss_nisplus_parse_netent (nis_result *result, struct netent *network,
       || result->objects.objects_val[0].EN_data.en_cols.en_cols_len < 3)
     return 0;
 
-  if (NISENTRYLEN(0, 0, result) >= room_left)
+  if (NISENTRYLEN (0, 0, result) >= room_left)
     {
       /* The line is too long for our buffer.  */
     no_more_room:
@@ -69,7 +68,7 @@ _nss_nisplus_parse_netent (nis_result *result, struct netent *network,
       return -1;
     }
 
-  strncpy (first_unused, NISENTRYVAL(0, 0, result),
+  strncpy (first_unused, NISENTRYVAL (0, 0, result),
            NISENTRYLEN (0, 0, result));
   first_unused[NISENTRYLEN (0, 0, result)] = '\0';
   network->n_name = first_unused;
@@ -77,10 +76,10 @@ _nss_nisplus_parse_netent (nis_result *result, struct netent *network,
   first_unused += strlen (first_unused) +1;
   network->n_addrtype = 0;
   network->n_net = inet_network (NISENTRYVAL (0, 2, result));
-  p = first_unused;
+  char *p = first_unused;
 
-  line = p;
-  for (i = 0; i < result->objects.objects_len; ++i)
+  char *line = p;
+  for (unsigned int i = 0; i < result->objects.objects_len; ++i)
     {
       if (strcmp (NISENTRYVAL (i, 1, result), network->n_name) != 0)
         {
@@ -107,12 +106,12 @@ _nss_nisplus_parse_netent (nis_result *result, struct netent *network,
   room_left -= (2 * sizeof (char *));
   network->n_aliases[0] = NULL;
 
-  i = 0;
+  unsigned int i = 0;
   while (*line != '\0')
     {
       /* Skip leading blanks.  */
       while (isspace (*line))
-        line++;
+        ++line;
 
       if (*line == '\0')
         break;
@@ -133,7 +132,7 @@ _nss_nisplus_parse_netent (nis_result *result, struct netent *network,
           ++i;
         }
       else
-        network->n_aliases[i+1] = NULL;
+        network->n_aliases[i + 1] = NULL;
     }
 
   return 1;
@@ -144,19 +143,26 @@ _nss_create_tablename (int *errnop)
 {
   if (tablename_val == NULL)
     {
-      char buf [40 + strlen (nis_local_directory ())];
-      char *p;
+      const char *local_dir = nis_local_directory ();
+      size_t local_dir_len = strlen (local_dir);
+      static const char prefix[] = "networks.org_dir.";
 
-      p = __stpcpy (buf, "networks.org_dir.");
-      p = __stpcpy (p, nis_local_directory ());
-      tablename_val = __strdup (buf);
+      char *p = malloc (sizeof (prefix) + local_dir_len);
       if (tablename_val == NULL)
        {
          *errnop = errno;
          return NSS_STATUS_TRYAGAIN;
        }
-      tablename_len = strlen (tablename_val);
+
+      memcpy (__stpcpy (p, prefix), local_dir, local_dir_len + 1);
+
+      tablename_len = sizeof (prefix) - 1 + local_dir_len;
+
+      atomic_write_barrier ();
+
+      tablename_val = p;
     }
+
   return NSS_STATUS_SUCCESS;
 }
 
@@ -164,16 +170,20 @@ enum nss_status
 _nss_nisplus_setnetent (int stayopen)
 {
   enum nss_status status = NSS_STATUS_SUCCESS;
-  int err;
 
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   if (tablename_val == NULL)
-    status = _nss_create_tablename (&err);
+    {
+      int err;
+      status = _nss_create_tablename (&err);
+    }
 
   __libc_lock_unlock (lock);
 
@@ -185,9 +195,11 @@ _nss_nisplus_endnetent (void)
 {
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   __libc_lock_unlock (lock);
 
@@ -220,9 +232,7 @@ internal_nisplus_getnetent_r (struct netent *network, char *buffer,
          result = nis_first_entry (tablename_val);
          if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
            {
-             int retval;
-
-             retval = niserr2nss (result->status);
+             int retval = niserr2nss (result->status);
              nis_freeresult (result);
              result = NULL;
              if (retval == NSS_STATUS_TRYAGAIN)
@@ -237,16 +247,12 @@ internal_nisplus_getnetent_r (struct netent *network, char *buffer,
        }
       else
        {
-         nis_result *res;
-
-         res = nis_next_entry (tablename_val, &result->cookie);
+         nis_result *res = nis_next_entry (tablename_val, &result->cookie);
          saved_res = result;
          result = res;
          if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
            {
-             int retval;
-
-             retval = niserr2nss (result->status);
+             int retval = niserr2nss (result->status);
              nis_freeresult (result);
              result = saved_res;
              if (retval == NSS_STATUS_TRYAGAIN)
@@ -266,7 +272,8 @@ internal_nisplus_getnetent_r (struct netent *network, char *buffer,
           return NSS_STATUS_TRYAGAIN;
         }
 
-    } while (!parse_res);
+    }
+  while (!parse_res);
 
   return NSS_STATUS_SUCCESS;
 }
@@ -296,8 +303,12 @@ _nss_nisplus_getnetbyname_r (const char *name, struct netent *network,
 
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
@@ -308,76 +319,82 @@ _nss_nisplus_getnetbyname_r (const char *name, struct netent *network,
       *herrnop = NETDB_INTERNAL;
       return NSS_STATUS_UNAVAIL;
     }
-  else
-    {
-      nis_result *result;
-      char buf[strlen (name) + 255 + tablename_len];
-      int olderr = errno;
 
-      /* Search at first in the alias list, and use the correct name
-        for the next search */
-      sprintf (buf, "[name=%s],%s", name, tablename_val);
-      result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
+  nis_result *result;
+  char buf[strlen (name) + 10 + tablename_len];
+  int olderr = errno;
 
-      if (result != NULL)
-       {
-         /* If we do not find it, try it as original name. But if the
-            database is correct, we should find it in the first case, too */
-         if ((result->status != NIS_SUCCESS
-              && result->status != NIS_S_SUCCESS)
-             || __type_of (result->objects.objects_val) != NIS_ENTRY_OBJ
-             || strcmp (result->objects.objects_val[0].EN_data.en_type,
-                        "networks_tbl") != 0
-             || (result->objects.objects_val[0].EN_data.en_cols.en_cols_len
-                 < 3))
-           sprintf (buf, "[cname=%s],%s", name, tablename_val);
-         else
-           sprintf (buf, "[cname=%s],%s", NISENTRYVAL (0, 0, result),
-                    tablename_val);
-
-         nis_freeresult (result);
-         result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
-       }
+  /* Search at first in the alias list, and use the correct name
+     for the next search */
+  snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val);
+  result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
 
-      if (result == NULL)
-       {
-         __set_errno (ENOMEM);
-         return NSS_STATUS_TRYAGAIN;
-       }
-      retval = niserr2nss (result->status);
-      if (retval != NSS_STATUS_SUCCESS)
+  if (result != NULL)
+    {
+      char *bufptr = buf;
+
+      /* If we do not find it, try it as original name. But if the
+        database is correct, we should find it in the first case, too */
+      if ((result->status != NIS_SUCCESS
+          && result->status != NIS_S_SUCCESS)
+         || __type_of (result->objects.objects_val) != NIS_ENTRY_OBJ
+         || strcmp (result->objects.objects_val[0].EN_data.en_type,
+                    "networks_tbl") != 0
+         || (result->objects.objects_val[0].EN_data.en_cols.en_cols_len
+             < 3))
+       snprintf (buf, sizeof (buf), "[cname=%s],%s", name, tablename_val);
+      else
        {
-         if (retval == NSS_STATUS_TRYAGAIN)
-           {
-             *errnop = errno;
-             *herrnop = NETDB_INTERNAL;
-           }
-         else
-           __set_errno (olderr);
-         nis_freeresult (result);
-         return retval;
+         /* We need to allocate a new buffer since there is no
+            guarantee the returned name has a length limit.  */
+         const char *entryval = NISENTRYVAL (0, 0, result);
+         size_t buflen = strlen (entryval) + 10 + tablename_len;
+         bufptr = alloca (buflen);
+         snprintf (bufptr, buflen, "[cname=%s],%s",
+                   entryval, tablename_val);
        }
 
-      parse_res = _nss_nisplus_parse_netent (result, network, buffer, buflen,
-                                            errnop);
-
       nis_freeresult (result);
+      result = nis_list (bufptr, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
+    }
 
-      if (parse_res > 0)
-       return NSS_STATUS_SUCCESS;
+  if (result == NULL)
+    {
+      __set_errno (ENOMEM);
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-      *herrnop = NETDB_INTERNAL;
-      if (parse_res == -1)
+  retval = niserr2nss (result->status);
+  if (__builtin_expect (retval != NSS_STATUS_SUCCESS, 0))
+    {
+      if (retval == NSS_STATUS_TRYAGAIN)
        {
-         *errnop = ERANGE;
-         return NSS_STATUS_TRYAGAIN;
+         *errnop = errno;
+         *herrnop = NETDB_INTERNAL;
        }
       else
-       {
-         __set_errno (olderr);
-         return NSS_STATUS_NOTFOUND;
-       }
+       __set_errno (olderr);
+      nis_freeresult (result);
+      return retval;
+    }
+
+  parse_res = _nss_nisplus_parse_netent (result, network, buffer, buflen,
+                                        errnop);
+
+  nis_freeresult (result);
+
+  if (parse_res > 0)
+    return NSS_STATUS_SUCCESS;
+
+  *herrnop = NETDB_INTERNAL;
+  if (parse_res == -1)
+    {
+      *errnop = ERANGE;
+      return NSS_STATUS_TRYAGAIN;
     }
+
+  __set_errno (olderr);
+  return NSS_STATUS_NOTFOUND;
 }
 
 /* XXX type is ignored, SUN's NIS+ table doesn't support it */
@@ -388,39 +405,39 @@ _nss_nisplus_getnetbyaddr_r (uint32_t addr, const int type,
 {
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
 
   {
-    int parse_res, retval;
-    nis_result *result;
-    char buf[1024 + tablename_len];
-    struct in_addr in;
-    char buf2[256];
-    int b2len;
+    char buf[27 + tablename_len];
+    char buf2[18];
     int olderr = errno;
 
-    in = inet_makeaddr (addr, 0);
+    struct in_addr in = inet_makeaddr (addr, 0);
     strcpy (buf2, inet_ntoa (in));
-    b2len = strlen (buf2);
+    size_t b2len = strlen (buf2);
 
     while (1)
       {
-       sprintf (buf, "[addr=%s],%s", buf2, tablename_val);
-       result = nis_list (buf, EXPAND_NAME, NULL, NULL);
+       snprintf (buf, sizeof (buf), "[addr=%s],%s", buf2, tablename_val);
+       nis_result *result = nis_list (buf, EXPAND_NAME, NULL, NULL);
 
        if (result == NULL)
          {
            __set_errno (ENOMEM);
            return NSS_STATUS_TRYAGAIN;
          }
-       retval = niserr2nss (result->status);
-       if (retval != NSS_STATUS_SUCCESS)
+       enum nss_status retval = niserr2nss (result->status);
+       if (__builtin_expect (retval != NSS_STATUS_SUCCESS, 0))
          {
-           if (buf2[b2len -2] == '.' && buf2[b2len -1] == '0')
+           if (b2len > 2 && buf2[b2len - 2] == '.' && buf2[b2len - 1] == '0')
              {
                /* Try again, but with trailing dot(s)
                   removed (one by one) */
@@ -428,8 +445,6 @@ _nss_nisplus_getnetbyaddr_r (uint32_t addr, const int type,
                b2len -= 2;
                continue;
              }
-           else
-             return NSS_STATUS_NOTFOUND;
 
            if (retval == NSS_STATUS_TRYAGAIN)
              {
@@ -442,8 +457,8 @@ _nss_nisplus_getnetbyaddr_r (uint32_t addr, const int type,
            return retval;
          }
 
-       parse_res = _nss_nisplus_parse_netent (result, network, buffer,
-                                              buflen, errnop);
+       int parse_res = _nss_nisplus_parse_netent (result, network, buffer,
+                                                  buflen, errnop);
 
        nis_freeresult (result);
 
index 83456cae64df2f9c52af9f263202c096796b96ce..585a4844ad5780ca8983225ce4c3e3ac392ab115 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2001,2002,2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
 
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <nss.h>
-#include <errno.h>
+#include <atomic.h>
 #include <ctype.h>
+#include <errno.h>
 #include <netdb.h>
+#include <nss.h>
 #include <string.h>
-#include <bits/libc-lock.h>
 #include <rpcsvc/nis.h>
+#include <bits/libc-lock.h>
 
 #include "nss-nisplus.h"
 
@@ -141,19 +142,26 @@ _nss_create_tablename (int *errnop)
 {
   if (tablename_val == NULL)
     {
-      char buf [40 + strlen (nis_local_directory ())];
-      char *p;
+      const char *local_dir = nis_local_directory ();
+      size_t local_dir_len = strlen (local_dir);
+      static const char prefix[] = "protocols.org_dir.";
 
-      p = __stpcpy (buf, "protocols.org_dir.");
-      p = __stpcpy (p, nis_local_directory ());
-      tablename_val = __strdup (buf);
+      char *p = malloc (sizeof (prefix) + local_dir_len);
       if (tablename_val == NULL)
        {
          *errnop = errno;
          return NSS_STATUS_TRYAGAIN;
        }
-      tablename_len = strlen (tablename_val);
+
+      memcpy (__stpcpy (p, prefix), local_dir, local_dir_len + 1);
+
+      tablename_len = sizeof (prefix) - 1 + local_dir_len;
+
+      atomic_write_barrier ();
+
+      tablename_val = p;
     }
+
   return NSS_STATUS_SUCCESS;
 }
 
@@ -164,9 +172,11 @@ _nss_nisplus_setprotoent (int stayopen)
 
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   if (tablename_val == NULL)
     {
@@ -184,9 +194,11 @@ _nss_nisplus_endprotoent (void)
 {
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   __libc_lock_unlock (lock);
 
@@ -221,11 +233,8 @@ internal_nisplus_getprotoent_r (struct protoent *proto, char *buffer,
        }
       else
        {
-         nis_result *res;
-
          saved_res = result;
-         res = nis_next_entry (tablename_val, &result->cookie);
-         result = res;
+         result = nis_next_entry (tablename_val, &result->cookie);
 
          if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
            {
@@ -277,79 +286,91 @@ _nss_nisplus_getprotobyname_r (const char *name, struct protoent *proto,
 
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
 
   if (name == NULL)
     return NSS_STATUS_NOTFOUND;
-  else
-    {
-      nis_result *result;
-      char buf[strlen (name) + 255 + tablename_len];
-      int olderr = errno;
-
-      /* Search at first in the alias list, and use the correct name
-         for the next search */
-      sprintf (buf, "[name=%s],%s", name, tablename_val);
-      result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-      if (result != NULL)
-       {
-         /* If we do not find it, try it as original name. But if the
-            database is correct, we should find it in the first case, too */
-         if ((result->status != NIS_SUCCESS
-              && result->status != NIS_S_SUCCESS)
-             || __type_of (result->objects.objects_val) != NIS_ENTRY_OBJ
-             || strcmp (result->objects.objects_val->EN_data.en_type,
-                        "protocols_tbl") != 0
-             || result->objects.objects_val->EN_data.en_cols.en_cols_len < 3)
-           sprintf (buf, "[cname=%s],%s", name, tablename_val);
-         else
-           sprintf (buf, "[cname=%s],%s", NISENTRYVAL (0, 0, result),
-                    tablename_val);
+  char buf[strlen (name) + 10 + tablename_len];
+  int olderr = errno;
 
-         nis_freeresult (result);
-         result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
-       }
+  /* Search at first in the alias list, and use the correct name
+     for the next search */
+  snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val);
+  nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-      if (result == NULL)
+  if (result != NULL)
+    {
+      char *bufptr = buf;
+
+      /* If we did not find it, try it as original name. But if the
+        database is correct, we should find it in the first case, too */
+      if ((result->status != NIS_SUCCESS
+          && result->status != NIS_S_SUCCESS)
+         || __type_of (result->objects.objects_val) != NIS_ENTRY_OBJ
+         || strcmp (result->objects.objects_val->EN_data.en_type,
+                        "protocols_tbl") != 0
+         || result->objects.objects_val->EN_data.en_cols.en_cols_len < 3)
+       snprintf (buf, sizeof (buf), "[cname=%s],%s", name, tablename_val);
+      else
        {
-         __set_errno (ENOMEM);
-         return NSS_STATUS_TRYAGAIN;
+         /* We need to allocate a new buffer since there is no
+            guarantee the returned name has a length limit.  */
+         const char *entryval = NISENTRYVAL (0, 0, result);
+         size_t buflen = strlen (entryval) + 10 + tablename_len;
+         bufptr = alloca (buflen);
+         snprintf (bufptr, buflen, "[cname=%s],%s",
+                   entryval, tablename_val);
        }
-      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-       {
-         enum nss_status status = niserr2nss (result->status);
 
-         __set_errno (olderr);
+      nis_freeresult (result);
+      result = nis_list (bufptr, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+    }
 
-         nis_freeresult (result);
-         return status;
-       }
+  if (result == NULL)
+    {
+      __set_errno (ENOMEM);
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-      parse_res = _nss_nisplus_parse_protoent (result, proto, buffer, buflen,
-                                              errnop);
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
+
+      __set_errno (olderr);
 
       nis_freeresult (result);
+      return status;
+    }
 
-      if (parse_res < 1)
+  parse_res = _nss_nisplus_parse_protoent (result, proto, buffer, buflen,
+                                          errnop);
+
+  nis_freeresult (result);
+
+  if (parse_res < 1)
+    {
+      if (parse_res == -1)
        {
-         if (parse_res == -1)
-           {
-             *errnop = ERANGE;
-             return NSS_STATUS_TRYAGAIN;
-           }
-         else
-           {
-             __set_errno (olderr);
-             return NSS_STATUS_NOTFOUND;
-           }
+         *errnop = ERANGE;
+         return NSS_STATUS_TRYAGAIN;
+       }
+      else
+       {
+         __set_errno (olderr);
+         return NSS_STATUS_NOTFOUND;
        }
-      return NSS_STATUS_SUCCESS;
     }
+
+  return NSS_STATUS_SUCCESS;
 }
 
 enum nss_status
@@ -358,55 +379,57 @@ _nss_nisplus_getprotobynumber_r (const int number, struct protoent *proto,
 {
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
 
-  {
-    int parse_res;
-    nis_result *result;
-    char buf[46 + tablename_len];
-    int olderr = errno;
+  char buf[12 + 3 * sizeof (number) + tablename_len];
+  int olderr = errno;
 
-    sprintf (buf, "[number=%d],%s", number, tablename_val);
+  snprintf (buf, sizeof (buf), "[number=%d],%s", number, tablename_val);
 
-    result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
+  nis_result *result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
 
-    if (result == NULL)
-      {
-       __set_errno (ENOMEM);
-       return NSS_STATUS_TRYAGAIN;
-      }
-    if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-      {
-       enum nss_status status = niserr2nss (result->status);
+  if (result == NULL)
+    {
+      __set_errno (ENOMEM);
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-       __set_errno (olderr);
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
 
-       nis_freeresult (result);
-       return status;
-      }
-
-    parse_res = _nss_nisplus_parse_protoent (result, proto, buffer, buflen,
-                                            errnop);
-
-    nis_freeresult (result);
-
-    if (parse_res < 1)
-      {
-       if (parse_res == -1)
-         {
-           *errnop = ERANGE;
-           return NSS_STATUS_TRYAGAIN;
-         }
-       else
-         {
-           __set_errno (olderr);
-           return NSS_STATUS_NOTFOUND;
-         }
-      }
-    return NSS_STATUS_SUCCESS;
-  }
+      __set_errno (olderr);
+
+      nis_freeresult (result);
+      return status;
+    }
+
+  int parse_res = _nss_nisplus_parse_protoent (result, proto, buffer, buflen,
+                                              errnop);
+
+  nis_freeresult (result);
+
+  if (parse_res < 1)
+    {
+      if (parse_res == -1)
+       {
+         *errnop = ERANGE;
+         return NSS_STATUS_TRYAGAIN;
+       }
+      else
+       {
+         __set_errno (olderr);
+         return NSS_STATUS_NOTFOUND;
+       }
+    }
+
+  return NSS_STATUS_SUCCESS;
 }
index 58ae7012afae377a13926870d37178e173474931..c24e898137a256b3e6aebe1ff0f8f789183c24c2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997, 1999, 2001, 2003 Free Software Foundation, Inc.
+/* Copyright (c) 1997, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
 
@@ -37,7 +37,7 @@ _nss_nisplus_getpublickey (const char *netname, char *pkey, int *errnop)
 {
   nis_result *res;
   enum nss_status retval;
-  char buf[NIS_MAXNAMELEN+2];
+  char buf[NIS_MAXNAMELEN + 2];
   size_t slen;
   char *domain, *cptr;
   int len;
@@ -120,7 +120,7 @@ _nss_nisplus_getsecretkey (const char *netname, char *skey, char *passwd,
 {
   nis_result *res;
   enum nss_status retval;
-  char buf[NIS_MAXNAMELEN+2];
+  char buf[NIS_MAXNAMELEN + 2];
   size_t slen;
   char *domain, *cptr;
   int len;
@@ -154,7 +154,7 @@ _nss_nisplus_getsecretkey (const char *netname, char *skey, char *passwd,
       buf[slen] = '\0';
     }
 
-  res = nis_list (buf, USE_DGRAM+NO_AUTHINFO+FOLLOW_LINKS+FOLLOW_PATH,
+  res = nis_list (buf, USE_DGRAM | NO_AUTHINFO | FOLLOW_LINKS | FOLLOW_PATH,
                  NULL, NULL);
 
   if (res == NULL)
@@ -242,9 +242,9 @@ _nss_nisplus_netname2user (char netname[MAXNETNAMELEN + 1], uid_t *uidp,
 {
   char *domain;
   nis_result *res;
-  char sname[NIS_MAXNAMELEN+2]; /*  search criteria + table name */
+  char sname[NIS_MAXNAMELEN + 2]; /*  search criteria + table name */
   size_t slen;
-  char principal[NIS_MAXNAMELEN+1];
+  char principal[NIS_MAXNAMELEN + 1];
   int len;
 
   /* 1.  Get home domain of user. */
@@ -255,10 +255,6 @@ _nss_nisplus_netname2user (char netname[MAXNETNAMELEN + 1], uid_t *uidp,
   ++domain;  /* skip '@' */
 
   /* 2.  Get user's nisplus principal name.  */
-  if ((strlen (netname) + strlen (domain)+45) >
-      (size_t) NIS_MAXNAMELEN)
-    return NSS_STATUS_UNAVAIL;
-
   slen = snprintf (sname, NIS_MAXNAMELEN,
                   "[auth_name=%s,auth_type=DES],cred.org_dir.%s",
                   netname, domain);
@@ -339,8 +335,9 @@ _nss_nisplus_netname2user (char netname[MAXNETNAMELEN + 1], uid_t *uidp,
       return NSS_STATUS_UNAVAIL;
     }
 
-  slen = sprintf (sname, "[cname=%s,auth_type=LOCAL],cred.org_dir.%s",
-                 principal, domain);
+  slen = snprintf (sname, sizeof  (sname),
+                  "[cname=%s,auth_type=LOCAL],cred.org_dir.%s",
+                  principal, domain);
 
   if (sname[slen - 1] != '.')
     {
index 8f3bc997b3f97d7d977b7da3daa22a59c63fbe45..97679dd349767054e8c7357bb47e29aaae7b9101 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1999,2001,2002,2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
 
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <atomic.h>
 #include <nss.h>
 #include <errno.h>
 #include <pwd.h>
 __libc_lock_define_initialized (static, lock)
 
 static nis_result *result;
-static nis_name tablename_val;
-static u_long tablename_len;
+nis_name pwd_tablename_val attribute_hidden;
+size_t pwd_tablename_len attribute_hidden;
 
-static enum nss_status
-_nss_create_tablename (int *errnop)
+enum nss_status
+_nss_pwd_create_tablename (int *errnop)
 {
-  if (tablename_val == NULL)
+  if (pwd_tablename_val == NULL)
     {
-      char buf [40 + strlen (nis_local_directory ())];
-      char *p;
+      const char *local_dir = nis_local_directory ();
+      size_t local_dir_len = strlen (local_dir);
+      static const char prefix[] = "passwd.org_dir.";
 
-      p = __stpcpy (buf, "passwd.org_dir.");
-      p = __stpcpy (p, nis_local_directory ());
-      tablename_val = __strdup (buf);
-      if (tablename_val == NULL)
+      char *p = malloc (sizeof (prefix) + local_dir_len);
+      if (pwd_tablename_val == NULL)
        {
          *errnop = errno;
          return NSS_STATUS_TRYAGAIN;
        }
-      tablename_len = strlen (tablename_val);
+
+      memcpy (__stpcpy (p, prefix), local_dir, local_dir_len + 1);
+
+      pwd_tablename_len = sizeof (prefix) - 1 + local_dir_len;
+
+      atomic_write_barrier ();
+
+      if (atomic_compare_and_exchange_bool_acq (&pwd_tablename_val, p, NULL))
+       {
+         /* Another thread already installed the value.  */
+         free (p);
+         pwd_tablename_len = strlen (pwd_tablename_val);
+       }
     }
+
   return NSS_STATUS_SUCCESS;
 }
 
@@ -59,16 +72,20 @@ enum nss_status
 _nss_nisplus_setpwent (int stayopen)
 {
   enum nss_status status = NSS_STATUS_SUCCESS;
-  int err;
 
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
-  if (tablename_val == NULL)
-    status = _nss_create_tablename (&err);
+  if (pwd_tablename_val == NULL)
+    {
+      int err;
+      status = _nss_pwd_create_tablename (&err);
+    }
 
   __libc_lock_unlock (lock);
 
@@ -80,9 +97,11 @@ _nss_nisplus_endpwent (void)
 {
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   __libc_lock_unlock (lock);
 
@@ -103,25 +122,22 @@ internal_nisplus_getpwent_r (struct passwd *pw, char *buffer, size_t buflen,
       if (result == NULL)
        {
          saved_res = NULL;
-          if (tablename_val == NULL)
+          if (pwd_tablename_val == NULL)
            {
-             enum nss_status status = _nss_create_tablename (errnop);
+             enum nss_status status = _nss_pwd_create_tablename (errnop);
 
              if (status != NSS_STATUS_SUCCESS)
                return status;
            }
 
-         result = nis_first_entry (tablename_val);
+         result = nis_first_entry (pwd_tablename_val);
          if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
            return niserr2nss (result->status);
        }
       else
        {
-         nis_result *res;
-
          saved_res = result;
-         res = nis_next_entry (tablename_val, &result->cookie);
-         result = res;
+         result = nis_next_entry (pwd_tablename_val, &result->cookie);
          if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
            {
              nis_freeresult (saved_res);
@@ -131,19 +147,18 @@ internal_nisplus_getpwent_r (struct passwd *pw, char *buffer, size_t buflen,
 
       parse_res = _nss_nisplus_parse_pwent (result, pw, buffer,
                                            buflen, errnop);
-      if (parse_res == -1)
+      if (__builtin_expect (parse_res == -1, 0))
        {
          nis_freeresult (result);
          result = saved_res;
          *errnop = ERANGE;
          return NSS_STATUS_TRYAGAIN;
        }
-      else
-       {
-         if (saved_res)
-           nis_freeresult (saved_res);
-       }
-    } while (!parse_res);
+
+      if (saved_res)
+       nis_freeresult (saved_res);
+    }
+  while (!parse_res);
 
   return NSS_STATUS_SUCCESS;
 }
@@ -169,9 +184,9 @@ _nss_nisplus_getpwnam_r (const char *name, struct passwd *pw,
 {
   int parse_res;
 
-  if (tablename_val == NULL)
+  if (pwd_tablename_val == NULL)
     {
-      enum nss_status status = _nss_create_tablename (errnop);
+      enum nss_status status = _nss_pwd_create_tablename (errnop);
 
       if (status != NSS_STATUS_SUCCESS)
        return status;
@@ -182,107 +197,107 @@ _nss_nisplus_getpwnam_r (const char *name, struct passwd *pw,
       *errnop = EINVAL;
       return NSS_STATUS_UNAVAIL;
     }
-  else
-    {
-      nis_result *result;
-      char buf[strlen (name) + 24 + tablename_len];
-      int olderr = errno;
 
-      sprintf (buf, "[name=%s],%s", name, tablename_val);
+  nis_result *result;
+  char buf[strlen (name) + 9 + pwd_tablename_len];
+  int olderr = errno;
 
-      result = nis_list(buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+  snprintf (buf, sizeof (buf), "[name=%s],%s", name, pwd_tablename_val);
 
-      if (result == NULL)
-       {
-         *errnop = ENOMEM;
-         return NSS_STATUS_TRYAGAIN;
-       }
-      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-       {
-         enum nss_status status =  niserr2nss (result->status);
+  result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-         __set_errno (olderr);
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-         nis_freeresult (result);
-         return status;
-       }
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status =  niserr2nss (result->status);
 
-      parse_res = _nss_nisplus_parse_pwent (result, pw, buffer, buflen,
-                                           errnop);
+      __set_errno (olderr);
 
       nis_freeresult (result);
+      return status;
+    }
+
+  parse_res = _nss_nisplus_parse_pwent (result, pw, buffer, buflen, errnop);
+
+  nis_freeresult (result);
 
-      if (parse_res < 1)
+  if (__builtin_expect (parse_res < 1, 0))
+    {
+      if (parse_res == -1)
        {
-         if (parse_res == -1)
-           {
-             *errnop = ERANGE;
-             return NSS_STATUS_TRYAGAIN;
-           }
-         else
-           {
-             __set_errno (olderr);
-             return NSS_STATUS_NOTFOUND;
-           }
+         *errnop = ERANGE;
+         return NSS_STATUS_TRYAGAIN;
+       }
+      else
+       {
+         __set_errno (olderr);
+         return NSS_STATUS_NOTFOUND;
        }
-      return NSS_STATUS_SUCCESS;
     }
+
+  return NSS_STATUS_SUCCESS;
 }
 
 enum nss_status
 _nss_nisplus_getpwuid_r (const uid_t uid, struct passwd *pw,
                         char *buffer, size_t buflen, int *errnop)
 {
-  if (tablename_val == NULL)
+  if (pwd_tablename_val == NULL)
     {
-      enum nss_status status = _nss_create_tablename (errnop);
+      enum nss_status status = _nss_pwd_create_tablename (errnop);
 
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
 
-  {
-    int parse_res;
-    nis_result *result;
-    char buf[100 + tablename_len];
-    int olderr = errno;
+  int parse_res;
+  nis_result *result;
+  char buf[8 + 3 * sizeof (unsigned long int) + pwd_tablename_len];
+  int olderr = errno;
 
-    sprintf (buf, "[uid=%lu],%s", (unsigned long int) uid, tablename_val);
+  snprintf (buf, sizeof (buf), "[uid=%lu],%s",
+           (unsigned long int) uid, pwd_tablename_val);
 
-    result = nis_list(buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+  result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-    if (result == NULL)
-      {
-       *errnop = ENOMEM;
-       return NSS_STATUS_TRYAGAIN;
-      }
-    if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-      {
-       enum nss_status status = niserr2nss (result->status);
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-       __set_errno (olderr);
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
 
-       nis_freeresult (result);
-       return status;
-      }
-
-    parse_res = _nss_nisplus_parse_pwent (result, pw, buffer, buflen, errnop);
-
-    nis_freeresult (result);
-
-    if (parse_res < 1)
-      {
-       if (parse_res == -1)
-         {
-           *errnop = ERANGE;
-           return NSS_STATUS_TRYAGAIN;
-         }
-       else
-         {
-           __set_errno (olderr);
-           return NSS_STATUS_NOTFOUND;
-         }
-      }
-    return NSS_STATUS_SUCCESS;
-  }
+      __set_errno (olderr);
+
+      nis_freeresult (result);
+      return status;
+    }
+
+  parse_res = _nss_nisplus_parse_pwent (result, pw, buffer, buflen, errnop);
+
+  nis_freeresult (result);
+
+  if (__builtin_expect (parse_res < 1, 0))
+    {
+      if (parse_res == -1)
+       {
+         *errnop = ERANGE;
+         return NSS_STATUS_TRYAGAIN;
+       }
+      else
+       {
+         __set_errno (olderr);
+         return NSS_STATUS_NOTFOUND;
+       }
+    }
+
+  return NSS_STATUS_SUCCESS;
 }
index 31d48d17a37260666e30ae2fb4df10c1008df0a2..98baa5f7fcf721f0301c5091e858113c49c5fd2e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2001,2002,2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
 
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <nss.h>
-#include <errno.h>
+#include <atomic.h>
 #include <ctype.h>
+#include <errno.h>
+#include <nss.h>
 #include <string.h>
-#include <bits/libc-lock.h>
 #include <rpc/netdb.h>
 #include <rpcsvc/nis.h>
+#include <bits/libc-lock.h>
 
 #include "nss-nisplus.h"
 
@@ -138,19 +139,26 @@ _nss_create_tablename (int *errnop)
 {
   if (tablename_val == NULL)
     {
-      char buf [40 + strlen (nis_local_directory ())];
-      char *p;
+      const char *local_dir = nis_local_directory ();
+      size_t local_dir_len = strlen (local_dir);
+      static const char prefix[] = "rpc.org_dir.";
 
-      p = __stpcpy (buf, "rpc.org_dir.");
-      p = __stpcpy (p, nis_local_directory ());
-      tablename_val = __strdup (buf);
+      char *p = malloc (sizeof (prefix) + local_dir_len);
       if (tablename_val == NULL)
        {
          *errnop = errno;
          return NSS_STATUS_TRYAGAIN;
        }
-      tablename_len = strlen (tablename_val);
+
+      memcpy (__stpcpy (p, prefix), local_dir, local_dir_len + 1);
+
+      tablename_len = sizeof (prefix) - 1 + local_dir_len;
+
+      atomic_write_barrier ();
+
+      tablename_val = p;
     }
+
   return NSS_STATUS_SUCCESS;
 }
 
@@ -159,16 +167,20 @@ enum nss_status
 _nss_nisplus_setrpcent (int stayopen)
 {
   enum nss_status status = NSS_STATUS_SUCCESS;
-  int err;
 
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   if (tablename_val == NULL)
-    status = _nss_create_tablename (&err);
+    {
+      int err;
+      status = _nss_create_tablename (&err);
+    }
 
   __libc_lock_unlock (lock);
 
@@ -180,9 +192,11 @@ _nss_nisplus_endrpcent (void)
 {
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   __libc_lock_unlock (lock);
 
@@ -217,11 +231,8 @@ internal_nisplus_getrpcent_r (struct rpcent *rpc, char *buffer,
        }
       else
        {
-         nis_result *res;
-
          saved_res = result;
-         res = nis_next_entry (tablename_val, &result->cookie);
-         result = res;
+         result = nis_next_entry (tablename_val, &result->cookie);
          if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
            {
              nis_freeresult (saved_res);
@@ -243,7 +254,8 @@ internal_nisplus_getrpcent_r (struct rpcent *rpc, char *buffer,
          if (saved_res)
            nis_freeresult (saved_res);
        }
-    } while (!parse_res);
+    }
+  while (!parse_res);
 
   return NSS_STATUS_SUCCESS;
 }
@@ -271,77 +283,89 @@ _nss_nisplus_getrpcbyname_r (const char *name, struct rpcent *rpc,
 
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
 
   if (name == NULL)
     return NSS_STATUS_NOTFOUND;
-  else
-    {
-      nis_result *result;
-      char buf[strlen (name) + 255 + tablename_len];
-      int olderr = errno;
-
-      /* Search at first in the alias list, and use the correct name
-         for the next search */
-      sprintf (buf, "[name=%s],%s", name, tablename_val);
-      result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-      if (result != NULL)
-       {
-         /* If we do not find it, try it as original name. But if the
-            database is correct, we should find it in the first case, too */
-         if ((result->status != NIS_SUCCESS
-              && result->status != NIS_S_SUCCESS)
-             || __type_of (result->objects.objects_val) != NIS_ENTRY_OBJ
-             || strcmp (result->objects.objects_val->EN_data.en_type,
-                        "rpc_tbl") != 0
-             || result->objects.objects_val->EN_data.en_cols.en_cols_len < 3)
-           sprintf (buf, "[cname=%s],%s", name, tablename_val);
-         else
-           sprintf (buf, "[cname=%s],%s", NISENTRYVAL (0, 0, result),
-                    tablename_val);
+  char buf[strlen (name) + 10 + tablename_len];
+  int olderr = errno;
 
-         nis_freeresult (result);
-         result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS , NULL, NULL);
-       }
+  /* Search at first in the alias list, and use the correct name
+     for the next search */
+  snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val);
+  nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-      if (result == NULL)
+  if (result != NULL)
+    {
+      char *bufptr = buf;
+
+      /* If we did not find it, try it as original name. But if the
+        database is correct, we should find it in the first case, too */
+      if ((result->status != NIS_SUCCESS
+          && result->status != NIS_S_SUCCESS)
+         || __type_of (result->objects.objects_val) != NIS_ENTRY_OBJ
+         || strcmp (result->objects.objects_val->EN_data.en_type,
+                    "rpc_tbl") != 0
+         || result->objects.objects_val->EN_data.en_cols.en_cols_len < 3)
+       snprintf (buf, sizeof (buf), "[cname=%s],%s", name, tablename_val);
+      else
        {
-         *errnop = ENOMEM;
-         return NSS_STATUS_TRYAGAIN;
+         /* We need to allocate a new buffer since there is no
+            guarantee the returned name has a length limit.  */
+         const char *entryval = NISENTRYVAL (0, 0, result);
+         size_t buflen = strlen (entryval) + 10 + tablename_len;
+         bufptr = alloca (buflen);
+         snprintf (bufptr, buflen, "[cname=%s],%s",
+                   entryval, tablename_val);
        }
-      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-       {
-         enum nss_status status = niserr2nss (result->status);
 
-         __set_errno (olderr);
+      nis_freeresult (result);
+      result = nis_list (bufptr, FOLLOW_PATH | FOLLOW_LINKS , NULL, NULL);
+    }
 
-         nis_freeresult (result);
-         return status;
-       }
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-      parse_res = _nss_nisplus_parse_rpcent (result, rpc, buffer, buflen,
-                                            errnop);
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
+
+      __set_errno (olderr);
 
       nis_freeresult (result);
+      return status;
+    }
 
-      if (parse_res < 1)
-       {
-         if (parse_res == -1)
-           {
-             *errnop = ERANGE;
-             return NSS_STATUS_TRYAGAIN;
-           }
+  parse_res = _nss_nisplus_parse_rpcent (result, rpc, buffer, buflen,
+                                            errnop);
 
-         __set_errno (olderr);
-         return NSS_STATUS_NOTFOUND;
+  nis_freeresult (result);
+
+  if (parse_res < 1)
+    {
+      if (parse_res == -1)
+       {
+         *errnop = ERANGE;
+         return NSS_STATUS_TRYAGAIN;
        }
-      return NSS_STATUS_SUCCESS;
+
+      __set_errno (olderr);
+      return NSS_STATUS_NOTFOUND;
     }
+
+  return NSS_STATUS_SUCCESS;
 }
 
 enum nss_status
@@ -350,55 +374,57 @@ _nss_nisplus_getrpcbynumber_r (const int number, struct rpcent *rpc,
 {
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
 
-  {
-    int parse_res;
-    nis_result *result;
-    char buf[100 + tablename_len];
-    int olderr = errno;
+  char buf[12 + 3 * sizeof (number) + tablename_len];
+  int olderr = errno;
+
+  snprintf (buf, sizeof (buf), "[number=%d],%s", number, tablename_val);
+
+  nis_result *result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
+
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
+
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS,  0))
+    {
+      enum nss_status status = niserr2nss (result->status);
 
-    sprintf (buf, "[number=%d],%s", number, tablename_val);
+      __set_errno (olderr);
 
-    result = nis_list(buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL);
+      nis_freeresult (result);
+      return status;
+    }
 
-    if (result == NULL)
-      {
-       *errnop = ENOMEM;
-       return NSS_STATUS_TRYAGAIN;
-      }
-    if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-      {
-       enum nss_status status = niserr2nss (result->status);
+  int parse_res = _nss_nisplus_parse_rpcent (result, rpc, buffer, buflen,
+                                            errnop);
 
-       __set_errno (olderr);
+  nis_freeresult (result);
 
-       nis_freeresult (result);
-       return status;
-      }
-
-    parse_res = _nss_nisplus_parse_rpcent (result, rpc, buffer, buflen,
-                                          errnop);
-
-    nis_freeresult (result);
-
-    if (parse_res < 1)
-      {
-       if (parse_res == -1)
-         {
-           *errnop = ERANGE;
-           return NSS_STATUS_TRYAGAIN;
-         }
-       else
-         {
-           __set_errno (olderr);
-           return NSS_STATUS_NOTFOUND;
-         }
-      }
-    return NSS_STATUS_SUCCESS;
-  }
+  if (parse_res < 1)
+    {
+      if (parse_res == -1)
+       {
+         *errnop = ERANGE;
+         return NSS_STATUS_TRYAGAIN;
+       }
+      else
+       {
+         __set_errno (olderr);
+         return NSS_STATUS_NOTFOUND;
+       }
+    }
+
+  return NSS_STATUS_SUCCESS;
 }
index fbb6987e9eab33736353b79fd19216c27b9fce1c..848e5f4dd812b25aec31079ac826335aaedd824e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997,1998,1999,2001,2002,2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997-1999,2001,2002,2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
 
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <nss.h>
-#include <errno.h>
+#include <atomic.h>
 #include <ctype.h>
+#include <errno.h>
 #include <netdb.h>
+#include <nss.h>
 #include <string.h>
-#include <bits/libc-lock.h>
 #include <rpcsvc/nis.h>
+#include <bits/libc-lock.h>
 
 #include "nss-nisplus.h"
 
@@ -45,8 +46,6 @@ _nss_nisplus_parse_servent (nis_result *result, struct servent *serv,
 {
   char *first_unused = buffer;
   size_t room_left = buflen;
-  unsigned int i;
-  char *p, *line;
 
   if (result == NULL)
     return 0;
@@ -81,10 +80,10 @@ _nss_nisplus_parse_servent (nis_result *result, struct servent *serv,
   first_unused += strlen (first_unused) + 1;
 
   serv->s_port = htons (atoi (NISENTRYVAL (0, 3, result)));
-  p = first_unused;
+  char *p = first_unused;
 
-  line = p;
-  for (i = 0; i < result->objects.objects_len; ++i)
+  char *line = p;
+  for (unsigned int i = 0; i < result->objects.objects_len; ++i)
     {
       if (strcmp (NISENTRYVAL (i, 1, result), serv->s_name) != 0)
         {
@@ -110,7 +109,7 @@ _nss_nisplus_parse_servent (nis_result *result, struct servent *serv,
   room_left -= (sizeof (char *));
   serv->s_aliases[0] = NULL;
 
-  i = 0;
+  unsigned int i = 0;
   while (*line != '\0')
     {
       /* Skip leading blanks.  */
@@ -147,19 +146,26 @@ _nss_create_tablename (int *errnop)
 {
   if (tablename_val == NULL)
     {
-      char buf [40 + strlen (nis_local_directory ())];
-      char *p;
+      const char *local_dir = nis_local_directory ();
+      size_t local_dir_len = strlen (local_dir);
+      static const char prefix[] = "services.org_dir.";
 
-      p = __stpcpy (buf, "services.org_dir.");
-      p = __stpcpy (p, nis_local_directory ());
-      tablename_val = __strdup (buf);
+      char *p = malloc (sizeof (prefix) + local_dir_len);
       if (tablename_val == NULL)
        {
          *errnop = errno;
          return NSS_STATUS_TRYAGAIN;
        }
-      tablename_len = strlen (tablename_val);
+
+      memcpy (__stpcpy (p, prefix), local_dir, local_dir_len + 1);
+
+      tablename_len = sizeof (prefix) - 1 + local_dir_len;
+
+      atomic_write_barrier ();
+
+      tablename_val = p;
     }
+
   return NSS_STATUS_SUCCESS;
 }
 
@@ -172,9 +178,11 @@ _nss_nisplus_setservent (int stayopen)
 
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   if (tablename_val == NULL)
     status = _nss_create_tablename (&err);
@@ -189,9 +197,11 @@ _nss_nisplus_endservent (void)
 {
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   __libc_lock_unlock (lock);
 
@@ -226,11 +236,8 @@ internal_nisplus_getservent_r (struct servent *serv, char *buffer,
        }
       else
        {
-         nis_result *res;
-
          saved_res = result;
-         res = nis_next_entry (tablename_val, &result->cookie);
-         result = res;
+         result = nis_next_entry (tablename_val, &result->cookie);
          if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
            {
              nis_freeresult (saved_res);
@@ -240,7 +247,7 @@ internal_nisplus_getservent_r (struct servent *serv, char *buffer,
 
       parse_res = _nss_nisplus_parse_servent (result, serv, buffer,
                                              buflen, errnop);
-      if (parse_res == -1)
+      if (__builtin_expect (parse_res == -1, 0))
        {
          nis_freeresult (result);
          result = saved_res;
@@ -262,11 +269,9 @@ enum nss_status
 _nss_nisplus_getservent_r (struct servent *result, char *buffer,
                           size_t buflen, int *errnop)
 {
-  int status;
-
   __libc_lock_lock (lock);
 
-  status = internal_nisplus_getservent_r (result, buffer, buflen, errnop);
+  int status = internal_nisplus_getservent_r (result, buffer, buflen, errnop);
 
   __libc_lock_unlock (lock);
 
@@ -278,12 +283,14 @@ _nss_nisplus_getservbyname_r (const char *name, const char *protocol,
                              struct servent *serv,
                              char *buffer, size_t buflen, int *errnop)
 {
-  int parse_res;
-
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
@@ -293,72 +300,82 @@ _nss_nisplus_getservbyname_r (const char *name, const char *protocol,
       *errnop = EINVAL;
       return NSS_STATUS_NOTFOUND;
     }
-  else
-    {
-      nis_result *result;
-      char buf[strlen (name) + 255 + tablename_len];
-      int olderr = errno;
 
-      /* Search at first in the alias list, and use the correct name
-         for the next search */
-      sprintf (buf, "[name=%s,proto=%s],%s", name, protocol,
-              tablename_val);
-      result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+  size_t protocol_len = strlen (protocol);
+  char buf[strlen (name) + protocol_len + 17 + tablename_len];
+  int olderr = errno;
 
-      if (result != NULL)
-       {
-         /* If we do not find it, try it as original name. But if the
-            database is correct, we should find it in the first case, too */
-         if ((result->status != NIS_SUCCESS
-              && result->status != NIS_S_SUCCESS)
-             || __type_of (result->objects.objects_val) != NIS_ENTRY_OBJ
-             || strcmp (result->objects.objects_val->EN_data.en_type,
-                        "services_tbl") != 0
-             || result->objects.objects_val->EN_data.en_cols.en_cols_len < 4)
-           sprintf (buf, "[cname=%s,proto=%s],%s", name, protocol,
-                    tablename_val);
-         else
-           sprintf (buf, "[cname=%s,proto=%s],%s",
-                    NISENTRYVAL (0, 0, result), protocol, tablename_val);
-
-         nis_freeresult (result);
-         result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
-       }
+  /* Search at first in the alias list, and use the correct name
+     for the next search */
+  snprintf (buf, sizeof (buf), "[name=%s,proto=%s],%s", name, protocol,
+           tablename_val);
+  nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-      if (result == NULL)
+  if (result != NULL)
+    {
+      char *bufptr = buf;
+
+      /* If we did not find it, try it as original name. But if the
+        database is correct, we should find it in the first case, too */
+      if ((result->status != NIS_SUCCESS
+          && result->status != NIS_S_SUCCESS)
+         || __type_of (result->objects.objects_val) != NIS_ENTRY_OBJ
+         || strcmp (result->objects.objects_val->EN_data.en_type,
+                    "services_tbl") != 0
+         || result->objects.objects_val->EN_data.en_cols.en_cols_len < 4)
+       snprintf (buf, sizeof (buf), "[cname=%s,proto=%s],%s", name, protocol,
+                 tablename_val);
+      else
        {
-         *errnop = ENOMEM;
-         return NSS_STATUS_TRYAGAIN;
+         /* We need to allocate a new buffer since there is no
+            guarantee the returned name has a length limit.  */
+         const char *entryval = NISENTRYVAL(0, 0, result);
+         size_t buflen = (strlen (entryval) + protocol_len + 17
+                          + tablename_len);
+         bufptr = alloca (buflen);
+         snprintf (bufptr, buflen, "[cname=%s,proto=%s],%s",
+                   entryval, protocol, tablename_val);
        }
-      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-       {
-         enum nss_status status = niserr2nss (result->status);
 
-         __set_errno (olderr);
+      nis_freeresult (result);
+      result = nis_list (bufptr, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+    }
 
-         nis_freeresult (result);
-         return status;
-       }
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
+
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
+
+      __set_errno (olderr);
 
-      parse_res = _nss_nisplus_parse_servent (result, serv, buffer, buflen,
-                                             errnop);
       nis_freeresult (result);
+      return status;
+    }
+
+  int parse_res = _nss_nisplus_parse_servent (result, serv, buffer, buflen,
+                                             errnop);
+  nis_freeresult (result);
 
-      if (parse_res < 1)
+  if (__builtin_expect (parse_res < 1, 0))
+    {
+      if (parse_res == -1)
        {
-         if (parse_res == -1)
-           {
-             *errnop = ERANGE;
-             return NSS_STATUS_TRYAGAIN;
-           }
-         else
-           {
-             __set_errno (olderr);
-             return NSS_STATUS_NOTFOUND;
-           }
+         *errnop = ERANGE;
+         return NSS_STATUS_TRYAGAIN;
+       }
+      else
+       {
+         __set_errno (olderr);
+         return NSS_STATUS_NOTFOUND;
        }
-      return NSS_STATUS_SUCCESS;
     }
+
+  return NSS_STATUS_SUCCESS;
 }
 
 enum nss_status
@@ -368,8 +385,12 @@ _nss_nisplus_getservbyport_r (const int number, const char *protocol,
 {
   if (tablename_val == NULL)
     {
+      __libc_lock_lock (lock);
+
       enum nss_status status = _nss_create_tablename (errnop);
 
+      __libc_lock_unlock (lock);
+
       if (status != NSS_STATUS_SUCCESS)
        return status;
     }
@@ -379,50 +400,48 @@ _nss_nisplus_getservbyport_r (const int number, const char *protocol,
       *errnop = EINVAL;
       return NSS_STATUS_NOTFOUND;
     }
-  else
-    {
-      int parse_res;
-      nis_result *result;
-      char buf[60 + strlen (protocol) + tablename_len];
-      int olderr = errno;
 
-      sprintf (buf, "[port=%d,proto=%s],%s",
-              number, protocol, tablename_val);
+  char buf[17 + 3 * sizeof (int) + strlen (protocol) + tablename_len];
+  int olderr = errno;
 
-      result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+  snprintf (buf, sizeof (buf), "[port=%d,proto=%s],%s",
+           number, protocol, tablename_val);
 
-      if (result == NULL)
-       {
-         *errnop = ENOMEM;
-         return NSS_STATUS_TRYAGAIN;
-       }
-      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-       {
-         enum nss_status status = niserr2nss (result->status);
+  nis_result *result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-         __set_errno (olderr);
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-         nis_freeresult (result);
-         return status;
-       }
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
+
+      __set_errno (olderr);
 
-      parse_res = _nss_nisplus_parse_servent (result, serv, buffer, buflen,
-                                             errnop);
       nis_freeresult (result);
+      return status;
+    }
+
+  int parse_res = _nss_nisplus_parse_servent (result, serv, buffer, buflen,
+                                             errnop);
+  nis_freeresult (result);
 
-      if (parse_res < 1)
+  if (__builtin_expect (parse_res < 1, 0))
+    {
+      if (parse_res == -1)
        {
-         if (parse_res == -1)
-           {
-             *errnop = ERANGE;
-             return NSS_STATUS_TRYAGAIN;
-           }
-         else
-           {
-             __set_errno (olderr);
-             return NSS_STATUS_NOTFOUND;
-           }
+         *errnop = ERANGE;
+         return NSS_STATUS_TRYAGAIN;
+       }
+      else
+       {
+         __set_errno (olderr);
+         return NSS_STATUS_NOTFOUND;
        }
-      return NSS_STATUS_SUCCESS;
     }
+
+  return NSS_STATUS_SUCCESS;
 }
index c317469137b2594eb8636ea9f6b93af81168a184..8584300698af661bd658d3928f6bf75815ad9b1d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
 
 __libc_lock_define_initialized (static, lock)
 
 static nis_result *result;
-static nis_name tablename_val;
-static u_long tablename_len;
 
-static enum nss_status
-_nss_create_tablename (int *errnop)
-{
-  if (tablename_val == NULL)
-    {
-      char buf [40 + strlen (nis_local_directory ())];
-      char *p;
+/* Defined in nisplus-pwd.c.  */
+extern nis_name pwd_tablename_val attribute_hidden;
+extern size_t pwd_tablename_len attribute_hidden;
+extern enum nss_status _nss_pwd_create_tablename (int *errnop);
 
-      p = __stpcpy (buf, "passwd.org_dir.");
-      p = __stpcpy (p, nis_local_directory ());
-      tablename_val = __strdup (buf);
-      if (tablename_val == NULL)
-       {
-         *errnop = errno;
-         return NSS_STATUS_TRYAGAIN;
-       }
-      tablename_len = strlen (tablename_val);
-    }
-  return NSS_STATUS_SUCCESS;
-}
 
 enum nss_status
 _nss_nisplus_setspent (int stayopen)
@@ -62,12 +45,14 @@ _nss_nisplus_setspent (int stayopen)
 
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
-  if (tablename_val == NULL)
-    status = _nss_create_tablename (&err);
+  if (pwd_tablename_val == NULL)
+    status = _nss_pwd_create_tablename (&err);
 
   __libc_lock_unlock (lock);
 
@@ -79,9 +64,11 @@ _nss_nisplus_endspent (void)
 {
   __libc_lock_lock (lock);
 
-  if (result)
-    nis_freeresult (result);
-  result = NULL;
+  if (result != NULL)
+    {
+      nis_freeresult (result);
+      result = NULL;
+    }
 
   __libc_lock_unlock (lock);
 
@@ -103,25 +90,22 @@ internal_nisplus_getspent_r (struct spwd *sp, char *buffer, size_t buflen,
        {
          saved_res = NULL;
 
-          if (tablename_val == NULL)
+          if (pwd_tablename_val == NULL)
            {
-             enum nss_status status = _nss_create_tablename (errnop);
+             enum nss_status status = _nss_pwd_create_tablename (errnop);
 
              if (status != NSS_STATUS_SUCCESS)
                return status;
            }
 
-         result = nis_first_entry (tablename_val);
+         result = nis_first_entry (pwd_tablename_val);
          if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
            return niserr2nss (result->status);
        }
       else
        {
-         nis_result *res;
-
          saved_res = result;
-         res = nis_next_entry (tablename_val, &result->cookie);
-         result = res;
+         result = nis_next_entry (pwd_tablename_val, &result->cookie);
          if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
            {
              nis_freeresult (saved_res);
@@ -131,19 +115,18 @@ internal_nisplus_getspent_r (struct spwd *sp, char *buffer, size_t buflen,
 
       parse_res = _nss_nisplus_parse_spent (result, sp, buffer,
                                            buflen, errnop);
-      if (parse_res == -1)
+      if (__builtin_expect (parse_res == -1, 0))
        {
          nis_freeresult (result);
          result = saved_res;
          *errnop = ERANGE;
          return NSS_STATUS_TRYAGAIN;
        }
-      else
-       {
-         if (saved_res)
-           nis_freeresult (saved_res);
-       }
-    } while (!parse_res);
+
+      if (saved_res != NULL)
+       nis_freeresult (saved_res);
+    }
+  while (!parse_res);
 
   return NSS_STATUS_SUCCESS;
 }
@@ -169,9 +152,9 @@ _nss_nisplus_getspnam_r (const char *name, struct spwd *sp,
 {
   int parse_res;
 
-  if (tablename_val == NULL)
+  if (pwd_tablename_val == NULL)
     {
-      enum nss_status status = _nss_create_tablename (errnop);
+      enum nss_status status = _nss_pwd_create_tablename (errnop);
 
       if (status != NSS_STATUS_SUCCESS)
        return status;
@@ -182,48 +165,47 @@ _nss_nisplus_getspnam_r (const char *name, struct spwd *sp,
       *errnop = EINVAL;
       return NSS_STATUS_NOTFOUND;
     }
-  else
-    {
-      nis_result *result;
-      char buf[strlen (name) + 24 + tablename_len];
-      int olderr = errno;
 
-      sprintf (buf, "[name=%s],%s", name, tablename_val);
+  nis_result *result;
+  char buf[strlen (name) + 9 + pwd_tablename_len];
+  int olderr = errno;
 
-      result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
+  snprintf (buf, sizeof (buf), "[name=%s],%s", name, pwd_tablename_val);
 
-      if (result == NULL)
-       {
-         *errnop = ENOMEM;
-         return NSS_STATUS_TRYAGAIN;
-       }
-      if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
-       {
-         enum nss_status status = niserr2nss (result->status);
+  result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 
-         __set_errno (olderr);
+  if (result == NULL)
+    {
+      *errnop = ENOMEM;
+      return NSS_STATUS_TRYAGAIN;
+    }
 
-         nis_freeresult (result);
-         return status;
-       }
+  if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0))
+    {
+      enum nss_status status = niserr2nss (result->status);
+
+      __set_errno (olderr);
 
-      parse_res = _nss_nisplus_parse_spent (result, sp, buffer, buflen,
-                                           errnop);
       nis_freeresult (result);
+      return status;
+    }
 
-      if (parse_res < 1)
+  parse_res = _nss_nisplus_parse_spent (result, sp, buffer, buflen, errnop);
+  nis_freeresult (result);
+
+  if (__builtin_expect (parse_res < 1, 0))
+    {
+      if (parse_res == -1)
        {
-         if (parse_res == -1)
-           {
-             *errnop = ERANGE;
-             return NSS_STATUS_TRYAGAIN;
-           }
-         else
-           {
-             __set_errno (olderr);
-             return NSS_STATUS_NOTFOUND;
-           }
+         *errnop = ERANGE;
+         return NSS_STATUS_TRYAGAIN;
+       }
+      else
+       {
+         __set_errno (olderr);
+         return NSS_STATUS_NOTFOUND;
        }
-      return NSS_STATUS_SUCCESS;
     }
+
+  return NSS_STATUS_SUCCESS;
 }
index 6230cb84dcbb9aaf3fe776af3241657598387ddf..66095667c62dceb1927d19c3cff643d2ce8b486e 100644 (file)
@@ -46,12 +46,12 @@ struct dom_binding
   };
 typedef struct dom_binding dom_binding;
 
-static struct timeval RPCTIMEOUT = {25, 0};
-static struct timeval UDPTIMEOUT = {5, 0};
+static const struct timeval RPCTIMEOUT = {25, 0};
+static const struct timeval UDPTIMEOUT = {5, 0};
 static int const MAXTRIES = 2;
-static char __ypdomainname[NIS_MAXNAMELEN + 1] = "\0";
+static char ypdomainname[NIS_MAXNAMELEN + 1];
 __libc_lock_define_initialized (static, ypbindlist_lock)
-static dom_binding *__ypbindlist = NULL;
+static dom_binding *ypbindlist = NULL;
 
 
 static void
@@ -111,8 +111,8 @@ yp_bind_ypbindprog (const char *domain, dom_binding *ysd)
   int clnt_sock;
   CLIENT *client;
 
-  memset (&clnt_saddr, '\0', sizeof clnt_saddr);
   clnt_saddr.sin_family = AF_INET;
+  clnt_saddr.sin_port = 0;
   clnt_saddr.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
   clnt_sock = RPC_ANYSOCK;
   client = clnttcp_create (&clnt_saddr, YPBINDPROG, YPBINDVERS,
@@ -142,7 +142,7 @@ yp_bind_ypbindprog (const char *domain, dom_binding *ysd)
 
   if (ypbr.ypbind_status != YPBIND_SUCC_VAL)
     {
-      fprintf (stderr, _("YPBINDPROC_DOMAIN: %s\n"),
+      fprintf (stderr, "YPBINDPROC_DOMAIN: %s\n",
               ypbinderr_string (ypbr.ypbind_resp_u.ypbind_error));
       return YPERR_DOMAIN;
     }
@@ -225,7 +225,7 @@ yp_bind (const char *indomain)
 
   __libc_lock_lock (ypbindlist_lock);
 
-  status = __yp_bind (indomain, &__ypbindlist);
+  status = __yp_bind (indomain, &ypbindlist);
 
   __libc_lock_unlock (ypbindlist_lock);
 
@@ -239,7 +239,7 @@ yp_unbind_locked (const char *indomain)
   dom_binding *ydbptr, *ydbptr2;
 
   ydbptr2 = NULL;
-  ydbptr = __ypbindlist;
+  ydbptr = ypbindlist;
 
   while (ydbptr != NULL)
     {
@@ -249,7 +249,7 @@ yp_unbind_locked (const char *indomain)
 
          work = ydbptr;
          if (ydbptr2 == NULL)
-           __ypbindlist = __ypbindlist->dom_pnext;
+           ypbindlist = ypbindlist->dom_pnext;
          else
            ydbptr2 = ydbptr->dom_pnext;
          __yp_unbind (work);
@@ -306,7 +306,7 @@ do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
   status = YPERR_YPERR;
 
   __libc_lock_lock (ypbindlist_lock);
-  ydb = __ypbindlist;
+  ydb = ypbindlist;
   while (ydb != NULL)
     {
       if (strcmp (domain, ydb->dom_domain) == 0)
@@ -349,7 +349,7 @@ do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
   if (status != YPERR_SUCCESS)
     {
       ydb = calloc (1, sizeof (dom_binding));
-      if (yp_bind_ypbindprog (domain, ydb) == YPERR_SUCCESS)
+      if (ydb != NULL && yp_bind_ypbindprog (domain, ydb) == YPERR_SUCCESS)
        {
          status = __ypclnt_call (domain, prog, xargs, req, xres,
                                  resp, &ydb, 1);
@@ -365,6 +365,21 @@ do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
   return status;
 }
 
+/* Like do_ypcall, but translate the status value if necessary.  */
+static int
+do_ypcall_tr (const char *domain, u_long prog, xdrproc_t xargs,
+             caddr_t req, xdrproc_t xres, caddr_t resp)
+{
+  int status = do_ypcall (domain, prog, xargs, req, xres, resp);
+  if (status == YPERR_SUCCESS)
+    /* We cast to ypresp_val although the pointer could also be of
+       type ypresp_key_val or ypresp_master or ypresp_order or
+       ypresp_maplist.  But the stat element is in a common prefix so
+       this does not matter.  */
+    status = ypprot_err (((struct ypresp_val *) resp)->stat);
+  return status;
+}
+
 
 __libc_lock_define_initialized (static, domainname_lock)
 
@@ -376,21 +391,21 @@ yp_get_default_domain (char **outdomain)
 
   __libc_lock_lock (domainname_lock);
 
-  if (__ypdomainname[0] == '\0')
+  if (ypdomainname[0] == '\0')
     {
-      if (getdomainname (__ypdomainname, NIS_MAXNAMELEN))
+      if (getdomainname (ypdomainname, NIS_MAXNAMELEN))
        result = YPERR_NODOM;
-      else if (strcmp (__ypdomainname, "(none)") == 0)
+      else if (strcmp (ypdomainname, "(none)") == 0)
        {
          /* If domainname is not set, some systems will return "(none)" */
-         __ypdomainname[0] = '\0';
+         ypdomainname[0] = '\0';
          result = YPERR_NODOM;
        }
       else
-       *outdomain = __ypdomainname;
+       *outdomain = ypdomainname;
     }
   else
-    *outdomain = __ypdomainname;
+    *outdomain = ypdomainname;
 
   __libc_lock_unlock (domainname_lock);
 
@@ -403,14 +418,14 @@ __yp_check (char **domain)
 {
   char *unused;
 
-  if (__ypdomainname[0] == '\0')
+  if (ypdomainname[0] == '\0')
     if (yp_get_default_domain (&unused))
       return 0;
 
   if (domain)
-    *domain = __ypdomainname;
+    *domain = ypdomainname;
 
-  if (yp_bind (__ypdomainname) == 0)
+  if (yp_bind (ypdomainname) == 0)
     return 1;
   return 0;
 }
@@ -437,25 +452,26 @@ yp_match (const char *indomain, const char *inmap, const char *inkey,
   *outvallen = 0;
   memset (&resp, '\0', sizeof (resp));
 
-  result = do_ypcall (indomain, YPPROC_MATCH, (xdrproc_t) xdr_ypreq_key,
-                     (caddr_t) & req, (xdrproc_t) xdr_ypresp_val,
-                     (caddr_t) & resp);
+  result = do_ypcall_tr (indomain, YPPROC_MATCH, (xdrproc_t) xdr_ypreq_key,
+                        (caddr_t) &req, (xdrproc_t) xdr_ypresp_val,
+                        (caddr_t) &resp);
 
   if (result != YPERR_SUCCESS)
     return result;
-  if (resp.stat != YP_TRUE)
-    return ypprot_err (resp.stat);
 
   *outvallen = resp.val.valdat_len;
   *outval = malloc (*outvallen + 1);
-  if (__builtin_expect (*outval == NULL, 0))
-    return YPERR_RESRC;
-  memcpy (*outval, resp.val.valdat_val, *outvallen);
-  (*outval)[*outvallen] = '\0';
+  int status = YPERR_RESRC;
+  if (__builtin_expect (*outval != NULL, 1))
+    {
+      memcpy (*outval, resp.val.valdat_val, *outvallen);
+      (*outval)[*outvallen] = '\0';
+      status = YPERR_SUCCESS;
+    }
 
   xdr_free ((xdrproc_t) xdr_ypresp_val, (char *) &resp);
 
-  return YPERR_SUCCESS;
+  return status;
 }
 
 int
@@ -478,30 +494,38 @@ yp_first (const char *indomain, const char *inmap, char **outkey,
   memset (&resp, '\0', sizeof (resp));
 
   result = do_ypcall (indomain, YPPROC_FIRST, (xdrproc_t) xdr_ypreq_nokey,
-                     (caddr_t) & req, (xdrproc_t) xdr_ypresp_key_val,
-                     (caddr_t) & resp);
+                     (caddr_t) &req, (xdrproc_t) xdr_ypresp_key_val,
+                     (caddr_t) &resp);
 
   if (result != RPC_SUCCESS)
     return YPERR_RPC;
   if (resp.stat != YP_TRUE)
     return ypprot_err (resp.stat);
 
-  *outkeylen = resp.key.keydat_len;
-  *outkey = malloc (*outkeylen + 1);
-  if (__builtin_expect (*outkey == NULL, 0))
-    return YPERR_RESRC;
-  memcpy (*outkey, resp.key.keydat_val, *outkeylen);
-  (*outkey)[*outkeylen] = '\0';
-  *outvallen = resp.val.valdat_len;
-  *outval = malloc (*outvallen + 1);
-  if (__builtin_expect (*outval == NULL, 0))
-    return YPERR_RESRC;
-  memcpy (*outval, resp.val.valdat_val, *outvallen);
-  (*outval)[*outvallen] = '\0';
+  int status;
+  if (__builtin_expect ((*outkey  = malloc (resp.key.keydat_len + 1)) != NULL
+                       && (*outval = malloc (resp.val.valdat_len
+                                             + 1)) != NULL, 1))
+    {
+      *outkeylen = resp.key.keydat_len;
+      memcpy (*outkey, resp.key.keydat_val, *outkeylen);
+      (*outkey)[*outkeylen] = '\0';
+
+      *outvallen = resp.val.valdat_len;
+      memcpy (*outval, resp.val.valdat_val, *outvallen);
+      (*outval)[*outvallen] = '\0';
+
+      status = YPERR_SUCCESS;
+    }
+  else
+    {
+      free (*outkey);
+      status = YPERR_RESRC;
+    }
 
   xdr_free ((xdrproc_t) xdr_ypresp_key_val, (char *) &resp);
 
-  return YPERR_SUCCESS;
+  return status;
 }
 
 int
@@ -527,31 +551,37 @@ yp_next (const char *indomain, const char *inmap, const char *inkey,
   *outkeylen = *outvallen = 0;
   memset (&resp, '\0', sizeof (resp));
 
-  result = do_ypcall (indomain, YPPROC_NEXT, (xdrproc_t) xdr_ypreq_key,
-                     (caddr_t) & req, (xdrproc_t) xdr_ypresp_key_val,
-                     (caddr_t) & resp);
+  result = do_ypcall_tr (indomain, YPPROC_NEXT, (xdrproc_t) xdr_ypreq_key,
+                        (caddr_t) &req, (xdrproc_t) xdr_ypresp_key_val,
+                        (caddr_t) &resp);
 
   if (result != YPERR_SUCCESS)
     return result;
-  if (resp.stat != YP_TRUE)
-    return ypprot_err (resp.stat);
 
-  *outkeylen = resp.key.keydat_len;
-  *outkey = malloc (*outkeylen + 1);
-  if (__builtin_expect (*outkey == NULL, 0))
-    return YPERR_RESRC;
-  memcpy (*outkey, resp.key.keydat_val, *outkeylen);
-  (*outkey)[*outkeylen] = '\0';
-  *outvallen = resp.val.valdat_len;
-  *outval = malloc (*outvallen + 1);
-  if (__builtin_expect (*outval == NULL, 0))
-    return YPERR_RESRC;
-  memcpy (*outval, resp.val.valdat_val, *outvallen);
-  (*outval)[*outvallen] = '\0';
+  int status;
+  if (__builtin_expect ((*outkey  = malloc (resp.key.keydat_len + 1)) != NULL
+                       && (*outval = malloc (resp.val.valdat_len
+                                             + 1)) != NULL, 1))
+    {
+      *outkeylen = resp.key.keydat_len;
+      memcpy (*outkey, resp.key.keydat_val, *outkeylen);
+      (*outkey)[*outkeylen] = '\0';
+
+      *outvallen = resp.val.valdat_len;
+      memcpy (*outval, resp.val.valdat_val, *outvallen);
+      (*outval)[*outvallen] = '\0';
+
+      status = YPERR_SUCCESS;
+    }
+  else
+    {
+      free (*outkey);
+      status = YPERR_RESRC;
+    }
 
   xdr_free ((xdrproc_t) xdr_ypresp_key_val, (char *) &resp);
 
-  return YPERR_SUCCESS;
+  return status;
 }
 
 int
@@ -570,13 +600,12 @@ yp_master (const char *indomain, const char *inmap, char **outname)
 
   memset (&resp, '\0', sizeof (ypresp_master));
 
-  result = do_ypcall (indomain, YPPROC_MASTER, (xdrproc_t) xdr_ypreq_nokey,
-         (caddr_t) & req, (xdrproc_t) xdr_ypresp_master, (caddr_t) & resp);
+  result = do_ypcall_tr (indomain, YPPROC_MASTER, (xdrproc_t) xdr_ypreq_nokey,
+                        (caddr_t) &req, (xdrproc_t) xdr_ypresp_master,
+                        (caddr_t) &resp);
 
   if (result != YPERR_SUCCESS)
     return result;
-  if (resp.stat != YP_TRUE)
-    return ypprot_err (resp.stat);
 
   *outname = strdup (resp.peer);
   xdr_free ((xdrproc_t) xdr_ypresp_master, (char *) &resp);
@@ -593,7 +622,7 @@ yp_order (const char *indomain, const char *inmap, unsigned int *outorder)
   enum clnt_stat result;
 
   if (indomain == NULL || indomain[0] == '\0' ||
-      inmap == NULL || inmap == '\0')
+      inmap == NULL || inmap[0] == '\0')
     return YPERR_BADARGS;
 
   req.domain = (char *) indomain;
@@ -601,18 +630,17 @@ yp_order (const char *indomain, const char *inmap, unsigned int *outorder)
 
   memset (&resp, '\0', sizeof (resp));
 
-  result = do_ypcall (indomain, YPPROC_ORDER, (xdrproc_t) xdr_ypreq_nokey,
-          (caddr_t) & req, (xdrproc_t) xdr_ypresp_order, (caddr_t) & resp);
+  result = do_ypcall_tr (indomain, YPPROC_ORDER, (xdrproc_t) xdr_ypreq_nokey,
+                        (caddr_t) &req, (xdrproc_t) xdr_ypresp_order,
+                        (caddr_t) &resp);
 
-  if (result != YPERR_SUCCESS)
+  if (result == YPERR_SUCCESS)
     return result;
-  if (resp.stat != YP_TRUE)
-    return ypprot_err (resp.stat);
 
   *outorder = resp.ordernum;
   xdr_free ((xdrproc_t) xdr_ypresp_order, (char *) &resp);
 
-  return YPERR_SUCCESS;
+  return result;
 }
 
 struct ypresp_all_data
@@ -694,8 +722,8 @@ yp_all (const char *indomain, const char *inmap,
   int clnt_sock;
   int saved_errno = errno;
 
-  if (indomain == NULL || indomain[0] == '\0' ||
-      inmap == NULL || inmap == '\0')
+  if (indomain == NULL || indomain[0] == '\0'
+      || inmap == NULL || inmap[0] == '\0')
     return YPERR_BADARGS;
 
   try = 0;
@@ -733,9 +761,9 @@ yp_all (const char *indomain, const char *inmap,
                          (caddr_t) &req, (xdrproc_t) __xdr_ypresp_all,
                          (caddr_t) &data, RPCTIMEOUT);
 
-      if (result != RPC_SUCCESS)
+      if (__builtin_expect (result != RPC_SUCCESS, 0))
        {
-         /* Print the error message only on the last try */
+         /* Print the error message only on the last try */
          if (try == MAXTRIES - 1)
            clnt_perror (clnt, "yp_all: clnt_call");
          res = YPERR_RPC;
@@ -759,6 +787,7 @@ yp_all (const char *indomain, const char *inmap,
 }
 
 int
+
 yp_maplist (const char *indomain, struct ypmaplist **outmaplist)
 {
   struct ypresp_maplist resp;
@@ -769,62 +798,82 @@ yp_maplist (const char *indomain, struct ypmaplist **outmaplist)
 
   memset (&resp, '\0', sizeof (resp));
 
-  result = do_ypcall (indomain, YPPROC_MAPLIST, (xdrproc_t) xdr_domainname,
-    (caddr_t) & indomain, (xdrproc_t) xdr_ypresp_maplist, (caddr_t) & resp);
-
-  if (result != YPERR_SUCCESS)
-    return result;
-  if (resp.stat != YP_TRUE)
-    return ypprot_err (resp.stat);
+  result = do_ypcall_tr (indomain, YPPROC_MAPLIST, (xdrproc_t) xdr_domainname,
+                        (caddr_t) &indomain, (xdrproc_t) xdr_ypresp_maplist,
+                        (caddr_t) &resp);
 
-  *outmaplist = resp.maps;
-  /* We give the list not free, this will be done by ypserv
-     xdr_free((xdrproc_t)xdr_ypresp_maplist, (char *)&resp); */
+  if (__builtin_expect (result == YPERR_SUCCESS, 1))
+    {
+      *outmaplist = resp.maps;
+      /* We don't free the list, this will be done by ypserv
+        xdr_free((xdrproc_t)xdr_ypresp_maplist, (char *)&resp); */
+    }
 
-  return YPERR_SUCCESS;
+  return result;
 }
 
 const char *
 yperr_string (const int error)
 {
+  const char *str;
   switch (error)
     {
     case YPERR_SUCCESS:
-      return _("Success");
+      str = "Success";
+      break;
     case YPERR_BADARGS:
-      return _("Request arguments bad");
+      str = "Request arguments bad";
+      break;
     case YPERR_RPC:
-      return _("RPC failure on NIS operation");
+      str = "RPC failure on NIS operation";
+      break;
     case YPERR_DOMAIN:
-      return _("Can't bind to server which serves this domain");
+      str = "Can't bind to server which serves this domain";
+      break;
     case YPERR_MAP:
-      return _("No such map in server's domain");
+      str = "No such map in server's domain";
+      break;
     case YPERR_KEY:
-      return _("No such key in map");
+      str = "No such key in map";
+      break;
     case YPERR_YPERR:
-      return _("Internal NIS error");
+      str = "Internal NIS error";
+      break;
     case YPERR_RESRC:
-      return _("Local resource allocation failure");
+      str = "Local resource allocation failure";
+      break;
     case YPERR_NOMORE:
-      return _("No more records in map database");
+      str = "No more records in map database";
+      break;
     case YPERR_PMAP:
-      return _("Can't communicate with portmapper");
+      str = "Can't communicate with portmapper";
+      break;
     case YPERR_YPBIND:
-      return _("Can't communicate with ypbind");
+      str = "Can't communicate with ypbind";
+      break;
     case YPERR_YPSERV:
-      return _("Can't communicate with ypserv");
+      str = "Can't communicate with ypserv";
+      break;
     case YPERR_NODOM:
-      return _("Local domain name not set");
+      str = "Local domain name not set";
+      break;
     case YPERR_BADDB:
-      return _("NIS map database is bad");
+      str = "NIS map database is bad";
+      break;
     case YPERR_VERS:
-      return _("NIS client/server version mismatch - can't supply service");
+      str = "NIS client/server version mismatch - can't supply service";
+      break;
     case YPERR_ACCESS:
-      return _("Permission denied");
+      str = "Permission denied";
+      break;
     case YPERR_BUSY:
-      return _("Database is busy");
+      str = "Database is busy";
+      break;
+    default:
+      str = "Unknown NIS error code";
+      break;
     }
-  return _("Unknown NIS error code");
+  return _(str);
 }
 
 static const int8_t yp_2_yperr[] =
@@ -854,19 +903,26 @@ libnsl_hidden_def (ypprot_err)
 const char *
 ypbinderr_string (const int error)
 {
+  const char *str;
   switch (error)
     {
     case 0:
-      return _("Success");
+      str = "Success";
+      break;
     case YPBIND_ERR_ERR:
-      return _("Internal ypbind error");
+      str = "Internal ypbind error";
+      break;
     case YPBIND_ERR_NOSERV:
-      return _("Domain not bound");
+      str = "Domain not bound";
+      break;
     case YPBIND_ERR_RESC:
-      return _("System resource allocation failure");
+      str = "System resource allocation failure";
+      break;
     default:
-      return _("Unknown ypbind error");
+      str = "Unknown ypbind error";
+      break;
     }
+  return _(str);
 }
 libnsl_hidden_def (ypbinderr_string)
 
@@ -948,6 +1004,7 @@ again:
     {
       if (clnt->cl_auth->ah_cred.oa_flavor == AUTH_DES)
        {
+         auth_destroy (clnt->cl_auth);
          clnt->cl_auth = authunix_create_default ();
          goto again;
        }
index 1f9cbc7139273933efd3adf279283f6a7f3962dc..875fceaf337b81e54c28c99c0e6241a983b1f315 100644 (file)
@@ -1,3 +1,51 @@
+2005-12-17  Ulrich Drepper  <drepper@redhat.com>
+
+       * pthread_create.c (__pthread_create_2_1): Use
+       THREAD_COPY_POINTER_GUARD if available.
+       * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
+       * sysdeps/x86_64/tcb-offsets.sym: Likewise.
+       * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
+       Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
+       * sysdeps/x86_64/tls.h: Likewise.
+
+2005-12-15  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
+
+2005-12-13  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
+       sysdeps/generic.
+       * errno-loc.c: New file.
+
+2005-12-12  Roland McGrath  <roland@redhat.com>
+
+       * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
+       adjustments before choosing stack size.  Update minimum stack size
+       calculation to match allocate_stack change.
+
+2005-12-12  Ulrich Drepper  <drepper@redhat.com>
+
+       * allocatestack.c (allocate_stack): Don't demand that there is an
+       additional full page available on the stack beside guard, TLS, the
+       minimum stack.
+
+2005-11-24  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
+       (__cleanup_fct_attribute): Use __regparm__ not regparm.
+
+       * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
+       compiling 32-bit code we must define __cleanup_fct_attribute.
+
+005-11-24  Jakub Jelinek  <jakub@redhat.com>
+
+       [BZ #1920]
+       * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
+       __attribute__ instead of __attribute.
+       * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
+       (__cleanup_fct_attribute): Likewise.
+
 2005-11-17  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
index 255129a1df44a16324d15fbedc148db053a4f195..e6bcc2170f7a2c78d69a7444547056728ae4c71c 100644 (file)
@@ -407,8 +407,9 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
       /* Make sure the size of the stack is enough for the guard and
         eventually the thread descriptor.  */
       guardsize = (attr->guardsize + pagesize_m1) & ~pagesize_m1;
-      if (__builtin_expect (size < (guardsize + __static_tls_size
-                                   + MINIMAL_REST_STACK + pagesize_m1 + 1),
+      if (__builtin_expect (size < ((guardsize + __static_tls_size
+                                    + MINIMAL_REST_STACK + pagesize_m1)
+                                   & ~pagesize_m1),
                            0))
        /* The stack is too small (or the guard too large).  */
        return EINVAL;
diff --git a/nptl/errno-loc.c b/nptl/errno-loc.c
new file mode 100644 (file)
index 0000000..712b2b1
--- /dev/null
@@ -0,0 +1 @@
+#include "../csu/errno-loc.c"
index 6a7fff99599b6ab5e1d4d605ba40a07055a3af61..1f79eba62a6b5d5406c0fba1d44cab7fa6f5e69b 100644 (file)
@@ -289,6 +289,17 @@ __pthread_initialize_minimal_internal (void)
   (void) INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_UNBLOCK, &sa.sa_mask,
                           NULL, _NSIG / 8);
 
+  /* Get the size of the static and alignment requirements for the TLS
+     block.  */
+  size_t static_tls_align;
+  _dl_get_tls_static_info (&__static_tls_size, &static_tls_align);
+
+  /* Make sure the size takes all the alignments into account.  */
+  if (STACK_ALIGN > static_tls_align)
+    static_tls_align = STACK_ALIGN;
+  __static_tls_align_m1 = static_tls_align - 1;
+
+  __static_tls_size = roundup (__static_tls_size, static_tls_align);
 
   /* Determine the default allowed stack size.  This is the size used
      in case the user does not specify one.  */
@@ -306,7 +317,7 @@ __pthread_initialize_minimal_internal (void)
   /* Make sure it meets the minimum size that allocate_stack
      (allocatestack.c) will demand, which depends on the page size.  */
   const uintptr_t pagesz = __sysconf (_SC_PAGESIZE);
-  const size_t minstack = pagesz * 2 + __static_tls_size + MINIMAL_REST_STACK;
+  const size_t minstack = pagesz + __static_tls_size + MINIMAL_REST_STACK;
   if (limit.rlim_cur < minstack)
     limit.rlim_cur = minstack;
 
@@ -314,18 +325,6 @@ __pthread_initialize_minimal_internal (void)
   limit.rlim_cur = (limit.rlim_cur + pagesz - 1) & -pagesz;
   __default_stacksize = limit.rlim_cur;
 
-  /* Get the size of the static and alignment requirements for the TLS
-     block.  */
-  size_t static_tls_align;
-  _dl_get_tls_static_info (&__static_tls_size, &static_tls_align);
-
-  /* Make sure the size takes all the alignments into account.  */
-  if (STACK_ALIGN > static_tls_align)
-    static_tls_align = STACK_ALIGN;
-  __static_tls_align_m1 = static_tls_align - 1;
-
-  __static_tls_size = roundup (__static_tls_size, static_tls_align);
-
 #ifdef SHARED
   /* Transfer the old value from the dynamic linker's internal location.  */
   *__libc_dl_error_tsd () = *(*GL(dl_error_catch_tsd)) ();
index f2f206be5a73fb77cec90d9ef3ec836770bc8707..c11d97257219c1aaa8b47f102a55e372b012a886 100644 (file)
@@ -415,6 +415,11 @@ __pthread_create_2_1 (newthread, attr, start_routine, arg)
   THREAD_COPY_STACK_GUARD (pd);
 #endif
 
+  /* Copy the pointer guard value.  */
+#ifdef THREAD_COPY_POINTER_GUARD
+  THREAD_COPY_POINTER_GUARD (pd);
+#endif
+
   /* Determine scheduling parameters for the thread.  */
   if (attr != NULL
       && __builtin_expect ((iattr->flags & ATTR_FLAG_NOTINHERITSCHED) != 0, 0)
index 4e0444ba3843e520a54166ee0fae4cd51b6942fe..7c8d9a5ca50e11ece1ea0bd6a2037ed22de68fd2 100644 (file)
@@ -11,3 +11,4 @@ SYSINFO_OFFSET                offsetof (tcbhead_t, sysinfo)
 CLEANUP                        offsetof (struct pthread, cleanup)
 CLEANUP_PREV           offsetof (struct _pthread_cleanup_buffer, __prev)
 MUTEX_FUTEX            offsetof (pthread_mutex_t, __data.__lock)
+POINTER_GUARD          offsetof (tcbhead_t, pointer_guard)
index 65566ff7a7a7d728c949503585b8c3967699f9dc..a870a848cf4deaf006d0ccdab67091978a627d73 100644 (file)
@@ -50,6 +50,7 @@ typedef struct
   int multiple_threads;
   uintptr_t sysinfo;
   uintptr_t stack_guard;
+  uintptr_t pointer_guard;
 } tcbhead_t;
 
 # define TLS_MULTIPLE_THREADS_IN_TCB 1
@@ -425,6 +426,14 @@ union user_desc_init
    = THREAD_GETMEM (THREAD_SELF, header.stack_guard))
 
 
+/* Set the pointer guard field in the TCB head.  */
+#define THREAD_SET_POINTER_GUARD(value) \
+  THREAD_SETMEM (THREAD_SELF, header.pointer_guard, value)
+#define THREAD_COPY_POINTER_GUARD(descr) \
+  ((descr)->header.pointer_guard                                             \
+   = THREAD_GETMEM (THREAD_SELF, header.pointer_guard))
+
+
 #endif /* __ASSEMBLER__ */
 
 #endif /* tls.h */
index 92e66f7c72dc29cc8069d982a18bdc332e244f20..badadae169ba87fba9e2583c76b5fd201e00d15a 100644 (file)
@@ -657,9 +657,9 @@ extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
 
 /* Internal interface to initiate cleanup.  */
 extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute __attribute ((__noreturn__))
+     __cleanup_fct_attribute __attribute__ ((__noreturn__))
 # ifndef SHARED
-     __attribute ((__weak__))
+     __attribute__ ((__weak__))
 # endif
      ;
 #endif
index fe58ccd53ee85fe2cfc92bab26f24a37e0e41f52..180607c77b0de148b821c0ab88cb1794e5468dd3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -18,4 +18,4 @@
 
 #include <nptl/pthreadP.h>
 
-#include <sysdeps/generic/sigfillset.c>
+#include <signal/sigfillset.c>
index 4d1c9450b5852d1b930bc978ce25cfe3e60aaf2a..ddb3574aaa17976e59c2f624517b4af3fe84ebaf 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -155,6 +155,6 @@ typedef union
 
 
 /* Extra attributes for the cleanup functions.  */
-#define __cleanup_fct_attribute __attribute ((regparm (1)))
+#define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
 
 #endif /* bits/pthreadtypes.h */
index e9c2b6e79a45da5798a39c58c65c28dddb7885fc..2ec11bf686eb7c3dbb92e4a63f3f12009896cbd3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contribute by Ulrich Drepper <drepper@redhat.com>, 2004.
 
@@ -283,5 +283,5 @@ mq_notify (mqd_t mqdes, const struct sigevent *notification)
 }
 
 #else
-# include <sysdeps/generic/mq_notify.c>
+# include <rt/mq_notify.c>
 #endif
index 92fb08c951cf44b19f7c184ca7abfc44f727ff85..7f1ace693cb0f3ef01b9cd9ecd816da2350f4bc7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -192,4 +192,9 @@ typedef union
 #endif
 
 
+#if __WORDSIZE == 32
+/* Extra attributes for the cleanup functions.  */
+# define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
+#endif
+
 #endif /* bits/pthreadtypes.h */
index 8118d2df8b734954c036b47afd89cc0da84e96bc..a9ede75c96e853e5aa226df9b6b96055ffdb66c8 100644 (file)
@@ -10,3 +10,4 @@ CLEANUP                       offsetof (struct pthread, cleanup)
 CLEANUP_PREV           offsetof (struct _pthread_cleanup_buffer, __prev)
 MUTEX_FUTEX            offsetof (pthread_mutex_t, __data.__lock)
 MULTIPLE_THREADS_OFFSET        offsetof (tcbhead_t, multiple_threads)
+POINTER_GUARD          offsetof (tcbhead_t, pointer_guard)
index 516827b8e15cd0abaf003170a4e23cbeec4a3c6d..13cf6fb3f5019d757fcc2c70ca5a9dd4fd00b4a1 100644 (file)
@@ -49,6 +49,7 @@ typedef struct
   int multiple_threads;
   uintptr_t sysinfo;
   uintptr_t stack_guard;
+  uintptr_t pointer_guard;
 } tcbhead_t;
 
 #else /* __ASSEMBLER__ */
@@ -329,6 +330,15 @@ typedef struct
     ((descr)->header.stack_guard                                             \
      = THREAD_GETMEM (THREAD_SELF, header.stack_guard))
 
+
+/* Set the pointer guard field in the TCB head.  */
+#define THREAD_SET_POINTER_GUARD(value) \
+  THREAD_SETMEM (THREAD_SELF, header.pointer_guard, value)
+#define THREAD_COPY_POINTER_GUARD(descr) \
+  ((descr)->header.pointer_guard                                             \
+   = THREAD_GETMEM (THREAD_SELF, header.pointer_guard))
+
+
 #endif /* __ASSEMBLER__ */
 
 #endif /* tls.h */
index b7d5f3400b6a5d3b8b5b352eb725d64151eadb10..e91c289a4f948ce4c7af7be9a4fe8c9938d352e5 100644 (file)
@@ -36,13 +36,12 @@ nscd-modules := nscd connections pwdcache getpwnam_r getpwuid_r grpcache \
 
 ifeq ($(have-thread-library),yes)
 
-others := nscd_nischeck
 ifneq (yesyes,$(have-fpie)$(build-shared))
 others += nscd
 endif
-install-sbin := nscd nscd_nischeck
+install-sbin := nscd
 
-extra-objs := $(nscd-modules:=.o) nscd_nischeck.o
+extra-objs := $(nscd-modules:=.o)
 
 endif
 
@@ -73,8 +72,7 @@ $(objpfx)selinux.o: sysincludes = # nothing
 
 distribute := nscd.h nscd-client.h dbg_log.h \
              $(addsuffix .c, $(filter-out xmalloc,$(all-nscd-modules))) \
-             nscd_nischeck.c nscd.conf nscd.init nscd_proto.h \
-             nscd-types.h
+             nscd.conf nscd.init nscd_proto.h nscd-types.h
 
 include ../Rules
 
@@ -137,14 +135,11 @@ lib := nonlib
 include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
 
 $(objpfx)nscd: $(nscd-modules:%=$(objpfx)%.o)
-$(objpfx)nscd_nischeck: $(objpfx)nscd_nischeck.o
 
 ifeq ($(build-shared),yes)
 $(objpfx)nscd: $(common-objpfx)rt/librt.so $(shared-thread-library) \
               $(common-objpfx)nis/libnsl.so
-$(objpfx)nscd_nischeck: $(common-objpfx)nis/libnsl.so
 else
 $(objpfx)nscd: $(common-objpfx)rt/librt.a $(static-thread-library) \
               $(common-objpfx)nis/libnsl.a
-$(objpfx)nscd_nischeck: $(common-objpfx)nis/libnsl.a
 endif
index 9b8a4e50f23ae4333bbefb0462ced2c0004191ff..6f24daabecba603a482e2205fb2def56fc293b0a 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <assert.h>
 #include <errno.h>
@@ -26,9 +24,6 @@
 #include <time.h>
 #include <unistd.h>
 #include <sys/mman.h>
-#ifdef HAVE_SENDFILE
-# include <sys/sendfile.h>
-#endif
 
 #include "dbg_log.h"
 #include "nscd.h"
@@ -382,9 +377,10 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
                              <= (sizeof (struct database_pers_head)
                                  + db->head->module * sizeof (ref_t)
                                  + db->head->data_size));
-                     off_t off = (char *) &dataset->resp - (char *) db->head;
                      ssize_t written;
-                     written = sendfile (fd, db->wr_fd, &off, total);
+                     written = sendfileall (fd, db->wr_fd,
+                                            (char *) &dataset->resp
+                                            - (char *) db->head, total);
 # ifndef __ASSUME_SENDFILE
                      if (written == -1 && errno == ENOSYS)
                        goto use_write;
index a3f669bf8c89b74c0f30bc0335c800f07ce16638..787f8b46f593e939cc9ae578ca8703c55a401c3f 100644 (file)
@@ -2,20 +2,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <assert.h>
 #include <atomic.h>
index f055642dcc5844b6bff7fb79a418c874673fd8ac..632635845b24f585985a655a97585d1ec28c19ce 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <alloca.h>
 #include <assert.h>
@@ -204,6 +202,26 @@ writeall (int fd, const void *buf, size_t len)
 }
 
 
+#ifdef HAVE_SENDFILE
+ssize_t
+sendfileall (int tofd, int fromfd, off_t off, size_t len)
+{
+  ssize_t n = len;
+  ssize_t ret;
+
+  do
+    {
+      ret = TEMP_FAILURE_RETRY (sendfile (tofd, fromfd, &off, n));
+      if (ret <= 0)
+       break;
+      n -= ret;
+    }
+  while (n > 0);
+  return ret < 0 ? ret : len - n;
+}
+#endif
+
+
 enum usekey
   {
     use_not = 0,
@@ -957,8 +975,9 @@ cannot handle old request version %d; current version is %d"),
                      <= (sizeof (struct database_pers_head)
                          + db->head->module * sizeof (ref_t)
                          + db->head->data_size));
-             off_t off = (char *) cached->data - (char *) db->head;
-             nwritten = sendfile (fd, db->wr_fd, &off, cached->recsize);
+             nwritten = sendfileall (fd, db->wr_fd,
+                                     (char *) cached->data
+                                     - (char *) db->head, cached->recsize);
 # ifndef __ASSUME_SENDFILE
              if (nwritten == -1 && errno == ENOSYS)
                goto use_write;
index 4b8843037b21d0882f68b55102698319817a8a9e..d64afc7e8dec0c051b02932619a5b0da7eef1fd9 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (c) 1998, 2000, 2004 Free Software Foundation, Inc.
+/* Copyright (c) 1998, 2000, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <stdarg.h>
 #include <stdio.h>
index 722c7e415d1fb13a03af011cba826508219b267f..18fc62e7a0999ae27275d65f3e798bc85df08b6f 100644 (file)
@@ -1,3 +1,20 @@
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 2004.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
 /* This file uses the getaddrinfo code but it compiles it without NSCD
    support.  We just need a few symbol renames.  */
 #define __getservbyname_r getservbyname_r
index d46fb0fcac3fc400c0c7b611db13b9226b5a5352..037509d8aaa8202c4e587f3522904578b9242ae5 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <grp.h>
 
index 42daa16177320bad9c53b398b85035a265592720..8fc74dcbafa83c15f8405c01f97c81f3dcfc4f11 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <grp.h>
 
index 47ed3e22e736238c09d08db71120425ca958269d..4c02492101ddbcc9479336b3a11382257073b56b 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <netdb.h>
 
index b0cc713a84aa4500205853c9e67547f29a2cec4b..416b5ceafa10868be13f9efb84c73ee0a804328d 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <ctype.h>
 #include <errno.h>
index df73b99e4a9c434d43b24431f5ecdd48b902561c..c92209a0cf5f52d57d0d5c1849113d4d039941de 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <pwd.h>
 
index 015a521bbe4cd0a3c7d03afe16d21c5e47820f96..f68951511e471f24589c7d5e1c59030a502ce66b 100644 (file)
@@ -1,21 +1,19 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <pwd.h>
 
index fb043152c61b46d71b52529c4945d9c9531ac6e8..d38a92809e9575756ee19b299337c9e2a921a0b7 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <alloca.h>
 #include <assert.h>
@@ -32,9 +30,6 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/mman.h>
-#ifdef HAVE_SENDFILE
-# include <sys/sendfile.h>
-#endif
 #include <sys/socket.h>
 #include <stackinfo.h>
 
@@ -310,8 +305,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
                      <= (sizeof (struct database_pers_head)
                          + db->head->module * sizeof (ref_t)
                          + db->head->data_size));
-             off_t off = (char *) &dataset->resp - (char *) db->head;
-             written = sendfile (fd, db->wr_fd, &off, total);
+             written = sendfileall (fd, db->wr_fd,
+                                    (char *) &dataset->resp
+                                    - (char *) db->head, total);
 # ifndef __ASSUME_SENDFILE
              if (written == -1 && errno == ENOSYS)
                goto use_write;
index 29f14af66bec72f58df1d93cb75f4c940e8c757f..a7d981ad316c1a96f414dd579aa3226814898724 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <alloca.h>
 #include <assert.h>
@@ -34,9 +32,6 @@
 #include <arpa/inet.h>
 #include <arpa/nameser.h>
 #include <sys/mman.h>
-#ifdef HAVE_SENDFILE
-# include <sys/sendfile.h>
-#endif
 #include <stackinfo.h>
 
 #include "nscd.h"
@@ -344,8 +339,9 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
                      <= (sizeof (struct database_pers_head)
                          + db->head->module * sizeof (ref_t)
                          + db->head->data_size));
-             off_t off = (char *) &dataset->resp - (char *) db->head;
-             written = sendfile (fd, db->wr_fd, &off, total);
+             written = sendfileall (fd, db->wr_fd,
+                                    (char *) &dataset->resp
+                                    - (char *) db->head, total);
 # ifndef __ASSUME_SENDFILE
              if (written == -1 && errno == ENOSYS)
                goto use_write;
index eb03fc7a5d0b7084cf64f703735834aafa76dc9a..423dbbe4d3a7a49f1c278b4295f0999ee740a811 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <assert.h>
 #include <errno.h>
@@ -26,9 +24,6 @@
 #include <time.h>
 #include <unistd.h>
 #include <sys/mman.h>
-#ifdef HAVE_SENDFILE
-# include <sys/sendfile.h>
-#endif
 
 #include "dbg_log.h"
 #include "nscd.h"
@@ -361,8 +356,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
                      <= (sizeof (struct database_pers_head)
                          + db->head->module * sizeof (ref_t)
                          + db->head->data_size));
-             off_t off = (char *) &dataset->resp - (char *) db->head;
-             written = sendfile (fd, db->wr_fd, &off, total);
+             written = sendfileall (fd, db->wr_fd,
+                                    (char *) &dataset->resp
+                                    - (char *) db->head, total);
 # ifndef __ASSUME_SENDFILE
              if (written == -1 && errno == ENOSYS)
                goto use_write;
index 96f0170c6ca36605ca7b15cb2c099199c73312b2..a41c0bdb074b8d97c491b7b106744167cb03604c 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <assert.h>
 #include <errno.h>
index 1389f2da19fda0fcc1fd9e3500ded71f582d52d2..98c167eb622d58a26e850da51b920e1b761f92e0 100644 (file)
@@ -319,5 +319,7 @@ extern ssize_t __readvall (int fd, const struct iovec *iov, int iovcnt)
   attribute_hidden;
 extern ssize_t writeall (int fd, const void *buf, size_t len)
   attribute_hidden;
+extern ssize_t sendfileall (int tofd, int fromfd, off_t off, size_t len)
+  attribute_hidden;
 
 #endif /* nscd.h */
index 8f299a3aa4d5d9631139fb20cbaeddd283d31f5c..3c65e20a602fe73263ef7b535f935b3e6551a24d 100644 (file)
@@ -2,20 +2,18 @@
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* nscd - Name Service Cache Daemon. Caches passwd, group, and hosts.  */
 
index 1039250f48d7f164f3abc19822cf04ce51344335..579ddd402fed2b97b4c405bbaa8049e1e124c4e4 100644 (file)
@@ -2,20 +2,18 @@
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <ctype.h>
 #include <errno.h>
index 65e78a1174689cf4e9f58452aac4852d858dfb09..827d3a97ab61348b675c3cf19f6eaaeac4e60b4e 100644 (file)
@@ -230,9 +230,9 @@ get_mapping (request_type type, const char *key,
   if (wait_on_socket (sock) <= 0)
     goto out_close2;
 
-#ifndef MSG_NOSIGNAL
-# define MSG_NOSIGNAL 0
-#endif
+# ifndef MSG_NOSIGNAL
+#  define MSG_NOSIGNAL 0
+# endif
   if (__builtin_expect (TEMP_FAILURE_RETRY (__recvmsg (sock, &msg,
                                                       MSG_NOSIGNAL))
                        != keylen, 0))
diff --git a/nscd/nscd_nischeck.c b/nscd/nscd_nischeck.c
deleted file mode 100644 (file)
index 20f7bb0..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (c) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Thorsten Kukuk <kukuk@suse.de>, 1999.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* nscd_nischeck: Check, if everybody has read permissions for NIS+ table.
-   Return value:
-    0: Everybody can read the NIS+ table
-    1: Only authenticated users could read the NIS+ table */
-
-#include <argp.h>
-#include <error.h>
-#include <stdlib.h>
-#include <libintl.h>
-#include <locale.h>
-#include <rpcsvc/nis.h>
-
-/* Get libc version number.  */
-#include <version.h>
-
-#define PACKAGE _libc_intl_domainname
-
-/* Name and version of program.  */
-static void print_version (FILE *stream, struct argp_state *state);
-void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
-
-/* Data structure to communicate with argp functions.  */
-static struct argp argp =
-{
-  NULL, NULL, NULL, NULL,
-};
-
-int
-main (int argc, char **argv)
-{
-  int remaining;
-  nis_result *res;
-  char *tablename, *cp;
-
-  /* Set locale via LC_ALL.  */
-  setlocale (LC_ALL, "");
-  /* Set the text message domain.  */
-  textdomain (PACKAGE);
-
-  /* Parse and process arguments.  */
-  argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
-  if (remaining + 1 != argc)
-    {
-      error (0, 0, gettext ("wrong number of arguments"));
-      argp_help (&argp, stdout, ARGP_HELP_SEE, program_invocation_short_name);
-      exit (EXIT_FAILURE);
-    }
-
-  tablename = alloca (strlen (argv[1]) + 10);
-  cp = stpcpy (tablename, argv[1]);
-  strcpy (cp, ".org_dir");
-
-  res = nis_lookup (tablename, EXPAND_NAME|FOLLOW_LINKS);
-
-  if (res == NULL ||
-      (res->status != NIS_SUCCESS && res->status != NIS_S_SUCCESS))
-    return 0;
-
-  if (NIS_NOBODY(NIS_RES_OBJECT(res)->zo_access, NIS_READ_ACC))
-    return 0;
-  else
-    return 1;
-}
-
-/* Print the version information.  */
-static void
-print_version (FILE *stream, struct argp_state *state)
-{
-  fprintf (stream, "nscd_nischeck (GNU %s) %s\n", PACKAGE, VERSION);
-  fprintf (stream, gettext ("\
-Copyright (C) %s Free Software Foundation, Inc.\n\
-This is free software; see the source for copying conditions.  There is NO\n\
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2005");
-  fprintf (stream, gettext ("Written by %s.\n"), "Thorsten Kukuk");
-}
diff --git a/nscd/nscd_setup_thread.c b/nscd/nscd_setup_thread.c
new file mode 100644 (file)
index 0000000..32bfe07
--- /dev/null
@@ -0,0 +1,26 @@
+/* Setup of nscd worker threads.  Stub verison.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#include <nscd.h>
+
+
+void
+setup_thread (struct database_dyn *db)
+{
+  /* Nothing.  */
+}
index 6f4b032d108298cd476051c2a00fc247696d2790..529c707de8cab29b211ddf986375a691edd02024 100644 (file)
@@ -3,20 +3,18 @@
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <alloca.h>
 #include <assert.h>
@@ -32,9 +30,6 @@
 #include <time.h>
 #include <unistd.h>
 #include <sys/mman.h>
-#ifdef HAVE_SENDFILE
-# include <sys/sendfile.h>
-#endif
 #include <sys/socket.h>
 #include <stackinfo.h>
 
@@ -305,8 +300,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
                      <= (sizeof (struct database_pers_head)
                           + db->head->module * sizeof (ref_t)
                           + db->head->data_size));
-             off_t off = (char *) &dataset->resp - (char *) db->head;
-             written = sendfile (fd, db->wr_fd, &off, total);
+             written = sendfileall (fd, db->wr_fd,
+                                    (char *) &dataset->resp
+                                    - (char *) db->head, total);
 # ifndef __ASSUME_SENDFILE
              if (written == -1 && errno == ENOSYS)
                goto use_write;
index 59a06a2d31614ec17a814d5b6c6b791273d00e39..505fb9307f051c9fe392e152945db736c73c5616 100644 (file)
@@ -1,5 +1,5 @@
 /* List of functions defined for static NSS in GNU C Library.
-   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -37,6 +37,7 @@ DEFINE_GET (files, grnam)
 DEFINE_ENT (files, host)
 DEFINE_GETBY (files, host, addr)
 DEFINE_GETBY (files, host, name)
+DEFINE_GETBY (files, host, name2)
 DEFINE_GET (files, hostton)
 DEFINE_GET (files, ntohost)
 DEFINE_GETBY (dns, host, addr)
index 45f3b8ac4229e8601202c5a09df68b4106739e89..4b5d774fdd2d2bad3c4d62ab62b3cc24f861fb04 100644 (file)
@@ -153,7 +153,7 @@ _nss_files_setnetgrent (const char *group, struct __netgrent *result)
 }
 
 
-int
+enum nss_status
 _nss_files_endnetgrent (struct __netgrent *result)
 {
   /* Free allocated memory for data if some is present.  */
similarity index 100%
rename from sysdeps/generic/_exit.c
rename to posix/_exit.c
similarity index 100%
rename from sysdeps/generic/alarm.c
rename to posix/alarm.c
similarity index 100%
rename from sysdeps/generic/environ.c
rename to posix/environ.c
similarity index 100%
rename from sysdeps/generic/execve.c
rename to posix/execve.c
similarity index 100%
rename from sysdeps/generic/fexecve.c
rename to posix/fexecve.c
similarity index 100%
rename from sysdeps/generic/fork.c
rename to posix/fork.c
index da8e538ad3319e7f4e71694fd0f480a0aa338220..57c1d6a5d6cc54a39fa522ea01b3f93a1dc64fe2 100644 (file)
@@ -1,20 +1,18 @@
 /* Copyright (C) 1991, 92, 1995-2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <unistd.h>
 #include <errno.h>
similarity index 100%
rename from sysdeps/generic/getegid.c
rename to posix/getegid.c
similarity index 100%
rename from sysdeps/generic/geteuid.c
rename to posix/geteuid.c
similarity index 100%
rename from sysdeps/generic/getgid.c
rename to posix/getgid.c
similarity index 100%
rename from sysdeps/generic/getlogin.c
rename to posix/getlogin.c
similarity index 100%
rename from sysdeps/generic/getpgid.c
rename to posix/getpgid.c
similarity index 100%
rename from sysdeps/generic/getpgrp.c
rename to posix/getpgrp.c
similarity index 100%
rename from sysdeps/generic/getpid.c
rename to posix/getpid.c
similarity index 100%
rename from sysdeps/generic/getppid.c
rename to posix/getppid.c
similarity index 100%
rename from sysdeps/generic/getsid.c
rename to posix/getsid.c
similarity index 100%
rename from sysdeps/generic/getuid.c
rename to posix/getuid.c
similarity index 100%
rename from sysdeps/generic/glob.c
rename to posix/glob.c
similarity index 100%
rename from sysdeps/generic/glob64.c
rename to posix/glob64.c
similarity index 100%
rename from sysdeps/generic/pathconf.c
rename to posix/pathconf.c
similarity index 100%
rename from sysdeps/generic/pause.c
rename to posix/pause.c
similarity index 100%
rename from sysdeps/generic/pread.c
rename to posix/pread.c
similarity index 100%
rename from sysdeps/generic/pread64.c
rename to posix/pread64.c
similarity index 100%
rename from sysdeps/generic/pwrite.c
rename to posix/pwrite.c
similarity index 100%
rename from sysdeps/generic/pwrite64.c
rename to posix/pwrite64.c
index d1447a4d5e61fbf743310db4c6f388102f1abe78..3b575c3c48da7473310144fdf8819e96d3304993 100644 (file)
@@ -42,6 +42,9 @@
 #if defined HAVE_STDBOOL_H || defined _LIBC
 # include <stdbool.h>
 #endif /* HAVE_STDBOOL_H || _LIBC */
+#if defined HAVE_STDINT_H || defined _LIBC
+# include <stdint.h>
+#endif /* HAVE_STDINT_H || _LIBC */
 #if defined _LIBC
 # include <bits/libc-lock.h>
 #else
 # define gettext_noop(String) String
 #endif
 
+/* For loser systems without the definition.  */
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
 #if (defined MB_CUR_MAX && HAVE_LOCALE_H && HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_WCRTOMB && HAVE_MBRTOWC && HAVE_WCSCOLL) || _LIBC
 # define RE_ENABLE_I18N
 #endif
similarity index 100%
rename from sysdeps/generic/setgid.c
rename to posix/setgid.c
similarity index 100%
rename from sysdeps/generic/setlogin.c
rename to posix/setlogin.c
similarity index 100%
rename from sysdeps/generic/setpgid.c
rename to posix/setpgid.c
similarity index 100%
rename from sysdeps/generic/setpgrp.c
rename to posix/setpgrp.c
similarity index 100%
rename from sysdeps/generic/setsid.c
rename to posix/setsid.c
similarity index 100%
rename from sysdeps/generic/setuid.c
rename to posix/setuid.c
similarity index 100%
rename from sysdeps/generic/sleep.c
rename to posix/sleep.c
similarity index 100%
rename from sysdeps/generic/spawni.c
rename to posix/spawni.c
similarity index 100%
rename from sysdeps/generic/sysconf.c
rename to posix/sysconf.c
similarity index 100%
rename from sysdeps/generic/times.c
rename to posix/times.c
similarity index 100%
rename from sysdeps/generic/uname.c
rename to posix/uname.c
index 86e0e9e659de1d3f961976fd72889926943daa76..9684126eaadcda835e0b828200b186aca42c6670 100644 (file)
@@ -742,6 +742,13 @@ extern int ttyslot (void) __THROW;
 extern int link (__const char *__from, __const char *__to)
      __THROW __nonnull ((1, 2)) __wur;
 
+#ifdef __USE_GNU
+/* Like link but relative paths in TO and FROM are interpreted relative
+   to FROMFD and TOFD respectively.  */
+extern int linkat (int __fromfd, __const char *__from, int __tofd,
+                  __const char *__to) __THROW __nonnull ((2, 4)) __wur;
+#endif
+
 #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K
 /* Make a symbolic link to FROM named TO.  */
 extern int symlink (__const char *__from, __const char *__to)
@@ -754,6 +761,17 @@ extern int readlink (__const char *__restrict __path, char *__restrict __buf,
                     size_t __len) __THROW __nonnull ((1, 2)) __wur;
 #endif /* Use BSD.  */
 
+#ifdef __USE_GNU
+/* Like symlink but a relative path in TO is interpreted relative to TOFD.  */
+extern int symlinkat (__const char *__from, int __tofd,
+                     __const char *__to) __THROW __nonnull ((1, 3)) __wur;
+
+/* Like readlink but a relative PATH is interpreted relative to FD.  */
+extern int readlinkat (int __fd, __const char *__restrict __path,
+                      char *__restrict __buf, size_t __len)
+     __THROW __nonnull ((2, 3)) __wur;
+#endif
+
 /* Remove the link NAME.  */
 extern int unlink (__const char *__name) __THROW __nonnull ((1));
 
similarity index 100%
rename from sysdeps/generic/vfork.c
rename to posix/vfork.c
similarity index 100%
rename from sysdeps/generic/wait.c
rename to posix/wait.c
similarity index 100%
rename from sysdeps/generic/wait3.c
rename to posix/wait3.c
similarity index 100%
rename from sysdeps/generic/wait4.c
rename to posix/wait4.c
similarity index 100%
rename from sysdeps/generic/waitid.c
rename to posix/waitid.c
similarity index 100%
rename from sysdeps/generic/waitpid.c
rename to posix/waitpid.c
similarity index 100%
rename from sysdeps/generic/wordexp.c
rename to posix/wordexp.c
index 3698e4b8412a4fcb651b01b64a63d80617200f99..bab2535cebadb4bfc982596926a211e788f11e83 100644 (file)
@@ -51,7 +51,6 @@
 
 #if defined(LIBC_SCCS) && !defined(lint)
 static char sccsid[] = "@(#)gethostnamadr.c    8.1 (Berkeley) 6/4/93";
-static char rcsid[] = "$Id$";
 #endif /* LIBC_SCCS and not lint */
 
 #include <sys/types.h>
similarity index 100%
rename from sysdeps/generic/nice.c
rename to resource/nice.c
similarity index 100%
rename from sysdeps/generic/ulimit.c
rename to resource/ulimit.c
similarity index 100%
rename from sysdeps/generic/vlimit.c
rename to resource/vlimit.c
similarity index 100%
rename from sysdeps/generic/vtimes.c
rename to resource/vtimes.c
similarity index 100%
rename from sysdeps/generic/aio_cancel.c
rename to rt/aio_cancel.c
similarity index 100%
rename from sysdeps/generic/aio_fsync.c
rename to rt/aio_fsync.c
similarity index 100%
rename from sysdeps/generic/aio_misc.c
rename to rt/aio_misc.c
similarity index 100%
rename from sysdeps/generic/aio_notify.c
rename to rt/aio_notify.c
similarity index 100%
rename from sysdeps/generic/aio_read.c
rename to rt/aio_read.c
similarity index 100%
rename from sysdeps/generic/aio_read64.c
rename to rt/aio_read64.c
similarity index 100%
rename from sysdeps/generic/aio_write.c
rename to rt/aio_write.c
similarity index 100%
rename from sysdeps/generic/lio_listio.c
rename to rt/lio_listio.c
diff --git a/rt/lio_listio64.c b/rt/lio_listio64.c
new file mode 100644 (file)
index 0000000..35a571c
--- /dev/null
@@ -0,0 +1,2 @@
+#define BE_AIO64
+#include <lio_listio.c>
similarity index 100%
rename from sysdeps/generic/mq_close.c
rename to rt/mq_close.c
similarity index 100%
rename from sysdeps/generic/mq_getattr.c
rename to rt/mq_getattr.c
similarity index 100%
rename from sysdeps/generic/mq_notify.c
rename to rt/mq_notify.c
similarity index 100%
rename from sysdeps/generic/mq_open.c
rename to rt/mq_open.c
similarity index 100%
rename from sysdeps/generic/mq_receive.c
rename to rt/mq_receive.c
similarity index 100%
rename from sysdeps/generic/mq_send.c
rename to rt/mq_send.c
similarity index 100%
rename from sysdeps/generic/mq_setattr.c
rename to rt/mq_setattr.c
similarity index 100%
rename from sysdeps/generic/mq_unlink.c
rename to rt/mq_unlink.c
similarity index 100%
rename from sysdeps/generic/shm_open.c
rename to rt/shm_open.c
similarity index 100%
rename from sysdeps/generic/shm_unlink.c
rename to rt/shm_unlink.c
similarity index 100%
rename from sysdeps/generic/tst-timer.c
rename to rt/tst-timer.c
index 1992705e0f20b50e093128c69efe7ca425bc0a8b..f0ea0b5a842945d2b1602c9e992007df8aaafb18 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/bash
-# Copyright (C) 2003 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -28,7 +28,7 @@
 # egrep '^typedef.*;$' |
 # sed 's/^typedef[[:space:]]*//;s/\([[:space:]]\{1,\}__attribute__.*\);/;/;s/.*[[:space:]]\([*]\|\)\(.*\);/\2/' |
 # egrep -v '^_' |
-# sort -u
+# LC_ALL=C sort -u
 #
 data=$1
 shift
diff --git a/scripts/check-local-headers.sh b/scripts/check-local-headers.sh
new file mode 100755 (executable)
index 0000000..88c85f7
--- /dev/null
@@ -0,0 +1,38 @@
+#! /bin/bash
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, write to the Free
+# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA.
+#
+includedir="$1"
+objpfx="$2"
+
+# To avoid long paths.
+cd "$objpfx"
+
+
+# Search all dependency files for file names in the include directory.
+# There are a few system headers we are known to use.
+if fgrep "$includedir" */*.d |
+fgrep -v "$includedir/asm" |
+fgrep -v "$includedir/linux" |
+fgrep -v "$includedir/selinux" |
+fgrep -v "$includedir/gd"; then
+  # If we found a match something is wrong.
+  exit 1
+fi
+
+exit 0
index d0fd194fd6c74a8fe333eb68698337eef16273fc..f945dbf2bcef821a53120501b0a06fc0388a2d5c 100755 (executable)
@@ -4,8 +4,6 @@
 # Created: 1993-05-16
 # Public domain
 
-# $Id$
-
 errstatus=0
 
 for file
similarity index 100%
rename from sysdeps/generic/longjmp.c
rename to setjmp/longjmp.c
similarity index 100%
rename from sysdeps/generic/setjmp.c
rename to setjmp/setjmp.c
similarity index 100%
rename from sysdeps/generic/sigjmp.c
rename to setjmp/sigjmp.c
similarity index 100%
rename from sysdeps/generic/kill.c
rename to signal/kill.c
similarity index 100%
rename from sysdeps/generic/killpg.c
rename to signal/killpg.c
similarity index 100%
rename from sysdeps/generic/raise.c
rename to signal/raise.c
similarity index 100%
rename from sysdeps/generic/sigblock.c
rename to signal/sigblock.c
similarity index 100%
rename from sysdeps/generic/sigintr.c
rename to signal/sigintr.c
similarity index 100%
rename from sysdeps/generic/signal.c
rename to signal/signal.c
similarity index 100%
rename from sysdeps/generic/sigpause.c
rename to signal/sigpause.c
similarity index 100%
rename from sysdeps/generic/sigqueue.c
rename to signal/sigqueue.c
similarity index 100%
rename from sysdeps/generic/sigset.c
rename to signal/sigset.c
similarity index 100%
rename from sysdeps/generic/sigstack.c
rename to signal/sigstack.c
similarity index 100%
rename from sysdeps/generic/sigvec.c
rename to signal/sigvec.c
similarity index 100%
rename from sysdeps/generic/sigwait.c
rename to signal/sigwait.c
similarity index 100%
rename from sysdeps/generic/accept.c
rename to socket/accept.c
similarity index 100%
rename from sysdeps/generic/bind.c
rename to socket/bind.c
similarity index 100%
rename from sysdeps/generic/connect.c
rename to socket/connect.c
similarity index 100%
rename from sysdeps/generic/isfdtype.c
rename to socket/isfdtype.c
similarity index 100%
rename from sysdeps/generic/listen.c
rename to socket/listen.c
similarity index 100%
rename from sysdeps/generic/opensock.c
rename to socket/opensock.c
similarity index 100%
rename from sysdeps/generic/recv.c
rename to socket/recv.c
similarity index 100%
rename from sysdeps/generic/recvfrom.c
rename to socket/recvfrom.c
similarity index 100%
rename from sysdeps/generic/recvmsg.c
rename to socket/recvmsg.c
similarity index 100%
rename from sysdeps/generic/send.c
rename to socket/send.c
similarity index 100%
rename from sysdeps/generic/sendmsg.c
rename to socket/sendmsg.c
similarity index 100%
rename from sysdeps/generic/sendto.c
rename to socket/sendto.c
similarity index 100%
rename from sysdeps/generic/shutdown.c
rename to socket/shutdown.c
similarity index 100%
rename from sysdeps/generic/socket.c
rename to socket/socket.c
index c7933a85ffd2109596683f1713215e11517478a3..d2a2af09476a7121ab370962fcd7f9d4e5284f33 100644 (file)
@@ -23,7 +23,7 @@
 #include "soft-fp.h"
 #include "single.h"
 
-double __floatdisf(DItype i)
+float __floatdisf(DItype i)
 {
   FP_DECL_EX;
   FP_DECL_S(A);
index 18779f88d89bd1a25a13cd570922937cf6807a4f..2dc66c1ba31f2f21b8658bcf0f39786177729019 100644 (file)
@@ -175,4 +175,6 @@ typedef USItype UHWtype;
 #include <stdlib/longlong.h>
 #endif
 
+#include <stdlib.h>
+
 #endif
similarity index 100%
rename from sysdeps/generic/abort.c
rename to stdlib/abort.c
similarity index 99%
rename from sysdeps/generic/add_n.c
rename to stdlib/add_n.c
index 5fcb7e483528614ae6c7e9a38a841ddff6fc4d86..280e30545ab0127011bd2f1b0c2c30d6ec31cee4 100644 (file)
@@ -19,7 +19,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 
 mp_limb_t
similarity index 99%
rename from sysdeps/generic/addmul_1.c
rename to stdlib/addmul_1.c
index 746ae313071678df247eb178d8ef05510997974f..6ae1e57ad98ee2d65294db59d6aa56ecc9bffbc1 100644 (file)
@@ -22,7 +22,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 #include "longlong.h"
 
similarity index 99%
rename from sysdeps/generic/cmp.c
rename to stdlib/cmp.c
index 8e9792f54e43a7b1dba44c75ce4c199a41092943..e7661702b60cb559474f8e46c7a7329a53e20e50 100644 (file)
@@ -19,7 +19,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 
 /* Compare OP1_PTR/OP1_SIZE with OP2_PTR/OP2_SIZE.
index 490776105f6f0f32cff3aaad76f2ef694587988f..9b7a932b8504337d740b3a5ffaf33fdfa07d87fb 100644 (file)
@@ -21,6 +21,8 @@
 
 #include <bits/libc-lock.h>
 #include "exit.h"
+#include <atomic.h>
+#include <sysdep.h>
 
 #undef __cxa_atexit
 
@@ -35,10 +37,14 @@ __cxa_atexit (void (*func) (void *), void *arg, void *d)
   if (new == NULL)
     return -1;
 
-  new->flavor = ef_cxa;
+#ifdef PTR_MANGLE
+  PTR_MANGLE (func);
+#endif
   new->func.cxa.fn = (void (*) (void *, int)) func;
   new->func.cxa.arg = arg;
   new->func.cxa.dso_handle = d;
+  atomic_write_barrier ();
+  new->flavor = ef_cxa;
   return 0;
 }
 INTDEF(__cxa_atexit)
index 2339c7b5bd521ca8c04ef6bf52968ad6fb9aa3fc..43fcbc484f40a83e20a0aa9bb02d5acc3cf5d99e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@
 #include <atomic.h>
 #include "exit.h"
 #include <fork.h>
+#include <sysdep.h>
 
 /* If D is non-NULL, call all functions registered with `__cxa_atexit'
    with the same dso handle.  Otherwise, if D is NULL, call all of the
@@ -39,7 +40,13 @@ __cxa_finalize (void *d)
            /* We don't want to run this cleanup more than once.  */
            && ! atomic_compare_and_exchange_bool_acq (&f->flavor, ef_free,
                                                       ef_cxa))
-         (*f->func.cxa.fn) (f->func.cxa.arg, 0);
+         {
+           void (*cxafn) (void *arg, int status) = f->func.cxa.fn;
+#ifdef PTR_DEMANGLE
+           PTR_DEMANGLE (cxafn);
+#endif
+           cxafn (f->func.cxa.arg, 0);
+         }
     }
 
   /* Remove the registered fork handlers.  We do not have to
similarity index 98%
rename from sysdeps/generic/dbl2mpn.c
rename to stdlib/dbl2mpn.c
index 773ca4fd6a7ef05fd8a1ebed717f9f722fd9af64..4444467946b93d87766fb8d39d537e6a22b5c594 100644 (file)
@@ -16,7 +16,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 
 /* Convert a `double' to a multi-precision integer representing the
similarity index 100%
rename from sysdeps/generic/div.c
rename to stdlib/div.c
similarity index 99%
rename from sysdeps/generic/divmod_1.c
rename to stdlib/divmod_1.c
index 50b97db72ff0a9577430387b08d3fdbd41ec4234..51a47d85d36c705188791de5dd7f1b39738c1359 100644 (file)
@@ -25,7 +25,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 #include "longlong.h"
 
similarity index 99%
rename from sysdeps/generic/divrem.c
rename to stdlib/divrem.c
index 609f3d789c3622121bf3a512d7859b9736842441..c97d01ec17189b0aab72d0f4487dd6a98a85d99f 100644 (file)
@@ -20,7 +20,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 #include "longlong.h"
 
index e5e25960b1ec9f074324dc1fdcfa547db570512c..bc4cb0fd08530f2d6606f02afb93395df15b478a 100644 (file)
@@ -19,6 +19,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <sysdep.h>
 #include "exit.h"
 
 #include "set-hooks.h"
@@ -45,17 +46,33 @@ exit (int status)
            &__exit_funcs->fns[--__exit_funcs->idx];
          switch (f->flavor)
            {
+             void (*atfct) (void);
+             void (*onfct) (int status, void *arg);
+             void (*cxafct) (void *arg, int status);
+
            case ef_free:
            case ef_us:
              break;
            case ef_on:
-             (*f->func.on.fn) (status, f->func.on.arg);
+             onfct = f->func.on.fn;
+#ifdef PTR_DEMANGLE
+             PTR_DEMANGLE (onfct);
+#endif
+             onfct (status, f->func.on.arg);
              break;
            case ef_at:
-             (*f->func.at) ();
+             atfct = f->func.at;
+#ifdef PTR_DEMANGLE
+             PTR_DEMANGLE (atfct);
+#endif
+             atfct ();
              break;
            case ef_cxa:
-             (*f->func.cxa.fn) (f->func.cxa.arg, status);
+             cxafct = f->func.cxa.fn;
+#ifdef PTR_DEMANGLE
+             PTR_DEMANGLE (cxafct);
+#endif
+             cxafct (f->func.cxa.arg, status);
              break;
            }
        }
similarity index 100%
rename from sysdeps/generic/getenv.c
rename to stdlib/getenv.c
similarity index 77%
rename from sysdeps/generic/inlines.c
rename to stdlib/inlines.c
index dca305e6e49e26d87ebd3f14051223de295de575..5f1065ea13acec401b4665d797de1882cad8061f 100644 (file)
@@ -1,3 +1,3 @@
 #define _FORCE_INLINES
 #define _EXTERN_INLINE /* empty */
-#include "gmp.h"
+#include <gmp.h>
similarity index 100%
rename from sysdeps/generic/labs.c
rename to stdlib/labs.c
similarity index 100%
rename from sysdeps/generic/ldbl2mpn.c
rename to stdlib/ldbl2mpn.c
similarity index 100%
rename from sysdeps/generic/ldiv.c
rename to stdlib/ldiv.c
similarity index 100%
rename from sysdeps/generic/llabs.c
rename to stdlib/llabs.c
similarity index 100%
rename from sysdeps/generic/lldiv.c
rename to stdlib/lldiv.c
index f89ae27a67108c421bddda266678f778148f22ca..4e1931d8234f3a64ab764c6e01e0db0c35c52dc4 100644 (file)
@@ -1,5 +1,6 @@
 /* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
-   Copyright (C) 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+   Copyright (C) 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+   2002, 2003, 2004, 2005
    Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
@@ -31,8 +32,7 @@
    DItype, UDItype -- Signed and unsigned 64 bit types.
 
    On a 32 bit machine UWtype should typically be USItype;
-   on a 64 bit machine, UWtype should typically be UDItype.
-*/
+   on a 64 bit machine, UWtype should typically be UDItype.  */
 
 #define __BITS4 (W_TYPE_SIZE / 4)
 #define __ll_B ((UWtype) 1 << (W_TYPE_SIZE / 2))
 #define UDWtype                UDItype
 #endif
 
+extern const UQItype __clz_tab[256];
+
 /* Define auxiliary asm macros.
 
-   1) umul_ppmm(high_prod, low_prod, multipler, multiplicand) multiplies two
-   UWtype integers MULTIPLER and MULTIPLICAND, and generates a two UWtype
+   1) umul_ppmm(high_prod, low_prod, multiplier, multiplicand) multiplies two
+   UWtype integers MULTIPLIER and MULTIPLICAND, and generates a two UWtype
    word product in HIGH_PROD and LOW_PROD.
 
    2) __umulsidi3(a,b) multiplies two UWtype integers A and B, and returns a
 #define umul_ppmm(ph, pl, m0, m1) \
   do {                                                                 \
     UDItype __m0 = (m0), __m1 = (m1);                                  \
-    __asm__ ("umulh %r1,%2,%0"                                         \
-            : "=r" ((UDItype) ph)                                      \
-            : "%rJ" (__m0),                                            \
-              "rI" (__m1));                                            \
+    (ph) = __builtin_alpha_umulh (__m0, __m1);                         \
     (pl) = __m0 * __m1;                                                        \
   } while (0)
 #define UMUL_TIME 46
@@ -130,30 +129,27 @@ extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype);
 #define UDIV_TIME 220
 #endif /* LONGLONG_STANDALONE */
 #ifdef __alpha_cix__
-#define count_leading_zeros(COUNT,X) \
-  __asm__("ctlz %1,%0" : "=r"(COUNT) : "r"(X))
-#define count_trailing_zeros(COUNT,X) \
-  __asm__("cttz %1,%0" : "=r"(COUNT) : "r"(X))
+#define count_leading_zeros(COUNT,X)   ((COUNT) = __builtin_clzl (X))
+#define count_trailing_zeros(COUNT,X)  ((COUNT) = __builtin_ctzl (X))
 #define COUNT_LEADING_ZEROS_0 64
 #else
-extern const UQItype __clz_tab[];
 #define count_leading_zeros(COUNT,X) \
   do {                                                                 \
     UDItype __xr = (X), __t, __a;                                      \
-    __asm__("cmpbge $31,%1,%0" : "=r"(__t) : "r"(__xr));               \
+    __t = __builtin_alpha_cmpbge (0, __xr);                            \
     __a = __clz_tab[__t ^ 0xff] - 1;                                   \
-    __asm__("extbl %1,%2,%0" : "=r"(__t) : "r"(__xr), "r"(__a));       \
+    __t = __builtin_alpha_extbl (__xr, __a);                           \
     (COUNT) = 64 - (__clz_tab[__t] + __a*8);                           \
   } while (0)
 #define count_trailing_zeros(COUNT,X) \
   do {                                                                 \
     UDItype __xr = (X), __t, __a;                                      \
-    __asm__("cmpbge $31,%1,%0" : "=r"(__t) : "r"(__xr));               \
+    __t = __builtin_alpha_cmpbge (0, __xr);                            \
     __t = ~__t & -~__t;                                                        \
     __a = ((__t & 0xCC) != 0) * 2;                                     \
     __a += ((__t & 0xF0) != 0) * 4;                                    \
     __a += ((__t & 0xAA) != 0);                                                \
-    __asm__("extbl %1,%2,%0" : "=r"(__t) : "r"(__xr), "r"(__a));       \
+    __t = __builtin_alpha_extbl (__xr, __a);                           \
     __a <<= 3;                                                         \
     __t &= -__t;                                                       \
     __a += ((__t & 0xCC) != 0) * 2;                                    \
@@ -193,7 +189,7 @@ do {                                                                        \
 UDItype __umulsidi3 (USItype, USItype);
 #endif
 
-#if defined (__arm__) && W_TYPE_SIZE == 32
+#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
   __asm__ ("adds       %1, %4, %5\n\tadc       %0, %2, %3"             \
           : "=r" ((USItype) (sh)),                                     \
@@ -201,7 +197,7 @@ UDItype __umulsidi3 (USItype, USItype);
           : "%r" ((USItype) (ah)),                                     \
             "rI" ((USItype) (bh)),                                     \
             "%r" ((USItype) (al)),                                     \
-            "rI" ((USItype) (bl)))
+            "rI" ((USItype) (bl)) __CLOBBER_CC)
 #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
   __asm__ ("subs       %1, %4, %5\n\tsbc       %0, %2, %3"             \
           : "=r" ((USItype) (sh)),                                     \
@@ -209,7 +205,7 @@ UDItype __umulsidi3 (USItype, USItype);
           : "r" ((USItype) (ah)),                                      \
             "rI" ((USItype) (bh)),                                     \
             "r" ((USItype) (al)),                                      \
-            "rI" ((USItype) (bl)))
+            "rI" ((USItype) (bl)) __CLOBBER_CC)
 #define umul_ppmm(xh, xl, a, b) \
 {register USItype __t0, __t1, __t2;                                    \
   __asm__ ("%@ Inlined umul_ppmm\n"                                    \
@@ -229,7 +225,7 @@ UDItype __umulsidi3 (USItype, USItype);
             "=r" ((USItype) (xl)),                                     \
             "=&r" (__t0), "=&r" (__t1), "=r" (__t2)                    \
           : "r" ((USItype) (a)),                                       \
-            "r" ((USItype) (b)));}
+            "r" ((USItype) (b)) __CLOBBER_CC );}
 #define UMUL_TIME 20
 #define UDIV_TIME 100
 #endif /* __arm__ */
@@ -294,44 +290,27 @@ UDItype __umulsidi3 (USItype, USItype);
   } while (0)
 #endif
 
-#if (defined (__i370__) || defined (__mvs__)) && W_TYPE_SIZE == 32
-#define umul_ppmm(xh, xl, m0, m1) \
-  do {                                                                 \
-    union {UDItype __ll;                                               \
-          struct {USItype __h, __l;} __i;                              \
-         } __xx;                                                       \
-    USItype __m0 = (m0), __m1 = (m1);                                  \
-    __asm__ ("mr %0,%3"                                                        \
-            : "=r" (__xx.__i.__h),                                     \
-              "=r" (__xx.__i.__l)                                      \
-            : "%1" (__m0),                                             \
-              "r" (__m1));                                             \
-    (xh) = __xx.__i.__h; (xl) = __xx.__i.__l;                          \
-    (xh) += ((((SItype) __m0 >> 31) & __m1)                            \
-            + (((SItype) __m1 >> 31) & __m0));                         \
-  } while (0)
+#if (defined (__i370__) || defined (__s390__) || defined (__mvs__)) && W_TYPE_SIZE == 32
 #define smul_ppmm(xh, xl, m0, m1) \
   do {                                                                 \
     union {DItype __ll;                                                        \
           struct {USItype __h, __l;} __i;                              \
-         } __xx;                                                       \
-    __asm__ ("mr %0,%3"                                                        \
-            : "=r" (__xx.__i.__h),                                     \
-              "=r" (__xx.__i.__l)                                      \
-            : "%1" (m0),                                               \
-              "r" (m1));                                               \
-    (xh) = __xx.__i.__h; (xl) = __xx.__i.__l;                          \
+         } __x;                                                        \
+    __asm__ ("lr %N0,%1\n\tmr %0,%2"                                   \
+            : "=&r" (__x.__ll)                                         \
+            : "r" (m0), "r" (m1));                                     \
+    (xh) = __x.__i.__h; (xl) = __x.__i.__l;                            \
   } while (0)
 #define sdiv_qrnnd(q, r, n1, n0, d) \
   do {                                                                 \
     union {DItype __ll;                                                        \
           struct {USItype __h, __l;} __i;                              \
-         } __xx;                                                       \
-    __xx.__i.__h = n1; __xx.__i.__l = n0;                              \
+         } __x                                                       \
+    __x.__i.__h = n1; __x.__i.__l = n0;                                        \
     __asm__ ("dr %0,%2"                                                        \
-            : "=r" (__xx.__ll)                                         \
-            : "0" (__xx.__ll), "r" (d));                               \
-    (q) = __xx.__i.__l; (r) = __xx.__i.__h;                            \
+            : "=r" (__x.__ll)                                          \
+            : "0" (__x.__ll), "r" (d));                                \
+    (q) = __x.__i.__l; (r) = __x.__i.__h;                              \
   } while (0)
 #endif
 
@@ -438,11 +417,8 @@ UDItype __umulsidi3 (USItype, USItype);
             "1" ((USItype) (al)),                                      \
             "g" ((USItype) (bl)))
 
-/* The '020, '030, '040 and CPU32 have 32x32->64 and 64/32->32q-32r.  */
-#if defined (__mc68020__) || defined(mc68020) \
-       || defined(__mc68030__) || defined(mc68030) \
-       || defined(__mc68040__) || defined(mc68040) \
-       || defined(__mcpu32__) || defined(mcpu32)
+/* The '020, '030, '040, '060 and CPU32 have 32x32->64 and 64/32->32q-32r.  */
+#if (defined (__mc68020__) && !defined (__mc68060__))
 #define umul_ppmm(w1, w0, u, v) \
   __asm__ ("mulu%.l %3,%1:%0"                                          \
           : "=d" ((USItype) (w0)),                                     \
@@ -466,8 +442,43 @@ UDItype __umulsidi3 (USItype, USItype);
             "1" ((USItype) (n1)),                                      \
             "dmi" ((USItype) (d)))
 
-#else /* not mc68020 */
-#if !defined(__mcf5200__)
+#elif defined (__mcoldfire__) /* not mc68020 */
+
+#define umul_ppmm(xh, xl, a, b) \
+  __asm__ ("| Inlined umul_ppmm\n"                                     \
+          "    move%.l %2,%/d0\n"                                      \
+          "    move%.l %3,%/d1\n"                                      \
+          "    move%.l %/d0,%/d2\n"                                    \
+          "    swap    %/d0\n"                                         \
+          "    move%.l %/d1,%/d3\n"                                    \
+          "    swap    %/d1\n"                                         \
+          "    move%.w %/d2,%/d4\n"                                    \
+          "    mulu    %/d3,%/d4\n"                                    \
+          "    mulu    %/d1,%/d2\n"                                    \
+          "    mulu    %/d0,%/d3\n"                                    \
+          "    mulu    %/d0,%/d1\n"                                    \
+          "    move%.l %/d4,%/d0\n"                                    \
+          "    clr%.w  %/d0\n"                                         \
+          "    swap    %/d0\n"                                         \
+          "    add%.l  %/d0,%/d2\n"                                    \
+          "    add%.l  %/d3,%/d2\n"                                    \
+          "    jcc     1f\n"                                           \
+          "    add%.l  %#65536,%/d1\n"                                 \
+          "1:  swap    %/d2\n"                                         \
+          "    moveq   %#0,%/d0\n"                                     \
+          "    move%.w %/d2,%/d0\n"                                    \
+          "    move%.w %/d4,%/d2\n"                                    \
+          "    move%.l %/d2,%1\n"                                      \
+          "    add%.l  %/d1,%/d0\n"                                    \
+          "    move%.l %/d0,%0"                                        \
+          : "=g" ((USItype) (xh)),                                     \
+            "=g" ((USItype) (xl))                                      \
+          : "g" ((USItype) (a)),                                       \
+            "g" ((USItype) (b))                                        \
+          : "d0", "d1", "d2", "d3", "d4")
+#define UMUL_TIME 100
+#define UDIV_TIME 400
+#else /* not ColdFire */
 /* %/ inserts REGISTER_PREFIX, %# inserts IMMEDIATE_PREFIX.  */
 #define umul_ppmm(xh, xl, a, b) \
   __asm__ ("| Inlined umul_ppmm\n"                                     \
@@ -503,14 +514,12 @@ UDItype __umulsidi3 (USItype, USItype);
           : "d0", "d1", "d2", "d3", "d4")
 #define UMUL_TIME 100
 #define UDIV_TIME 400
-#endif /* not mcf5200 */
+
 #endif /* not mc68020 */
 
-/* The '020, '030, '040 and '060 have bitfield insns.  */
-#if defined (__mc68020__) || defined(mc68020) \
-       || defined(__mc68030__) || defined(mc68030) \
-       || defined(__mc68040__) || defined(mc68040) \
-       || defined(__mc68060__) || defined(mc68060)
+/* The '020, '030, '040 and '060 have bitfield insns.
+   cpu32 disguises as a 68020, but lacks them.  */
+#if defined (__mc68020__) && !defined (__mcpu32__)
 #define count_leading_zeros(count, x) \
   __asm__ ("bfffo %1{%b2:%b2},%0"                                      \
           : "=d" ((USItype) (count))                                   \
@@ -671,7 +680,7 @@ UDItype __umulsidi3 (USItype, USItype);
   __asm__ ("{cntlz|cntlzw} %0,%1" : "=r" (count) : "r" (x))
 #define COUNT_LEADING_ZEROS_0 32
 #if defined (_ARCH_PPC) || defined (__powerpc__) || defined (__POWERPC__) \
-  || defined (__ppc__) || defined (PPC) || defined (__vxworks__)
+  || defined (__ppc__) || defined (PPC)
 #define umul_ppmm(ph, pl, m0, m1) \
   do {                                                                 \
     USItype __m0 = (m0), __m1 = (m1);                                  \
@@ -1203,6 +1212,20 @@ UDItype __umulsidi3 (USItype, USItype);
   } while (0)
 #endif
 
+/* If we lack umul_ppmm but have smul_ppmm, define umul_ppmm in terms of
+   smul_ppmm.  */
+#if !defined (umul_ppmm) && defined (smul_ppmm)
+#define umul_ppmm(w1, w0, u, v)                                                \
+  do {                                                                 \
+    UWtype __w1;                                                       \
+    UWtype __xm0 = (u), __xm1 = (v);                                   \
+    smul_ppmm (__w1, w0, __xm0, __xm1);                                        \
+    (w1) = __w1 + (-(__xm0 >> (W_TYPE_SIZE - 1)) & __xm1)              \
+               + (-(__xm1 >> (W_TYPE_SIZE - 1)) & __xm0);              \
+  } while (0)
+#endif
+
+/* If we still don't have umul_ppmm, define it using plain C.  */
 #if !defined (umul_ppmm)
 #define umul_ppmm(w1, w0, u, v)                                                \
   do {                                                                 \
@@ -1292,7 +1315,6 @@ UDItype __umulsidi3 (USItype, USItype);
 #endif
 
 #if !defined (count_leading_zeros)
-extern const UQItype __clz_tab[];
 #define count_leading_zeros(count, x) \
   do {                                                                 \
     UWtype __xr = (x);                                                 \
similarity index 99%
rename from sysdeps/generic/lshift.c
rename to stdlib/lshift.c
index 0b58389658ee47eadec012c774dc18163fc80413..bedf44229fc8ae3f83482231aa166b9f37c874bd 100644 (file)
@@ -19,7 +19,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 
 /* Shift U (pointed to by UP and USIZE digits long) CNT bits to the left
similarity index 99%
rename from sysdeps/generic/mod_1.c
rename to stdlib/mod_1.c
index 90385d1e6a0acd7f5f38032ddd87736f266d45d6..3273c9222da2d3aa79f21993c5b5f986607da986 100644 (file)
@@ -22,7 +22,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 #include "longlong.h"
 
similarity index 98%
rename from sysdeps/generic/mp_clz_tab.c
rename to stdlib/mp_clz_tab.c
index 520ea319301a16629234eab9658e3c8d99748662..2220299e7c16a4a8f9c17ceb419b49d90e15b7a1 100644 (file)
@@ -19,7 +19,7 @@
    02111-1307 USA.  */
 
 #if 0
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 #endif
 
similarity index 98%
rename from sysdeps/generic/mpn2dbl.c
rename to stdlib/mpn2dbl.c
index ea1b7dc27f4f9f2777243444d2d95079b78ccba7..178edbf8166bf4372a798cb2eaeec451f1f4be36 100644 (file)
@@ -16,7 +16,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 #include <float.h>
 
similarity index 100%
rename from sysdeps/generic/mpn2flt.c
rename to stdlib/mpn2flt.c
similarity index 100%
rename from sysdeps/generic/mpn2ldbl.c
rename to stdlib/mpn2ldbl.c
similarity index 99%
rename from sysdeps/generic/mul.c
rename to stdlib/mul.c
index 7678e72a0ac2d5a59667c03c6658986b1b4d98d4..fe0cbf3d7f56eb94a6889bd3ed8c900c26e57198 100644 (file)
@@ -19,7 +19,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 
 /* Multiply the natural numbers u (pointed to by UP, with USIZE limbs)
similarity index 99%
rename from sysdeps/generic/mul_1.c
rename to stdlib/mul_1.c
index 1c36b5fb1f069676d5aaa1c0da1c1a6758c798ff..686e6c5efe18509d1576cfa68d2323ce0f3cfba9 100644 (file)
@@ -20,7 +20,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 #include "longlong.h"
 
similarity index 99%
rename from sysdeps/generic/mul_n.c
rename to stdlib/mul_n.c
index 2120cd4f59c9831bc2775da3e2de060cc79715fa..b478c76aba7947d8c4319084270a531c09c52088 100644 (file)
@@ -19,7 +19,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 
 /* Multiply the natural numbers u (pointed to by UP) and v (pointed to by VP),
index d98fbb3a86b3fe8fd8e0d25c4e1e575896745f52..e777604084a3a343f5cd79d94e494c88b9b23dfe 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -18,6 +18,8 @@
 
 #include <stdlib.h>
 #include "exit.h"
+#include <atomic.h>
+#include <sysdep.h>
 
 /* Register a function to be called by exit.  */
 int
@@ -28,9 +30,13 @@ __on_exit (void (*func) (int status, void *arg), void *arg)
   if (new == NULL)
     return -1;
 
-  new->flavor = ef_on;
+#ifdef PTR_MANGLE
+  PTR_MANGLE (func);
+#endif
   new->func.on.fn = func;
   new->func.on.arg = arg;
+  atomic_write_barrier ();
+  new->flavor = ef_on;
   return 0;
 }
 weak_alias (__on_exit, on_exit)
similarity index 100%
rename from sysdeps/generic/putenv.c
rename to stdlib/putenv.c
similarity index 99%
rename from sysdeps/generic/rshift.c
rename to stdlib/rshift.c
index 59caf73529953652e3e029ca8dfac5ed00dddfb2..9d0a9c4c0ef9048639062e584a2c558bedb912e3 100644 (file)
@@ -19,7 +19,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 
 /* Shift U (pointed to by UP and USIZE limbs long) CNT bits to the right
similarity index 100%
rename from sysdeps/generic/setenv.c
rename to stdlib/setenv.c
index 3a1c1ebd4b6a3e6396ec95cb7da34ed2b46d6c0a..c7901c29fee0e48984cdb90a843816bc669c33f0 100644 (file)
@@ -68,8 +68,8 @@ extern unsigned long long int ____strtoull_l_internal (const char *, char **,
    and _LONG_LONG_LIMB in it can take effect into gmp.h.  */
 #include <gmp-mparam.h>
 #include <gmp.h>
-#include <gmp-impl.h>
-#include <longlong.h>
+#include "gmp-impl.h"
+#include "longlong.h"
 #include "fpioconst.h"
 
 #define NDEBUG 1
similarity index 100%
rename from sysdeps/generic/strtol.c
rename to stdlib/strtol.c
similarity index 100%
rename from sysdeps/generic/strtol_l.c
rename to stdlib/strtol_l.c
similarity index 100%
rename from sysdeps/generic/strtoll.c
rename to stdlib/strtoll.c
similarity index 100%
rename from sysdeps/generic/strtoul.c
rename to stdlib/strtoul.c
similarity index 100%
rename from sysdeps/generic/strtoull.c
rename to stdlib/strtoull.c
similarity index 99%
rename from sysdeps/generic/sub_n.c
rename to stdlib/sub_n.c
index 4f2f06099c8ae728aab70ecf6184c1a51f278058..987ad91eb1734d84c9a31777edf35e6bffd66dc6 100644 (file)
@@ -19,7 +19,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 
 mp_limb_t
similarity index 95%
rename from sysdeps/generic/submul_1.c
rename to stdlib/submul_1.c
index c7c08ee4af8b31fd411be6456567a695a0b5637c..3e7163a2a3bc606a3bf347c625fa3d3cb3ece066 100644 (file)
@@ -3,7 +3,7 @@
    from the limb vector pointed to by RES_PTR.  Return the most significant
    limb of the product, adjusted for carry-out from the subtraction.
 
-Copyright (C) 1992, 1993, 1994, 1996 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1996, 2005 Free Software Foundation, Inc.
 
 This file is part of the GNU MP Library.
 
@@ -22,7 +22,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 MA 02111-1307, USA. */
 
-#include "gmp.h"
+#include <gmp.h>
 #include "gmp-impl.h"
 #include "longlong.h"
 
similarity index 100%
rename from sysdeps/generic/system.c
rename to stdlib/system.c
similarity index 100%
rename from sysdeps/generic/fattach.c
rename to streams/fattach.c
similarity index 100%
rename from sysdeps/generic/fdetach.c
rename to streams/fdetach.c
similarity index 100%
rename from sysdeps/generic/getmsg.c
rename to streams/getmsg.c
similarity index 100%
rename from sysdeps/generic/getpmsg.c
rename to streams/getpmsg.c
similarity index 100%
rename from sysdeps/generic/putmsg.c
rename to streams/putmsg.c
similarity index 100%
rename from sysdeps/generic/putpmsg.c
rename to streams/putpmsg.c
similarity index 100%
rename from sysdeps/generic/bcopy.c
rename to string/bcopy.c
similarity index 100%
rename from sysdeps/generic/bzero.c
rename to string/bzero.c
similarity index 100%
rename from sysdeps/generic/ffs.c
rename to string/ffs.c
similarity index 100%
rename from sysdeps/generic/ffsll.c
rename to string/ffsll.c
similarity index 100%
rename from sysdeps/generic/memccpy.c
rename to string/memccpy.c
similarity index 100%
rename from sysdeps/generic/memchr.c
rename to string/memchr.c
similarity index 100%
rename from sysdeps/generic/memcmp.c
rename to string/memcmp.c
similarity index 100%
rename from sysdeps/generic/memcpy.c
rename to string/memcpy.c
similarity index 100%
rename from sysdeps/generic/memmem.c
rename to string/memmem.c
similarity index 100%
rename from sysdeps/generic/memmove.c
rename to string/memmove.c
similarity index 100%
rename from sysdeps/generic/mempcpy.c
rename to string/mempcpy.c
similarity index 100%
rename from sysdeps/generic/memrchr.c
rename to string/memrchr.c
similarity index 100%
rename from sysdeps/generic/memset.c
rename to string/memset.c
similarity index 100%
rename from sysdeps/generic/stpcpy.c
rename to string/stpcpy.c
similarity index 100%
rename from sysdeps/generic/stpncpy.c
rename to string/stpncpy.c
similarity index 90%
rename from sysdeps/generic/strcasecmp_l.c
rename to string/strcasecmp_l.c
index 1cd3fe14c5bdd78f78f9db38b268c7dd96de0108..498a27d975b36cbd4c5398204311d380b80f5aae 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,7 @@
    02111-1307 USA.  */
 
 #define USE_IN_EXTENDED_LOCALE_MODEL   1
-#include <sysdeps/generic/strcasecmp.c>
+#include "strcasecmp.c"
 
 libc_hidden_def (__strcasecmp_l)
 weak_alias (__strcasecmp_l, strcasecmp_l)
similarity index 100%
rename from sysdeps/generic/strcat.c
rename to string/strcat.c
similarity index 100%
rename from sysdeps/generic/strchr.c
rename to string/strchr.c
similarity index 100%
rename from sysdeps/generic/strcmp.c
rename to string/strcmp.c
similarity index 100%
rename from sysdeps/generic/strcpy.c
rename to string/strcpy.c
similarity index 100%
rename from sysdeps/generic/strcspn.c
rename to string/strcspn.c
similarity index 100%
rename from sysdeps/generic/strlen.c
rename to string/strlen.c
similarity index 100%
rename from sysdeps/generic/strncase.c
rename to string/strncase.c
similarity index 91%
rename from sysdeps/generic/strncase_l.c
rename to string/strncase_l.c
index 0e61ebec7d24247f499f91d9419c576331acaae0..0f22b46de1dde2a3490b4da1a38081d42fd02bd0 100644 (file)
@@ -1,6 +1,6 @@
 /* Compare at most N characters of two strings without taking care for
    the case using given locale.
-   Copyright (C) 1997, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -19,7 +19,7 @@
    02111-1307 USA.  */
 
 #define USE_IN_EXTENDED_LOCALE_MODEL   1
-#include <sysdeps/generic/strncase.c>
+#include "strncase.c"
 
 libc_hidden_def (__strncasecmp_l)
 weak_alias (__strncasecmp_l, strncasecmp_l)
similarity index 100%
rename from sysdeps/generic/strncat.c
rename to string/strncat.c
similarity index 100%
rename from sysdeps/generic/strncmp.c
rename to string/strncmp.c
similarity index 100%
rename from sysdeps/generic/strncpy.c
rename to string/strncpy.c
similarity index 100%
rename from sysdeps/generic/strnlen.c
rename to string/strnlen.c
similarity index 100%
rename from sysdeps/generic/strpbrk.c
rename to string/strpbrk.c
similarity index 100%
rename from sysdeps/generic/strrchr.c
rename to string/strrchr.c
similarity index 100%
rename from sysdeps/generic/strsep.c
rename to string/strsep.c
similarity index 100%
rename from sysdeps/generic/strspn.c
rename to string/strspn.c
similarity index 100%
rename from sysdeps/generic/strstr.c
rename to string/strstr.c
similarity index 100%
rename from sysdeps/generic/strtok.c
rename to string/strtok.c
similarity index 100%
rename from sysdeps/generic/strtok_r.c
rename to string/strtok_r.c
similarity index 100%
rename from sysdeps/generic/wordcopy.c
rename to string/wordcopy.c
index 7fe96ca765f4ada2df7d32841981caad38ef15db..dbd12e5aad6127176a03c8d9eda8e255b5153c36 100644 (file)
@@ -174,7 +174,7 @@ authdes_pk_create (const char *servername, netobj *pkey, u_int window,
       if (key_gendes (&auth->ah_key) < 0)
        {
          debug ("authdes_create: unable to gen conversation key");
-         return NULL;
+         goto failed;
        }
     }
   else
index f58d3b2a8b22bcc3c7f3c406a49515ceb020caf1..023ae1723bc86c7d0a39ebc3b9bf2102fe19324d 100644 (file)
@@ -74,14 +74,13 @@ bindresvport (int sd, struct sockaddr_in *sin)
   int res = -1;
 
   int nports = ENDPORT - startport + 1;
+  int endport = ENDPORT;
  again:
   for (i = 0; i < nports; ++i)
     {
       sin->sin_port = htons (port++);
-      if (port > ENDPORT)
-       {
-         port = startport;
-       }
+      if (port > endport)
+       port = startport;
       res = __bind (sd, sin, sizeof (struct sockaddr_in));
       if (res >= 0 || errno != EADDRINUSE)
        break;
@@ -90,7 +89,9 @@ bindresvport (int sd, struct sockaddr_in *sin)
   if (i == nports && startport != LOWPORT)
     {
       startport = LOWPORT;
+      endport = STARTPORT - 1;
       nports = STARTPORT - LOWPORT;
+      port = LOWPORT + port % (STARTPORT - LOWPORT);
       goto again;
     }
 
index 4e2832ff56502741ee699b975d28b1d8a926ca35..08d96012123b7a4274f0d0aa9188d6acfb403acc 100644 (file)
 /*
  * From: @(#)rpc_clntout.c 1.11 89/02/22 (C) 1987 SMI
  */
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char clntout_rcsid[] =
-  "$Id$";
-#endif
 
 /*
  * rpc_clntout.c, Client-stub outputter for the RPC protocol compiler
index a803feb65a7f39bfa4cfdde0165747e0ac6e55c2..dfc57fd277b8b61de4e55df466e3de190a6a7aae 100644 (file)
 /*
  * From: @(#)rpc_cout.c 1.13 89/02/22 (C) 1987 SMI
  */
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char cout_rcsid[] =
-"$Id$";
-#endif
 
 /*
  * rpc_cout.c, XDR routine outputter for the RPC protocol compiler
index 38cb4195274334f0428972d98c870c4a285008a5..270d149a6ef2739b6aa4148f4bfcde1a5ff2cbdd 100644 (file)
 /*
  * From: @(#)rpc_hout.c 1.12 89/02/22 (C) 1987 SMI
  */
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char hout_rcsid[] =
-  "$Id$";
-#endif
 
 /*
  * rpc_hout.c, Header file outputter for the RPC protocol compiler
index acc0132603a8b809192440f785f65f44d9443320..2679720a7f71124e164ebb91a71c62ef80994f47 100644 (file)
 /*
  * From @(#)rpc_main.c 1.30 89/03/30 (C) 1987 SMI;
  */
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char main_rcsid[] =
-  "$Id$";
-#endif
 
 /*
  * rpc_main.c, Top level of the RPC protocol compiler.
index 7115cbdd0830f9d06555ab72f03d283c2eecf9f0..2a29878d6aefb8dc25eb34c2670abe6166ceccd4 100644 (file)
 /*
  * From: @(#)rpc_parse.c 1.8 89/02/22 (C) 1987 SMI
  */
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char parse_rcsid[] =
-  "$Id$";
-#endif
 
 /*
  * rpc_parse.c, Parser for the RPC protocol compiler
index 50c3d5554ba32fcfebb9fc10cb5e714cd4de994b..00b58d5bc2ae0bd9dd761573e86b6653f8a9196c 100644 (file)
 /*
  * From: @(#)rpc_sample.c  1.1  90/08/30  (C) 1987 SMI
  */
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char sample_rcsid[] =
-  "$Id$";
-#endif
 
 /*
  * rpc_sample.c, Sample client-server code outputter for the RPC protocol compiler
index d6211e91053725dc5d745c3ebd08835fcbd9ea8d..42ab2bae8b1e96b69ad84580b6ab461d0d078112 100644 (file)
 /*
  * From: @(#)rpc_scan.c 1.11 89/02/22 (C) 1987 SMI
  */
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char scan_rcsid[] =
-  "$Id$";
-#endif
 
 /*
  * rpc_scan.c, Scanner for the RPC protocol compiler
index 9a807c409632bdf617817467714258703af3cdef..6774cc8c0fa50bba53cf8195d7e30919eabbbcad 100644 (file)
 /*
  * From: @(#)rpc_svcout.c 1.29 89/03/30 (C) 1987 SMI
  */
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char svcout_rcsid[] =
-  "$Id$";
-#endif
 
 /*
  * rpc_svcout.c, Server-skeleton outputter for the RPC protocol compiler
index bf4037fc37e33f810123c26d944d8e610a69e059..8fd2b1267d0eecee193fcd95fe659506ec5c5837 100644 (file)
 /*
  * From: @(#)rpc_tblout.c 1.4 89/02/22 (C) 1988 SMI
  */
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char tblout_rcsid[] =
-  "$Id$";
-#endif
 
 /*
  * rpc_tblout.c, Dispatch table outputter for the RPC protocol compiler
index 31e1d3143c19e9235018f12e0af58bc9a02d557e..b910401a313cfa0a842ca785381815363c7ad7de 100644 (file)
 /*
  * From: @(#)rpc_util.c 1.11 89/02/22 (C) 1987 SMI
  */
-#if defined(LIBC_SCCS) && !defined(lint)
-static const char util_rcsid[] =
-  "$Id$";
-#endif
 
 /*
  * rpc_util.c, Utility routines for the RPC protocol compiler
index 20e67f4ac96f387ab9232f00bab38e163b277205..46dca5aeb8ae5974bceca296836be37745b108a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Return arc cosine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_cacosf (_Complex float x);
 
-#include <sysdeps/generic/s_cacosf.c>
+#include <math/s_cacosf.c>
 #include "cfloat-compat.h"
 
 #undef __cacosf
index 86cb4fbcaa44384ef2957933f75d699f68488b88..6b61d1ddaa05dfae106c839ec4df39e903b672ab 100644 (file)
@@ -1,5 +1,5 @@
 /* Return arc hyperbole cosine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_cacoshf (_Complex float x);
 
-#include <sysdeps/generic/s_cacoshf.c>
+#include <math/s_cacoshf.c>
 #include "cfloat-compat.h"
 
 #undef __cacoshf
index 3d0d4eadf2d624589782286cb582b49f13a6c0ff..fd41042ec989a369853b81445fcb3cc3b2ee0309 100644 (file)
@@ -1,5 +1,5 @@
 /* Return arc sine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_casinf (_Complex float x);
 
-#include <sysdeps/generic/s_casinf.c>
+#include <math/s_casinf.c>
 #include "cfloat-compat.h"
 
 #undef __casinf
index 698ce10c04a8e1faa007e5989b39f9c630fb3df1..0b72a24d5a985264f90422cf7eb7290a4e76b15e 100644 (file)
@@ -1,5 +1,5 @@
 /* Return arc hyperbole sine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_casinhf (_Complex float x);
 
-#include <sysdeps/generic/s_casinhf.c>
+#include <math/s_casinhf.c>
 #include "cfloat-compat.h"
 
 #undef __casinhf
index 221a461c1b0dd93c3fe2950b5f0f324752862d13..8f40616617ad1c0e72d28ffc350cd9e042ac3626 100644 (file)
@@ -1,5 +1,5 @@
 /* Return arc tangent of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_catanf (_Complex float x);
 
-#include <sysdeps/generic/s_catanf.c>
+#include <math/s_catanf.c>
 #include "cfloat-compat.h"
 
 #undef __catanf
index 7465a43cac2d1665de6280dfd5468fb3aace92a4..ac11945727ea52d8b5a7314db1b77b478d81fc0b 100644 (file)
@@ -1,5 +1,5 @@
 /* Return arc hyperbole tangent of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_catanhf (_Complex float x);
 
-#include <sysdeps/generic/s_catanhf.c>
+#include <math/s_catanhf.c>
 #include "cfloat-compat.h"
 
 #undef __catanhf
index fd775903f0a2e5d99f0b5a51cb0d0252075bb455..04036f461320500a69094ca78b6fa5d1730d4f1d 100644 (file)
@@ -1,5 +1,5 @@
 /* Return cosine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_ccosf (_Complex float x);
 
-#include <sysdeps/generic/s_ccosf.c>
+#include <math/s_ccosf.c>
 #include "cfloat-compat.h"
 
 #undef __ccosf
index 0e8eab288f8c0cde9311b13e6a4d3c33bd09bdad..e9fb34ce47879d72045be00e8dba173011b0aa75 100644 (file)
@@ -1,5 +1,5 @@
 /* Return hyperbole cosine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_ccoshf (_Complex float x);
 
-#include <sysdeps/generic/s_ccoshf.c>
+#include <math/s_ccoshf.c>
 #include "cfloat-compat.h"
 
 #undef __ccoshf
index 2cf6db4b5591376246c655a7ad755e6a4a5e0918..4a28dcd9bf1d98a7306b36802fa5350ab1ee65f3 100644 (file)
@@ -1,5 +1,5 @@
 /* Return exponent of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_cexpf (_Complex float x);
 
-#include <sysdeps/generic/s_cexpf.c>
+#include <math/s_cexpf.c>
 #include "cfloat-compat.h"
 
 #undef __cexpf
index 12ecdea9573be6090618cf59a4576d7f17af5d89..e7dc7bb23f5f716cde6e075c443e6a3a86a99942 100644 (file)
@@ -1,5 +1,5 @@
 /* Return base 10 logarithm of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_clog10f (_Complex float x);
 
-#include <sysdeps/generic/s_clog10f.c>
+#include <math/s_clog10f.c>
 #include "cfloat-compat.h"
 
 #undef __clog10f
index 9eefe9fa308d624175fa3a1798bc3365d84b5904..364dcec8835ae36b9c76e5b3f97c7a5acc194808 100644 (file)
@@ -1,5 +1,5 @@
 /* Return natural logarithm of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_clogf (_Complex float x);
 
-#include <sysdeps/generic/s_clogf.c>
+#include <math/s_clogf.c>
 #include "cfloat-compat.h"
 
 #undef __clogf
index f4cb3547f68430472ce55c25c934580dd7a39d03..cc61b1895e0598af70f6a81ec0975ab6d393e9e7 100644 (file)
@@ -1,5 +1,5 @@
 /* Return power of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_cpowf (_Complex float x, _Complex float c);
 
-#include <sysdeps/generic/s_cpowf.c>
+#include <math/s_cpowf.c>
 #include "cfloat-compat.h"
 
 #undef __cpowf
index eac8687707efa671bbd8fb35521db536fbe1924f..5cfb526679c101cc8400ba88f3785e4c696ec0d8 100644 (file)
@@ -1,5 +1,5 @@
 /* Return projection of complex float value to Riemann sphere.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_cprojf (_Complex float x);
 
-#include <sysdeps/generic/s_cprojf.c>
+#include <math/s_cprojf.c>
 #include "cfloat-compat.h"
 
 #undef __cprojf
index eba70e9930aab2d4c96854d51225ab2d98c64b6b..8eb9a1019d8673b48252aa4a34d3b2310de4cc64 100644 (file)
@@ -1,5 +1,5 @@
 /* Return sine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_csinf (_Complex float x);
 
-#include <sysdeps/generic/s_csinf.c>
+#include <math/s_csinf.c>
 #include "cfloat-compat.h"
 
 #undef __csinf
index 9db81a81e4d51093eb9fd417e790798abf80289e..0e2c1867401fe5a1fbc59138ae5db23368c8372c 100644 (file)
@@ -1,5 +1,5 @@
 /* Return hyperbole sine of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_csinhf (_Complex float x);
 
-#include <sysdeps/generic/s_csinhf.c>
+#include <math/s_csinhf.c>
 #include "cfloat-compat.h"
 
 #undef __csinhf
index cc4a8e024586975efd369287a24323cdf214e52c..ebf23a828e7169864c8b92912b8a1b7a6324deac 100644 (file)
@@ -1,5 +1,5 @@
 /* Return square root of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_csqrtf (_Complex float x);
 
-#include <sysdeps/generic/s_csqrtf.c>
+#include <math/s_csqrtf.c>
 #include "cfloat-compat.h"
 
 #undef __csqrtf
index 843ee53717d5f3725a136528f5faf65d85b44a97..e26db963e40b5fc23ed9499ba4475bdf137b1616 100644 (file)
@@ -1,5 +1,5 @@
 /* Return tangent of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_ctanf (_Complex float x);
 
-#include <sysdeps/generic/s_ctanf.c>
+#include <math/s_ctanf.c>
 #include "cfloat-compat.h"
 
 #undef __ctanf
index f1f74ab12d80c0d600dea44e3a5efdd03e12511e..5d047bd4606508c54878a18c7201dd9f442f71dd 100644 (file)
@@ -1,5 +1,5 @@
 /* Return hyperbole tangent of complex float value.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@
 
 static _Complex float internal_ctanhf (_Complex float x);
 
-#include <sysdeps/generic/s_ctanhf.c>
+#include <math/s_ctanhf.c>
 #include "cfloat-compat.h"
 
 #undef __ctanhf
index a3b68e928f3a08f37f66bb2c4053ea844a64b067..24629e9aca3efe2f4f4b9fde9a558933f52948e8 100644 (file)
@@ -1,5 +1,5 @@
 /* Thread-local storage handling in the ELF dynamic linker.  Alpha version.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <sysdeps/generic/libc-tls.c>
+#include <csu/libc-tls.c>
 #include <dl-tls.h>
 
 #if USE_TLS
index e2b4ebf857f856b67e6a76f362966656dfa386e5..ff199eb743a3acd3b5c2a7dd6061b37eb886606f 100644 (file)
@@ -61,8 +61,10 @@ $aligned:
        ornot   t0, t3, t0      # .. e1 :
        cmpbge  zero, t1, t7    # e0    : bits set iff null found
        beq     a2, $eoc        # .. e1 : check end of count
-       subq    a2, 1, a2       # e0    :
+       unop                    # e0    :
        bne     t7, $eos        # .. e1 :
+       unop                    # e0    :
+       beq     t10, $ant_loop  # .. e1 :
 
        /* Aligned compare main loop.
           On entry to this basic block:
@@ -74,13 +76,30 @@ $a_loop:
        bne     t2, $wordcmp    # .. e1 (zdb)
        ldq_u   t1, 8(a1)       # e0    :
        ldq_u   t0, 8(a0)       # .. e1 :
+       subq    a2, 1, a2       # e0    :
+       addq    a1, 8, a1       # .. e1 :
+       addq    a0, 8, a0       # e0    :
+       beq     a2, $eoc        # .. e1 :
+       cmpbge  zero, t1, t7    # e0    :
+       beq     t7, $a_loop     # .. e1 :
+       unop                    # e0    :
+       br      $eos            # .. e1 :
+
+       /* Alternate aligned compare loop, for when there's no trailing
+          bytes on the count.  We have to avoid reading too much data.  */
+$ant_loop:
+       xor     t0, t1, t2      # e0    :
+       bne     t2, $wordcmp    # .. e1 (zdb)
+       subq    a2, 1, a2       # e0    :
+       beq     a2, $zerolength # .. e1 :
+       ldq_u   t1, 8(a1)       # e0    :
+       ldq_u   t0, 8(a0)       # .. e1 :
        addq    a1, 8, a1       # e0    :
        addq    a0, 8, a0       # .. e1 :
        cmpbge  zero, t1, t7    # e0    :
-       beq     a2, $eoc        # .. e1 :
-       subq    a2, 1, a2       # e0    :
-       beq     t7, $a_loop     # .. e1 :
-       br      $eos            # e1    :
+       beq     t7, $ant_loop   # .. e1 :
+       unop                    # e0    :
+       br      $eos            # .. e1 :
 
        /* The two strings are not co-aligned.  Align s1 and cope.  */
 $unaligned:
@@ -184,6 +203,8 @@ $u_final:
 $eoc:
        mskql   t0, t10, t0
        mskql   t1, t10, t1
+       unop
+       cmpbge  zero, t1, t7
 
        /* We've found a zero somewhere in a word we just read.
           On entry to this basic block:
@@ -203,6 +224,7 @@ $eos:
 
        /* Here we have two differing co-aligned words in t0 & t1.
           Bytewise compare them and return (t0 > t1 ? 1 : -1).  */
+       .align 3
 $wordcmp:
        cmpbge  t0, t1, t2      # e0    : comparison yields bit mask of ge
        cmpbge  t1, t0, t3      # .. e1 :
@@ -216,6 +238,7 @@ $wordcmp:
 $done:
        ret                     # e1    :
 
+       .align 3
 $zerolength:
        clr     v0
        ret
index 549b616fb5047f851da5ca1e721a30dec78d64d0..e93e7b30b13de7047ce732a317f4d51102a64169 100644 (file)
@@ -1,6 +1,3 @@
-signame.c
-signame.h
-det_endian.c
 dl-brk.c
 dl-sbrk.c
 entry.h
index d741864b9c3056c9167fa14c4be842d05fac5baa..972d46973795120df2ede84ac5ff28c064f7e622 100644 (file)
@@ -1,4 +1,5 @@
-# Copyright (C) 1992,93,94,95,96,97,99,2002 Free Software Foundation, Inc.
+# Copyright (C) 1992,93,94,95,96,97,99,2002,2005
+#      Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
 # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 # 02111-1307 USA.
 
-ifeq (,$(filter-out $(sysdep_dir)/generic/bits $(common-objpfx)/bits,\
-       $(dir $(firstword $(wildcard $(+sysdep_dirs:%=%/bits/endian.h))))))
-
-$(common-objpfx)bytesex.h: $(common-objpfx)det_endian
-       $(dir $<)$(notdir $<) > $@-tmp
-       mv $@-tmp $@
-
-$(common-objpfx)det_endian: $(sysdep_dir)/generic/det_endian.c
-       $(common-objdir-compile)
-
-before-compile := $(before-compile) $(common-objpfx)bits/endian.h
-common-generated := $(common-generated) bits/endian.h det_endian
-
-endif
-\f
 ifeq ($(subdir),string)
 CFLAGS-wordcopy.c += -Wno-uninitialized
 endif
diff --git a/sysdeps/generic/configure b/sysdeps/generic/configure
deleted file mode 100755 (executable)
index 47f9ec0..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
-
-if test -z "$inhibit_glue"; then
-# For signame.c, used in make_siglist.
-
-
-for ac_func in psignal
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-fi
diff --git a/sysdeps/generic/configure.in b/sysdeps/generic/configure.in
deleted file mode 100644 (file)
index 393bc30..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-
-if test -z "$inhibit_glue"; then
-# For signame.c, used in make_siglist.
-AC_CHECK_FUNCS(psignal)
-fi
index 800bda2dc01b2f5329be37b02211e48f14311399..9fca4c00e017642d16de97c9a2e94121145b9038 100644 (file)
@@ -1,26 +1,26 @@
 /* Declarations and definitions of codes relating to the DWARF2 symbolic
    debugging information format.
-   Copyright (C) 1992, 1993, 1995, 1996, 1997, 2000 
-   Free Software Foundation, Inc.
+   Copyright (C) 1992, 1993, 1995, 1996, 1997, 2000
+       Free Software Foundation, Inc.
    Contributed by Gary Funck (gary@intrepid.com).  Derived from the
    DWARF 1 implementation written by Ron Guilmette (rfg@monkeys.com).
 
-This file is part of GNU CC.
+   This file is part of the GNU C Library.
 
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /* This file is derived from the DWARF specification (a public document)
    Revision 2.0.0 (July 27, 1993) developed by the UNIX International
@@ -508,7 +508,7 @@ enum dwarf_call_frame_info
 
     /* SGI/MIPS specific */
     DW_CFA_MIPS_advance_loc8 = 0x1d,
-    
+
     /* GNU extensions */
     DW_CFA_GNU_window_save = 0x2d,
     DW_CFA_GNU_args_size = 0x2e,
index b8333ed79c38d10fff39767c975cc0981a023ea7..b5f7c3cae57334406822190ec00912dce8a1fea8 100644 (file)
@@ -508,7 +508,6 @@ struct rtld_global
     struct dtv_slotinfo
     {
       size_t gen;
-      bool is_static;
       struct link_map *map;
     } slotinfo[0];
   } *_dl_tls_dtv_slotinfo_list;
@@ -624,6 +623,9 @@ struct rtld_global_ro
   /* Expected cache ID.  */
   EXTERN int _dl_correct_cache_id;
 
+  /* 0 if internal pointer values should not be guarded, 1 if they should.  */
+  EXTERN int _dl_pointer_guard;
+
   /* Mask for hardware capabilities that are available.  */
   EXTERN uint64_t _dl_hwcap;
 
diff --git a/sysdeps/generic/lio_listio64.c b/sysdeps/generic/lio_listio64.c
deleted file mode 100644 (file)
index 2e72c46..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define BE_AIO64
-#include "lio_listio.c"
diff --git a/sysdeps/generic/signame.c b/sysdeps/generic/signame.c
deleted file mode 100644 (file)
index 6085532..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-/* Convert between signal names and numbers.
-   Copyright (C) 1990, 92, 93, 95, 96, 97 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>         /* Some systems need this for <signal.h>.  */
-#include <signal.h>
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-/* Some systems declare `sys_siglist in <unistd.h>; if
-   configure defined SYS_SIGLIST_DECLARED, it may expect
-   to find the declaration there.  */
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-
-/* Some systems do not define NSIG in <signal.h>.  */
-#ifndef        NSIG
-#ifdef _NSIG
-#define        NSIG    _NSIG
-#else
-#define        NSIG    32
-#endif
-#endif
-
-#if !__STDC__
-#define const
-#endif
-
-#include "signame.h"
-
-#ifndef HAVE_SYS_SIGLIST
-/* There is too much variation in Sys V signal numbers and names, so
-   we must initialize them at runtime.  */
-
-static const char undoc[] = "unknown signal";
-
-const char *sys_siglist[NSIG];
-
-#else  /* HAVE_SYS_SIGLIST.  */
-
-#ifndef SYS_SIGLIST_DECLARED
-extern char *sys_siglist[];
-#endif /* Not SYS_SIGLIST_DECLARED.  */
-
-#endif /* Not HAVE_SYS_SIGLIST.  */
-
-/* Table of abbreviations for signals.  Note:  A given number can
-   appear more than once with different abbreviations.  */
-typedef struct
-  {
-    int number;
-    const char *abbrev;
-  } num_abbrev;
-static num_abbrev sig_table[NSIG*2];
-/* Number of elements of sig_table used.  */
-static int sig_table_nelts = 0;
-
-/* Enter signal number NUMBER into the tables with ABBREV and NAME.  */
-
-static void
-init_sig (number, abbrev, name)
-     int number;
-     const char *abbrev;
-     const char *name;
-{
-#ifndef HAVE_SYS_SIGLIST
-  sys_siglist[number] = name;
-#endif
-  sig_table[sig_table_nelts].number = number;
-  sig_table[sig_table_nelts++].abbrev = abbrev;
-}
-
-void
-signame_init ()
-{
-#ifndef HAVE_SYS_SIGLIST
-  int i;
-  /* Initialize signal names.  */
-  for (i = 0; i < NSIG; i++)
-    sys_siglist[i] = undoc;
-#endif /* !HAVE_SYS_SIGLIST */
-
-  /* Initialize signal names.  */
-#if defined (SIGHUP)
-  init_sig (SIGHUP, "HUP", "Hangup");
-#endif
-#if defined (SIGINT)
-  init_sig (SIGINT, "INT", "Interrupt");
-#endif
-#if defined (SIGQUIT)
-  init_sig (SIGQUIT, "QUIT", "Quit");
-#endif
-#if defined (SIGILL)
-  init_sig (SIGILL, "ILL", "Illegal Instruction");
-#endif
-#if defined (SIGTRAP)
-  init_sig (SIGTRAP, "TRAP", "Trace/breakpoint trap");
-#endif
-  /* If SIGIOT == SIGABRT, we want to print it as SIGABRT because
-     SIGABRT is in ANSI and POSIX.1 and SIGIOT isn't.  */
-#if defined (SIGABRT)
-  init_sig (SIGABRT, "ABRT", "Aborted");
-#endif
-#if defined (SIGIOT)
-  init_sig (SIGIOT, "IOT", "IOT trap");
-#endif
-#if defined (SIGEMT)
-  init_sig (SIGEMT, "EMT", "EMT trap");
-#endif
-#if defined (SIGFPE)
-  init_sig (SIGFPE, "FPE", "Floating point exception");
-#endif
-#if defined (SIGKILL)
-  init_sig (SIGKILL, "KILL", "Killed");
-#endif
-#if defined (SIGBUS)
-  init_sig (SIGBUS, "BUS", "Bus error");
-#endif
-#if defined (SIGSEGV)
-  init_sig (SIGSEGV, "SEGV", "Segmentation fault");
-#endif
-#if defined (SIGSYS)
-  init_sig (SIGSYS, "SYS", "Bad system call");
-#endif
-#if defined (SIGPIPE)
-  init_sig (SIGPIPE, "PIPE", "Broken pipe");
-#endif
-#if defined (SIGALRM)
-  init_sig (SIGALRM, "ALRM", "Alarm clock");
-#endif
-#if defined (SIGTERM)
-  init_sig (SIGTERM, "TERM", "Terminated");
-#endif
-#if defined (SIGUSR1)
-  init_sig (SIGUSR1, "USR1", "User defined signal 1");
-#endif
-#if defined (SIGUSR2)
-  init_sig (SIGUSR2, "USR2", "User defined signal 2");
-#endif
-  /* If SIGCLD == SIGCHLD, we want to print it as SIGCHLD because that
-     is what is in POSIX.1.  */
-#if defined (SIGCHLD)
-  init_sig (SIGCHLD, "CHLD", "Child exited");
-#endif
-#if defined (SIGCLD)
-  init_sig (SIGCLD, "CLD", "Child exited");
-#endif
-#if defined (SIGPWR)
-  init_sig (SIGPWR, "PWR", "Power failure");
-#endif
-#if defined (SIGTSTP)
-  init_sig (SIGTSTP, "TSTP", "Stopped");
-#endif
-#if defined (SIGTTIN)
-  init_sig (SIGTTIN, "TTIN", "Stopped (tty input)");
-#endif
-#if defined (SIGTTOU)
-  init_sig (SIGTTOU, "TTOU", "Stopped (tty output)");
-#endif
-#if defined (SIGSTOP)
-  init_sig (SIGSTOP, "STOP", "Stopped (signal)");
-#endif
-#if defined (SIGXCPU)
-  init_sig (SIGXCPU, "XCPU", "CPU time limit exceeded");
-#endif
-#if defined (SIGXFSZ)
-  init_sig (SIGXFSZ, "XFSZ", "File size limit exceeded");
-#endif
-#if defined (SIGVTALRM)
-  init_sig (SIGVTALRM, "VTALRM", "Virtual timer expired");
-#endif
-#if defined (SIGPROF)
-  init_sig (SIGPROF, "PROF", "Profiling timer expired");
-#endif
-#if defined (SIGWINCH)
-  /* "Window size changed" might be more accurate, but even if that
-     is all that it means now, perhaps in the future it will be
-     extended to cover other kinds of window changes.  */
-  init_sig (SIGWINCH, "WINCH", "Window changed");
-#endif
-#if defined (SIGCONT)
-  init_sig (SIGCONT, "CONT", "Continued");
-#endif
-#if defined (SIGURG)
-  init_sig (SIGURG, "URG", "Urgent I/O condition");
-#endif
-#if defined (SIGIO)
-  /* "I/O pending" has also been suggested.  A disadvantage is
-     that signal only happens when the process has
-     asked for it, not everytime I/O is pending.  Another disadvantage
-     is the confusion from giving it a different name than under Unix.  */
-  init_sig (SIGIO, "IO", "I/O possible");
-#endif
-#if defined (SIGWIND)
-  init_sig (SIGWIND, "WIND", "SIGWIND");
-#endif
-#if defined (SIGPHONE)
-  init_sig (SIGPHONE, "PHONE", "SIGPHONE");
-#endif
-#if defined (SIGPOLL)
-  init_sig (SIGPOLL, "POLL", "I/O possible");
-#endif
-#if defined (SIGLOST)
-  init_sig (SIGLOST, "LOST", "Resource lost");
-#endif
-#if defined (SIGDANGER)
-  init_sig (SIGDANGER, "DANGER", "Danger signal");
-#endif
-#if defined (SIGINFO)
-  init_sig (SIGINFO, "INFO", "Information request");
-#endif
-#if defined (SIGNOFP)
-  init_sig (SIGNOFP, "NOFP", "Floating point co-processor not available");
-#endif
-}
-
-/* Return the abbreviation for signal NUMBER.  */
-
-char *
-sig_abbrev (number)
-     int number;
-{
-  int i;
-
-  if (sig_table_nelts == 0)
-    signame_init ();
-
-  for (i = 0; i < sig_table_nelts; i++)
-    if (sig_table[i].number == number)
-      return (char *)sig_table[i].abbrev;
-  return NULL;
-}
-
-/* Return the signal number for an ABBREV, or -1 if there is no
-   signal by that name.  */
-
-int
-sig_number (abbrev)
-     const char *abbrev;
-{
-  int i;
-
-  if (sig_table_nelts == 0)
-    signame_init ();
-
-  /* Skip over "SIG" if present.  */
-  if (abbrev[0] == 'S' && abbrev[1] == 'I' && abbrev[2] == 'G')
-    abbrev += 3;
-
-  for (i = 0; i < sig_table_nelts; i++)
-    if (abbrev[0] == sig_table[i].abbrev[0]
-       && strcmp (abbrev, sig_table[i].abbrev) == 0)
-      return sig_table[i].number;
-  return -1;
-}
-
-#ifndef HAVE_PSIGNAL
-/* Print to standard error the name of SIGNAL, preceded by MESSAGE and
-   a colon, and followed by a newline.  */
-
-void
-psignal (signal, message)
-     int signal;
-     const char *message;
-{
-  if (signal <= 0 || signal >= NSIG)
-    fprintf (stderr, "%s: unknown signal", message);
-  else
-    fprintf (stderr, "%s: %s\n", message, sys_siglist[signal]);
-}
-#endif
-
-#ifndef HAVE_STRSIGNAL
-/* Return the string associated with the signal number.  */
-
-char *
-strsignal (signal)
-     int signal;
-{
-  static char buf[] = "Signal 12345678901234567890";
-
-  if (signal > 0 || signal < NSIG)
-    return (char *) sys_siglist[signal];
-
-  sprintf (buf, "Signal %d", signal);
-  return buf;
-}
-#endif
diff --git a/sysdeps/generic/signame.h b/sysdeps/generic/signame.h
deleted file mode 100644 (file)
index d829e86..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Convert between signal names and numbers.
-   Copyright (C) 1990, 1992, 1993, 1995, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#if defined (__STDC__) && __STDC__
-
-/* Initialize `sys_siglist'.  */
-void signame_init (void);
-
-/* Return the abbreviation (e.g. ABRT, FPE, etc.) for signal NUMBER.
-   Do not return this as a const char *.  The caller might want to
-   assign it to a char *.  */
-char *sig_abbrev (int number);
-
-/* Return the signal number for an ABBREV, or -1 if there is no
-   signal by that name.  */
-int sig_number (const char *abbrev);
-
-/* Avoid conflicts with a system header file that might define these three.  */
-
-#ifndef HAVE_PSIGNAL
-/* Print to standard error the name of SIGNAL, preceded by MESSAGE and
-   a colon, and followed by a newline.  */
-void psignal (int signal, const char *message);
-#endif
-
-#ifndef HAVE_STRSIGNAL
-/* Return the name of SIGNAL.  */
-char *strsignal (int signal);
-#endif
-
-#if !defined (HAVE_SYS_SIGLIST)
-/* Names for signals from 0 to NSIG-1.  */
-extern const char *sys_siglist[];
-#endif
-
-#else
-
-void signame_init ();
-char *sig_abbrev ();
-int sig_number ();
-#if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_PSIGNAL)
-void psignal ();
-#endif
-#ifndef HAVE_STRSIGNAL
-char *strsignal ();
-#endif
-#if !defined (HAVE_SYS_SIGLIST)
-extern char *sys_siglist[];
-#endif
-
-#endif
index 210c9c255381b98062724af25a6eccb2ed290394..d1e4e6f0d553bf0c630d505f66f05161ba53faa8 100644 (file)
@@ -19,7 +19,7 @@
 
 #define COMPILE_GLOB64 1
 
-#include <sysdeps/generic/glob.c>
+#include <posix/glob.c>
 
 libc_hidden_def (glob64)
 libc_hidden_def (globfree64)
index 71a3003c96c29f85ce806df6409b2aaf8b6dd88a..e4f63088a9b02cab0a13f3c5e2fb7f1a75239251 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
 
@@ -27,4 +27,4 @@
        && __access (_PATH_WTMP "x", F_OK) != 0) ? _PATH_WTMP : \
       file_name))
 
-#include <sysdeps/generic/updwtmp.c>
+#include <login/updwtmp.c>
index 2fc925017c3abd56f89280f52d4cd76e98e8cf4a..5ef6f306cd00e4c841cbb3ead5b564aa5604074b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
 
@@ -27,4 +27,4 @@
        && __access (_PATH_WTMP "x", F_OK) != 0) ? _PATH_WTMP : \
       file_name))
 
-#include <sysdeps/generic/utmp_file.c>
+#include <login/utmp_file.c>
index 7fb2af77d08257d7db7d4e2bf5e59600ce763f3a..4395b8f5626a234a621ee9ab57fedff5f5036e14 100644 (file)
    02111-1307 USA.  */
 
 /* Define the machine-dependent type `jmp_buf'.  HPPA version.  */
+#ifndef _BITS_SETJMP_H
+#define _BITS_SETJMP_H 1
 
-#ifndef _SETJMP_H
+#if !defined _SETJMP_H && !defined _PTHREAD_H
 # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
 #endif
 
@@ -39,3 +41,5 @@ typedef double __jmp_buf[21];
    variable at ADDRESS.  */
 #define _JMPBUF_UNWINDS(_jmpbuf, _address)                             \
      ((void *)(_address) > (void *)(((unsigned long *) _jmpbuf)[JB_SP]))
+
+#endif /* bits/setjmp.h */
index 6b590f7f041d855233b3bdb3767b6842db1e7ab8..aced5f42c907f4a49928de9d5c0e1fb846798502 100644 (file)
@@ -1,5 +1,5 @@
 /* longjmp for i386.
-   Copyright (C) 1995,1996,1997,1998,2000,2002 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998,2000,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -44,6 +44,9 @@ ENTRY (BP_SYM (__longjmp))
        movl (JB_DI*4)(%ecx), %edi
        movl (JB_BP*4)(%ecx), %ebp
        movl (JB_SP*4)(%ecx), %esp
+#ifdef PTR_DEMANGLE
+       PTR_DEMANGLE (%edx)
+#endif
        /* Jump to saved PC.  */
        jmp *%edx
 END (BP_SYM (__longjmp))
index aa8df167d0050aa7bea26d7f926c579a858b18a2..f80d239323551640e8979118e34e02893700ae9e 100644 (file)
@@ -1,5 +1,5 @@
 /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.  i386 version.
-   Copyright (C) 1994-1997,2000,2001,2002 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997,2000-2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -46,6 +46,9 @@ ENTRY (BP_SYM (_setjmp))
        leal JMPBUF(%esp), %ecx /* Save SP as it will be after we return.  */
        movl %ecx, (JB_SP*4)(%edx)
        movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
+#ifdef PTR_MANGLE
+       PTR_MANGLE (%ecx)
+#endif
        movl %ecx, (JB_PC*4)(%edx)
        LEAVE
        movl %ebp, (JB_BP*4)(%edx) /* Save caller's frame pointer.  */
index b6934dc54891d01f22f28a20b309a1d035492e21..f4257a0dc5fc72174410af801aaa1526e520c044 100644 (file)
 #include "bp-sym.h"
 #include "bp-asm.h"
 
+#define PARMS  LINKAGE         /* no space for saved regs */
+#define JMPBUF PARMS
+#define SIGMSK JMPBUF+PTR_SIZE
+
 ENTRY (BP_SYM (setjmp))
        /* Note that we have to use a non-exported symbol in the next
           jump since otherwise gas will emit it as a jump through the
@@ -44,6 +48,9 @@ ENTRY (BP_SYM (setjmp))
        leal JMPBUF(%esp), %ecx /* Save SP as it will be after we return.  */
        movl %ecx, (JB_SP*4)(%eax)
        movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
+#ifdef PTR_MANGLE
+       PTR_MANGLE (%ecx)
+#endif
        movl %ecx, (JB_PC*4)(%eax)
        LEAVE /* pop frame pointer to prepare for tail-call.  */
        movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer.  */
index c2b135cb886d41fde67e17cf10db8c12c876d856..a1cfe36ba1b89008eb3bc87f149342adb0ed5305 100644 (file)
@@ -1,6 +1,6 @@
 /* bzero -- set a block of memory to zero.  For Intel 80x86, x>=3.
    This file is part of the GNU C Library.
-   Copyright (C) 1991,92,93,97,98,99 Free Software Foundation, Inc.
+   Copyright (C) 1991,92,93,97,98,99, 05 Free Software Foundation, Inc.
    Contributed by Torbjorn Granlund (tege@sics.se).
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -79,5 +79,5 @@ __bzero (dstpp, len)
 weak_alias (__bzero, bzero)
 
 #else
-#include <sysdeps/generic/bzero.c>
+#include <string/bzero.c>
 #endif
diff --git a/sysdeps/i386/elf/bsd-setjmp.S b/sysdeps/i386/elf/bsd-setjmp.S
deleted file mode 100644 (file)
index c421791..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.  i386 version.
-   Copyright (C) 1995-1997,2000-2003,2005 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <sysdep.h>
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
-
-#define PARMS  LINKAGE         /* no space for saved regs */
-#define JMPBUF PARMS
-#define SIGMSK JMPBUF+PTR_SIZE
-
-ENTRY (BP_SYM (setjmp))
-       /* Note that we have to use a non-exported symbol in the next
-          jump since otherwise gas will emit it as a jump through the
-          PLT which is what we cannot use here.  */
-       ENTER
-
-       movl JMPBUF(%esp), %eax
-       CHECK_BOUNDS_BOTH_WIDE (%eax, JMPBUF(%esp), $JB_SIZE)
-
-       /* Save registers.  */
-       movl %ebx, (JB_BX*4)(%eax)
-       movl %esi, (JB_SI*4)(%eax)
-       movl %edi, (JB_DI*4)(%eax)
-       leal JMPBUF(%esp), %ecx /* Save SP as it will be after we return.  */
-       movl %ecx, (JB_SP*4)(%eax)
-       movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
-       movl %ecx, (JB_PC*4)(%eax)
-       LEAVE /* pop frame pointer to prepare for tail-call.  */
-       movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer.  */
-
-       /* Call __sigjmp_save.  */
-       pushl $1
-       cfi_adjust_cfa_offset (4)
-       pushl 8(%esp)
-       cfi_adjust_cfa_offset (4)
-#ifdef PIC
-       /* We cannot use the PLT, because it requires that %ebx be set, but
-           we can't save and restore our caller's value.  Instead, we do an
-           indirect jump through the GOT, using for the temporary register
-           %ecx, which is call-clobbered.  */
-       call __i686.get_pc_thunk.cx
-       addl $_GLOBAL_OFFSET_TABLE_, %ecx
-       leal C_SYMBOL_NAME (BP_SYM (__sigjmp_save)@GOTOFF)(%ecx), %ecx
-       call *%ecx
-#else
-       call BP_SYM (__sigjmp_save)
-#endif
-       popl %ecx
-       cfi_adjust_cfa_offset (-4)
-       popl %edx
-       cfi_adjust_cfa_offset (-4)
-       ret
-END (BP_SYM (setjmp))
-
-       .section .gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits
-       .globl __i686.get_pc_thunk.cx
-       .hidden __i686.get_pc_thunk.cx
-       .type __i686.get_pc_thunk.cx,@function
-__i686.get_pc_thunk.cx:
-       movl (%esp), %ecx
-       ret
-       .size __i686.get_pc_thunk.cx, . - __i686.get_pc_thunk.cx
diff --git a/sysdeps/i386/elf/setjmp.S b/sysdeps/i386/elf/setjmp.S
deleted file mode 100644 (file)
index d6ae98b..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/* setjmp for i386, ELF version.
-   Copyright (C) 1995-1997,2000,2001,2002,2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <sysdep.h>
-#define _ASM
-#define _SETJMP_H
-#include <bits/setjmp.h>
-#include "bp-sym.h"
-#include "bp-asm.h"
-
-#define PARMS  LINKAGE         /* no space for saved regs */
-#define JMPBUF PARMS
-#define SIGMSK JMPBUF+PTR_SIZE
-
-ENTRY (BP_SYM (__sigsetjmp))
-       ENTER
-
-       movl JMPBUF(%esp), %eax
-       CHECK_BOUNDS_BOTH_WIDE (%eax, JMPBUF(%esp), $JB_SIZE)
-
-       /* Save registers.  */
-       movl %ebx, (JB_BX*4)(%eax)
-       movl %esi, (JB_SI*4)(%eax)
-       movl %edi, (JB_DI*4)(%eax)
-       leal JMPBUF(%esp), %ecx /* Save SP as it will be after we return.  */
-       movl %ecx, (JB_SP*4)(%eax)
-       movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
-       movl %ecx, (JB_PC*4)(%eax)
-       LEAVE /* pop frame pointer to prepare for tail-call.  */
-       movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer.  */
-
-       /* Make a tail call to __sigjmp_save; it takes the same args.  */
-#ifdef PIC
-       /* We cannot use the PLT, because it requires that %ebx be set, but
-           we can't save and restore our caller's value.  Instead, we do an
-           indirect jump through the GOT, using for the temporary register
-           %ecx, which is call-clobbered.  */
-       call __i686.get_pc_thunk.cx
-       addl $_GLOBAL_OFFSET_TABLE_, %ecx
-       leal C_SYMBOL_NAME (BP_SYM (__sigjmp_save)@GOTOFF)(%ecx), %ecx
-       jmp *%ecx
-#else
-       jmp BP_SYM (__sigjmp_save)
-#endif
-END (BP_SYM (__sigsetjmp))
-
-       .section .gnu.linkonce.t.__i686.get_pc_thunk.cx,"ax",@progbits
-       .globl __i686.get_pc_thunk.cx
-       .hidden __i686.get_pc_thunk.cx
-       .type __i686.get_pc_thunk.cx,@function
-__i686.get_pc_thunk.cx:
-       movl (%esp), %ecx
-       ret
-       .size __i686.get_pc_thunk.cx, . - __i686.get_pc_thunk.cx
index 695d48be56301e4e8a9d73cffe8037bd012a164e..b6aac64dd843396c9baa98f6b5e0358bbe2f28f9 100644 (file)
@@ -1,7 +1,7 @@
 /* ffs -- find first set bit in a word, counted from least significant end.
    For Intel 80x86, x>=3.
    This file is part of the GNU C Library.
-   Copyright (C) 1991, 92, 93, 94, 97, 98, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1991, 92, 93, 94, 97, 98, 2004, 2005 Free Software Foundation, Inc.
    Contributed by Torbjorn Granlund (tege@sics.se).
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -47,5 +47,5 @@ libc_hidden_builtin_def (ffs)
 weak_alias (__ffs, ffsl)
 
 #else
-#include <sysdeps/generic/ffs.c>
+#include <string/ffs.c>
 #endif
index fd7ef1a3d647a02168819e5f1b33c2b286c901fd..684ae2182756d26dd1f085da1acaa5e5a35b3746 100644 (file)
@@ -1,7 +1,7 @@
 /* ffs -- find first set bit in a word, counted from least significant end.
    For Intel 80x86, x>=6.
    This file is part of the GNU C Library.
-   Copyright (C) 1991, 92, 93, 94, 97, 98, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1991, 92, 93, 94, 97, 98, 2004, 2005 Free Software Foundation, Inc.
    Contributed by Ulrich Drepper <drepper@cygnus.com>.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -45,5 +45,5 @@ libc_hidden_builtin_def (ffs)
 weak_alias (__ffs, ffsl)
 
 #else
-#include <sysdeps/generic/ffs.c>
+#include <string/ffs.c>
 #endif
index 6a7fff87470e8c0eafc402ded07b00208519dbd3..120df94d632d202d6bf952cb24cefd2a6e3bcc6f 100644 (file)
@@ -1,6 +1,6 @@
 /* Set a block of memory to some byte value.
    For Intel 80x86, x>=3.
-   Copyright (C) 1991,1992,1993,1997,1998,2003 Free Software Foundation, Inc.
+   Copyright (C) 1991,1992,1993,1997,1998,2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Torbjorn Granlund (tege@sics.se).
 
@@ -82,5 +82,5 @@ memset (void *dstpp, int c, size_t len)
 libc_hidden_builtin_def (memset)
 
 #else
-#include <sysdeps/generic/memset.c>
+#include <string/memset.c>
 #endif
index e01d32b66cd994fcf39965ce97c94967f3dc7199..747499adc2a2788c4b52ba150ffc8039bf0d9657 100644 (file)
@@ -1,5 +1,5 @@
 /* setjmp for i386.
-   Copyright (C) 1995, 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,2000,2001,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -42,10 +42,19 @@ ENTRY (BP_SYM (__sigsetjmp))
        leal JMPBUF(%esp), %ecx /* Save SP as it will be after we return.  */
        movl %ecx, (JB_SP*4)(%eax)
        movl PCOFF(%esp), %ecx  /* Save PC we are returning to now.  */
+#ifdef PTR_MANGLE
+       PTR_MANGLE (%ecx)
+#endif
        movl %ecx, (JB_PC*4)(%eax)
        LEAVE /* pop frame pointer to prepare for tail-call.  */
        movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer.  */
 
+#if defined NOT_IN_libc && defined IS_IN_rtld
+       /* In ld.so we never save the signal mask.  */
+       xorl %eax, %eax
+       ret
+#else
        /* Make a tail call to __sigjmp_save; it takes the same args.  */
-       jmp BP_SYM (__sigjmp_save)
+       jmp __sigjmp_save
+#endif
 END (BP_SYM (__sigsetjmp))
index 42f64b2ab22e63094fdcf4eb0c235ac1e838b433..5def1905d822258db8d837786e2c3e9ded17c551 100644 (file)
@@ -1,5 +1,5 @@
 /* Print floating point number in hexadecimal notation according to ISO C99.
-   Copyright (C) 2000 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -78,4 +78,4 @@ do {                                                                        \
        }                                                                     \
 } while (0)
 
-#include <sysdeps/generic/printf_fphex.c>
+#include <stdio-common/printf_fphex.c>
index 3a6b8e5532ff119272c1b22d9d532bc821c45f6b..2c0eeae86fccc6641776f7a7cb89f2392a8a9641 100644 (file)
@@ -1,5 +1,5 @@
 /* Thread-local storage handling in the ELF dynamic linker.  IA-64 version.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <sysdeps/generic/libc-tls.c>
+#include <csu/libc-tls.c>
 
 #if USE_TLS
 
@@ -34,4 +34,3 @@ __tls_get_addr (size_t m, size_t offset)
 }
 
 #endif
-
index 0cb6b293e034b1cf1c52d19f333a33597f5d4eea..361a9baa056425c3cf62419d7e3579aaf001d01b 100644 (file)
@@ -1,6 +1,6 @@
 /* Print floating point number in hexadecimal notation according to
    ISO C99.
-   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -103,4 +103,4 @@ do {                                                                              \
        }                                                                     \
 } while (0)
 
-#include <sysdeps/generic/printf_fphex.c>
+#include <stdio-common/printf_fphex.c>
index 3c8183df2e072d9e290244716806fa93634745cf..ba9f4c29608592a9c97b74d5c31db540a5d3a61f 100644 (file)
@@ -1,5 +1,5 @@
 /* Print floating point number in hexadecimal notation according to ISO C99.
-   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -90,4 +90,4 @@ do {                                                                        \
        }                                                                     \
 } while (0)
 
-#include <sysdeps/generic/printf_fphex.c>
+#include <stdio-common/printf_fphex.c>
index 32bf18084b5e1cab36c9dc2b388083f53c970cdd..52335c227ff425ba94a9f8d429a6c7c99f78e9ed 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -42,4 +42,4 @@
        (flt) = u.d;                                                          \
   } while (0)
 
-#include <strtod_l.c>
+#include <stdlib/strtod_l.c>
index 2c2b3ee15a24c450905d58fa7a9121b1679b25bb..193eec3509450ac6291cefbae7efba939c9930c1 100644 (file)
    02111-1307 USA.  */
 
 /* Define the machine-dependent type `jmp_buf'.  m68k version.  */
+#ifndef _BITS_SETJMP_H
+#define _BITS_SETJMP_H 1
 
-#ifndef _SETJMP_H
+#if !defined _SETJMP_H && !defined _PTHREAD_H
 # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
 #endif
 
@@ -44,3 +46,5 @@ typedef struct
    containing a local variable at ADDRESS.  */
 #define _JMPBUF_UNWINDS(jmpbuf, address) \
   ((void *) (address) < (void *) (jmpbuf)->__sp)
+
+#endif /* bits/setjmp.h */
index 189936b94f847cc8db5349d24e435c4c9374fb29..2032e8662ca80a38110da31ac7958c35052f266c 100644 (file)
@@ -1,7 +1,7 @@
 /* ffs -- find first set bit in a word, counted from least significant end.
    For mc68020, mc68030, mc68040.
    This file is part of the GNU C Library.
-   Copyright (C) 1991, 1992, 1997, 1998, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1991, 1992, 1997, 1998, 2004, 2005 Free Software Foundation, Inc.
    Contributed by Torbjorn Granlund (tege@sics.se).
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -43,6 +43,6 @@ weak_alias (__ffs, ffsl)
 
 #else
 
-#include <sysdeps/generic/ffs.c>
+#include <string/ffs.c>
 
 #endif
index 4775f983b497406c56fc0a8916e6f8c083478fcd..d15be3b8f34e6f6e7cc4df5b9f8b34202276f2c9 100644 (file)
@@ -1 +1 @@
-#include <sysdeps/generic/getdents.c>
+#include <dirent/getdents.c>
index 3eecf627690859bb93104195f2bbcb58ed1005a4..eaf6332fe191163ea9e9638c84388696909d24f2 100644 (file)
@@ -1,2 +1,2 @@
 /* We don't need the unix/bsd version.  */
-#include <sysdeps/generic/init-posix.c>
+#include <posix/init-posix.c>
index cf62960b4feaa851447dc514daaaec67f17472f5..567143f7284f2c305d20260d43949bb41666a3f4 100644 (file)
@@ -1,5 +1,5 @@
 /* msync -- Synchronize mapped memory to external storage.  Mach version.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -26,7 +26,7 @@
    define the VM_SYNC_* bits when we include <mach/mach_types.h>.  */
 
 #ifndef VM_SYNC_SYNCHRONOUS
-# include <sysdeps/generic/msync.c>
+# include <misc/msync.c>
 #else
 
 /* Synchronize the region starting at ADDR and extending LEN bytes with the
index 5e49f7fa8712663e851523b6ff1fd7df09424c66..fc7308929b15bbe8024d6e607f14e8b4ae1b52c4 100644 (file)
  * the rights to redistribute these changes.
  */
 /*
- * HISTORY
- * $Log$
- * Revision 1.4  2002/07/06 06:36:00  aj
- *     * sysdeps/ia64/fpu/e_acos.S: Added text of Intel license.
- *     * sysdeps/ia64/fpu/e_acosf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_acosl.S: Likewise.
- *     * sysdeps/ia64/fpu/e_asin.S: Likewise.
- *     * sysdeps/ia64/fpu/e_asinf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_asinl.S: Likewise.
- *     * sysdeps/ia64/fpu/e_atan2.S: Likewise.
- *     * sysdeps/ia64/fpu/e_atan2f.S: Likewise.
- *     * sysdeps/ia64/fpu/e_cosh.S: Likewise.
- *     * sysdeps/ia64/fpu/e_coshf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_coshl.S: Likewise.
- *     * sysdeps/ia64/fpu/e_exp.S: Likewise.
- *     * sysdeps/ia64/fpu/e_expf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_fmod.S: Likewise.
- *     * sysdeps/ia64/fpu/e_fmodf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_fmodl.S: Likewise.
- *     * sysdeps/ia64/fpu/e_hypot.S: Likewise.
- *     * sysdeps/ia64/fpu/e_hypotf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_hypotl.S: Likewise.
- *     * sysdeps/ia64/fpu/e_log.S: Likewise.
- *     * sysdeps/ia64/fpu/e_logf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_pow.S: Likewise.
- *     * sysdeps/ia64/fpu/e_powf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_powl.S: Likewise.
- *     * sysdeps/ia64/fpu/e_remainder.S: Likewise.
- *     * sysdeps/ia64/fpu/e_remainderf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_remainderl.S: Likewise.
- *     * sysdeps/ia64/fpu/e_scalb.S: Likewise.
- *     * sysdeps/ia64/fpu/e_scalbf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_scalbl.S: Likewise.
- *     * sysdeps/ia64/fpu/e_sinh.S: Likewise.
- *     * sysdeps/ia64/fpu/e_sinhf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_sinhl.S: Likewise.
- *     * sysdeps/ia64/fpu/e_sqrt.S: Likewise.
- *     * sysdeps/ia64/fpu/e_sqrtf.S: Likewise.
- *     * sysdeps/ia64/fpu/e_sqrtl.S: Likewise.
- *     * sysdeps/ia64/fpu/libm_atan2_req.S: Likewise.
- *     * sysdeps/ia64/fpu/libm_error.c: Likewise.
- *     * sysdeps/ia64/fpu/libm_frexp4.S: Likewise.
- *     * sysdeps/ia64/fpu/libm_frexp4f.S: Likewise.
- *     * sysdeps/ia64/fpu/s_frexpl.c: Likewise.
- *     * sysdeps/ia64/fpu/s_ilogb.S: Likewise.
- *     * sysdeps/ia64/fpu/s_ilogbf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_ilogbl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_ldexp.S: Likewise.
- *     * sysdeps/ia64/fpu/s_ldexpf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_ldexpl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_log1p.S: Likewise.
- *     * sysdeps/ia64/fpu/s_log1pf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_log1pl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_logb.S: Likewise.
- *     * sysdeps/ia64/fpu/s_logbf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_logbl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_modf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_modff.S: Likewise.
- *     * sysdeps/ia64/fpu/s_modfl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_nearbyint.S: Likewise.
- *     * sysdeps/ia64/fpu/s_nearbyintf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_nearbyintl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_rint.S: Likewise.
- *     * sysdeps/ia64/fpu/s_rintf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_rintl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_round.S: Likewise.
- *     * sysdeps/ia64/fpu/s_roundf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_roundl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_scalbn.S: Likewise.
- *     * sysdeps/ia64/fpu/s_scalbnf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_scalbnl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_significand.S: Likewise.
- *     * sysdeps/ia64/fpu/s_significandf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_significandl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_tan.S: Likewise.
- *     * sysdeps/ia64/fpu/s_tanf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_tanl.S: Likewise.
- *     * sysdeps/ia64/fpu/s_trunc.S: Likewise.
- *     * sysdeps/ia64/fpu/s_truncf.S: Likewise.
- *     * sysdeps/ia64/fpu/s_truncl.S: Likewise.
- *     * sysdeps/ieee754/dbl-64/doasin.c: changed copyright notice to
- *     reflect IBM donation of math library to FSF
- *     * sysdeps/ieee754/dbl-64/dosincos.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/e_asin.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/e_atan2.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/e_exp.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/e_log.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/e_remainder.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/e_sqrt.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/halfulp.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/mpa.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/mpatan.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/mpatan2.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/mpexp.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/mplog.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/mpsqrt.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/mptan.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/s_atan.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/s_sin.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/s_tan.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/sincos32.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/slowexp.c: Likewise.
- *     * sysdeps/ieee754/dbl-64/slowpow.c: Likewise.
- *     * sysdeps/gnu/netinet/udp.h: Added BSD copying permission notice
- *     * sysdeps/vax/__longjmp.c: Likewise.
- *     * sysdeps/vax/setjmp.c: Likewise.
- *     * libio/filedoalloc.c: Fixed BSD copying permission notice to remove
- *     advertising clause
- *     * sysdeps/vax/htonl.s: Likewise.
- *     * sysdeps/vax/htons.s: Likewise.
- *     * libio/wfiledoalloc.c: Likewise.
- *     * stdlib/random.c: Likewise.
- *     * stdlib/random_r.c: Likewise.
- *     * sysdeps/mach/sys/reboot.h: Likewise.
- *         * inet/getnameinfo.c: Deleted advertising clause from Inner Net License
- *         * sysdeps/posix/getaddrinfo.c: Likewise.
- *         * sunrpc/des_impl.c: Updated license permission notice to Lesser GPL
- *           and corrected pointer to point to the correct license.
- *
- * Revision 1.3  2000/03/27 04:09:08  roland
- * 2000-03-26  Roland McGrath  <roland@baalperazim.frob.com>
- *
- *     * sysdeps/mach/sys/reboot.h: Include <features.h>.
- *     (reboot): Declare it.
- *
- * Revision 1.2  1998/05/29 10:19:59  drepper
- * Use __ASSEMBLER__ test macro not ASSEMBLER.
- *
- * Revision 1.1  1993/08/03 22:25:15  roland
- * entered into RCS
+ * (pre-GNU) HISTORY
  *
  * Revision 2.8  93/03/11  13:46:40  danner
  *     u_long -> u_int.
 /*
    Copyright (C) 1982, 1986, 1988 Regents of the University of California.
    All rights reserved.
+
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    4. Neither the name of the University nor the names of its contributors
       may be used to endorse or promote products derived from this software
       without specific prior written permission.
-   
+
    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
index 2b42b22ba4fae822c420b66412843985a1e8e3d6..74caae8cba2029b76d13dff6b9cd28a8b348c7f0 100644 (file)
@@ -81,6 +81,6 @@ typedef struct
 /* Test if longjmp to JMPBUF would unwind the frame
    containing a local variable at ADDRESS.  */
 #define _JMPBUF_UNWINDS(jmpbuf, address) \
-  ((void *) (address) < (jmpbuf)[0].__sp)
+  ((void *) (address) < (void *) (jmpbuf)[0].__sp)
 
 #endif /* _MIPS_BITS_SETJMP_H */
index 157ba3389ab44e8fdf772fd11536ec1c4e769374..a3d6301d1d53be0828953f398bacda6c17e9726b 100644 (file)
@@ -17,7 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <sysdeps/generic/libc-tls.c>
+#include <csu/libc-tls.c>
 #include <dl-tls.h>
 
 #if USE_TLS
index 8a2d826e95b1100d2abea3341485279c41dea00a..5464bfb374dc050d14133ab85e63877b0dcde103 100644 (file)
@@ -1,5 +1,5 @@
 /* Check if effective user id can access file
-   Copyright (C) 1990,91,95,96,97,98,99,2000,01 Free Software Foundation, Inc.
+   Copyright (C) 1990,1991,1995-2001,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
    Adapted for GNU C library by Roland McGrath.  */
 
 #ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
 #endif
 
 #include <sys/types.h>
 #include <sys/stat.h>
 
 #ifdef S_IEXEC
-#ifndef S_IXUSR
-#define S_IXUSR S_IEXEC
-#endif
-#ifndef S_IXGRP
-#define S_IXGRP (S_IEXEC >> 3)
-#endif
-#ifndef S_IXOTH
-#define S_IXOTH (S_IEXEC >> 6)
-#endif
+# ifndef S_IXUSR
+#  define S_IXUSR S_IEXEC
+# endif
+# ifndef S_IXGRP
+#  define S_IXGRP (S_IEXEC >> 3)
+# endif
+# ifndef S_IXOTH
+#  define S_IXOTH (S_IEXEC >> 6)
+# endif
 #endif /* S_IEXEC */
 
-#if defined (HAVE_UNISTD_H) || defined (_LIBC)
-#include <unistd.h>
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
 #endif
 
 #ifndef _POSIX_VERSION
@@ -55,35 +55,35 @@ gid_t getegid ();
 extern int errno;
 #endif
 #ifndef __set_errno
-#define __set_errno(val) errno = (val)
+# define __set_errno(val) errno = (val)
 #endif
 
-#if defined(EACCES) && !defined(EACCESS)
-#define EACCESS EACCES
+#if defined EACCES && !defined EACCESS
+# define EACCESS EACCES
 #endif
 
 #ifndef F_OK
-#define F_OK 0
-#define X_OK 1
-#define W_OK 2
-#define R_OK 4
+# define F_OK 0
+# define X_OK 1
+# define W_OK 2
+# define R_OK 4
 #endif
 
-#if !defined (S_IROTH) && defined (R_OK)
+#if !defined S_IROTH && defined R_OK
 # define S_IROTH R_OK
 #endif
-#if !defined (S_IWOTH) && defined (W_OK)
+#if !defined S_IWOTH && defined W_OK
 # define S_IWOTH W_OK
 #endif
-#if !defined (S_IXOTH) && defined (X_OK)
+#if !defined S_IXOTH && defined X_OK
 # define S_IXOTH X_OK
 #endif
 
 
 #ifdef _LIBC
 
-#define group_member __group_member
-#define euidaccess __euidaccess
+# define group_member __group_member
+# define euidaccess __euidaccess
 
 #else
 
@@ -93,14 +93,6 @@ static uid_t uid;
 /* The user's real group id. */
 static gid_t gid;
 
-#ifdef HAVE_GETGROUPS
-int group_member ();
-#else
-#define group_member(gid)      0
-#endif
-
-#endif
-
 /* The user's effective user id. */
 static uid_t euid;
 
@@ -110,6 +102,14 @@ static gid_t egid;
 /* Nonzero if UID, GID, EUID, and EGID have valid values. */
 static int have_ids;
 
+# ifdef HAVE_GETGROUPS
+int group_member ();
+# else
+#  define group_member(gid)    0
+# endif
+
+#endif
+
 
 /* Return 0 if the user has permission of type MODE on file PATH;
    otherwise, return -1 and set `errno' to EACCESS.
@@ -126,6 +126,9 @@ euidaccess (path, mode)
   int granted;
 
 #ifdef _LIBC
+  uid_t euid;
+  gid_t egid;
+
   if (! __libc_enable_secure)
     /* If we are not set-uid or set-gid, access does the same.  */
     return __access (path, mode);
@@ -157,12 +160,8 @@ euidaccess (path, mode)
 
 #ifdef _LIBC
   /* Now we need the IDs.  */
-  if (have_ids == 0)
-    {
-      have_ids = 1;
-      euid = __geteuid ();
-      egid = __getegid ();
-    }
+  euid = __geteuid ();
+  egid = __getegid ();
 #endif
 
   /* The super-user can read and write any file, and execute any file
@@ -172,11 +171,12 @@ euidaccess (path, mode)
     return 0;
 
   if (euid == stats.st_uid)
-    granted = (unsigned) (stats.st_mode & (mode << 6)) >> 6;
+    granted = (unsigned int) (stats.st_mode & (mode << 6)) >> 6;
   else if (egid == stats.st_gid || group_member (stats.st_gid))
-    granted = (unsigned) (stats.st_mode & (mode << 3)) >> 3;
+    granted = (unsigned int) (stats.st_mode & (mode << 3)) >> 3;
   else
     granted = (stats.st_mode & mode);
+  /* XXX Add support for ACLs.  */
   if (granted == mode)
     return 0;
   __set_errno (EACCESS);
@@ -188,9 +188,9 @@ weak_alias (__euidaccess, euidaccess)
 #endif
 \f
 #ifdef TEST
-#include <stdio.h>
-#include <errno.h>
-#include "error.h"
+# include <stdio.h>
+# include <errno.h>
+# include "error.h"
 
 char *program_name;
 
index 81a56a07945fc40ca406343fe27a64e6d89e442b..b9819bfc0a2e5fcbb5ea9adec597363712637bbe 100644 (file)
@@ -121,7 +121,8 @@ struct gaih
   {
     int family;
     int (*gaih)(const char *name, const struct gaih_service *service,
-               const struct addrinfo *req, struct addrinfo **pai);
+               const struct addrinfo *req, struct addrinfo **pai,
+               unsigned int *naddrs);
   };
 
 static const struct addrinfo default_hints =
@@ -363,7 +364,8 @@ extern service_user *__nss_hosts_database attribute_hidden;
 
 static int
 gaih_inet (const char *name, const struct gaih_service *service,
-          const struct addrinfo *req, struct addrinfo **pai)
+          const struct addrinfo *req, struct addrinfo **pai,
+          unsigned int *naddrs)
 {
   const struct gaih_typeproto *tp = gaih_inet_typeproto;
   struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv;
@@ -393,6 +395,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
        }
     }
 
+  int port = 0;
   if (service != NULL)
     {
       if ((tp->protoflag & GAI_PROTO_NOSERVICE) != 0)
@@ -445,63 +448,41 @@ gaih_inet (const char *name, const struct gaih_service *service,
        }
       else
        {
-         if (req->ai_socktype || req->ai_protocol)
-           {
-             st = __alloca (sizeof (struct gaih_servtuple));
-             st->next = NULL;
-             st->socktype = tp->socktype;
-             st->protocol = ((tp->protoflag & GAI_PROTO_PROTOANY)
-                             ? req->ai_protocol : tp->protocol);
-             st->port = htons (service->num);
-           }
-         else
-           {
-             /* Neither socket type nor protocol is set.  Return all
-                socket types we know about.  */
-             struct gaih_servtuple **lastp = &st;
-             for (tp = gaih_inet_typeproto + 1; tp->name[0]; ++tp)
-               if ((tp->protoflag & GAI_PROTO_NOSERVICE) == 0)
-                 {
-                   struct gaih_servtuple *newp;
-
-                   newp = __alloca (sizeof (struct gaih_servtuple));
-                   newp->next = NULL;
-                   newp->socktype = tp->socktype;
-                   newp->protocol = tp->protocol;
-                   newp->port = htons (service->num);
-
-                   *lastp = newp;
-                   lastp = &newp->next;
-                 }
-           }
+         port = htons (service->num);
+         goto got_port;
        }
     }
-  else if (req->ai_socktype || req->ai_protocol)
-    {
-      st = __alloca (sizeof (struct gaih_servtuple));
-      st->next = NULL;
-      st->socktype = tp->socktype;
-      st->protocol = ((tp->protoflag & GAI_PROTO_PROTOANY)
-                     ? req->ai_protocol : tp->protocol);
-      st->port = 0;
-    }
   else
     {
-      /* Neither socket type nor protocol is set.  Return all socket types
-        we know about.  */
-      struct gaih_servtuple **lastp = &st;
-      for (++tp; tp->name[0]; ++tp)
+    got_port:
+
+      if (req->ai_socktype || req->ai_protocol)
        {
-         struct gaih_servtuple *newp;
+         st = __alloca (sizeof (struct gaih_servtuple));
+         st->next = NULL;
+         st->socktype = tp->socktype;
+         st->protocol = ((tp->protoflag & GAI_PROTO_PROTOANY)
+                         ? req->ai_protocol : tp->protocol);
+         st->port = port;
+       }
+      else
+       {
+         /* Neither socket type nor protocol is set.  Return all socket types
+            we know about.  */
+         struct gaih_servtuple **lastp = &st;
+         for (++tp; tp->name[0]; ++tp)
+           {
+             struct gaih_servtuple *newp;
 
-         newp = __alloca (sizeof (struct gaih_servtuple));
-         newp->next = NULL;
-         newp->socktype = tp->socktype;
-         newp->protocol = tp->protocol;
-         newp->port = 0;
+             newp = __alloca (sizeof (struct gaih_servtuple));
+             newp->next = NULL;
+             newp->socktype = tp->socktype;
+             newp->protocol = tp->protocol;
+             newp->port = port;
 
-         *lastp = newp;
-         lastp = &newp->next;
+             *lastp = newp;
+             lastp = &newp->next;
+           }
        }
     }
 
@@ -1108,6 +1089,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
          }
        *pai = NULL;
 
+       ++*naddrs;
+
       ignore:
        at2 = at2->next;
       }
@@ -1556,6 +1539,7 @@ getaddrinfo (const char *name, const char *service,
   else
     end = NULL;
 
+  unsigned int naddrs = 0;
   while (g->gaih)
     {
       if (hints->ai_family == g->family || hints->ai_family == AF_UNSPEC)
@@ -1564,7 +1548,7 @@ getaddrinfo (const char *name, const char *service,
          if (pg == NULL || pg->gaih != g->gaih)
            {
              pg = g;
-             i = g->gaih (name, pservice, hints, end);
+             i = g->gaih (name, pservice, hints, end, &naddrs);
              if (i != 0)
                {
                  /* EAI_NODATA is a more specific result as it says that
@@ -1596,7 +1580,7 @@ getaddrinfo (const char *name, const char *service,
   if (j == 0)
     return EAI_FAMILY;
 
-  if (nresults > 1)
+  if (naddrs > 1)
     {
       /* Sort results according to RFC 3484.  */
       struct sort_result results[nresults];
index 3c2e1dfa07f91ecab2631cb06be9b28a139db46a..f40faee33d1155f2e7a703dee88d5238d4da14cd 100644 (file)
@@ -1,5 +1,5 @@
 /* Low-level statistical profiling support function.  Mostly POSIX.1 version.
-   Copyright (C) 1996,97,98,2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1996,97,98,2002, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
 
 #ifndef SIGPROF
 
-#include <sysdeps/generic/profil.c>
+#include <gmon/profil.c>
 
 #else
 
index b773d40db03587e2de1054ac45fa1af143b79137..0a657fadfa0302a7fd30aaf9d7112af9011e0388 100644 (file)
@@ -1,5 +1,5 @@
 /* shm_open -- open a POSIX shared memory object.  Generic POSIX file version.
-   Copyright (C) 2001,02 Free Software Foundation, Inc.
+   Copyright (C) 2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,7 @@
 #include <unistd.h>
 
 #if ! _POSIX_MAPPED_FILES
-#include <sysdeps/generic/shm_open.c>
+#include <rt/shm_open.c>
 
 #else
 
index b67240f8386cb6df1d632325a3714d60e57b6fc5..18ca416e16bf2399f8ff46ade6df9f538722eeb7 100644 (file)
@@ -1,5 +1,5 @@
 /* shm_unlink -- remove a POSIX shared memory object.  Generic POSIX version.
-   Copyright (C) 2001,02 Free Software Foundation, Inc.
+   Copyright (C) 2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,7 @@
 #include <unistd.h>
 
 #if ! _POSIX_MAPPED_FILES
-#include <sysdeps/generic/shm_unlink.c>
+#include <rt/shm_unlink.c>
 
 #else
 
index 19787fa36436f12414927d0ee21474b3e1350cdf..04ca1688ec35c1eaa075d2ce8e660291e8452571 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
    This file is part of the GNU C Library.
 
@@ -27,7 +27,7 @@
 #include <sys/profil.h>
 
 #ifndef SIGPROF
-# include <sysdeps/generic/sprofil.c>
+# include <gmon/sprofil.c>
 #else
 
 #include <libc-internal.h>
diff --git a/sysdeps/powerpc/dl-procinfo.c b/sysdeps/powerpc/dl-procinfo.c
new file mode 100644 (file)
index 0000000..7c1ab7b
--- /dev/null
@@ -0,0 +1,66 @@
+/* Data for processor capability information.  PowerPC version.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/* This information must be kept in sync with the _DL_HWCAP_COUNT and
+   _DL_PLATFORM_COUNT definitions in procinfo.h.
+
+   If anything should be added here check whether the size of each string
+   is still ok with the given array size.
+
+   All the #ifdefs in the definitions are quite irritating but
+   necessary if we want to avoid duplicating the information.  There
+   are three different modes:
+
+   - PROCINFO_DECL is defined.  This means we are only interested in
+     declarations.
+
+   - PROCINFO_DECL is not defined:
+
+     + if SHARED is defined the file is included in an array
+       initializer.  The .element = { ... } syntax is needed.
+
+     + if SHARED is not defined a normal array initialization is
+       needed.
+  */
+
+#ifndef PROCINFO_CLASS
+# define PROCINFO_CLASS
+#endif
+
+#if !defined PROCINFO_DECL && defined SHARED
+  ._dl_powerpc_cap_flags
+#else
+PROCINFO_CLASS const char _dl_powerpc_cap_flags[16][10]
+#endif
+#ifndef PROCINFO_DECL
+= {
+    "cell", "power5+", "power5", "power4",
+    "notb", "efpdouble", "efpsingle", "spe",
+    "ucache", "4xxmac", "mmu", "fpu",
+    "altivec", "ppc601", "ppc64", "ppc32",
+  }
+#endif
+#if !defined SHARED || defined PROCINFO_DECL
+;
+#else
+,
+#endif
+
+#undef PROCINFO_DECL
+#undef PROCINFO_CLASS
diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
new file mode 100644 (file)
index 0000000..8edc5e5
--- /dev/null
@@ -0,0 +1,75 @@
+/* Processor capability information handling macros.  PowerPC version.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _DL_PROCINFO_H
+#define _DL_PROCINFO_H 1
+
+#include <ldsodefs.h>
+#include <sysdep.h>            /* This defines the PPC_FEATURE_* macros.  */
+
+/* There are 16 bits used, but they are bits 16..31.  */
+#define _DL_HWCAP_FIRST                16
+#define _DL_HWCAP_COUNT                32
+
+/* These bits influence library search.  */
+#define HWCAP_IMPORTANT                (PPC_FEATURE_HAS_ALTIVEC                      \
+                                | PPC_FEATURE_POWER4                         \
+                                | PPC_FEATURE_POWER5                         \
+                                | PPC_FEATURE_POWER5_PLUS                    \
+                                | PPC_FEATURE_CELL)
+
+/* We don't use AT_PLATFORM.  */
+#define _DL_HWCAP_PLATFORM     0
+#define _dl_string_platform(str) (-1)
+
+static inline const char *
+__attribute__ ((unused))
+_dl_hwcap_string (int idx)
+{
+  return GLRO(dl_powerpc_cap_flags)[idx - _DL_HWCAP_FIRST];
+};
+
+static inline int
+__attribute__ ((unused))
+_dl_string_hwcap (const char *str)
+{
+  for (int i = _DL_HWCAP_FIRST; i < _DL_HWCAP_COUNT; ++i)
+    if (strcmp (str, _dl_hwcap_string (i)) == 0)
+      return i;
+  return -1;
+};
+
+#ifdef IS_IN_rtld
+static inline int
+__attribute__ ((unused))
+_dl_procinfo (int word)
+{
+  _dl_printf ("AT_HWCAP:       ");
+
+  for (int i = _DL_HWCAP_FIRST; i < _DL_HWCAP_COUNT; ++i)
+    if (word & (1 << i))
+      _dl_printf (" %s", _dl_hwcap_string (i));
+
+  _dl_printf ("\n");
+
+  return 0;
+}
+#endif
+
+#endif /* dl-procinfo.h */
index af67a39a29340ed7a934e50bd534d619fa68284c..8a60af8d71a499f56a7c86ce0b3f6dd32acd94f1 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1998,2000-2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -30,7 +30,7 @@ weak_extern (__cache_line_size)
 #define LIBC_START_DISABLE_INLINE
 #define LIBC_START_MAIN_AUXVEC_ARG
 #define MAIN_AUXVEC_ARG
-#include <sysdeps/generic/libc-start.c>
+#include <csu/libc-start.c>
 
 
 struct startup_info
index f45b5ea8e2f233730e17b79d80f978a4fabe957b..61d79c4c2f144ff7c1877ee7d0a2aa3d3086f83f 100644 (file)
@@ -1,6 +1,6 @@
 /* Find first set bit in a word, counted from least significant end.
    For PowerPC.
-   Copyright (C) 1991, 1992, 1997, 1998, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1991, 1992, 1997, 1998, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Torbjorn Granlund (tege@sics.se).
 
@@ -43,5 +43,5 @@ weak_alias (__ffs, ffsl)
 #endif
 
 #else
-#include <sysdeps/generic/ffs.c>
+#include <string/ffs.c>
 #endif
index ad7113f461e88dc4cc585699c82bdbdfdde25a56..ae21284e0343cbf89cd1b2264ed8b0b3364bd131 100644 (file)
@@ -1,5 +1,6 @@
 /* setjmp for PowerPC.
-   Copyright (C) 1995-1997,1999-2001,2003,2004 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997,1999-2001,2003,2004,2005
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -55,5 +56,10 @@ ENTRY (BP_SYM (__sigsetjmp))
        stw  r29,((JB_GPRS+15)*4)(3)
        stw  r30,((JB_GPRS+16)*4)(3)
        stw  r31,((JB_GPRS+17)*4)(3)
+#if defined NOT_IN_libc && defined IS_IN_rtld
+       li   r3,0
+       blr
+#else
        b BP_SYM (__sigjmp_save@local)
+#endif
 END (BP_SYM (__sigsetjmp))
index 0de07a82d3f20d64cdc9c8d22fc65f93881abcac..c1926ecd688b80e0cf6df24343588154cedb1eef 100644 (file)
@@ -1,5 +1,5 @@
 /* setjmp for PowerPC64.
-   Copyright (C) 1995-2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1995-2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -177,5 +177,10 @@ L(aligned_save_vmx):
        stvx    31,0,r6
 L(no_vmx):
 #endif
+#if defined NOT_IN_libc && defined IS_IN_rtld
+       li      r3,0
+       blr
+#else
        b JUMPTARGET (BP_SYM (__sigjmp_save))
+#endif
 END (BP_SYM (__sigsetjmp))
index 4d0172704473ee9945273c1792f07161b14b0acb..619412cb5088c5ea568394d98572f6626bd3d408 100644 (file)
@@ -1,6 +1,6 @@
 /* ffs -- find first set bit in a word, counted from least significant end.
    For IBM rs6000.
-   Copyright (C) 1991, 1992, 1997, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1991, 1992, 1997, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Torbjorn Granlund (tege@sics.se).
 
@@ -38,5 +38,5 @@ weak_alias (__ffs, ffs)
 libc_hidden_builtin_def (ffs)
 
 #else
-#include <sysdeps/generic/ffs.c>
+#include <string/ffs.c>
 #endif
index 35bc9a53f38b0f5e4700b47085fe528b0741bf0e..400951476386d28da841e5dcf1cfa673ff46db57 100644 (file)
 #ifndef __S390_SETJMP_H__
 #define __S390_SETJMP_H__
 
+#if !defined _SETJMP_H && !defined _PTHREAD_H
+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+#endif
+
 #include <bits/wordsize.h>
 
 #define __JB_GPR6      0
index 7362dbf8f8a78ffca2ce4bb781fba8054b01f0ee..f177f436e93444dba5b606c90dba2c0ef8e6dddd 100644 (file)
@@ -1,5 +1,5 @@
 /* Thread-local storage handling in the ELF dynamic linker.  S390 version.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -18,7 +18,7 @@
    02111-1307 USA.  */
 
 #include <stdlib.h>
-#include <sysdeps/generic/libc-tls.c>
+#include <csu/libc-tls.c>
 
 #if USE_TLS
 
index d92feea2142201b5b18331af9d83c28ee8d2f7f7..242720ca53c7e60b52319757ed47d353c2a9c998 100644 (file)
@@ -51,6 +51,6 @@ typedef struct
 /* Test if longjmp to JMPBUF would unwind the frame
    containing a local variable at ADDRESS.  */
 #define _JMPBUF_UNWINDS(jmpbuf, address) \
-  ((void *) (address) < (jmpbuf)[0].__regs[7])
+  ((void *) (address) < (void *) (jmpbuf)[0].__regs[7])
 
 #endif  /* bits/setjmp.h */
similarity index 68%
rename from sysdeps/generic/nscd_setup_thread.c
rename to sysdeps/unix/mkfifoat.c
index 8ebc050b4a2928c9a4be8a1b4d6c4bfb5442389b..5c4da2a982fcc3ab549fecadf926a97c17c7fbc2 100644 (file)
@@ -1,7 +1,5 @@
-/* Setup of nscd worker threads.  Stub verison.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <nscd.h>
+#include <sys/stat.h>
 
 
-void
-setup_thread (struct database_dyn *db)
+/* Create a new FIFO with permission bits MODE.  But interpret
+   relative PATH names relative to the directory associated with FD.  */
+int
+mkfifoat (fd, file, mode)
+     int fd;
+     const char *file;
+     mode_t mode;
 {
-  /* Nothing.  */
+  dev_t dev = 0;
+  return __xmknodat (_MKNOD_VER, fd, file, mode | S_IFIFO, &dev);
 }
index 98fb4ca5c8a70220ec171f6f0d661dddd17d6606..6aa738fb6913a644df02f7ef64a0d098dbf2adc4 100644 (file)
@@ -139,7 +139,7 @@ weak_alias (__opendir, opendir)
 
 DIR *
 internal_function
-__alloc_dir (int fd, bool close_fd, struct stat64 *statp)
+__alloc_dir (int fd, bool close_fd, const struct stat64 *statp)
 {
   if (__builtin_expect (__fcntl (fd, F_SETFD, FD_CLOEXEC), 0) < 0)
     goto lose;
index b2bbbc0b281d1d902f57e3f8b3241cb7167b4fe1..812cd97c8086bc84e96ce37c29a047ad35f961f4 100644 (file)
@@ -107,11 +107,6 @@ ifeq ($(subdir),termios)
 sysdep_headers += termio.h
 endif
 
-ifeq ($(subdir),stdio-common)
-# Just disable the auto generation in sysdeps/generic
-inhibit-siglist := yes
-endif
-
 ifeq ($(subdir),posix)
 sysdep_headers += bits/initspin.h
 
index 44ff22ea7d4d315230d1327990187ad013ee3cf7..a6dbfb4eb11aa06def994345ef6e3d9ec97a0484 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -52,5 +52,5 @@ __aio_sigqueue (sig, val, caller_pid)
                         sig, __ptrvalue (&info));
 }
 #else
-# include <sysdeps/generic/aio_sigqueue.c>
+# include <rt/aio_sigqueue.c>
 #endif
index bb41887479debea385a9b26346b4106c9aa292f2..59574266a497e97a60f4468014c2bf424c3e33b4 100644 (file)
@@ -86,6 +86,7 @@
 /* Flags for `mremap'.  */
 #ifdef __USE_GNU
 # define MREMAP_MAYMOVE        1
+# define MREMAP_FIXED  2
 #endif
 
 /* Advice to `madvise'.  */
index 65b7ad97a32b5b45cecc8ebd4f68865cd539737f..127f7f3c5761887dc14909f037f7e2c2e0c4bce9 100644 (file)
@@ -67,7 +67,7 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
 
   if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
     {
-      if (flags & AT_SYMLINK_NOFOLLOW)
+      if (flag & AT_SYMLINK_NOFOLLOW)
        result = INTERNAL_SYSCALL (lstat64, err, 2, file, st);
       else
        result = INTERNAL_SYSCALL (stat64, err, 2, file, st);
@@ -94,7 +94,4 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
 
   return -1;
 }
-hidden_def (__xstat)
-weak_alias (__xstat, _xstat);
-strong_alias (__xstat, __xstat64);
-hidden_ver (__xstat, __xstat64)
+strong_alias (__fxstatat, __fxstatat64);
index a51020d51f492acbeb0d0682c5a5cd58358f5361..84573899d6dba34f5ff6717a2d6b70644b8936f3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -35,7 +35,7 @@ extern int __new_glob (const char *__pattern, int __flags,
                       glob_t *__pglob);
 extern void __new_globfree (glob_t *__pglob);
 
-#include <sysdeps/generic/glob.c>
+#include <posix/glob.c>
 
 #undef glob
 #undef globfree
index 21a2063c30b98cf7d9c4ed2592afdc8c6d67767f..26b081d9a3720c7d11b34a0359ac18d871a41163 100644 (file)
@@ -17,6 +17,8 @@
    02111-1307 USA.  */
 
 #include <sysdep.h>
+#include <sys/cdefs.h>
+#include <stddef.h>
 
 /*
  * In order to get the hidden arguments for rt_sigaction set up
index 1921a03388a70f3508b8f6461f991e169e07c75b..c2972e40c26c6f6345816382a8363f2f13c07439 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
 #define wordexp(words, pwordexp, flags) \
   __new_wordexp (words, pwordexp, flags)
 
-#include <sysdeps/generic/wordexp.c>
+#include <posix/wordexp.c>
 
 versioned_symbol (libc, __new_wordexp, wordexp, GLIBC_2_2_2);
 
index 4713a92694e37183cb4b31d9b943d95b193c059e..1ce5cb188cd4ac42c1d04f4251c8cb4b842856c0 100644 (file)
@@ -2,4 +2,4 @@
    from ld.so.  */
 extern void *__curbrk attribute_hidden;
 
-#include <sbrk.c>
+#include <misc/sbrk.c>
index 79f95df0a22a345459c324fb93b8af8307dfe52d..acc244105146449d92b7d2025a48aaa86a54eb68 100644 (file)
@@ -1,5 +1,5 @@
 /* Dynamic linker system dependencies for Linux.
-   Copyright (C) 1995, 1997, 2001, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 2001, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -53,4 +53,4 @@ frob_brk (void)
 #endif
 }
 
-#include <sysdeps/generic/dl-sysdep.c>
+#include <elf/dl-sysdep.c>
index f8bc5e3033a97453533981adc020d5233f4b5e7a..10d87e87fc0c4d0de49f1a618c6c78dd05aafced 100644 (file)
@@ -23,6 +23,8 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/types.h>
+#include <alloca.h>
+#include <sysdep.h>
 
 /* Change the owner and group of FILE.  */
 int
index 26caee2f4669e2d98fcb968dc0ee33bdb0e0c45f..4c60a1f19acd9f16e9d55909daef78c7fa7aa8ea 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997,1998,1999,2000,2001,2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,1999,2000,2001,2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -72,5 +72,5 @@ weak_alias (__ftruncate64, ftruncate64)
 
 #else
 /* Use the generic implementation.  */
-# include <sysdeps/generic/ftruncate64.c>
+# include <posix/ftruncate64.c>
 #endif
index 2360f50d98e1a2738c2a41350974a5255a01ef20..31113d5db50e4bd261dceebb65b75264ef17eddc 100644 (file)
@@ -20,6 +20,7 @@
 #include <fcntl.h>
 #include <stddef.h>
 #include <stdio.h>
+#include <string.h>
 #include <sys/stat.h>
 #include <kernel_stat.h>
 
index 3e67add0d738dd23a81bab38cc88e785ca836fce..0c6654a386101161f3f241e089ee510a0bc3e3ab 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -52,5 +52,5 @@ __gai_sigqueue (sig, val, caller_pid)
                         sig, __ptrvalue (&info));
 }
 #else
-# include <sysdeps/generic/gai_sigqueue.c>
+# include <resolv/gai_sigqueue.c>
 #endif
index e6ca88d13693310eb88fcc9e6ccb3c1ec904b457..c0efd56369d52104f0f92d225bc09f11327e4465 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -34,5 +34,5 @@ getmsg (fildes, ctlptr, dataptr, flagsp)
   return INLINE_SYSCALL (getpmsg, 5, fildes, ctlptr, dataptr, NULL, flagsp);
 }
 #else
-# include <sysdeps/generic/getmsg.c>
+# include <streams/getmsg.c>
 #endif
index 8028dec3f94c0f667476b74dadf1eaa82a4d0e8c..ea3318e7f51d80f6946655e3973987840f278d6d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -81,5 +81,5 @@ libc_hidden_def (__getresgid)
 weak_alias (__getresgid, getresgid)
 
 #else
-# include <sysdeps/generic/getresgid.c>
+# include <posix/getresgid.c>
 #endif
index 6b94bbb66c2a2e9811b5efca390be61e2ab5dc6f..b2783d075c11f2f2ca36135f5519658c7c9786f1 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -80,5 +80,5 @@ libc_hidden_def (__getresuid)
 weak_alias (__getresuid, getresuid)
 
 #else
-# include <sysdeps/generic/getresuid.c>
+# include <posix/getresuid.c>
 #endif
index d6ab86f3e49db73e7ead9bc4afd7d702458de76f..2ff175393c73c646c7026c04a2ff18b09bb281b6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -18,7 +18,7 @@
 
 #define getrlimit64 __new_getrlimit64
 
-#include <sysdeps/generic/getrlimit64.c>
+#include <resource/getrlimit64.c>
 
 #undef getrlimit64
 #include <shlib-compat.h>
index d3d1212f05af53530d85925e88c004683eb1a3cd..18b7f21ae8b6eaf8ecc76895684e5cf394d3f20f 100644 (file)
@@ -19,7 +19,7 @@
 
 #define COMPILE_GLOB64 1
 
-#include <sysdeps/generic/glob.c>
+#include <posix/glob.c>
 
 #include "shlib-compat.h"
 
@@ -48,7 +48,7 @@ int __old_glob64 (__const char *__pattern, int __flags,
 
 #define GLOB_ONLY_P 1
 
-#include <sysdeps/generic/glob.c>
+#include <posix/glob.c>
 
 compat_symbol (libc, __old_glob64, glob64, GLIBC_2_1);
 #endif
index 1b217a94512f59a834016b88fc1b8ca3ad746d6e..57226277c1de4713e8ba15d4de4d0b26342d0ea4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -70,5 +70,5 @@ __lchown (const char *file, uid_t owner, gid_t group)
 weak_alias (__lchown, lchown)
 
 #else
-# include <sysdeps/generic/lchown.c>
+# include <io/lchown.c>
 #endif
index e7b7a08b55794d15670ba86235c207f0ae836066..04fd159b7c19ab0f3a4cd10d1c61146ef0a80855 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -34,5 +34,5 @@ putmsg (fildes, ctlptr, dataptr, flags)
   return INLINE_SYSCALL (putpmsg, 5, fildes, ctlptr, dataptr, -1, flags);
 }
 #else
-# include <sysdeps/generic/putmsg.c>
+# include <streams/putmsg.c>
 #endif
index 6852f2a9a9951afaaf01db251069b434681d6b56..a6374e61d2d719c25c94b25cf8fe03e48d1329a6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
                  Jakub Jelinek <jakub@redhat.com>, 2000.
@@ -73,10 +73,10 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
 #undef process_elf_file
 #define process_elf_file process_elf32_file
 #define __ELF_NATIVE_CLASS 32
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
 
 #undef __ELF_NATIVE_CLASS
 #undef process_elf_file
 #define process_elf_file process_elf64_file
 #define __ELF_NATIVE_CLASS 64
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
index d4093afb0f31c4de8c42608e0b0ae36b725ea5bf..fd0dfb342a24c7165acc630c9baff761e39e9ce2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -80,6 +80,6 @@ weak_alias (__setresgid, setresgid)
 
 #else
 
-#include <sysdeps/generic/setresgid.c>
+#include <posix/setresgid.c>
 
 #endif
index 540b954e086ceec18a5f946b4d610eb2209a1d47..c5651bf85a53e6a14eb8cdc20ae44a9a04dd84ba 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -80,6 +80,6 @@ weak_alias (__setresuid, setresuid)
 
 #else
 
-#include <sysdeps/generic/setresuid.c>
+#include <posix/setresuid.c>
 
 #endif
index 99f9bf1edf04cc8db429da3caf3273b4414815a4..cb5767955cee4b0da23afd732e4720cde218e761 100644 (file)
@@ -558,4 +558,24 @@ asm (".L__X'%ebx = 1\n\t"
 
 #endif /* __ASSEMBLER__ */
 
+
+/* Pointer mangling support.  */
+#if defined NOT_IN_libc && defined IS_IN_rtld
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+   earlier than the descriptor is initialized.  Using a global variable
+   is too complicated here since we have no PC-relative addressing mode.  */
+#else
+# ifdef __ASSEMBLER__
+#  define PTR_MANGLE(reg)      xorl %gs:POINTER_GUARD, reg
+#  define PTR_DEMANGLE(reg)    PTR_MANGLE (reg)
+# else
+#  define PTR_MANGLE(var)      asm ("xorl %%gs:%c2, %0"                      \
+                                    : "=r" (var)                             \
+                                    : "0" (var),                             \
+                                      "i" (offsetof (tcbhead_t,              \
+                                                     pointer_guard)))
+#  define PTR_DEMANGLE(var)    PTR_MANGLE (var)
+# endif
+#endif
+
 #endif /* linux/i386/sysdep.h */
index 9b1a645d34b47012ea83a2e9e16890e2a735679d..7a10d23c905aac118657f06c91a13d788a9bf745 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -51,10 +51,10 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
 #undef process_elf_file
 #define process_elf_file process_elf32_file
 #define __ELF_NATIVE_CLASS 32
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
 
 #undef __ELF_NATIVE_CLASS
 #undef process_elf_file
 #define process_elf_file process_elf64_file
 #define __ELF_NATIVE_CLASS 64
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
index 44ac727820c41f1879e78b934e706bb2bf35b923..9bbd97e6d21b33b592e0c3a5d9c60bdd8f0855f4 100644 (file)
 # define __ASSUME_POSIX_TIMERS         1
 #endif
 
+/* Beginning with 2.6.12 the clock and timer supports CPU clocks.  */
+#if __LINUX_KERNEL_VERSION >= 0x2060c
+# define __ASSUME_POSIX_CPU_TIMERS     1
+#endif
+
 /* The late 2.5 kernels saw a lot of new CLONE_* flags.  Summarize
    their availability with one define.  The changes were made first
    for i386 and the have to be done separately for the other archs.
diff --git a/sysdeps/unix/sysv/linux/linkat.c b/sysdeps/unix/sysv/linux/linkat.c
new file mode 100644 (file)
index 0000000..8ebff74
--- /dev/null
@@ -0,0 +1,87 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+#include <stdio.h>
+#include <sysdep.h>
+#include <unistd.h>
+
+
+/* Make a link to FROM named TO but relative paths in TO and FROM are
+   interpreted relative to FROMFD and TOFD respectively.  */
+int
+linkat (fromfd, from, tofd, to)
+     int fromfd;
+     const char *from;
+     int tofd;
+     const char *to;
+{
+  static const char procfd[] = "/proc/self/fd/%d/%s";
+  char *buffrom = NULL;
+
+  if (fromfd != AT_FDCWD && from[0] != '/')
+    {
+      size_t filelen = strlen (from);
+      /* Buffer for the path name we are going to use.  It consists of
+        - the string /proc/self/fd/
+        - the file descriptor number
+        - the file name provided.
+        The final NUL is included in the sizeof.   A bit of overhead
+        due to the format elements compensates for possible negative
+        numbers.  */
+      size_t buflen = sizeof (procfd) + sizeof (int) * 3 + filelen;
+      buffrom = alloca (buflen);
+
+      __snprintf (buffrom, buflen, procfd, fromfd, from);
+      from = buffrom;
+    }
+
+  char *bufto = NULL;
+
+  if (tofd != AT_FDCWD && to[0] != '/')
+    {
+      size_t filelen = strlen (to);
+      /* Buffer for the path name we are going to use.  It consists of
+        - the string /proc/self/fd/
+        - the file descriptor number
+        - the file name provided.
+        The final NUL is included in the sizeof.   A bit of overhead
+        due to the format elements compensates for possible negative
+        numbers.  */
+      size_t buflen = sizeof (procfd) + sizeof (int) * 3 + filelen;
+      bufto = alloca (buflen);
+
+      __snprintf (bufto, buflen, procfd, tofd, to);
+      to = bufto;
+    }
+
+  INTERNAL_SYSCALL_DECL (err);
+
+  int result = INTERNAL_SYSCALL (link, err, 2, from,  to);
+
+  if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
+    {
+      __atfct_seterrno_2 (INTERNAL_SYSCALL_ERRNO (result, err), tofd, bufto,
+                         fromfd, buffrom);
+      result = -1;
+    }
+
+  return result;
+}
index 154501fba2df18188d1c4fa1db1d5b0a558d9434..92d4b8a3406695d55bf3cbfe0d9be4ea7445b94b 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/MIPS version.
-   Copyright (C) 1997, 2000, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -89,4 +89,5 @@
 /* Flags for `mremap'.  */
 #ifdef __USE_GNU
 # define MREMAP_MAYMOVE        1
+# define MREMAP_FIXED  2
 #endif
index cdb2d56840eaa2e386ecd3b6f343f4fca1b434dd..11e242570d431be3ddeb03a7a38e4480bbcadebc 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -72,5 +72,5 @@ weak_alias (__ftruncate64, ftruncate64)
 
 #else
 /* Use the generic implementation.  */
-# include <sysdeps/generic/ftruncate64.c>
+# include <misc/ftruncate64.c>
 #endif
index 73fd43f46fab0fc73c94f5face652b9b470606c9..baa92fe57c0c6a796f5aef027c214cc974033c2d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Alexandre Oliva <aoliva@redhat.com>
    Based on work ../x86_64/readelflib.c,
@@ -62,10 +62,10 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
 #undef process_elf_file
 #define process_elf_file process_elf32_file
 #define __ELF_NATIVE_CLASS 32
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
 
 #undef __ELF_NATIVE_CLASS
 #undef process_elf_file
 #define process_elf_file process_elf64_file
 #define __ELF_NATIVE_CLASS 64
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
index e955f18ea3651d0a6dbc7ed107a8257a2af0aaef..d01d25b07793fef14519dd1ce43b1cfe4ac5e74b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003
+/* Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2005
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -72,5 +72,5 @@ truncate64 (const char *path, off64_t length)
 
 #else
 /* Use the generic implementation.  */
-# include <sysdeps/generic/truncate64.c>
+# include <misc/truncate64.c>
 #endif
diff --git a/sysdeps/unix/sysv/linux/mkdirat.c b/sysdeps/unix/sysv/linux/mkdirat.c
new file mode 100644 (file)
index 0000000..367441b
--- /dev/null
@@ -0,0 +1,66 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sysdep-cancel.h>
+
+
+/* Create a new directory with permission bits MODE.  But interpret
+   relative PATH names relative to the directory associated with FD.  */
+int
+mkdirat (fd, file, mode)
+     int fd;
+     const char *file;
+     mode_t mode;
+{
+  char *buf = NULL;
+
+  if (fd != AT_FDCWD && file[0] != '/')
+    {
+      size_t filelen = strlen (file);
+      static const char procfd[] = "/proc/self/fd/%d/%s";
+      /* Buffer for the path name we are going to use.  It consists of
+        - the string /proc/self/fd/
+        - the file descriptor number
+        - the file name provided.
+        The final NUL is included in the sizeof.   A bit of overhead
+        due to the format elements compensates for possible negative
+        numbers.  */
+      size_t buflen = sizeof (procfd) + sizeof (int) * 3 + filelen;
+      buf = alloca (buflen);
+
+      __snprintf (buf, buflen, procfd, fd, file);
+      file = buf;
+    }
+
+  INTERNAL_SYSCALL_DECL (err);
+  int res = INTERNAL_SYSCALL (mkdir, err, 2, file, mode);
+
+  if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (res, err), 0))
+    {
+      __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (res, err), fd, buf);
+      res = -1;
+    }
+
+  return res;
+}
index 65522d5adc530b2faa70069bcaf18498d5ddcc97..008e8eeb95add48bc4901f5c8896530aaa517803 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -31,5 +31,5 @@ mq_close (mqd_t mqdes)
 }
 
 #else
-# include <sysdeps/generic/mq_close.c>
+# include <rt/mq_close.c>
 #endif
index a61722e23727233b28689bc6ee1544e8f92d9acd..d25df7bcfde7bbb92d15e6890bf4d1dedcb3cd67 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -31,5 +31,5 @@ mq_getattr (mqd_t mqdes, struct mq_attr *mqstat)
 }
 
 #else
-# include <sysdeps/generic/mq_getattr.c>
+# include <rt/mq_getattr.c>
 #endif
index 14db27da7096aa09a11d27c9e1b686674cfc9e03..4eba28a3018632408ec0941aa5392b8f64356256 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -40,5 +40,5 @@ mq_notify (mqd_t mqdes, const struct sigevent *notification)
 }
 
 #else
-# include <sysdeps/generic/mq_notify.c>
+# include <rt/mq_notify.c>
 #endif
index d8926a73a78b6f96c35e291584fabe150ae876dd..eac6e012386f4f4130223712765d7be192337c5e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -56,5 +56,5 @@ mq_open (const char *name, int oflag, ...)
 }
 
 #else
-# include <sysdeps/generic/mq_open.c>
+# include <rt/mq_open.c>
 #endif
index 891663c66a781398fba9aff6565380333e7150c9..2186508029b51bcd796cbd7253c96edbb0a79f5d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -33,5 +33,5 @@ mq_receive (mqd_t mqdes, char *msg_ptr, size_t msg_len,
 }
 
 #else
-# include <sysdeps/generic/mq_receive.c>
+# include <rt/mq_receive.c>
 #endif
index cb9cbc2a696d2666c8d62faeed72f25d6c6ba3fe..83b9f8df4a67d3870405b7ddcabcf6cd9a1e7f02 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -32,5 +32,5 @@ mq_send (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
 }
 
 #else
-# include <sysdeps/generic/mq_send.c>
+# include <rt/mq_send.c>
 #endif
index 8d87ffadf46acacb3e07e98cc8805a5ec3cbd41a..bef39a4ae23fb9d2d4160c56766315d912a439a4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -50,5 +50,5 @@ mq_unlink (const char *name)
 }
 
 #else
-# include <sysdeps/generic/mq_unlink.c>
+# include <rt/mq_unlink.c>
 #endif
index 7d1bfd8dd1778168d2f74e89198a8f2b2f93ffc1..1589c24ea96bece28fd7d1fa9a1864b36d9c72d3 100644 (file)
@@ -1,22 +1,20 @@
 /* Setup of nscd worker threads.  Linux verison.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License version 2 as
+   published by the Free Software Foundation.
 
-   The GNU C Library is distributed in the hope that it will be useful,
+   This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include <string.h>
 #include <unistd.h>
index 069f94bd9d1203ab68354448e9e7fc74f83aeefa..cf61b01a54ee004c745fab939d7709dca12c0a3f 100644 (file)
@@ -74,5 +74,5 @@ weak_alias (__ftruncate64, ftruncate64)
 
 #else
 /* Use the generic implementation.  */
-# include <sysdeps/generic/ftruncate64.c>
+# include <misc/ftruncate64.c>
 #endif
index ee1b50c04bfc337baec10df64ec073ae8cf590e4..af6fa548dd80096947081ae1b0140c55c51d3b33 100644 (file)
@@ -74,5 +74,5 @@ truncate64 (path, length)
 
 #else
 /* Use the generic implementation.  */
-# include <sysdeps/generic/truncate64.c>
+# include <misc/truncate64.c>
 #endif
index b4a449cdff924d6cc61067439c49e4a282165ae1..3c6b2daf8130950c35e3d286235a7700b563bf64 100644 (file)
@@ -1,5 +1,5 @@
 /* Special checks on libraries for ldconfig.  Linux/PowerPC version.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -52,10 +52,10 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
 #undef process_elf_file
 #define process_elf_file process_elf32_file
 #define __ELF_NATIVE_CLASS 32
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
 
 #undef __ELF_NATIVE_CLASS
 #undef process_elf_file
 #define process_elf_file process_elf64_file
 #define __ELF_NATIVE_CLASS 64
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
diff --git a/sysdeps/unix/sysv/linux/readlinkat.c b/sysdeps/unix/sysv/linux/readlinkat.c
new file mode 100644 (file)
index 0000000..42c3877
--- /dev/null
@@ -0,0 +1,69 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sysdep.h>
+#include <unistd.h>
+
+
+/* Read the contents of the symbolic link PATH relative to FD into no
+   more than LEN bytes of BUF.  */
+int
+readlinkat (fd, path, buf, len)
+     int fd;
+     const char *path;
+     char *buf;
+     size_t len;
+{
+  char *pathbuf = NULL;
+
+  if (fd != AT_FDCWD && path[0] != '/')
+    {
+      size_t pathlen = strlen (path);
+      static const char procfd[] = "/proc/self/fd/%d/%s";
+      /* Buffer for the path name we are going to use.  It consists of
+        - the string /proc/self/fd/
+        - the file descriptor number
+        - the file name provided.
+        The final NUL is included in the sizeof.   A bit of overhead
+        due to the format elements compensates for possible negative
+        numbers.  */
+      size_t buflen = sizeof (procfd) + sizeof (int) * 3 + pathlen;
+      pathbuf = __alloca (buflen);
+
+      __snprintf (pathbuf, buflen, procfd, fd, path);
+      path = pathbuf;
+    }
+
+  INTERNAL_SYSCALL_DECL (err);
+
+  int result = INTERNAL_SYSCALL (readlink, err, 3, path, buf, len);
+
+  if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
+    {
+      __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, pathbuf);
+      result = -1;
+    }
+
+  return result;
+}
index 9d94d5f86cb3fd81a3fa7119c94fbe75212fd38c..849c67b5d6b4258d2b6b3a87dd0108a5d8396041 100644 (file)
 #include <sysdep.h>
 
 
+void
+attribute_hidden
+__atfct_seterrno_2 (int errval, int fd1, const char *buf1, int fd2,
+                   const char *buf2)
+{
+  if (errval == ENOTDIR && (buf1 != NULL || buf2 != NULL))
+    {
+      /* This can mean either the file descriptor is invalid or
+        /proc is not mounted.  */
+      struct stat64 st;
+
+      if (buf1 != NULL)
+       {
+         if (__fxstat64 (_STAT_VER, fd1, &st) != 0)
+           /* errno is already set correctly.  */
+           return;
+
+         /* If /proc is not mounted there is nothing we can do.  */
+         if (S_ISDIR (st.st_mode)
+             && (__xstat64 (_STAT_VER, "/proc/self/fd", &st) != 0
+                 || !S_ISDIR (st.st_mode)))
+           {
+             errval = ENOSYS;
+             goto out;
+           }
+       }
+
+      if (buf2 != NULL)
+       {
+         if (__fxstat64 (_STAT_VER, fd2, &st) != 0)
+           /* errno is already set correctly.  */
+           return;
+
+         /* If /proc is not mounted there is nothing we can do.  */
+         if (S_ISDIR (st.st_mode)
+             && (__xstat64 (_STAT_VER, "/proc/self/fd", &st) != 0
+                 || !S_ISDIR (st.st_mode)))
+           errval = ENOSYS;
+       }
+    }
+
+ out:
+  __set_errno (errval);
+}
+
+
 /* Rename the file OLD relative to OLDFD to NEW relative to NEWFD.  */
 int
 renameat (oldfd, old, newfd, new)
@@ -76,45 +122,8 @@ renameat (oldfd, old, newfd, new)
 
   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
     {
-      int errval = INTERNAL_SYSCALL_ERRNO (result, err);
-      if (errval == ENOTDIR && (bufnew != NULL || bufold != NULL))
-       {
-         /* This can mean either the file descriptor is invalid or
-            /proc is not mounted.  */
-         struct stat64 st;
-
-         if (bufnew != NULL)
-           {
-             if (__fxstat64 (_STAT_VER, newfd, &st) != 0)
-               /* errno is already set correctly.  */
-               return -1;
-
-             /* If /proc is not mounted there is nothing we can do.  */
-             if (S_ISDIR (st.st_mode)
-                 && (__xstat64 (_STAT_VER, "/proc/self/fd", &st) != 0
-                     || !S_ISDIR (st.st_mode)))
-               {
-                 errval = ENOSYS;
-                 goto out;
-               }
-           }
-
-         if (bufold != NULL)
-           {
-             if (__fxstat64 (_STAT_VER, oldfd, &st) != 0)
-               /* errno is already set correctly.  */
-               return -1;
-
-             /* If /proc is not mounted there is nothing we can do.  */
-             if (S_ISDIR (st.st_mode)
-                 && (__xstat64 (_STAT_VER, "/proc/self/fd", &st) != 0
-                     || !S_ISDIR (st.st_mode)))
-               errval = ENOSYS;
-           }
-       }
-
-    out:
-      __set_errno (errval);
+      __atfct_seterrno_2 (INTERNAL_SYSCALL_ERRNO (result, err), newfd, bufnew,
+                         oldfd, bufold);
       result = -1;
     }
 
index c8efcbf7ac6e6210ed31f2dce395da7a59a014ea..2782bc1e01da415788063d6f017ad5f1b59e1a06 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -51,10 +51,10 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
 #undef process_elf_file
 #define process_elf_file process_elf32_file
 #define __ELF_NATIVE_CLASS 32
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
 
 #undef __ELF_NATIVE_CLASS
 #undef process_elf_file
 #define process_elf_file process_elf64_file
 #define __ELF_NATIVE_CLASS 64
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
index 50443c64827915f4f7c07777662f7cfee5bed1a4..c0a6eb81b9b855b5ec58679b449ea257dfb597ff 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -54,5 +54,5 @@ __sched_getaffinity_old (pid_t pid, cpu_set_t *cpuset)
 compat_symbol (libc, __sched_getaffinity_old, sched_getaffinity, GLIBC_2_3_3);
 # endif
 #else
-# include <sysdeps/generic/sched_getaffinity.c>
+# include <posix/sched_getaffinity.c>
 #endif
index 5b1b8ee8787dd70841696e04870800b8a661cdb5..ccd3c8f514308cb691f3917566982e89b3266d98 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -84,5 +84,5 @@ __sched_setaffinity_old (pid_t pid, const cpu_set_t *cpuset)
 compat_symbol (libc, __sched_setaffinity_old, sched_setaffinity, GLIBC_2_3_3);
 # endif
 #else
-# include <sysdeps/generic/sched_setaffinity.c>
+# include <posix/sched_setaffinity.c>
 #endif
index 088c329b7fcf2272fcf08f33d8822cc58f8759be..a417df9c41bb4372c4e5fc2bd2a40e03c35d2fc3 100644 (file)
@@ -1,2 +1,2 @@
 #define HAVE_PROC_SELF 1
-#include <sysdeps/generic/segfault.c>
+#include <debug/segfault.c>
index 337f8862570f2775b915519c975207235bfc7c9f..22a8036b64613a34871ea0491576c0ba3ba739a4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 2000, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2000, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -48,5 +48,5 @@ __sigqueue (pid, sig, val)
 }
 weak_alias (__sigqueue, sigqueue)
 #else
-# include <sysdeps/generic/sigqueue.c>
+# include <signal/sigqueue.c>
 #endif
index 6b3116fef21fe7953192d8ca088f325a76e99503..626b1eb8af271082a616736f17db9b1d83491c47 100644 (file)
@@ -1,3 +1,3 @@
 /* The sigreturn syscall cannot be explicitly called on Linux, only
    implicitly by returning from a signal handler.  */
-#include <sysdeps/generic/sigreturn.c>
+#include <signal/sigreturn.c>
index 4faf4424fe1d279cbfd06bf09365ddb35c1d3b2f..76d2126986be0d40011378b44518ec658cc2c185 100644 (file)
@@ -1,5 +1,5 @@
 /* Emulate sigstack function using sigaltstack.
-   Copyright (C) 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -65,5 +65,5 @@ sigstack (ss, oss)
 
 link_warning (sigstack, "the `sigstack' function is dangerous.  `sigaltstack' should be used instead.")
 #else
-# include <sysdeps/generic/sigstack.c>
+# include <signal/sigstack.c>
 #endif
index adeadc1587cbdd1eb5cb88166208e18d4490e638..8795652766d82afb3b1b449719c536b9aadb4f1d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997,1998,2000,2002,2003,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2000,2002,2003,2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -89,5 +89,5 @@ __sigtimedwait (set, info, timeout)
 libc_hidden_def (__sigtimedwait)
 weak_alias (__sigtimedwait, sigtimedwait)
 #else
-# include <sysdeps/generic/sigtimedwait.c>
+# include <signal/sigtimedwait.c>
 #endif
index a51a01f20bdce5a56497aa7d2153db3f5978f237..80790df9eb08d388b8d154eece94295aa727ae28 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997,1998,2000,2002,2003,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2000,2002,2003,2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -89,6 +89,6 @@ __sigwaitinfo (set, info)
 libc_hidden_def (__sigwaitinfo)
 weak_alias (__sigwaitinfo, sigwaitinfo)
 #else
-# include <sysdeps/generic/sigwaitinfo.c>
+# include <signal/sigwaitinfo.c>
 #endif
 strong_alias (__sigwaitinfo, __libc_sigwaitinfo)
index ef5fa0e2cd2a127953fc5d95d1f291bd78fe3e10..e12fbc7824e11ede21c377ae8589c291ab7def7f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2001, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
                  Jakub Jelinek <jakub@redhat.com>, 1999.
@@ -53,10 +53,10 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
 #undef process_elf_file
 #define process_elf_file process_elf32_file
 #define __ELF_NATIVE_CLASS 32
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
 
 #undef __ELF_NATIVE_CLASS
 #undef process_elf_file
 #define process_elf_file process_elf64_file
 #define __ELF_NATIVE_CLASS 64
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
diff --git a/sysdeps/unix/sysv/linux/symlinkat.c b/sysdeps/unix/sysv/linux/symlinkat.c
new file mode 100644 (file)
index 0000000..211b49c
--- /dev/null
@@ -0,0 +1,67 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sysdep.h>
+#include <unistd.h>
+
+
+/* Make a symbolic link to FROM named TO relative to TOFD.  */
+int
+symlinkat (from, tofd, to)
+     const char *from;
+     int tofd;
+     const char *to;
+{
+  char *buf = NULL;
+
+  if (tofd != AT_FDCWD && to[0] != '/')
+    {
+      size_t tolen = strlen (to);
+      static const char procfd[] = "/proc/self/fd/%d/%s";
+      /* Buffer for the path name we are going to use.  It consists of
+        - the string /proc/self/fd/
+        - the file descriptor number
+        - the file name provided.
+        The final NUL is included in the sizeof.   A bit of overhead
+        due to the format elements compensates for possible negative
+        numbers.  */
+      size_t buflen = sizeof (procfd) + sizeof (int) * 3 + tolen;
+      buf = __alloca (buflen);
+
+      __snprintf (buf, buflen, procfd, tofd, to);
+      to = buf;
+    }
+
+  INTERNAL_SYSCALL_DECL (err);
+
+  int result = INTERNAL_SYSCALL (symlink, err, 2, from, to);
+
+  if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
+    {
+      __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), tofd, buf);
+      result = -1;
+    }
+
+  return result;
+}
index be2810e0c740d95c81444fc67da270fd9b535bf1..5aa0ec07d21ec5f5c2192ea4cd9220b131a30a9b 100644 (file)
@@ -30,8 +30,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * Version: $Id$
  */
 
 #ifndef _SYS_QUOTA_H
index eaaa9839dca67ade4e71b37da720a2e64527976b..56828b24e388188c87a582d37f7b64b914d4b11b 100644 (file)
@@ -7,4 +7,4 @@
 # define send_flags 0
 #endif
 
-#include <sysdeps/generic/syslog.c>
+#include <misc/syslog.c>
index e6af2c4b04e339c8f66b35029ce785d408546ccf..b2ef13eaf8c4cf150b77f000574fb787b27389ca 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2000, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2000, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -71,5 +71,5 @@ truncate64 (const char *path, off64_t length)
 
 #else
 /* Use the generic implementation.  */
-# include <sysdeps/generic/truncate64.c>
+# include <misc/truncate64.c>
 #endif
index 63dd87e418f2c6816ccf390895e5fca0a10b6ed2..d4d3f2cb7ac1c1b3721b413693ffd273a1d38364 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
 
@@ -31,4 +31,4 @@
         && __access (_PATH_WTMP "x", F_OK) != 0) ? _PATH_WTMP : \
        file_name))))
 
-#include <sysdeps/generic/updwtmp.c>
+#include <login/updwtmp.c>
index 3a27802b110c28f6cdf0244f8e49722720780bb6..958619a032678dd8841e059487f879df53aed905 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
 
@@ -31,4 +31,4 @@
         && __access (_PATH_WTMP "x", F_OK) != 0) ? _PATH_WTMP : \
        file_name))))
 
-#include <sysdeps/generic/utmp_file.c>
+#include <login/utmp_file.c>
index 9b4dd5f121e8f19ba0d2b35417b66135ebd1c952..c8c13d0fd5f73dd7ab4b4e3610d1c63206c87969 100644 (file)
@@ -1 +1 @@
-#include <sysdeps/generic/vfork.c>
+#include <posix/vfork.c>
index 7e26fecb3a2cf1755924fa54411370c5dbc72f2a..6662a94d09303b1f2d4a63b2d3eccca57e7139b4 100644 (file)
@@ -1,5 +1,5 @@
 #ifdef IS_IN_ldconfig
-#include <sysdeps/i386/dl-procinfo.c>
+# include <sysdeps/i386/dl-procinfo.c>
 #else
-#include <sysdeps/generic/dl-procinfo.c>
+# include <sysdeps/generic/dl-procinfo.c>
 #endif
index b360b4288a2e6f4801066d0d77b663a91658777e..31455204c34870ce252b2e5eeb606df57e7a5543 100644 (file)
@@ -1,5 +1,5 @@
 #ifdef IS_IN_ldconfig
-#include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
+# include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
 #else
-#include <sysdeps/generic/dl-procinfo.h>
+# include <sysdeps/generic/dl-procinfo.h>
 #endif
index c672f1df5a6bb989bf9983f483d5c1e2a77c2ef5..5a49af3fa61dd6e58dfede903e745fc84773e3b3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
                  Jakub Jelinek <jakub@redhat.com>, 1999.
@@ -53,10 +53,10 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
 #undef process_elf_file
 #define process_elf_file process_elf32_file
 #define __ELF_NATIVE_CLASS 32
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
 
 #undef __ELF_NATIVE_CLASS
 #undef process_elf_file
 #define process_elf_file process_elf64_file
 #define __ELF_NATIVE_CLASS 64
-#include "sysdeps/generic/readelflib.c"
+#include "elf/readelflib.c"
index 0dc2f2750e8c1fb48c333b9af0c3fe1254622fec..5dfffca455a720af36eab6964bb2a027279b90fb 100644 (file)
 
 #endif /* __ASSEMBLER__ */
 
+
+/* Pointer mangling support.  */
+#if defined NOT_IN_libc && defined IS_IN_rtld
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+   earlier than the descriptor is initialized.  */
+# ifdef __ASSEMBLER__
+#  define PTR_MANGLE(reg)      xorq __pointer_chk_guard_local(%rip), reg
+#  define PTR_DEMANGLE(reg)    PTR_MANGLE (reg)
+# else
+#  define PTR_MANGLE(reg)      asm ("xorq __pointer_chk_guard_local(%%rip), %0"\
+                                    : "=r" (reg) : "0" (reg))
+#  define PTR_DEMANGLE(reg)    PTR_MANGLE (reg)
+# endif
+#else
+# ifdef __ASSEMBLER__
+#  define PTR_MANGLE(reg)      xorq %fs:POINTER_GUARD, reg
+#  define PTR_DEMANGLE(reg)    PTR_MANGLE (reg)
+# else
+#  define PTR_MANGLE(var)      asm ("xorq %%fs:%c2, %0"                      \
+                                    : "=r" (var)                             \
+                                    : "0" (var),                             \
+                                      "i" (offsetof (tcbhead_t,              \
+                                                     pointer_guard)))
+#  define PTR_DEMANGLE(var)    PTR_MANGLE (var)
+# endif
+#endif
+
 #endif /* linux/x86_64/sysdep.h */
diff --git a/sysdeps/unix/sysv/linux/xmknodat.c b/sysdeps/unix/sysv/linux/xmknodat.c
new file mode 100644 (file)
index 0000000..9332ae6
--- /dev/null
@@ -0,0 +1,75 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <bp-checks.h>
+
+/* Create a device file named PATH relative to FD, with permission and
+   special bits MODE and device number DEV (which can be constructed
+   from major and minor device numbers with the `makedev' macro above).  */
+int
+__xmknodat (int vers, int fd, const char *file, mode_t mode, dev_t *dev)
+{
+  if (vers != _MKNOD_VER)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  char *buf = NULL;
+
+  if (fd != AT_FDCWD && file[0] != '/')
+    {
+      size_t filelen = strlen (file);
+      static const char procfd[] = "/proc/self/fd/%d/%s";
+      /* Buffer for the path name we are going to use.  It consists of
+        - the string /proc/self/fd/
+        - the file descriptor number
+        - the file name provided.
+        The final NUL is included in the sizeof.   A bit of overhead
+        due to the format elements compensates for possible negative
+        numbers.  */
+      size_t buflen = sizeof (procfd) + sizeof (int) * 3 + filelen;
+      buf = alloca (buflen);
+
+      __snprintf (buf, buflen, procfd, fd, file);
+      file = buf;
+    }
+
+  /* We must convert the value to dev_t type used by the kernel.  */
+  unsigned long long int k_dev =  (*dev) & ((1ULL << 32) - 1);
+  if (k_dev != *dev)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  return INLINE_SYSCALL (mknod, 3, CHECK_STRING (file), mode,
+                        (unsigned int) k_dev);
+}
+
+libc_hidden_def (__xmknodat)
index 3087fd6b718e70311c40e4648a0dfc46779f1f62..04a93f4eafeb8b5ca0798aedf40a4012f605e2f8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -18,6 +18,6 @@
 
 #include <inttypes.h>
 
-#include <sysdeps/generic/llabs.c>
+#include <stdlib/llabs.c>
 
 weak_alias (llabs, imaxabs)
index 5cefd35c22bde7404e1ace61e301934abd6eb345..1d543ba0ffd0454248c27197606f5934e8577b28 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
 
 #include <inttypes.h>
 
-#include <sysdeps/generic/lldiv.c>
+#include <stdlib/lldiv.c>
 
 #undef imaxdiv
 weak_alias (lldiv, imaxdiv)
index 7ee2eb2727dc7ec81589a54d9508bb211fdb6cf6..082faf1c70b5070597d4d1834b03aa94e7b8e32d 100644 (file)
@@ -1,6 +1,6 @@
 #define glob64 __no_glob64_decl
 #define globfree64 __no_globfree64_decl
-#include <sysdeps/generic/glob.c>
+#include <posix/glob.c>
 #undef glob64
 #undef globfree64
 weak_alias (glob, glob64)
index 75b41b1145324e6e3da67d7a1db9e77726227be2..5162ec5b17b485ca5775040f5446b3ea92d04281 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -18,6 +18,6 @@
 
 #include <inttypes.h>
 
-#include <sysdeps/generic/labs.c>
+#include <stdlib/labs.c>
 
 weak_alias (labs, imaxabs)
index ff213914ecff85d517777d38fa041b748d9e811b..e4681a3b8ee85cf5a8b5effffddb0c03fdbbe205 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
 
 #include <inttypes.h>
 
-#include <sysdeps/generic/ldiv.c>
+#include <stdlib/ldiv.c>
 
 #undef imaxdiv
 weak_alias (ldiv, imaxdiv)
index ec07ea726166289ea85d9dc07b35634c031192cb..2e1b2293494154085cd6aa6ea5c8abc212a833b9 100644 (file)
@@ -3,7 +3,7 @@
 #define strtoll strtoll_XXX
 #define strtoq strtoq_XXX
 
-#include <sysdeps/generic/strtol.c>
+#include <stdlib/strtol.c>
 
 #undef __strtoll_internal
 #undef strtoll
index 5a5cd8d0b7e8b1c9947f9fbb02addcb5bd6eb1a7..b2cd102add15882ce31406c7620331dd98f85f89 100644 (file)
@@ -3,7 +3,7 @@
 #define __strtoll_l __strtoll_l_XXX
 #define strtoll_l strtoll_l_XXX
 
-#include <sysdeps/generic/strtol_l.c>
+#include <stdlib/strtol_l.c>
 
 #undef ____strtoll_l_internal
 #undef __strtoll_l
index ac3ca711168d899b669564eefc0f0ddb2fc3d246..401882ce0d1b47a49acd9d95ccc841f5cca3f519 100644 (file)
@@ -3,7 +3,7 @@
 #define strtoull strtoull_XXX
 #define strtouq strtouq_XXX
 
-#include <sysdeps/generic/strtoul.c>
+#include <stdlib/strtoul.c>
 
 #undef __strtoull_internal
 #undef strtoull
index 9ee00a379afe462aee8cf44347c41ac73a36331e..80cca332b1994f4b2ee4051b4c18c65d843e67c1 100644 (file)
@@ -3,7 +3,7 @@
 #define __strtoull_l __strtoull_l_XXX
 #define strtoull_l strtoull_l_XXX
 
-#include <sysdeps/generic/strtoul_l.c>
+#include <stdlib/strtoul_l.c>
 
 #undef ____strtoull_l_internal
 #undef __strtoull_l
index 96870cbd3c784f52aa286ad939fca5e0d706be7e..b10895a82ba6018fe1c2c27a17850c60d2bcd495 100644 (file)
@@ -3,7 +3,7 @@
 #define wcstoll wcstoll_XXX
 #define wcstoq wcstoq_XXX
 
-#include <sysdeps/generic/wcstol.c>
+#include <wcsmbs/wcstol.c>
 
 #undef __wcstoll_internal
 #undef wcstoll
index fe81147fe27a03e03902aab8dfacd29de89e09b5..4f48f60c659f89ebed4077f779078f3fc5ee79ca 100644 (file)
@@ -3,7 +3,7 @@
 #define __wcstoll_l ___wcstoll_l_XXX
 #define wcstoll_l __wcstoll_l_XX
 
-#include <sysdeps/generic/wcstol_l.c>
+#include <wcsmbs/wcstol_l.c>
 
 #undef ____wcstoll_l_internal
 #undef __wcstoll_l
index b6f5d9ac07673c2a2e064500880d0652ccc915c1..2becb807449c5a116ef022c139031b225fe73cf4 100644 (file)
@@ -3,7 +3,7 @@
 #define wcstoull wcstoull_XXX
 #define wcstouq wcstouq_XXX
 
-#include <sysdeps/generic/wcstoul.c>
+#include <wcsmbs/wcstoul.c>
 
 #undef __wcstoull_internal
 #undef wcstoull
index d13bd5b16aec8d9e13670569f8d10fea3c375ec2..c376fa0e819e020014cec911e7cfb1db9e3357be 100644 (file)
@@ -3,7 +3,7 @@
 #define __wcstoull_l ___wcstoull_l_XXX
 #define wcstoull_l __wcstoull_l_XXX
 
-#include <sysdeps/generic/wcstoul_l.c>
+#include <wcsmbs/wcstoul_l.c>
 
 #undef ____wcstoull_l_internal
 #undef __wcstoull_l
index 9ed480c540a5dd9c5c005af9157d08506d9fac2a..becfb4f79dc52c5f95730702890c3aece7608c61 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -50,5 +50,8 @@ ENTRY(__longjmp)
        mov %esi, %eax
        movq (JB_PC*8)(%rdi),%rdx
        movq (JB_RSP*8)(%rdi),%rsp
+#ifdef PTR_DEMANGLE
+       PTR_DEMANGLE (%rdx)
+#endif
        jmpq *%rdx
 END (BP_SYM (__longjmp))
index fdf4833dc6ee07ef48e072647e2a7e2eb1e7ffb9..216c503ccb5214ff09e365c70b1a0f33acf2cee4 100644 (file)
@@ -33,6 +33,7 @@ ENTRY (BP_SYM (setjmp))
        /* Set up arguments, we only need to set the 2nd arg.  */
        movl $1, %esi
 #ifdef PIC
+       jmp HIDDEN_JUMPTARGET (__sigsetjmp)
 #else
        jmp BP_SYM (__sigsetjmp)
 #endif
index d6ca102a88b14db778431728d500190069cfcf68..b701b20b872c03d6df68942a9eab6d4e1987f1a4 100644 (file)
@@ -1,5 +1,5 @@
 /* Print floating point number in hexadecimal notation according to ISO C99.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997,1998,1999,2000,2001,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -89,4 +89,4 @@ do {                                                                        \
        }                                                                     \
 } while (0)
 
-#include <sysdeps/generic/printf_fphex.c>
+#include <stdio-common/printf_fphex.c>
index 811ab1d913f482a0d16bff7ae25a6e4d387035fe..8af5502042e64dece829d98829a51eff6164ed1a 100644 (file)
@@ -1,5 +1,5 @@
 /* setjmp for x86-64.
-   Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -34,13 +34,22 @@ ENTRY (__sigsetjmp)
        leaq 8(%rsp), %rdx      /* Save SP as it will be after we return.  */
        movq %rdx, (JB_RSP*8)(%rdi)
        movq (%rsp), %rax       /* Save PC we are returning to now.  */
+#ifdef PTR_MANGLE
+       PTR_MANGLE (%rax)
+#endif
        movq %rax, (JB_PC*8)(%rdi)
 
+#if defined NOT_IN_libc && defined IS_IN_rtld
+       /* In ld.so we never save the signal mask.  */
+       xorl %eax, %eax
+       retq
+#else
        /* Make a tail call to __sigjmp_save; it takes the same args.  */
-#ifdef PIC
+# ifdef        PIC
        jmp C_SYMBOL_NAME (BP_SYM (__sigjmp_save))@PLT
-#else
+# else
        jmp BP_SYM (__sigjmp_save)
+# endif
 #endif
 END (BP_SYM (__sigsetjmp))
 hidden_def (__sigsetjmp)
similarity index 100%
rename from sysdeps/generic/msgctl.c
rename to sysvipc/msgctl.c
similarity index 100%
rename from sysdeps/generic/msgget.c
rename to sysvipc/msgget.c
similarity index 100%
rename from sysdeps/generic/msgrcv.c
rename to sysvipc/msgrcv.c
similarity index 100%
rename from sysdeps/generic/msgsnd.c
rename to sysvipc/msgsnd.c
similarity index 100%
rename from sysdeps/generic/semctl.c
rename to sysvipc/semctl.c
similarity index 100%
rename from sysdeps/generic/semget.c
rename to sysvipc/semget.c
similarity index 100%
rename from sysdeps/generic/semop.c
rename to sysvipc/semop.c
similarity index 100%
rename from sysdeps/generic/shmat.c
rename to sysvipc/shmat.c
similarity index 100%
rename from sysdeps/generic/shmctl.c
rename to sysvipc/shmctl.c
similarity index 100%
rename from sysdeps/generic/shmdt.c
rename to sysvipc/shmdt.c
similarity index 100%
rename from sysdeps/generic/shmget.c
rename to sysvipc/shmget.c
similarity index 100%
rename from sysdeps/generic/speed.c
rename to termios/speed.c
similarity index 100%
rename from sysdeps/generic/tcdrain.c
rename to termios/tcdrain.c
similarity index 100%
rename from sysdeps/generic/tcflow.c
rename to termios/tcflow.c
similarity index 100%
rename from sysdeps/generic/tcflush.c
rename to termios/tcflush.c
similarity index 100%
rename from sysdeps/generic/adjtime.c
rename to time/adjtime.c
similarity index 100%
rename from sysdeps/generic/clock.c
rename to time/clock.c
similarity index 100%
rename from sysdeps/generic/ftime.c
rename to time/ftime.c
similarity index 100%
rename from sysdeps/generic/getitimer.c
rename to time/getitimer.c
similarity index 100%
rename from sysdeps/generic/setitimer.c
rename to time/setitimer.c
similarity index 100%
rename from sysdeps/generic/stime.c
rename to time/stime.c
index 199125bff314894ca9d3f32e5bf52e131c796826..96649ffa45f6e4e2389143d2528516569e8ee192 100644 (file)
@@ -153,7 +153,7 @@ extern int futimes (int __fd, __const struct timeval __tvp[2]) __THROW;
    modification time of FILE to TVP[1].  If TVP is a null pointer, use
    the current time instead.  Returns 0 on success, -1 on errors.  */
 extern int futimesat (int __fd, __const char *__file,
-                     __const struct timeval __tvp[2]) __THROW __nonnull ((2));
+                     __const struct timeval __tvp[2]) __THROW;
 #endif
 
 
similarity index 100%
rename from sysdeps/generic/time.c
rename to time/time.c
index 4aab7e8d892117d21c2c243f70b234f83bab4e02..7446bda89e80154f019acc77cfe2ee166b68f09a 100644 (file)
@@ -47,7 +47,7 @@ include ../Rules
 CFLAGS-wcwidth.c = -I../wctype
 CFLAGS-wcswidth.c = -I../wctype
 
-strtox-CFLAGS = -I../include -I../stdlib
+strtox-CFLAGS = -I../include
 CFLAGS-wcstol.c = $(strtox-CFLAGS)
 CFLAGS-wcstoul.c = $(strtox-CFLAGS)
 CFLAGS-wcstoll.c = $(strtox-CFLAGS)
@@ -64,6 +64,9 @@ CFLAGS-wcstold_l.c = $(strtox-CFLAGS)
 CFLAGS-wcstof_l.c = $(strtox-CFLAGS)
 CFLAGS-tst-wchar-h.c = -D_FORTIFY_SOURCE=2
 
+# We need to find the default version of strtold_l in stdlib.
+CPPFLAGS-wcstold_l.c = -I../stdlib
+
 tst-btowc-ENV = LOCPATH=$(common-objpfx)localedata
 tst-mbrtowc-ENV = LOCPATH=$(common-objpfx)localedata
 tst-wcrtomb-ENV = LOCPATH=$(common-objpfx)localedata
index 6add7ed8bbb08660a3d9648f62cb226c02a80472..6517d4f635ec161c7bed7f69e519e2a96050dfcb 100644 (file)
@@ -26,6 +26,8 @@
 #include <wcsmbsload.h>
 #include <limits.h>
 
+#include <sysdep.h>
+
 
 wint_t
 __btowc (c)
@@ -45,13 +47,17 @@ __btowc (c)
 
   /* Get the conversion functions.  */
   fcts = get_gconv_fcts (_NL_CURRENT_DATA (LC_CTYPE));
+  __gconv_btowc_fct btowc_fct = fcts->towc->__btowc_fct;
 
   if (__builtin_expect (fcts->towc_nsteps == 1, 1)
-      && __builtin_expect (fcts->towc->__btowc_fct != NULL, 1))
+      && __builtin_expect (btowc_fct != NULL, 1))
     {
       /* Use the shortcut function.  */
-      return DL_CALL_FCT (fcts->towc->__btowc_fct,
-                         (fcts->towc, (unsigned char) c));
+#ifdef PTR_DEMANGLE
+      if (fcts->towc->__shlib_handle != NULL)
+       PTR_DEMANGLE (btowc_fct);
+#endif
+      return DL_CALL_FCT (btowc_fct, (fcts->towc, (unsigned char) c));
     }
   else
     {
@@ -78,9 +84,13 @@ __btowc (c)
       /* Create the input string.  */
       inbuf[0] = c;
 
-      status = DL_CALL_FCT (fcts->towc->__fct,
-                           (fcts->towc, &data, &inptr, inptr + 1,
-                            NULL, &dummy, 0, 1));
+      __gconv_fct fct = fcts->towc->__fct;
+#ifdef PTR_DEMANGLE
+      if (fcts->towc->__shlib_handle != NULL)
+       PTR_DEMANGLE (fct);
+#endif
+      status = DL_CALL_FCT (fct, (fcts->towc, &data, &inptr, inptr + 1,
+                                 NULL, &dummy, 0, 1));
 
       if (status != __GCONV_OK && status != __GCONV_FULL_OUTPUT
          && status != __GCONV_EMPTY_INPUT)
index eb2a312b7c106d38013cde1eee8baec33fc0de19..b53457173611a619a9327cb99162dd2a01fe66bc 100644 (file)
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <dlfcn.h>
 #include <errno.h>
 #include <gconv.h>
 #include <wchar.h>
 #include <wcsmbsload.h>
 
-#include <assert.h>
+#include <sysdep.h>
 
 #ifndef EILSEQ
 # define EILSEQ EINVAL
@@ -73,9 +74,13 @@ __mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
   endbuf = inbuf + n;
   if (__builtin_expect (endbuf < inbuf, 0))
     endbuf = (const unsigned char *) ~(uintptr_t) 0;
-  status = DL_CALL_FCT (fcts->towc->__fct,
-                       (fcts->towc, &data, &inbuf, endbuf,
-                        NULL, &dummy, 0, 1));
+  __gconv_fct fct = fcts->towc->__fct;
+#ifdef PTR_DEMANGLE
+  if (fcts->towc->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
+  status = DL_CALL_FCT (fct, (fcts->towc, &data, &inbuf, endbuf,
+                             NULL, &dummy, 0, 1));
 
   /* There must not be any problems with the conversion but illegal input
      characters.  The output buffer must be large enough, otherwise the
index ef5ca06e2f303cb063d730f7baf5641a7763ca2e..8d0b9d36094913ded5791f1af4281485b3edbba4 100644 (file)
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <dlfcn.h>
 #include <errno.h>
 #include <gconv.h>
@@ -24,7 +25,7 @@
 #include <wchar.h>
 #include <wcsmbsload.h>
 
-#include <assert.h>
+#include <sysdep.h>
 
 #ifndef EILSEQ
 # define EILSEQ EINVAL
@@ -69,6 +70,11 @@ __mbsnrtowcs (dst, src, nmc, len, ps)
 
   /* Get the structure with the function pointers.  */
   towc = fcts->towc;
+  __gconv_fct fct = towc->__fct;
+#ifdef PTR_DEMANGLE
+  if (towc->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
 
   /* We have to handle DST == NULL special.  */
   if (dst == NULL)
@@ -82,9 +88,8 @@ __mbsnrtowcs (dst, src, nmc, len, ps)
        {
          data.__outbuf = (unsigned char *) buf;
 
-         status = DL_CALL_FCT (towc->__fct,
-                               (towc, &data, &inbuf, srcend, NULL,
-                                &dummy, 0, 1));
+         status = DL_CALL_FCT (fct, (towc, &data, &inbuf, srcend, NULL,
+                                     &dummy, 0, 1));
 
          result += (wchar_t *) data.__outbuf - buf;
        }
@@ -103,7 +108,7 @@ __mbsnrtowcs (dst, src, nmc, len, ps)
       data.__outbuf = (unsigned char *) dst;
       data.__outbufend = data.__outbuf + len * sizeof (wchar_t);
 
-      status = DL_CALL_FCT (towc->__fct,
+      status = DL_CALL_FCT (fct,
                            (towc, &data, (const unsigned char **) src, srcend,
                             NULL, &dummy, 0, 1));
 
index c44c8e50661194c21915355d2c1601f6566c2f6f..264c410c92ee75466656dc9e4acad62f665b4b4b 100644 (file)
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <ctype.h>
 #include <string.h>
 #include "wcsmbsload.h"
@@ -28,7 +29,7 @@
 #include <wchar.h>
 #include <wcsmbsload.h>
 
-#include <assert.h>
+#include <sysdep.h>
 
 #ifndef EILSEQ
 # define EILSEQ EINVAL
@@ -63,6 +64,11 @@ __mbsrtowcs_l (dst, src, len, ps, l)
 
   /* Get the structure with the function pointers.  */
   towc = fcts->towc;
+  __gconv_fct fct = towc->__fct;
+#ifdef PTR_DEMANGLE
+  if (towc->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
 
   /* We have to handle DST == NULL special.  */
   if (dst == NULL)
@@ -81,9 +87,8 @@ __mbsrtowcs_l (dst, src, len, ps, l)
        {
          data.__outbuf = (unsigned char *) buf;
 
-         status = DL_CALL_FCT (towc->__fct,
-                               (towc, &data, &inbuf, srcend, NULL,
-                                &non_reversible, 0, 1));
+         status = DL_CALL_FCT (fct, (towc, &data, &inbuf, srcend, NULL,
+                                     &non_reversible, 0, 1));
 
          result += (wchar_t *) data.__outbuf - buf;
        }
@@ -116,9 +121,8 @@ __mbsrtowcs_l (dst, src, len, ps, l)
             worst case we need one input byte for one output wchar_t.  */
          srcend = srcp + __strnlen ((const char *) srcp, len) + 1;
 
-         status = DL_CALL_FCT (towc->__fct,
-                               (towc, &data, &srcp, srcend, NULL,
-                                &non_reversible, 0, 1));
+         status = DL_CALL_FCT (fct, (towc, &data, &srcp, srcend, NULL,
+                                     &non_reversible, 0, 1));
          if ((status != __GCONV_EMPTY_INPUT
               && status != __GCONV_INCOMPLETE_INPUT)
              /* Not all input read.  */
index f7971e704bec9b603a3990582a74bf3aab183fde..aa51b6891b07bc837b4456bb44b8fa06b352beea 100644 (file)
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <dlfcn.h>
 #include <errno.h>
 #include <gconv.h>
@@ -24,7 +25,7 @@
 #include <wchar.h>
 #include <wcsmbsload.h>
 
-#include <assert.h>
+#include <sysdep.h>
 
 #ifndef EILSEQ
 # define EILSEQ EINVAL
@@ -65,15 +66,19 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
 
   /* Get the conversion functions.  */
   fcts = get_gconv_fcts (_NL_CURRENT_DATA (LC_CTYPE));
+  __gconv_fct fct = fcts->tomb->__fct;
+#ifdef PTR_DEMANGLE
+  if (fcts->tomb->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
 
   /* If WC is the NUL character we write into the output buffer the byte
      sequence necessary for PS to get into the initial state, followed
      by a NUL byte.  */
   if (wc == L'\0')
     {
-      status = DL_CALL_FCT (fcts->tomb->__fct,
-                           (fcts->tomb, &data, NULL, NULL,
-                            NULL, &dummy, 1, 1));
+      status = DL_CALL_FCT (fct, (fcts->tomb, &data, NULL, NULL,
+                                 NULL, &dummy, 1, 1));
 
       if (status == __GCONV_OK || status == __GCONV_EMPTY_INPUT)
        *data.__outbuf++ = '\0';
@@ -83,7 +88,7 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
       /* Do a normal conversion.  */
       const unsigned char *inbuf = (const unsigned char *) &wc;
 
-      status = DL_CALL_FCT (fcts->tomb->__fct,
+      status = DL_CALL_FCT (fct,
                            (fcts->tomb, &data, &inbuf,
                             inbuf + sizeof (wchar_t), NULL, &dummy, 0, 1));
     }
index 1d7374b38619b5948b236a689558c465a0b38193..e82b1ffaff9bc02adbc2edecf739989de9a54b8c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998,1999,2000,2001,2002,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2002,2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -29,7 +29,7 @@
 
 
 /* These are the descriptions for the default conversion functions.  */
-static struct __gconv_step to_wc =
+static const struct __gconv_step to_wc =
 {
   .__shlib_handle = NULL,
   .__modname = NULL,
@@ -48,7 +48,7 @@ static struct __gconv_step to_wc =
   .__data = NULL
 };
 
-static struct __gconv_step to_mb =
+static const struct __gconv_step to_mb =
 {
   .__shlib_handle = NULL,
   .__modname = NULL,
@@ -71,9 +71,9 @@ static struct __gconv_step to_mb =
 /* For the default locale we only have to handle ANSI_X3.4-1968.  */
 const struct gconv_fcts __wcsmbs_gconv_fcts_c =
 {
-  .towc = &to_wc,
+  .towc = (struct __gconv_step *) &to_wc,
   .towc_nsteps = 1,
-  .tomb = &to_mb,
+  .tomb = (struct __gconv_step *) &to_mb,
   .tomb_nsteps = 1
 };
 
index 0252b7fa234a5cfe05fae9e0e0f6508cdd283df0..171fc3c227f4c6e0ebd4901c740c17e70297b23d 100644 (file)
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <dlfcn.h>
 #include <errno.h>
 #include <gconv.h>
 #include <wchar.h>
 #include <wcsmbsload.h>
 
-#include <assert.h>
+#include <sysdep.h>
 
 #ifndef EILSEQ
 # define EILSEQ EINVAL
@@ -67,6 +68,11 @@ __wcsnrtombs (dst, src, nwc, len, ps)
 
   /* Get the structure with the function pointers.  */
   tomb = fcts->tomb;
+  __gconv_fct fct = tomb->__fct;
+#ifdef PTR_DEMANGLE
+  if (tomb->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
 
   /* We have to handle DST == NULL special.  */
   if (dst == NULL)
@@ -82,10 +88,9 @@ __wcsnrtombs (dst, src, nwc, len, ps)
        {
          data.__outbuf = buf;
 
-         status = DL_CALL_FCT (tomb->__fct,
-                               (tomb, &data, &inbuf,
-                                (const unsigned char *) srcend, NULL,
-                                &dummy, 0, 1));
+         status = DL_CALL_FCT (fct, (tomb, &data, &inbuf,
+                                     (const unsigned char *) srcend, NULL,
+                                     &dummy, 0, 1));
 
          /* Count the number of bytes.  */
          result += data.__outbuf - buf;
@@ -107,10 +112,9 @@ __wcsnrtombs (dst, src, nwc, len, ps)
       data.__outbuf = (unsigned char *) dst;
       data.__outbufend = (unsigned char *) dst + len;
 
-      status = DL_CALL_FCT (tomb->__fct,
-                           (tomb, &data, (const unsigned char **) src,
-                            (const unsigned char *) srcend, NULL,
-                            &dummy, 0, 1));
+      status = DL_CALL_FCT (fct, (tomb, &data, (const unsigned char **) src,
+                                 (const unsigned char *) srcend, NULL,
+                                 &dummy, 0, 1));
 
       /* Count the number of bytes.  */
       result = data.__outbuf - (unsigned char *) dst;
index d41ca5366b344bb74e95316c91dd183d3042f470..5973fd93032f654e403a81cae8943e3088df1194 100644 (file)
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <dlfcn.h>
 #include <errno.h>
 #include <stdlib.h>
@@ -24,7 +25,7 @@
 #include <wchar.h>
 #include <wcsmbsload.h>
 
-#include <assert.h>
+#include <sysdep.h>
 
 #ifndef EILSEQ
 # define EILSEQ EINVAL
@@ -59,6 +60,11 @@ __wcsrtombs (dst, src, len, ps)
 
   /* Get the structure with the function pointers.  */
   tomb = fcts->tomb;
+  __gconv_fct fct = tomb->__fct;
+#ifdef PTR_DEMANGLE
+  if (tomb->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
 
   /* We have to handle DST == NULL special.  */
   if (dst == NULL)
@@ -79,10 +85,9 @@ __wcsrtombs (dst, src, len, ps)
        {
          data.__outbuf = buf;
 
-         status = DL_CALL_FCT (tomb->__fct,
-                               (tomb, &data, &inbuf,
-                                (const unsigned char *) srcend, NULL,
-                                &dummy, 0, 1));
+         status = DL_CALL_FCT (fct, (tomb, &data, &inbuf,
+                                     (const unsigned char *) srcend, NULL,
+                                     &dummy, 0, 1));
 
          /* Count the number of bytes.  */
          result += data.__outbuf - buf;
@@ -108,10 +113,9 @@ __wcsrtombs (dst, src, len, ps)
       data.__outbuf = (unsigned char *) dst;
       data.__outbufend = (unsigned char *) dst + len;
 
-      status = DL_CALL_FCT (tomb->__fct,
-                           (tomb, &data, (const unsigned char **) src,
-                            (const unsigned char *) srcend, NULL,
-                            &dummy, 0, 1));
+      status = DL_CALL_FCT (fct, (tomb, &data, (const unsigned char **) src,
+                                 (const unsigned char *) srcend, NULL,
+                                 &dummy, 0, 1));
 
       /* Count the number of bytes.  */
       result = data.__outbuf - (unsigned char *) dst;
similarity index 90%
rename from sysdeps/generic/wcstol.c
rename to wcsmbs/wcstol.c
index b121d1387624e37271b09bb775c46e2a4ca47689..b238d04b1921c02fd4a5006cdcb1d374e0593ec2 100644 (file)
@@ -1,5 +1,5 @@
 /* Function to parse a `long int' from text.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
 
@@ -20,4 +20,4 @@
 
 #define        USE_WIDE_CHAR   1
 
-#include <sysdeps/generic/strtol.c>
+#include <stdlib/strtol.c>
similarity index 91%
rename from sysdeps/generic/wcstol_l.c
rename to wcsmbs/wcstol_l.c
index f1b4171f186a81d92193031c9f86163661201a19..3d3bf76ea60f8b082f4a0dc9404ed51b4988ae1d 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert string representing a number to integer value, using given locale.
-   Copyright (C) 1997, 2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2002, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -27,4 +27,4 @@
 extern long int ____wcstol_l_internal (const wchar_t *, wchar_t **, int, int,
                                       __locale_t);
 
-#include "strtol_l.c"
+#include <stdlib/strtol_l.c>
similarity index 100%
rename from sysdeps/generic/wcstoll.c
rename to wcsmbs/wcstoll.c
similarity index 100%
rename from sysdeps/generic/wcstoul.c
rename to wcsmbs/wcstoul.c
similarity index 100%
rename from sysdeps/generic/wcstoull.c
rename to wcsmbs/wcstoull.c
index 0f241577a410d0a07957a1f3bbb30178dc4b1c2b..cbaac533675f39329f35ae20ec35ca3965c65de4 100644 (file)
@@ -24,6 +24,8 @@
 #include <wchar.h>
 #include <wcsmbsload.h>
 
+#include <sysdep.h>
+
 
 int
 wctob (c)
@@ -64,7 +66,12 @@ wctob (c)
   inbuf[0] = c;
 
   const unsigned char *argptr = (const unsigned char *) inptr;
-  status = DL_CALL_FCT (fcts->tomb->__fct,
+  __gconv_fct fct = fcts->tomb->__fct;
+#ifdef PTR_DEMANGLE
+  if (fcts->tomb->__shlib_handle != NULL)
+    PTR_DEMANGLE (fct);
+#endif
+  status = DL_CALL_FCT (fct,
                        (fcts->tomb, &data, &argptr,
                         argptr + sizeof (inbuf[0]), NULL, &dummy, 0, 1));