summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/ChangeLog150
-rw-r--r--libc/NEWS4
-rw-r--r--libc/Versions.def1
-rwxr-xr-xlibc/configure1
-rw-r--r--libc/configure.in1
-rw-r--r--libc/elf/elf.h2
-rw-r--r--libc/inet/Makefile3
-rw-r--r--libc/inet/getnameinfo.c3
-rw-r--r--libc/inet/tst-getni1.c36
-rw-r--r--libc/inet/tst-getni2.c41
-rw-r--r--libc/locale/iso-639.def4
-rw-r--r--libc/locale/programs/ld-address.c4
-rw-r--r--libc/localedata/ChangeLog7
-rw-r--r--libc/localedata/SUPPORTED1
-rw-r--r--libc/localedata/locales/hne_IN180
-rw-r--r--libc/localedata/locales/sd_IN2
-rw-r--r--libc/localedata/locales/sd_IN@devanagari2
-rw-r--r--libc/login/utmp_file.c60
-rw-r--r--libc/nis/nss_nis/nis-hosts.c57
-rw-r--r--libc/nptl/ChangeLog27
-rw-r--r--libc/nptl/descr.h4
-rw-r--r--libc/nptl/sysdeps/pthread/pthread.h4
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h6
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h6
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h10
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h6
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h4
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h6
-rw-r--r--libc/nptl/sysdeps/x86_64/tls.h10
-rw-r--r--libc/nscd/connections.c69
-rw-r--r--libc/nscd/nscd.h1
-rwxr-xr-xlibc/posix/globtest.sh9
-rw-r--r--libc/posix/regex_internal.h5
-rw-r--r--libc/resolv/nss_dns/dns-host.c20
-rw-r--r--libc/resolv/res_init.c11
-rw-r--r--libc/resolv/res_send.c58
-rw-r--r--libc/scripts/firstversions.awk31
-rw-r--r--libc/scripts/versions.awk8
-rw-r--r--libc/socket/Makefile2
-rw-r--r--libc/socket/Versions3
-rw-r--r--libc/socket/accept4.c (renamed from libc/socket/paccept.c)11
-rw-r--r--libc/socket/sys/socket.h9
-rw-r--r--libc/stdlib/Makefile3
-rw-r--r--libc/stdlib/setenv.c29
-rw-r--r--libc/stdlib/tst-unsetenv1.c12
-rw-r--r--libc/sysdeps/i386/dl-tlsdesc.S3
-rw-r--r--libc/sysdeps/mach/strerror_l.c102
-rw-r--r--libc/sysdeps/posix/getaddrinfo.c4
-rw-r--r--libc/sysdeps/unix/sysv/linux/accept4.c (renamed from libc/sysdeps/unix/sysv/linux/paccept.c)20
-rw-r--r--libc/sysdeps/unix/sysv/linux/alpha/ipc_priv.h47
-rw-r--r--libc/sysdeps/unix/sysv/linux/alpha/wordexp.c60
-rw-r--r--libc/sysdeps/unix/sysv/linux/bits/sched.h27
-rw-r--r--libc/sysdeps/unix/sysv/linux/bits/socket.h2
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/accept4.S (renamed from libc/sysdeps/unix/sysv/linux/i386/paccept.S)164
-rw-r--r--libc/sysdeps/unix/sysv/linux/i386/socket.S4
-rw-r--r--libc/sysdeps/unix/sysv/linux/ia64/wordexp.c61
-rw-r--r--libc/sysdeps/unix/sysv/linux/kernel-features.h8
-rw-r--r--libc/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h48
-rw-r--r--libc/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c2
-rw-r--r--ports/ChangeLog.alpha25
-rw-r--r--ports/ChangeLog.arm12
-rw-r--r--ports/ChangeLog.mips15
-rw-r--r--ports/sysdeps/alpha/Implies (renamed from libc/sysdeps/alpha/Implies)0
-rw-r--r--ports/sysdeps/alpha/Makefile (renamed from libc/sysdeps/alpha/Makefile)0
-rw-r--r--ports/sysdeps/alpha/Subdirs (renamed from libc/sysdeps/alpha/Subdirs)0
-rw-r--r--ports/sysdeps/alpha/Versions (renamed from libc/sysdeps/alpha/Versions)0
-rw-r--r--ports/sysdeps/alpha/__longjmp.S (renamed from libc/sysdeps/alpha/__longjmp.S)0
-rw-r--r--ports/sysdeps/alpha/_mcount.S (renamed from libc/sysdeps/alpha/_mcount.S)0
-rw-r--r--ports/sysdeps/alpha/add_n.s (renamed from libc/sysdeps/alpha/add_n.s)0
-rw-r--r--ports/sysdeps/alpha/addmul_1.s (renamed from libc/sysdeps/alpha/addmul_1.s)0
-rw-r--r--ports/sysdeps/alpha/alphaev5/add_n.s (renamed from libc/sysdeps/alpha/alphaev5/add_n.s)0
-rw-r--r--ports/sysdeps/alpha/alphaev5/lshift.s (renamed from libc/sysdeps/alpha/alphaev5/lshift.s)0
-rw-r--r--ports/sysdeps/alpha/alphaev5/rshift.s (renamed from libc/sysdeps/alpha/alphaev5/rshift.s)0
-rw-r--r--ports/sysdeps/alpha/alphaev5/sub_n.s (renamed from libc/sysdeps/alpha/alphaev5/sub_n.s)0
-rw-r--r--ports/sysdeps/alpha/alphaev6/Implies (renamed from libc/sysdeps/alpha/alphaev6/Implies)0
-rw-r--r--ports/sysdeps/alpha/alphaev6/addmul_1.s (renamed from libc/sysdeps/alpha/alphaev6/addmul_1.s)0
-rw-r--r--ports/sysdeps/alpha/alphaev6/fpu/e_sqrt.S (renamed from libc/sysdeps/alpha/alphaev6/fpu/e_sqrt.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S (renamed from libc/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev6/memchr.S (renamed from libc/sysdeps/alpha/alphaev6/memchr.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev6/memcpy.S (renamed from libc/sysdeps/alpha/alphaev6/memcpy.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev6/memset.S (renamed from libc/sysdeps/alpha/alphaev6/memset.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev6/stxcpy.S (renamed from libc/sysdeps/alpha/alphaev6/stxcpy.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev6/stxncpy.S (renamed from libc/sysdeps/alpha/alphaev6/stxncpy.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/Implies (renamed from libc/sysdeps/alpha/alphaev67/Implies)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/ffs.S (renamed from libc/sysdeps/alpha/alphaev67/ffs.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/ffsll.S (renamed from libc/sysdeps/alpha/alphaev67/ffsll.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/fpu/Implies (renamed from libc/sysdeps/alpha/alphaev67/fpu/Implies)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/rawmemchr.S (renamed from libc/sysdeps/alpha/alphaev67/rawmemchr.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/stpcpy.S (renamed from libc/sysdeps/alpha/alphaev67/stpcpy.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/stpncpy.S (renamed from libc/sysdeps/alpha/alphaev67/stpncpy.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/strcat.S (renamed from libc/sysdeps/alpha/alphaev67/strcat.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/strchr.S (renamed from libc/sysdeps/alpha/alphaev67/strchr.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/strlen.S (renamed from libc/sysdeps/alpha/alphaev67/strlen.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/strncat.S (renamed from libc/sysdeps/alpha/alphaev67/strncat.S)0
-rw-r--r--ports/sysdeps/alpha/alphaev67/strrchr.S (renamed from libc/sysdeps/alpha/alphaev67/strrchr.S)0
-rw-r--r--ports/sysdeps/alpha/backtrace.c (renamed from libc/sysdeps/alpha/backtrace.c)0
-rw-r--r--ports/sysdeps/alpha/bb_init_func.S (renamed from libc/sysdeps/alpha/bb_init_func.S)0
-rw-r--r--ports/sysdeps/alpha/bits/atomic.h (renamed from libc/sysdeps/alpha/bits/atomic.h)0
-rw-r--r--ports/sysdeps/alpha/bits/endian.h (renamed from libc/sysdeps/alpha/bits/endian.h)0
-rw-r--r--ports/sysdeps/alpha/bits/link.h (renamed from libc/sysdeps/alpha/bits/link.h)0
-rw-r--r--ports/sysdeps/alpha/bits/mathdef.h (renamed from libc/sysdeps/alpha/bits/mathdef.h)20
-rw-r--r--ports/sysdeps/alpha/bits/setjmp.h (renamed from libc/sysdeps/alpha/bits/setjmp.h)0
-rw-r--r--ports/sysdeps/alpha/bsd-_setjmp.S (renamed from libc/sysdeps/alpha/bsd-_setjmp.S)0
-rw-r--r--ports/sysdeps/alpha/bsd-setjmp.S (renamed from libc/sysdeps/alpha/bsd-setjmp.S)0
-rw-r--r--ports/sysdeps/alpha/bzero.S (renamed from libc/sysdeps/alpha/bzero.S)0
-rw-r--r--ports/sysdeps/alpha/div.S (renamed from libc/sysdeps/alpha/div.S)0
-rw-r--r--ports/sysdeps/alpha/div_libc.h (renamed from libc/sysdeps/alpha/div_libc.h)0
-rw-r--r--ports/sysdeps/alpha/divl.S (renamed from libc/sysdeps/alpha/divl.S)0
-rw-r--r--ports/sysdeps/alpha/divlu.S (renamed from libc/sysdeps/alpha/divlu.S)0
-rw-r--r--ports/sysdeps/alpha/divq.S (renamed from libc/sysdeps/alpha/divq.S)0
-rw-r--r--ports/sysdeps/alpha/divqu.S (renamed from libc/sysdeps/alpha/divqu.S)0
-rw-r--r--ports/sysdeps/alpha/dl-dtprocnum.h (renamed from libc/sysdeps/alpha/dl-dtprocnum.h)0
-rw-r--r--ports/sysdeps/alpha/dl-machine.h (renamed from libc/sysdeps/alpha/dl-machine.h)0
-rw-r--r--ports/sysdeps/alpha/dl-sysdep.h (renamed from libc/sysdeps/alpha/dl-sysdep.h)0
-rw-r--r--ports/sysdeps/alpha/dl-tls.h (renamed from libc/sysdeps/alpha/dl-tls.h)0
-rw-r--r--ports/sysdeps/alpha/dl-trampoline.S (renamed from libc/sysdeps/alpha/dl-trampoline.S)0
-rw-r--r--[-rwxr-xr-x]ports/sysdeps/alpha/elf/configure (renamed from libc/sysdeps/alpha/elf/configure)0
-rw-r--r--ports/sysdeps/alpha/elf/configure.in (renamed from libc/sysdeps/alpha/elf/configure.in)0
-rw-r--r--ports/sysdeps/alpha/elf/initfini.c (renamed from libc/sysdeps/alpha/elf/initfini.c)0
-rw-r--r--ports/sysdeps/alpha/elf/start.S (renamed from libc/sysdeps/alpha/elf/start.S)0
-rw-r--r--ports/sysdeps/alpha/ffs.S (renamed from libc/sysdeps/alpha/ffs.S)0
-rw-r--r--ports/sysdeps/alpha/ffsll.S (renamed from libc/sysdeps/alpha/ffsll.S)0
-rw-r--r--ports/sysdeps/alpha/fpu/Versions (renamed from libc/sysdeps/alpha/fpu/Versions)0
-rw-r--r--ports/sysdeps/alpha/fpu/bits/fenv.h (renamed from libc/sysdeps/alpha/fpu/bits/fenv.h)0
-rw-r--r--ports/sysdeps/alpha/fpu/bits/mathinline.h (renamed from libc/sysdeps/alpha/fpu/bits/mathinline.h)0
-rw-r--r--ports/sysdeps/alpha/fpu/cabsf.c (renamed from libc/sysdeps/alpha/fpu/cabsf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/cargf.c (renamed from libc/sysdeps/alpha/fpu/cargf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/cfloat-compat.h (renamed from libc/sysdeps/alpha/fpu/cfloat-compat.h)0
-rw-r--r--ports/sysdeps/alpha/fpu/cimagf.c (renamed from libc/sysdeps/alpha/fpu/cimagf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/conjf.c (renamed from libc/sysdeps/alpha/fpu/conjf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/crealf.c (renamed from libc/sysdeps/alpha/fpu/crealf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/e_sqrt.c (renamed from libc/sysdeps/alpha/fpu/e_sqrt.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/fclrexcpt.c (renamed from libc/sysdeps/alpha/fpu/fclrexcpt.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/fedisblxcpt.c (renamed from libc/sysdeps/alpha/fpu/fedisblxcpt.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/feenablxcpt.c (renamed from libc/sysdeps/alpha/fpu/feenablxcpt.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/fegetenv.c (renamed from libc/sysdeps/alpha/fpu/fegetenv.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/fegetexcept.c (renamed from libc/sysdeps/alpha/fpu/fegetexcept.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/fegetround.c (renamed from libc/sysdeps/alpha/fpu/fegetround.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/feholdexcpt.c (renamed from libc/sysdeps/alpha/fpu/feholdexcpt.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/fenv_libc.h (renamed from libc/sysdeps/alpha/fpu/fenv_libc.h)0
-rw-r--r--ports/sysdeps/alpha/fpu/fesetenv.c (renamed from libc/sysdeps/alpha/fpu/fesetenv.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/fesetround.c (renamed from libc/sysdeps/alpha/fpu/fesetround.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/feupdateenv.c (renamed from libc/sysdeps/alpha/fpu/feupdateenv.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/fgetexcptflg.c (renamed from libc/sysdeps/alpha/fpu/fgetexcptflg.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/fpu_control.h (renamed from libc/sysdeps/alpha/fpu/fpu_control.h)0
-rw-r--r--ports/sysdeps/alpha/fpu/fsetexcptflg.c (renamed from libc/sysdeps/alpha/fpu/fsetexcptflg.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/ftestexcept.c (renamed from libc/sysdeps/alpha/fpu/ftestexcept.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/libm-test-ulps (renamed from libc/sysdeps/alpha/fpu/libm-test-ulps)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_cacosf.c (renamed from libc/sysdeps/alpha/fpu/s_cacosf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_cacoshf.c (renamed from libc/sysdeps/alpha/fpu/s_cacoshf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_casinf.c (renamed from libc/sysdeps/alpha/fpu/s_casinf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_casinhf.c (renamed from libc/sysdeps/alpha/fpu/s_casinhf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_catanf.c (renamed from libc/sysdeps/alpha/fpu/s_catanf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_catanhf.c (renamed from libc/sysdeps/alpha/fpu/s_catanhf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_ccosf.c (renamed from libc/sysdeps/alpha/fpu/s_ccosf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_ccoshf.c (renamed from libc/sysdeps/alpha/fpu/s_ccoshf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_ceil.c (renamed from libc/sysdeps/alpha/fpu/s_ceil.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_ceilf.c (renamed from libc/sysdeps/alpha/fpu/s_ceilf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_cexpf.c (renamed from libc/sysdeps/alpha/fpu/s_cexpf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_clog10f.c (renamed from libc/sysdeps/alpha/fpu/s_clog10f.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_clogf.c (renamed from libc/sysdeps/alpha/fpu/s_clogf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_copysign.c (renamed from libc/sysdeps/alpha/fpu/s_copysign.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_copysignf.c (renamed from libc/sysdeps/alpha/fpu/s_copysignf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_cpowf.c (renamed from libc/sysdeps/alpha/fpu/s_cpowf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_cprojf.c (renamed from libc/sysdeps/alpha/fpu/s_cprojf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_csinf.c (renamed from libc/sysdeps/alpha/fpu/s_csinf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_csinhf.c (renamed from libc/sysdeps/alpha/fpu/s_csinhf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_csqrtf.c (renamed from libc/sysdeps/alpha/fpu/s_csqrtf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_ctanf.c (renamed from libc/sysdeps/alpha/fpu/s_ctanf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_ctanhf.c (renamed from libc/sysdeps/alpha/fpu/s_ctanhf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_fabs.c (renamed from libc/sysdeps/alpha/fpu/s_fabs.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_fabsf.c (renamed from libc/sysdeps/alpha/fpu/s_fabsf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_floor.c (renamed from libc/sysdeps/alpha/fpu/s_floor.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_floorf.c (renamed from libc/sysdeps/alpha/fpu/s_floorf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_fmax.S (renamed from libc/sysdeps/alpha/fpu/s_fmax.S)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_fmaxf.S (renamed from libc/sysdeps/alpha/fpu/s_fmaxf.S)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_fmin.S (renamed from libc/sysdeps/alpha/fpu/s_fmin.S)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_fminf.S (renamed from libc/sysdeps/alpha/fpu/s_fminf.S)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_isnan.c (renamed from libc/sysdeps/alpha/fpu/s_isnan.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_isnanf.c (renamed from libc/sysdeps/alpha/fpu/s_isnanf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_llrint.c (renamed from libc/sysdeps/alpha/fpu/s_llrint.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_llrintf.c (renamed from libc/sysdeps/alpha/fpu/s_llrintf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_llround.c (renamed from libc/sysdeps/alpha/fpu/s_llround.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_llroundf.c (renamed from libc/sysdeps/alpha/fpu/s_llroundf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_lrint.c (renamed from libc/sysdeps/alpha/fpu/s_lrint.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_lrintf.c (renamed from libc/sysdeps/alpha/fpu/s_lrintf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_lround.c (renamed from libc/sysdeps/alpha/fpu/s_lround.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_lroundf.c (renamed from libc/sysdeps/alpha/fpu/s_lroundf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_nearbyint.c (renamed from libc/sysdeps/alpha/fpu/s_nearbyint.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_nearbyintf.c (renamed from libc/sysdeps/alpha/fpu/s_nearbyintf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_rint.c (renamed from libc/sysdeps/alpha/fpu/s_rint.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_rintf.c (renamed from libc/sysdeps/alpha/fpu/s_rintf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_round.c (renamed from libc/sysdeps/alpha/fpu/s_round.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_roundf.c (renamed from libc/sysdeps/alpha/fpu/s_roundf.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_trunc.c (renamed from libc/sysdeps/alpha/fpu/s_trunc.c)0
-rw-r--r--ports/sysdeps/alpha/fpu/s_truncf.c (renamed from libc/sysdeps/alpha/fpu/s_truncf.c)0
-rw-r--r--ports/sysdeps/alpha/gccframe.h (renamed from libc/sysdeps/alpha/gccframe.h)0
-rw-r--r--ports/sysdeps/alpha/hp-timing.h (renamed from libc/sysdeps/alpha/hp-timing.h)0
-rw-r--r--ports/sysdeps/alpha/htonl.S (renamed from libc/sysdeps/alpha/htonl.S)0
-rw-r--r--ports/sysdeps/alpha/htons.S (renamed from libc/sysdeps/alpha/htons.S)0
-rw-r--r--ports/sysdeps/alpha/jmpbuf-offsets.h (renamed from libc/sysdeps/alpha/jmpbuf-offsets.h)0
-rw-r--r--ports/sysdeps/alpha/jmpbuf-unwind.h (renamed from libc/sysdeps/alpha/jmpbuf-unwind.h)0
-rw-r--r--ports/sysdeps/alpha/ldiv.S (renamed from libc/sysdeps/alpha/ldiv.S)0
-rw-r--r--ports/sysdeps/alpha/libc-tls.c (renamed from libc/sysdeps/alpha/libc-tls.c)0
-rw-r--r--ports/sysdeps/alpha/lldiv.S (renamed from libc/sysdeps/alpha/lldiv.S)0
-rw-r--r--ports/sysdeps/alpha/lshift.s (renamed from libc/sysdeps/alpha/lshift.s)0
-rw-r--r--ports/sysdeps/alpha/machine-gmon.h (renamed from libc/sysdeps/alpha/machine-gmon.h)0
-rw-r--r--ports/sysdeps/alpha/memchr.S (renamed from libc/sysdeps/alpha/memchr.S)0
-rw-r--r--ports/sysdeps/alpha/memset.S (renamed from libc/sysdeps/alpha/memset.S)0
-rw-r--r--ports/sysdeps/alpha/memusage.h (renamed from libc/sysdeps/alpha/memusage.h)0
-rw-r--r--ports/sysdeps/alpha/mul_1.s (renamed from libc/sysdeps/alpha/mul_1.s)0
-rw-r--r--ports/sysdeps/alpha/nptl/Makefile (renamed from libc/nptl/sysdeps/alpha/Makefile)0
-rw-r--r--ports/sysdeps/alpha/nptl/elf/pt-initfini.c (renamed from libc/nptl/sysdeps/alpha/elf/pt-initfini.c)0
-rw-r--r--ports/sysdeps/alpha/nptl/pthread_spin_lock.S (renamed from libc/nptl/sysdeps/alpha/pthread_spin_lock.S)0
-rw-r--r--ports/sysdeps/alpha/nptl/pthread_spin_trylock.S (renamed from libc/nptl/sysdeps/alpha/pthread_spin_trylock.S)0
-rw-r--r--ports/sysdeps/alpha/nptl/pthreaddef.h (renamed from libc/nptl/sysdeps/alpha/pthreaddef.h)0
-rw-r--r--ports/sysdeps/alpha/nptl/tcb-offsets.sym (renamed from libc/nptl/sysdeps/alpha/tcb-offsets.sym)0
-rw-r--r--ports/sysdeps/alpha/nptl/tls.h (renamed from libc/nptl/sysdeps/alpha/tls.h)0
-rw-r--r--ports/sysdeps/alpha/nscd-types.h (renamed from libc/sysdeps/alpha/nscd-types.h)0
-rw-r--r--ports/sysdeps/alpha/preconfigure3
-rw-r--r--ports/sysdeps/alpha/rawmemchr.S (renamed from libc/sysdeps/alpha/rawmemchr.S)0
-rw-r--r--ports/sysdeps/alpha/reml.S (renamed from libc/sysdeps/alpha/reml.S)0
-rw-r--r--ports/sysdeps/alpha/remlu.S (renamed from libc/sysdeps/alpha/remlu.S)0
-rw-r--r--ports/sysdeps/alpha/remq.S (renamed from libc/sysdeps/alpha/remq.S)0
-rw-r--r--ports/sysdeps/alpha/remqu.S (renamed from libc/sysdeps/alpha/remqu.S)0
-rw-r--r--ports/sysdeps/alpha/rshift.s (renamed from libc/sysdeps/alpha/rshift.s)0
-rw-r--r--ports/sysdeps/alpha/setjmp.S (renamed from libc/sysdeps/alpha/setjmp.S)0
-rw-r--r--ports/sysdeps/alpha/shlib-versions14
-rw-r--r--ports/sysdeps/alpha/soft-fp/Makefile (renamed from libc/sysdeps/alpha/soft-fp/Makefile)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/Versions (renamed from libc/sysdeps/alpha/soft-fp/Versions)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/e_sqrtl.c (renamed from libc/sysdeps/alpha/soft-fp/e_sqrtl.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/local-soft-fp.h (renamed from libc/sysdeps/alpha/soft-fp/local-soft-fp.h)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_add.c (renamed from libc/sysdeps/alpha/soft-fp/ots_add.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_cmp.c (renamed from libc/sysdeps/alpha/soft-fp/ots_cmp.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_cmpe.c (renamed from libc/sysdeps/alpha/soft-fp/ots_cmpe.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_cvtqux.c (renamed from libc/sysdeps/alpha/soft-fp/ots_cvtqux.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_cvtqx.c (renamed from libc/sysdeps/alpha/soft-fp/ots_cvtqx.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_cvttx.c (renamed from libc/sysdeps/alpha/soft-fp/ots_cvttx.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_cvtxq.c (renamed from libc/sysdeps/alpha/soft-fp/ots_cvtxq.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_cvtxt.c (renamed from libc/sysdeps/alpha/soft-fp/ots_cvtxt.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_div.c (renamed from libc/sysdeps/alpha/soft-fp/ots_div.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_mul.c (renamed from libc/sysdeps/alpha/soft-fp/ots_mul.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_nintxq.c (renamed from libc/sysdeps/alpha/soft-fp/ots_nintxq.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/ots_sub.c (renamed from libc/sysdeps/alpha/soft-fp/ots_sub.c)0
-rw-r--r--ports/sysdeps/alpha/soft-fp/sfp-machine.h (renamed from libc/sysdeps/alpha/soft-fp/sfp-machine.h)0
-rw-r--r--ports/sysdeps/alpha/stackinfo.h (renamed from libc/sysdeps/alpha/stackinfo.h)0
-rw-r--r--ports/sysdeps/alpha/stpcpy.S (renamed from libc/sysdeps/alpha/stpcpy.S)0
-rw-r--r--ports/sysdeps/alpha/stpncpy.S (renamed from libc/sysdeps/alpha/stpncpy.S)0
-rw-r--r--ports/sysdeps/alpha/strcat.S (renamed from libc/sysdeps/alpha/strcat.S)0
-rw-r--r--ports/sysdeps/alpha/strchr.S (renamed from libc/sysdeps/alpha/strchr.S)0
-rw-r--r--ports/sysdeps/alpha/strcmp.S (renamed from libc/sysdeps/alpha/strcmp.S)0
-rw-r--r--ports/sysdeps/alpha/strcpy.S (renamed from libc/sysdeps/alpha/strcpy.S)0
-rw-r--r--ports/sysdeps/alpha/strlen.S (renamed from libc/sysdeps/alpha/strlen.S)0
-rw-r--r--ports/sysdeps/alpha/strncat.S (renamed from libc/sysdeps/alpha/strncat.S)0
-rw-r--r--ports/sysdeps/alpha/strncmp.S (renamed from libc/sysdeps/alpha/strncmp.S)0
-rw-r--r--ports/sysdeps/alpha/strncpy.S (renamed from libc/sysdeps/alpha/strncpy.S)0
-rw-r--r--ports/sysdeps/alpha/strrchr.S (renamed from libc/sysdeps/alpha/strrchr.S)0
-rw-r--r--ports/sysdeps/alpha/stxcpy.S (renamed from libc/sysdeps/alpha/stxcpy.S)0
-rw-r--r--ports/sysdeps/alpha/stxncpy.S (renamed from libc/sysdeps/alpha/stxncpy.S)0
-rw-r--r--ports/sysdeps/alpha/sub_n.s (renamed from libc/sysdeps/alpha/sub_n.s)0
-rw-r--r--ports/sysdeps/alpha/submul_1.s (renamed from libc/sysdeps/alpha/submul_1.s)0
-rw-r--r--ports/sysdeps/alpha/udiv_qrnnd.S (renamed from libc/sysdeps/alpha/udiv_qrnnd.S)0
-rw-r--r--ports/sysdeps/mach/alpha/machine-lock.h (renamed from libc/sysdeps/mach/alpha/machine-lock.h)0
-rw-r--r--ports/sysdeps/mach/alpha/machine-sp.h (renamed from libc/sysdeps/mach/alpha/machine-sp.h)0
-rw-r--r--ports/sysdeps/mach/alpha/setfpucw.c (renamed from libc/sysdeps/mach/alpha/setfpucw.c)0
-rw-r--r--ports/sysdeps/mach/alpha/syscall.S (renamed from libc/sysdeps/mach/alpha/syscall.S)0
-rw-r--r--ports/sysdeps/mach/alpha/sysdep.h (renamed from libc/sysdeps/mach/alpha/sysdep.h)0
-rw-r--r--ports/sysdeps/mach/alpha/thread_state.h (renamed from libc/sysdeps/mach/alpha/thread_state.h)0
-rw-r--r--ports/sysdeps/mach/hurd/alpha/bits/sigcontext.h (renamed from libc/sysdeps/mach/hurd/alpha/bits/sigcontext.h)0
-rw-r--r--ports/sysdeps/mach/hurd/alpha/exc2signal.c (renamed from libc/sysdeps/mach/hurd/alpha/exc2signal.c)0
-rw-r--r--ports/sysdeps/mach/hurd/alpha/init-first.c (renamed from libc/sysdeps/mach/hurd/alpha/init-first.c)0
-rw-r--r--ports/sysdeps/mach/hurd/alpha/intr-msg.h (renamed from libc/sysdeps/mach/hurd/alpha/intr-msg.h)0
-rw-r--r--ports/sysdeps/mach/hurd/alpha/longjmp-ts.c (renamed from libc/sysdeps/mach/hurd/alpha/longjmp-ts.c)0
-rw-r--r--ports/sysdeps/mach/hurd/alpha/sigreturn.c (renamed from libc/sysdeps/mach/hurd/alpha/sigreturn.c)0
-rw-r--r--ports/sysdeps/mach/hurd/alpha/static-start.S (renamed from libc/sysdeps/mach/hurd/alpha/static-start.S)0
-rw-r--r--ports/sysdeps/mach/hurd/alpha/trampoline.c (renamed from libc/sysdeps/mach/hurd/alpha/trampoline.c)0
-rw-r--r--ports/sysdeps/unix/alpha/Makefile (renamed from libc/sysdeps/unix/alpha/Makefile)0
-rw-r--r--ports/sysdeps/unix/alpha/pipe.S (renamed from libc/sysdeps/unix/alpha/pipe.S)0
-rw-r--r--ports/sysdeps/unix/alpha/rt-sysdep.S (renamed from libc/sysdeps/unix/alpha/rt-sysdep.S)0
-rw-r--r--ports/sysdeps/unix/alpha/sysdep.S (renamed from libc/sysdeps/unix/alpha/sysdep.S)0
-rw-r--r--ports/sysdeps/unix/alpha/sysdep.h (renamed from libc/sysdeps/unix/alpha/sysdep.h)0
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/bits/stat.h79
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/brk.S54
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/dl-brk.S1
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/fork.S28
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/killpg.S27
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/recv.S26
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/send.S26
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/sigblock.S29
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/sigpause.S30
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/sigsetmask.S29
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/sigvec.S29
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/start.S83
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/syscalls.list3
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/sysdep.h30
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/vhangup.S26
-rw-r--r--ports/sysdeps/unix/bsd/osf/alpha/waitpid.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/Implies (renamed from libc/sysdeps/unix/sysv/linux/alpha/Implies)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/Makefile (renamed from libc/sysdeps/unix/sysv/linux/alpha/Makefile)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/Versions (renamed from libc/sysdeps/unix/sysv/linux/alpha/Versions)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/a.out.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/a.out.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/adjtime.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/adjtime.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies (renamed from libc/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies (renamed from libc/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/a.out.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/a.out.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/dirent.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/dirent.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/errno.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/errno.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/ipc.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/ipc.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/mman.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/msq.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/netdb.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/resource.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/resource.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/sem.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/sem.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/shm.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/shm.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/signum.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/signum.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/stat.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/stat.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/statfs.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/statfs.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/termios.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/termios.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/brk.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/brk.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/clone.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/clone.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/dl-auxv.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/dl-auxv.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/dl-brk.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/dl-brk.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/dl-support.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/dl-support.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/fpu/Implies (renamed from libc/sysdeps/unix/sysv/linux/alpha/fpu/Implies)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/fxstat.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/fxstat.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/fxstatat.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/getclktck.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/getclktck.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/getcontext.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/getcontext.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/getdents.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/getdents.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/getdents64.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/getdents64.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/gethostname.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/gethostname.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/getitimer.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/getitimer.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/getrusage.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/getrusage.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/getsysstats.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/gettimeofday.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/gettimeofday.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/glob.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/glob.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/ioperm.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/ioperm.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/ipc_priv.h1
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/kernel_stat.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/kernel_stat.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/kernel_termios.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/kernel_termios.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/lxstat.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/lxstat.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/makecontext.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/makecontext.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/msgctl.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/msgctl.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/Makefile (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/Makefile)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/Versions (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/Versions)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/aio_cancel.c (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/aio_cancel.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/local_lim.h (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/semaphore.h (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/clone.S (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/clone.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/createthread.c (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/fork.c (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/fork.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/pt-vfork.S (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/pthread_once.c (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/sem_post.c (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/sem_post.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/sysdep-cancel.h (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_create.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_delete.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_gettime.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_settime.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/vfork.S (renamed from libc/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/oldglob.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/oldglob.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/pipe.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/pipe.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/register-dump.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/register-dump.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/select.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/select.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/semctl.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/semctl.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/setcontext.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/setcontext.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/setfpucw.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/setfpucw.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/setitimer.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/setitimer.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/setregid.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/setregid.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/setresgid.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/setresgid.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/setresuid.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/setresuid.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/setreuid.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/setreuid.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/settimeofday.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/settimeofday.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/shmctl.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/shmctl.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sigaction.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/sigaction.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sigprocmask.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/sigprocmask.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sigsuspend.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/sigsuspend.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sizes.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sizes.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/swapcontext.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/swapcontext.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sys/acct.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sys/acct.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sys/epoll.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sys/epoll.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sys/eventfd.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sys/eventfd.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sys/inotify.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sys/inotify.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sys/io.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sys/io.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sys/procfs.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sys/procfs.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sys/timerfd.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sys/timerfd.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sys/user.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sys/user.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/syscall.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/syscall.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/syscalls.list (renamed from libc/sysdeps/unix/sysv/linux/alpha/syscalls.list)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sysconf.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/sysconf.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/sysdep.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/sysdep.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym (renamed from libc/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/utimes.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/utimes.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/wait4.S (renamed from libc/sysdeps/unix/sysv/linux/alpha/wait4.S)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/wordexp.c1
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/xstat.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/xstat.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c (renamed from libc/sysdeps/unix/sysv/linux/alpha/xstatconv.c)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h (renamed from libc/sysdeps/unix/sysv/linux/alpha/xstatconv.h)0
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h2
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/bits/socket.h2
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h2
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/sys/signalfd.h2
426 files changed, 1236 insertions, 839 deletions
diff --git a/libc/ChangeLog b/libc/ChangeLog
index 3f23946db..3d676ba7f 100644
--- a/libc/ChangeLog
+++ b/libc/ChangeLog
@@ -1,3 +1,151 @@
+2008-12-08 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #6545]
+ * sysdeps/unix/sysv/linux/bits/socket.h (SCM_CREDENTIALS): Make
+ available only for __USE_GNU.
+
+ * inet/Makefile (tests): Add tst-getni2.
+ * inet/tst-getni2.c: New file.
+
+ [BZ #7080]
+ * inet/getnameinfo.c (getnameinfo): Check for output buffers being
+ NULL when NI_NAMEREQD is set.
+ Patch mostly by Yang Hongyang <yanghy@cn.fujitsu.com>.
+ * inet/Makefile (tests): Add tst-getni1.
+ * inet/tst-getni1.c: New file.
+
+2008-12-03 Petr Baudis <pasky@suse.cz>
+
+ [BZ #7067]
+ * nscd/connections.c (invalidate_cache): Use prune_run_lock
+ instead of prune_lock.
+ (nscd_run_prune): Before calling prune_cache, take prune_run_lock.
+ * nscd/nscd.h (database_dyn): Add prune_run_cache.
+
+2008-12-07 Ulrich Drepper <drepper@redhat.com>
+
+ * resolv/res_send.c (send_dg): Use correct guards for SOCK_CLOEXEC
+ use.
+
+ * sysdeps/unix/sysv/linux/kernel-features.h: Fix typo in accept4
+ handling.
+
+ * resolv/res_init.c (__res_vinit): Always assign to statp->nscount
+ after reading name server list.
+
+ [BZ #7058]
+ * nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyname4_r): Fix memory
+ handling for host name aliases.
+
+2008-11-24 Arkadiusz Miśkiewicz <arekm@maven.pl>
+
+ * sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Use LOAD_PIC_REG
+ instead of doing things manually.
+
+2008-11-26 Chris Steel <chris.steel.lnx@googlemail.com>
+
+ * posix/regex_internal.h (build_wcs_upper_buffer):
+ Return type is reg_error_t.
+
+2008-12-05 Ulrich Drepper <drepper@redhat.com>
+
+ * posix/globtest.sh: Use mktemp to create temporary file and
+ directory.
+
+ * sysdeps/unix/sysv/linux/bits/sched.h (__CPU_SET_S): Handle large
+ sets correctly.
+ (__CPU_CLR_S): Likewise.
+ (__CPU_ISSET_S): Likewise.
+
+2008-12-05 Joseph Myers <joseph@codesourcery.com>
+ Ulrich Drepper <drepper@redhat.com>
+
+ * scripts/firstversion.awk: Use custom comparison function to compare
+ version numbers.
+ * scripts/versions.awk: Use sort invocation which can handle
+ multi-digit sub-version numbers.
+
+2008-12-04 Ulrich Drepper <drepper@redhat.com>
+
+ * locale/programs/ld-address.c (DEFINE_LANGUAGE_CODE2): Define.
+ * locale/iso-639.def: Add Chhattisgarhi entry.
+
+2008-12-02 Ulrich Drepper <drepper@redhat.com>
+
+ * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Recognize
+ ESRCH return value.
+ (_nss_dns_gethostbyname4_r): Likewise.
+ * resolv/res_init.c (__res_vinit): Initialize nscount to zero.
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): In case we use
+ gethostbyname4_r, we don't have a separate IPv6 status, so copy
+ the no_data variable.
+
+ * resolv/res_init.c (__res_vinit): Fill in IPv4 name server
+ information at the correct index.
+
+ * socket/sys/socket.h: Declare accept4.
+ * socket/accept4.c: New file.
+ * sysdeps/unix/sysv/linux/accept4.c: New file.
+ * sysdeps/unix/sysv/linux/i386/accept4.S: New file.
+ * socket/Makefile (routines): Add accept4.
+ * socket/Versions: Export accept4 with version GLIBC_2.10.
+ * socket/paccept.c: Removed.
+ * sysdeps/unix/sysv/linux/paccept.c: Removed.
+ * sysdeps/unix/sysv/linux/i386/paccept.S: Removed.
+ * Versions.def: Define GLIBC_2.10 for libc.
+ * sysdeps/unix/sysv/linux/kernel-features.h: Define __ASSUME_ACCEPT4.
+
+ * nscd/connections.c: Use accept4.
+
+ * sysdeps/unix/sysv/linux/i386/socket.S: Fix comment.
+
+2008-12-01 Ulrich Drepper <drepper@redhat.com>
+
+ * resolv/res_send.c (send_dg): Create sockets with non-blocking
+ flag already set.
+
+ * stdlib/setenv.c (unsetenv): Don't search environment if it does
+ not exist.
+ * stdlib/Makefile (tests): Add tst-unsetenv1.
+ * stdlib/tst-unsetenv1.c: New file.
+
+2008-11-29 Ulrich Drepper <drepper@redhat.com>
+
+ * login/utmp_file.c (file_writable): New variable.
+ (setutent_file): Don't try to open file for writing.
+ (pututline_file): Before writing, make descriptor writable if
+ necessary.
+
+2008-11-26 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/posix/getaddrinfo.c (getaddrinfo): Only restrict search
+ to IPv4 or IPv6 if an interface has been found.
+
+2008-11-26 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/unix/sysv/linux/alpha/ipc_priv.h: Renamed to ...
+ * sysdeps/unix/sysv/linux/powerpc/ipc_priv.h: ... here.
+
+ * sysdeps/unix/sysv/linux/alpha/wordexp.c: Renamed to ...
+ * sysdeps/unix/sysv/linux/ia64/wordexp.c: ... here.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c: Change #include.
+
+ * elf/elf.h (NT_386_IOPERM): New macro.
+ (NT_PPC_VSX): New macro.
+
+2008-11-25 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/alpha, sysdeps/unix/bsd/osf/alpha,
+ sysdeps/unix/bsd/Attic/osf1/alpha, sysdeps/unix/sysv/linux/alpha,
+ sysdeps/unix/sysv/linux/alpha/alpha, sysdeps/unix/alpha,
+ sysdeps/mach/alpha, sysdeps/mach/hurd/alpha:
+ Subdirectories moved to ports repository.
+ * configure.in (base_machine): Remove alpha case.
+
+2008-11-25 Thomas Schwinge <tschwinge@gnu.org>
+
+ * sysdeps/mach/strerror_l.c: New file.
+
2008-11-13 Ryan S. Arnold <rsa@us.ibm.com>
[BZ #6411]
@@ -3003,7 +3151,7 @@
* nscd/aicache.c (addhstaiX): Fix default TTL handling.
- * inet/getnetgrent.c (setup): Encrypt static pointer.
+ * inet/getnetgrent_r.c (setup): Encrypt static pointer.
2007-10-28 Ulrich Drepper <drepper@redhat.com>
diff --git a/libc/NEWS b/libc/NEWS
index f9c8b18f1..095dbab44 100644
--- a/libc/NEWS
+++ b/libc/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes. 2008-11-17
+GNU C Library NEWS -- history of user-visible changes. 2008-12-2
Copyright (C) 1992-2007, 2008 Free Software Foundation, Inc.
See the end for copying conditions.
@@ -7,6 +7,8 @@ using `glibc' in the "product" field.
Version 2.10
+* New Linux interface: accept4
+
Version 2.9
diff --git a/libc/Versions.def b/libc/Versions.def
index 856d87806..031e2a354 100644
--- a/libc/Versions.def
+++ b/libc/Versions.def
@@ -26,6 +26,7 @@ libc {
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
+ GLIBC_2.10
%ifdef USE_IN_LIBIO
HURD_CTHREADS_0.3
%endif
diff --git a/libc/configure b/libc/configure
index 656a0847e..d748c2ca5 100755
--- a/libc/configure
+++ b/libc/configure
@@ -2058,7 +2058,6 @@ fi
# base_machine, we don't change it.
test -n "$base_machine" || case "$machine" in
a29k | am29000) base_machine=a29k machine=a29k ;;
-alpha*) base_machine=alpha machine=alpha/$machine ;;
c3[012]) base_machine=cx0 machine=cx0/c30 ;;
c4[04]) base_machine=cx0 machine=cx0/c40 ;;
i[34567]86) base_machine=i386 machine=i386/$machine ;;
diff --git a/libc/configure.in b/libc/configure.in
index a95d7f009..e8dbb1581 100644
--- a/libc/configure.in
+++ b/libc/configure.in
@@ -489,7 +489,6 @@ changequote(,)dnl
# base_machine, we don't change it.
test -n "$base_machine" || case "$machine" in
a29k | am29000) base_machine=a29k machine=a29k ;;
-alpha*) base_machine=alpha machine=alpha/$machine ;;
c3[012]) base_machine=cx0 machine=cx0/c30 ;;
c4[04]) base_machine=cx0 machine=cx0/c40 ;;
i[34567]86) base_machine=i386 machine=i386/$machine ;;
diff --git a/libc/elf/elf.h b/libc/elf/elf.h
index 51d4e6cca..b4d34754a 100644
--- a/libc/elf/elf.h
+++ b/libc/elf/elf.h
@@ -608,7 +608,9 @@ typedef struct
#define NT_PRXFPREG 0x46e62b7f /* Contains copy of user_fxsr_struct */
#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */
+#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
+#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
/* Legal values for the note segment descriptor types for object files. */
diff --git a/libc/inet/Makefile b/libc/inet/Makefile
index 0cc89c94c..6f68e4b61 100644
--- a/libc/inet/Makefile
+++ b/libc/inet/Makefile
@@ -59,7 +59,8 @@ routines-$(OPTION_EGLIBC_ADVANCED_INET6) \
aux-$(OPTION_EGLIBC_INET) += check_pf check_native ifreq
tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \
- tst-gethnm test-ifaddrs bug-if1 tst-ether_line
+ tst-gethnm test-ifaddrs bug-if1 tst-ether_line \
+ tst-getni1 tst-getni2
tests-$(OPTION_EGLIBC_ADVANCED_INET6) += test-inet6_opt
include ../Rules
diff --git a/libc/inet/getnameinfo.c b/libc/inet/getnameinfo.c
index 50240383f..db6b5c7ee 100644
--- a/libc/inet/getnameinfo.c
+++ b/libc/inet/getnameinfo.c
@@ -178,6 +178,9 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
if (sa == NULL || addrlen < sizeof (sa_family_t))
return EAI_FAMILY;
+ if ((flags & NI_NAMEREQD) && host == NULL && serv == NULL)
+ return EAI_NONAME;
+
switch (sa->sa_family)
{
case AF_LOCAL:
diff --git a/libc/inet/tst-getni1.c b/libc/inet/tst-getni1.c
new file mode 100644
index 000000000..0e8a792f4
--- /dev/null
+++ b/libc/inet/tst-getni1.c
@@ -0,0 +1,36 @@
+#include <netdb.h>
+#include <stdio.h>
+#include <sys/socket.h>
+
+static int
+do_test (void)
+{
+ int retval = 0;
+
+ struct sockaddr_in s;
+ s.sin_family = AF_INET;
+ s.sin_port = 80;
+ s.sin_addr.s_addr = INADDR_LOOPBACK;
+ int r = getnameinfo((struct sockaddr *) &s, sizeof (s), NULL, 0, NULL, 0,
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ printf("r = %d\n", r);
+ if (r != 0)
+ {
+ puts ("failed without NI_NAMEREQD");
+ retval = 1;
+ }
+
+ r = getnameinfo((struct sockaddr *) &s, sizeof (s), NULL, 0, NULL, 0,
+ NI_NUMERICHOST | NI_NUMERICSERV | NI_NAMEREQD);
+ printf("r = %d\n", r);
+ if (r != EAI_NONAME)
+ {
+ puts ("did not fail with EAI_NONAME with NI_NAMEREQD set");
+ retval = 1;
+ }
+
+ return retval;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libc/inet/tst-getni2.c b/libc/inet/tst-getni2.c
new file mode 100644
index 000000000..b949d888d
--- /dev/null
+++ b/libc/inet/tst-getni2.c
@@ -0,0 +1,41 @@
+#include <netdb.h>
+#include <stdio.h>
+#include <sys/socket.h>
+
+static int
+do_test (void)
+{
+ int retval = 0;
+
+ struct sockaddr_in6 s;
+ s.sin6_family = AF_INET6;
+ s.sin6_port = htons (80);
+ s.sin6_flowinfo = 0;
+ s.sin6_addr = (struct in6_addr) IN6ADDR_ANY_INIT;
+ s.sin6_scope_id = 0;
+ char buf[1000];
+ buf[0] = '\0';
+ int r = getnameinfo((struct sockaddr *) &s, sizeof (s), buf, sizeof (buf),
+ NULL, 0, NI_NUMERICSERV);
+ printf("r = %d, buf = \"%s\"\n", r, buf);
+ if (r != 0)
+ {
+ puts ("failed without NI_NAMEREQD");
+ retval = 1;
+ }
+
+ buf[0] = '\0';
+ r = getnameinfo((struct sockaddr *) &s, sizeof (s), buf, sizeof (buf),
+ NULL, 0, NI_NUMERICSERV | NI_NAMEREQD);
+ printf("r = %d, buf = \"%s\"\n", r, buf);
+ if (r != EAI_NONAME)
+ {
+ puts ("did not fail with EAI_NONAME with NI_NAMEREQD set");
+ retval = 1;
+ }
+
+ return retval;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libc/locale/iso-639.def b/libc/locale/iso-639.def
index 68a4c5ed3..6d88767c8 100644
--- a/libc/locale/iso-639.def
+++ b/libc/locale/iso-639.def
@@ -1,8 +1,9 @@
/*
- * Defines the languages codes and abbreviations according to ISO 639-[12].
+ * Defines the languages codes and abbreviations according to ISO 639-[123].
* This is used in ld-address.c (address_finish).
*
* Format is: ("English name", 639-1-code, 639-2/T-code, 639-2/B-code)
+ * For some languages which have no 639-2 code the 639-3 code is used.
* If you find something missing or wrong, please go to the URL
* http://www.gnu.org/software/libc/bugs.html and follow
* instructions there to file a bug report.
@@ -89,6 +90,7 @@ DEFINE_LANGUAGE_CODE ("Chamorro", ch, cha, cha)
DEFINE_LANGUAGE_CODE ("Chechen", ce, che, che)
DEFINE_LANGUAGE_CODE3 ("Cherokee", chr, chr)
DEFINE_LANGUAGE_CODE3 ("Cheyenne", chy, chy)
+DEFINE_LANGUAGE_CODE2 ("Chhattisgarhi", hne) /* ISO 639-3 */
DEFINE_LANGUAGE_CODE3 ("Chibcha", chb, chb)
DEFINE_LANGUAGE_CODE ("Chichewa; Chewa; Nyanja", ny, nya, nya)
DEFINE_LANGUAGE_CODE ("Chinese", zh, zho, chi)
diff --git a/libc/locale/programs/ld-address.c b/libc/locale/programs/ld-address.c
index 40149fde1..6dc977d6d 100644
--- a/libc/locale/programs/ld-address.c
+++ b/libc/locale/programs/ld-address.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2002, 2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2002, 2005, 2006, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -57,6 +57,8 @@ static struct
{ #Ab, #Term, #Lib },
#define DEFINE_LANGUAGE_CODE3(Name, Term, Lib) \
{ "", #Term, #Lib },
+#define DEFINE_LANGUAGE_CODE2(Name, Term) \
+ { "", #Term, "" },
#include "iso-639.def"
};
diff --git a/libc/localedata/ChangeLog b/libc/localedata/ChangeLog
index bc339ff17..72e083b1c 100644
--- a/libc/localedata/ChangeLog
+++ b/libc/localedata/ChangeLog
@@ -1,3 +1,10 @@
+2008-12-05 Ulrich Drepper <drepper@redhat.com>
+
+ * SUPPORTED (SUPPORTED-LOCALES): Add hne_IN.
+
+ * locales/hne_IN: New file.
+ Contributed by Pravin Satpute <psatpute@redhat.com>.
+
2008-10-31 Ulrich Drepper <drepper@redhat.com>
[BZ #6920]
diff --git a/libc/localedata/SUPPORTED b/libc/localedata/SUPPORTED
index 52f8aea80..c00258132 100644
--- a/libc/localedata/SUPPORTED
+++ b/libc/localedata/SUPPORTED
@@ -222,6 +222,7 @@ ha_NG/UTF-8 \
he_IL.UTF-8/UTF-8 \
he_IL/ISO-8859-8 \
hi_IN/UTF-8 \
+hne_IN/UTF-8 \
hr_HR.UTF-8/UTF-8 \
hr_HR/ISO-8859-2 \
hsb_DE/ISO-8859-2 \
diff --git a/libc/localedata/locales/hne_IN b/libc/localedata/locales/hne_IN
new file mode 100644
index 000000000..b32398aec
--- /dev/null
+++ b/libc/localedata/locales/hne_IN
@@ -0,0 +1,180 @@
+comment_char %
+escape_char /
+% Chhattisgarhi language locale for India.
+% Contributed by Pravin Satpute <psatpute@redhat.com> and
+% Ravishankar Shrivastava <raviratlami@gmail.com>.
+
+LC_IDENTIFICATION
+title "Chhattisgarhi language locale for India"
+source "Red Hat, Pune"
+address "Marisfot III, Marigold Premises, East-Wing, Kalyaninagar, Pune, India-411014"
+contact ""
+email "bug-glibc-locales@gnu.org"
+tel ""
+fax ""
+language "Chhattisgarhi"
+territory "India"
+revision "1.0"
+date "2008-12-03"
+%
+category "hne_IN:2008";LC_IDENTIFICATION
+category "hne_IN:2008";LC_CTYPE
+category "hne_IN:2008";LC_COLLATE
+category "hne_IN:2008";LC_TIME
+category "hne_IN:2008";LC_NUMERIC
+category "hne_IN:2008";LC_MONETARY
+category "hne_IN:2008";LC_MESSAGES
+category "hne_IN:2008";LC_PAPER
+category "hne_IN:2008";LC_NAME
+category "hne_IN:2008";LC_ADDRESS
+category "hne_IN:2008";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "hi_IN"
+END LC_CTYPE
+
+LC_COLLATE
+copy "hi_IN"
+END LC_COLLATE
+
+LC_MONETARY
+copy "hi_IN"
+END LC_MONETARY
+
+
+LC_NUMERIC
+copy "hi_IN"
+END LC_NUMERIC
+
+
+LC_TIME
+% This is the POSIX Locale definition for the LC_TIME category.
+% These are generated based on XML base Locale difintion file
+% for IBM Class for Unicode/Java
+%
+% Abbreviated weekday names (%a)
+abday "<U0907><U0924><U0020>";/
+ "<U0938><U094B><U092E><U0020>";/
+ "<U092E><U0902><U0917><U0020>";/
+ "<U092C><U0941><U0927><U0020>";/
+ "<U092C><U093F><U0930><U0020>";/
+ "<U0938><U0941><U0915>";/
+ "<U0938><U0928><U093F>"
+%
+% Full weekday names (%A)
+day "<U0907><U0924><U0935><U093E><U0930><U0020>";/
+ "<U0938><U094B><U092E><U0935><U093E><U0930><U0020>";/
+ "<U092E><U0902><U0917><U0932><U0935><U093E><U0930><U0020>";/
+ "<U092C><U0941><U0927><U0935><U093E><U0930><U0020>";/
+ "<U092C><U093F><U0930><U0938><U092A><U0924><U0020>";/
+ "<U0938><U0941><U0915><U0930><U0935><U093E><U0930><U0020>";/
+ "<U0938><U0928><U093F><U0935><U093E><U0930><U0020>"
+%
+% Abbreviated month names (%b)
+abmon "<U091C><U0928>";/
+ "<U092B><U0930>";/
+ "<U092E><U093E><U0930><U094D><U091A>";/
+ "<U0905><U092A>";/
+ "<U092E><U0908>";"<U091C><U0942><U0928>";/
+ "<U091C><U0941><U0932><U093E>";/
+ "<U0905><U0917>";/
+ "<U0938><U093F><U0924>";/
+ "<U0905><U0915><U091F><U0942>";/
+ "<U0928><U0935>";/
+ "<U0926><U093F><U0938>"
+%
+% Full month names (%B)
+mon "<U091C><U0928><U0935><U0930><U0940>";/
+ "<U092B><U0930><U0935><U0930><U0940>";/
+ "<U092E><U093E><U0930><U094D><U091A>";/
+ "<U0905><U092A><U0930><U0947><U0932>";/
+ "<U092E><U0908>";"<U091C><U0942><U0928>";/
+ "<U091C><U0941><U0932><U093E><U0908>";/
+ "<U0905><U0917><U0938><U094D><U0924>";/
+ "<U0938><U093F><U0924><U092E><U092C><U0930>";/
+ "<U0905><U0915><U091F><U0942><U092C><U0930>";/
+ "<U0928><U0935><U092E><U092C><U0930>";/
+ "<U0926><U093F><U0938><U092E><U092C><U0930>"
+%
+% Equivalent of AM PM
+am_pm "<U092C><U093F><U0939><U093F><U0928><U093F><U092F><U093E><U0901>";/
+ "<U092E><U0902><U091D><U0928><U093F><U092F><U093E><U0901>"
+%
+% Appropriate date and time representation
+% %A %d %b %Y%I:%M:%S %Z
+d_t_fmt "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059><U0020><U0025><U0049><U003A><U0025><U004D><U003A>/
+<U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+% Appropriate date representation
+% %A %d %b %Y
+d_fmt "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059>"
+%
+% Appropriate time representation
+% %I:%M:%S %Z
+t_fmt "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0020><U0025><U005A>"
+%
+% Appropriate 12 h time representation (%r)
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+END LC_TIME
+
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0939><U0935><U0079><U0059><U005D>"
+noexpr "<U005E><U005B><U0928><U0907><U006E><U004E><U005D>"
+yesstr "<U0939><U0935>"
+nostr "<U0928><U0907>"
+END LC_MESSAGES
+
+
+LC_PAPER
+copy "hi_IN"
+END LC_PAPER
+
+
+LC_NAME
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_NAME category.
+%
+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
+<U0025><U0067>"
+name_gen ""
+name_mr "<U0938><U093F><U0930><U0940><U092E><U093E><U0928>"
+name_mrs "<U0938><U093F><U0930><U0940><U092E><U0924><U0940>"
+name_miss "<U0915><U0941><U0902><U0935><U093E><U0930><U0940>"
+name_ms "<U0915><U0941><U0902>"
+
+END LC_NAME
+
+
+LC_ADDRESS
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_ADDRESS
+postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
+<U0025><U0062><U0025><U0065><U0025><U0072>"
+
+country_ab2 "<U0049><U004E>"
+country_ab3 "<U0049><U004E><U0044>"
+country_num 356
+lang_term "<U0068><U006E><U0065>"
+
+END LC_ADDRESS
+
+
+LC_TELEPHONE
+copy "hi_IN"
+END LC_TELEPHONE
+
+
+LC_MEASUREMENT
+copy "hi_IN"
+END LC_MEASUREMENT
diff --git a/libc/localedata/locales/sd_IN b/libc/localedata/locales/sd_IN
index 52f069b00..4688ddc79 100644
--- a/libc/localedata/locales/sd_IN
+++ b/libc/localedata/locales/sd_IN
@@ -7,7 +7,7 @@ escape_char /
LC_IDENTIFICATION
title "Sindhi language locale for India"
-source "Redhat, Pune"
+source "Red Hat, Pune"
address "Marisfot III, Marigold Premises, East-Wing, Kalyaninagar, Pune, India-411014"
contact ""
email "bug-glibc-locales@gnu.org"
diff --git a/libc/localedata/locales/sd_IN@devanagari b/libc/localedata/locales/sd_IN@devanagari
index ce029376e..7a211c4a2 100644
--- a/libc/localedata/locales/sd_IN@devanagari
+++ b/libc/localedata/locales/sd_IN@devanagari
@@ -6,7 +6,7 @@ escape_char /
LC_IDENTIFICATION
title "Sindhi language locale for India"
-source "Redhat, Pune"
+source "Red Hat, Pune"
address "Marisfot III, Marigold Premises, East-Wing, Kalyaninagar, Pune, India-411014"
contact ""
email "bug-glibc-locales@gnu.org"
diff --git a/libc/login/utmp_file.c b/libc/login/utmp_file.c
index 9033f72a4..fb5840242 100644
--- a/libc/login/utmp_file.c
+++ b/libc/login/utmp_file.c
@@ -36,6 +36,7 @@
/* Descriptor for the file and position. */
static int file_fd = -1;
+static bool file_writable;
static off64_t file_offset;
/* Cache for the last read entry. */
@@ -138,7 +139,6 @@ setutent_file (void)
if (file_fd < 0)
{
const char *file_name;
- int result;
file_name = TRANSFORM_UTMP_FILE_NAME (__libc_utmp_file_name);
@@ -147,14 +147,10 @@ setutent_file (void)
#else
# define O_flags O_LARGEFILE
#endif
- file_fd = open_not_cancel_2 (file_name, O_RDWR | O_flags);
+ file_writable = false;
+ file_fd = open_not_cancel_2 (file_name, O_RDONLY | O_flags);
if (file_fd == -1)
- {
- /* Hhm, read-write access did not work. Try read-only. */
- file_fd = open_not_cancel_2 (file_name, O_RDONLY | O_flags);
- if (file_fd == -1)
- return 0;
- }
+ return 0;
#ifndef __ASSUME_O_CLOEXEC
# ifdef O_CLOEXEC
@@ -162,7 +158,7 @@ setutent_file (void)
# endif
{
/* We have to make sure the file is `closed on exec'. */
- result = fcntl_not_cancel (file_fd, F_GETFD, 0);
+ int result = fcntl_not_cancel (file_fd, F_GETFD, 0);
if (result >= 0)
{
# ifdef O_CLOEXEC
@@ -404,6 +400,52 @@ pututline_file (const struct utmp *data)
assert (file_fd >= 0);
+ if (! file_writable)
+ {
+ /* We must make the file descriptor writable before going on. */
+ const char *file_name = TRANSFORM_UTMP_FILE_NAME (__libc_utmp_file_name);
+
+ int new_fd = open_not_cancel_2 (file_name, O_RDWR | O_flags);
+ if (new_fd == -1)
+ return NULL;
+
+#ifndef __ASSUME_O_CLOEXEC
+# ifdef O_CLOEXEC
+ if (__have_o_cloexec <= 0)
+# endif
+ {
+ /* We have to make sure the file is `closed on exec'. */
+ int result = fcntl_not_cancel (file_fd, F_GETFD, 0);
+ if (result >= 0)
+ {
+# ifdef O_CLOEXEC
+ if (__have_o_cloexec == 0)
+ __have_o_cloexec = (result & FD_CLOEXEC) ? 1 : -1;
+
+ if (__have_o_cloexec < 0)
+# endif
+ result = fcntl_not_cancel (file_fd, F_SETFD,
+ result | FD_CLOEXEC);
+ }
+
+ if (result == -1)
+ {
+ close_not_cancel_no_status (file_fd);
+ return NULL;
+ }
+ }
+#endif
+
+ if (__lseek64 (new_fd, __lseek64 (file_fd, 0, SEEK_CUR), SEEK_SET) == -1
+ || dup2 (new_fd, file_fd) < 0)
+ {
+ close_not_cancel_no_status (new_fd);
+ return NULL;
+ }
+ close_not_cancel_no_status (new_fd);
+ file_writable = true;
+ }
+
/* Find the correct place to insert the data. */
if (file_offset > 0
&& (
diff --git a/libc/nis/nss_nis/nis-hosts.c b/libc/nis/nss_nis/nis-hosts.c
index 24d13634d..e1db5f531 100644
--- a/libc/nis/nss_nis/nis-hosts.c
+++ b/libc/nis/nss_nis/nis-hosts.c
@@ -485,24 +485,6 @@ _nss_nis_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
return retval;
}
- struct parser_data data;
- struct hostent host;
- int parse_res = parse_line (result, &host, &data, buflen, errnop, AF_UNSPEC,
- 0);
- if (__builtin_expect (parse_res < 1, 0))
- {
- if (parse_res == -1)
- {
- *herrnop = NETDB_INTERNAL;
- return NSS_STATUS_TRYAGAIN;
- }
- else
- {
- *herrnop = HOST_NOT_FOUND;
- return NSS_STATUS_NOTFOUND;
- }
- }
-
if (*pat == NULL)
{
uintptr_t pad = (-(uintptr_t) buffer
@@ -524,16 +506,47 @@ _nss_nis_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
buflen -= sizeof (struct gaih_addrtuple);
}
- (*pat)->next = NULL;
- size_t h_name_len = strlen (host.h_name);
- if (h_name_len >= buflen)
+ uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct parser_data);
+ buffer += pad;
+
+ struct parser_data *data = (void *) buffer;
+
+ if (__builtin_expect (buflen < sizeof *data + 1 + pad, 0))
goto erange;
- (*pat)->name = memcpy (buffer, host.h_name, h_name_len + 1);
+ buflen -= pad;
+
+ struct hostent host;
+ int parse_res = parse_line (result, &host, data, buflen, errnop, AF_UNSPEC,
+ 0);
+ if (__builtin_expect (parse_res < 1, 0))
+ {
+ if (parse_res == -1)
+ {
+ *herrnop = NETDB_INTERNAL;
+ return NSS_STATUS_TRYAGAIN;
+ }
+ else
+ {
+ *herrnop = HOST_NOT_FOUND;
+ return NSS_STATUS_NOTFOUND;
+ }
+ }
+
+ (*pat)->next = NULL;
(*pat)->family = host.h_addrtype;
memcpy ((*pat)->addr, host.h_addr_list[0], host.h_length);
(*pat)->scopeid = 0;
assert (host.h_addr_list[1] == NULL);
+ /* Undo the alignment for parser_data. */
+ buffer -= pad;
+ buflen += pad;
+
+ size_t h_name_len = strlen (host.h_name) + 1;
+ if (h_name_len >= buflen)
+ goto erange;
+ (*pat)->name = memcpy (buffer, host.h_name, h_name_len);
+
free (result);
return NSS_STATUS_SUCCESS;
diff --git a/libc/nptl/ChangeLog b/libc/nptl/ChangeLog
index 8aa7f9ba3..f5ea65ffc 100644
--- a/libc/nptl/ChangeLog
+++ b/libc/nptl/ChangeLog
@@ -1,3 +1,30 @@
+2008-12-08 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
+ implementation. Add necessary padding and.
+ * descr.h (struct pthread): Increase padding for tcbhead_t to 24
+ words.
+
+2008-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define FUTEX_WAIT_BITSET
+ and FUTEX_WAKE_BITSET.
+
+2008-12-02 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
+ and FUTEX_WAKE_BITSET.
+ * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
+ * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
+
+2008-11-25 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
+ Subdirectories moved to ports repository as
+ sysdeps/.../nptl subdirectories.
+
2008-11-12 Jakub Jelinek <jakub@redhat.com>
[BZ #7008]
diff --git a/libc/nptl/descr.h b/libc/nptl/descr.h
index 3c00e1418..22e774ab7 100644
--- a/libc/nptl/descr.h
+++ b/libc/nptl/descr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -143,7 +143,7 @@ struct pthread
is private and subject to change without affecting the official ABI.
We just have it here in case it might be convenient for some
implementation-specific instrumentation hack or suchlike. */
- void *__padding[16];
+ void *__padding[24];
};
/* This descriptor's link on the `stack_used' or `__stack_user' list. */
diff --git a/libc/nptl/sysdeps/pthread/pthread.h b/libc/nptl/sysdeps/pthread/pthread.h
index d5ffd383f..cc7472eaf 100644
--- a/libc/nptl/sysdeps/pthread/pthread.h
+++ b/libc/nptl/sysdeps/pthread/pthread.h
@@ -655,7 +655,7 @@ extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
If EXECUTE is non-zero, the handler function is called. */
# define pthread_cleanup_pop(execute) \
- do; while (0); /* Empty to allow label before pthread_cleanup_pop. */ \
+ do { } while (0);/* Empty to allow label before pthread_cleanup_pop. */\
} while (0); \
__pthread_unregister_cancel (&__cancel_buf); \
if (execute) \
@@ -691,7 +691,7 @@ extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
restores the cancellation type that was in effect when the matching
pthread_cleanup_push_defer was called. */
# define pthread_cleanup_pop_restore_np(execute) \
- do; while (0); /* Empty to allow label before pthread_cleanup_pop. */ \
+ do { } while (0);/* Empty to allow label before pthread_cleanup_pop. */\
} while (0); \
__pthread_unregister_cancel_restore (&__cancel_buf); \
if (execute) \
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
index d53559c07..993dd4be2 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+++ b/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2004, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -52,6 +52,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
@@ -86,7 +88,7 @@
asm ("andl %%gs:%P1, %0" : "+r" (__fl) \
: "i" (offsetof (struct pthread, header.private_futex))); \
__fl | (fl); }))
-# endif
+# endif
#endif
#ifndef __ASSEMBLER__
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h b/libc/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
index ada79851e..9c4d16f45 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+++ b/libc/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
@@ -37,6 +37,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
/* Values for 'private' parameter of locking macros. Yes, the
@@ -67,7 +69,7 @@
: (fl)) \
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
-# endif
+# endif
#endif
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h b/libc/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
index 80b9a4369..76a41bc19 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
+++ b/libc/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
@@ -38,6 +38,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
/* Values for 'private' parameter of locking macros. Yes, the
@@ -67,7 +69,7 @@
: (fl)) \
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
-# endif
+# endif
#endif
#define lll_futex_wait(futexp, val, private) \
@@ -131,8 +133,8 @@
FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \
INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
})
-
-
+
+
#ifdef UP
# define __lll_acq_instr ""
# define __lll_rel_instr ""
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h b/libc/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
index c9347e98b..558d87d67 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
+++ b/libc/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
@@ -36,6 +36,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
/* Values for 'private' parameter of locking macros. Yes, the
@@ -66,7 +68,7 @@
: (fl)) \
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
-# endif
+# endif
#endif
#define lll_futex_wait(futex, val, private) \
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h b/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
index 88e94b990..e709667e5 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
+++ b/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2006, 2007, 2008 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,6 +34,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/libc/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
index 2cd69a14c..f76d599c4 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+++ b/libc/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2004, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -52,6 +52,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
@@ -87,7 +89,7 @@
asm ("andl %%fs:%P1, %0" : "+r" (__fl) \
: "i" (offsetof (struct pthread, header.private_futex))); \
__fl | (fl); }))
-# endif
+# endif
#endif
/* Initializer for lock. */
diff --git a/libc/nptl/sysdeps/x86_64/tls.h b/libc/nptl/sysdeps/x86_64/tls.h
index 79db61c70..172f44579 100644
--- a/libc/nptl/sysdeps/x86_64/tls.h
+++ b/libc/nptl/sysdeps/x86_64/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. nptl/x86_64 version.
- Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 2002-2007, 2008 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,6 +28,7 @@
# include <stdlib.h>
# include <sysdep.h>
# include <kernel-features.h>
+# include <bits/wordsize.h>
/* Type for the dtv. */
@@ -56,7 +57,14 @@ typedef struct
unsigned long int vgetcpu_cache[2];
#ifndef __ASSUME_PRIVATE_FUTEX
int private_futex;
+#else
+ int __unused1;
+#endif
+#if __WORDSIZE == 64
+ int __pad1;
#endif
+ /* Reservation of some values for the TM ABI. */
+ void *__private_tm[5];
} tcbhead_t;
#else /* __ASSEMBLER__ */
diff --git a/libc/nscd/connections.c b/libc/nscd/connections.c
index e3a67386d..dd934c110 100644
--- a/libc/nscd/connections.c
+++ b/libc/nscd/connections.c
@@ -109,6 +109,7 @@ struct database_dyn dbs[lastdb] =
[pwddb] = {
.lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
.prune_lock = PTHREAD_MUTEX_INITIALIZER,
+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER,
.enabled = 0,
.check_file = 1,
.persistent = 0,
@@ -129,6 +130,7 @@ struct database_dyn dbs[lastdb] =
[grpdb] = {
.lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
.prune_lock = PTHREAD_MUTEX_INITIALIZER,
+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER,
.enabled = 0,
.check_file = 1,
.persistent = 0,
@@ -149,6 +151,7 @@ struct database_dyn dbs[lastdb] =
[hstdb] = {
.lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
.prune_lock = PTHREAD_MUTEX_INITIALIZER,
+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER,
.enabled = 0,
.check_file = 1,
.persistent = 0,
@@ -169,6 +172,7 @@ struct database_dyn dbs[lastdb] =
[servdb] = {
.lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
.prune_lock = PTHREAD_MUTEX_INITIALIZER,
+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER,
.enabled = 0,
.check_file = 1,
.persistent = 0,
@@ -238,8 +242,9 @@ static int resolv_conf_descr = -1;
/* Negative if SOCK_CLOEXEC is not supported, positive if it is, zero
before be know the result. */
static int have_sock_cloexec;
-/* The paccept syscall was introduced at the same time as SOCK_CLOEXEC. */
-# define have_paccept -1 // XXX For the time being there is no such call
+#endif
+#ifndef __ASSUME_ACCEPT4
+static int have_accept4;
#endif
/* Number of times clients had to wait. */
@@ -975,9 +980,9 @@ invalidate_cache (char *key, int fd)
if (dbs[number].enabled)
{
- pthread_mutex_lock (&dbs[number].prune_lock);
+ pthread_mutex_lock (&dbs[number].prune_run_lock);
prune_cache (&dbs[number], LONG_MAX, fd);
- pthread_mutex_unlock (&dbs[number].prune_lock);
+ pthread_mutex_unlock (&dbs[number].prune_run_lock);
}
else
{
@@ -1492,6 +1497,7 @@ nscd_run_prune (void *p)
dbs[my_number].wakeup_time = now + CACHE_PRUNE_INTERVAL + my_number;
pthread_mutex_t *prune_lock = &dbs[my_number].prune_lock;
+ pthread_mutex_t *prune_run_lock = &dbs[my_number].prune_run_lock;
pthread_cond_t *prune_cond = &dbs[my_number].prune_cond;
pthread_mutex_lock (prune_lock);
@@ -1525,7 +1531,12 @@ nscd_run_prune (void *p)
pthread_mutex_unlock (prune_lock);
+ /* We use a separate lock for running the prune function (instead
+ of keeping prune_lock locked) because this enables concurrent
+ invocations of cache_add which might modify the timeout value. */
+ pthread_mutex_lock (prune_run_lock);
next_wait = prune_cache (&dbs[my_number], prune_now, -1);
+ pthread_mutex_unlock (prune_run_lock);
next_wait = MAX (next_wait, CACHE_PRUNE_INTERVAL);
/* If clients cannot determine for sure whether nscd is running
@@ -1609,8 +1620,8 @@ nscd_run_worker (void *p)
/* We are done with the list. */
pthread_mutex_unlock (&readylist_lock);
-#ifndef __ASSUME_SOCK_CLOEXEC
- if (have_sock_cloexec < 0)
+#ifndef __ASSUME_ACCEPT4
+ if (have_accept4 < 0)
{
/* We do not want to block on a short read or so. */
int fl = fcntl (fd, F_GETFL);
@@ -1819,22 +1830,20 @@ main_loop_poll (void)
/* We have a new incoming connection. Accept the connection. */
int fd;
-#ifndef __ASSUME_PACCEPT
+#ifndef __ASSUME_ACCEPT4
fd = -1;
- if (have_paccept >= 0)
+ if (have_accept4 >= 0)
#endif
{
-#if 0
- fd = TEMP_FAILURE_RETRY (paccept (sock, NULL, NULL, NULL,
+ fd = TEMP_FAILURE_RETRY (accept4 (sock, NULL, NULL,
SOCK_NONBLOCK));
-#ifndef __ASSUME_PACCEPT
- if (have_paccept == 0)
- have_paccept = fd != -1 || errno != ENOSYS ? 1 : -1;
-#endif
+#ifndef __ASSUME_ACCEPT4
+ if (have_accept4 == 0)
+ have_accept4 = fd != -1 || errno != ENOSYS ? 1 : -1;
#endif
}
-#ifndef __ASSUME_PACCEPT
- if (have_paccept < 0)
+#ifndef __ASSUME_ACCEPT4
+ if (have_accept4 < 0)
fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL));
#endif
@@ -2000,7 +2009,7 @@ main_loop_epoll (int efd)
/* We cannot use epoll. */
return;
-#ifdef HAVE_INOTIFY
+# ifdef HAVE_INOTIFY
if (inotify_fd != -1)
{
ev.events = EPOLLRDNORM;
@@ -2010,7 +2019,7 @@ main_loop_epoll (int efd)
return;
nused = 2;
}
-#endif
+# endif
while (1)
{
@@ -2025,8 +2034,26 @@ main_loop_epoll (int efd)
if (revs[cnt].data.fd == sock)
{
/* A new connection. */
- int fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL));
+ int fd;
+
+# ifndef __ASSUME_ACCEPT4
+ fd = -1;
+ if (have_accept4 >= 0)
+# endif
+ {
+ fd = TEMP_FAILURE_RETRY (accept4 (sock, NULL, NULL,
+ SOCK_NONBLOCK));
+# ifndef __ASSUME_ACCEPT4
+ if (have_accept4 == 0)
+ have_accept4 = fd != -1 || errno != ENOSYS ? 1 : -1;
+# endif
+ }
+# ifndef __ASSUME_ACCEPT4
+ if (have_accept4 < 0)
+ fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL));
+# endif
+ /* Use the descriptor if we have not reached the limit. */
if (fd >= 0)
{
/* Try to add the new descriptor. */
@@ -2048,7 +2075,7 @@ main_loop_epoll (int efd)
}
}
}
-#ifdef HAVE_INOTIFY
+# ifdef HAVE_INOTIFY
else if (revs[cnt].data.fd == inotify_fd)
{
bool to_clear[lastdb] = { false, };
@@ -2104,7 +2131,7 @@ main_loop_epoll (int efd)
pthread_cond_signal (&dbs[dbcnt].prune_cond);
}
}
-#endif
+# endif
else
{
/* Remove the descriptor from the epoll descriptor. */
diff --git a/libc/nscd/nscd.h b/libc/nscd/nscd.h
index 5c77dd3c4..2d77bab98 100644
--- a/libc/nscd/nscd.h
+++ b/libc/nscd/nscd.h
@@ -69,6 +69,7 @@ struct database_dyn
pthread_rwlock_t lock;
pthread_cond_t prune_cond;
pthread_mutex_t prune_lock;
+ pthread_mutex_t prune_run_lock;
time_t wakeup_time;
int enabled;
diff --git a/libc/posix/globtest.sh b/libc/posix/globtest.sh
index 235b4d0d4..16c0d0d9e 100755
--- a/libc/posix/globtest.sh
+++ b/libc/posix/globtest.sh
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! /bin/bash
common_objpfx=$1; shift
elf_objpfx=$1; shift
@@ -32,14 +32,11 @@ export LANG
# Create the arena
: ${TMPDIR=/tmp}
-testdir=$TMPDIR/globtest-dir
-testout=$TMPDIR/globtest-out
+testdir=$(mktemp -d $TMPDIR/globtest-dir.XXXXXX)
+testout=$(mktemp $TMPDIR/globtest-out.XXXXXX)
trap 'chmod 777 $testdir/noread; rm -fr $testdir $testout' 1 2 3 15
-test -d $testdir/noread && chmod 777 $testdir/noread
-rm -fr $testdir 2>/dev/null
-mkdir $testdir
echo 1 > $testdir/file1
echo 2 > $testdir/file2
echo 3 > $testdir/-file3
diff --git a/libc/posix/regex_internal.h b/libc/posix/regex_internal.h
index bbd690a17..113ec2108 100644
--- a/libc/posix/regex_internal.h
+++ b/libc/posix/regex_internal.h
@@ -1,5 +1,5 @@
/* Extended regular expression matching and search library.
- Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2002-2005, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
@@ -402,7 +402,8 @@ static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
internal_function;
# ifdef RE_ENABLE_I18N
static void build_wcs_buffer (re_string_t *pstr) internal_function;
-static int build_wcs_upper_buffer (re_string_t *pstr) internal_function;
+static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr)
+ internal_function;
# endif /* RE_ENABLE_I18N */
static void build_upper_buffer (re_string_t *pstr) internal_function;
static void re_string_translate_buffer (re_string_t *pstr) internal_function;
diff --git a/libc/resolv/nss_dns/dns-host.c b/libc/resolv/nss_dns/dns-host.c
index 6cbfcb63c..b8e513a92 100644
--- a/libc/resolv/nss_dns/dns-host.c
+++ b/libc/resolv/nss_dns/dns-host.c
@@ -198,8 +198,14 @@ _nss_dns_gethostbyname3_r (const char *name, int af, struct hostent *result,
1024, &host_buffer.ptr, NULL, NULL, NULL);
if (n < 0)
{
- status = (errno == ECONNREFUSED
- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
+ if (errno == ESRCH)
+ {
+ status = NSS_STATUS_TRYAGAIN;
+ h_errno = TRY_AGAIN;
+ }
+ else
+ status = (errno == ECONNREFUSED
+ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
*h_errnop = h_errno;
if (h_errno == TRY_AGAIN)
*errnop = EAGAIN;
@@ -304,8 +310,14 @@ _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
&ans2p, &nans2p, &resplen2);
if (n < 0)
{
- status = (errno == ECONNREFUSED
- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
+ if (errno == ESRCH)
+ {
+ status = NSS_STATUS_TRYAGAIN;
+ h_errno = TRY_AGAIN;
+ }
+ else
+ status = (errno == ECONNREFUSED
+ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
*herrnop = h_errno;
if (h_errno == TRY_AGAIN)
*errnop = EAGAIN;
diff --git a/libc/resolv/res_init.c b/libc/resolv/res_init.c
index a2840968f..670ad23c2 100644
--- a/libc/resolv/res_init.c
+++ b/libc/resolv/res_init.c
@@ -183,7 +183,7 @@ __res_vinit(res_state statp, int preinit) {
#endif
statp->nsaddr.sin_family = AF_INET;
statp->nsaddr.sin_port = htons(NAMESERVER_PORT);
- statp->nscount = 1;
+ statp->nscount = 0;
statp->ndots = 1;
statp->pfcode = 0;
statp->_vcsock = -1;
@@ -314,9 +314,9 @@ __res_vinit(res_state statp, int preinit) {
cp++;
if ((*cp != '\0') && (*cp != '\n')
&& __inet_aton(cp, &a)) {
- statp->nsaddr_list[nserv].sin_addr = a;
- statp->nsaddr_list[nserv].sin_family = AF_INET;
- statp->nsaddr_list[nserv].sin_port =
+ statp->nsaddr_list[nservall].sin_addr = a;
+ statp->nsaddr_list[nservall].sin_family = AF_INET;
+ statp->nsaddr_list[nservall].sin_port =
htons(NAMESERVER_PORT);
nserv++;
#ifdef _LIBC
@@ -420,8 +420,7 @@ __res_vinit(res_state statp, int preinit) {
continue;
}
}
- if (nserv > 1)
- statp->nscount = nserv;
+ statp->nscount = nserv;
#ifdef _LIBC
if (nservall - nserv > 0) {
statp->_u._ext.nscount6 = nservall - nserv;
diff --git a/libc/resolv/res_send.c b/libc/resolv/res_send.c
index ac5cc0b4f..f75a26ec2 100644
--- a/libc/resolv/res_send.c
+++ b/libc/resolv/res_send.c
@@ -95,6 +95,7 @@ static const char rcsid[] = "$BINDId: res_send.c,v 8.38 2000/03/30 20:16:51 vixi
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <kernel-features.h>
#if PACKETSZ > 65536
#define MAXPACKET PACKETSZ
@@ -103,6 +104,13 @@ static const char rcsid[] = "$BINDId: res_send.c,v 8.38 2000/03/30 20:16:51 vixi
#endif
+#ifndef __ASSUME_SOCK_CLOEXEC
+static int __have_o_nonblock;
+#else
+# define __have_o_nonblock 0
+#endif
+
+
/* From ev_streams.c. */
static inline void
@@ -920,8 +928,20 @@ send_dg(res_state statp,
if (EXT(statp).nssocks[ns] == -1) {
/* only try IPv6 if IPv6 NS and if not failed before */
if ((EXT(statp).nscount6 > 0) && !statp->ipv6_unavail) {
- EXT(statp).nssocks[ns] =
- socket(PF_INET6, SOCK_DGRAM, 0);
+ if (__have_o_nonblock >= 0) {
+ EXT(statp).nssocks[ns] =
+ socket(PF_INET6, SOCK_DGRAM|SOCK_NONBLOCK,
+ 0);
+#ifndef __ASSUME_SOCK_CLOEXEC
+ if (__have_o_nonblock == 0)
+ __have_o_nonblock
+ = (EXT(statp).nssocks[ns] == -1
+ && errno == EINVAL ? -1 : 1);
+#endif
+ }
+ if (__have_o_nonblock < 0)
+ EXT(statp).nssocks[ns] =
+ socket(PF_INET6, SOCK_DGRAM, 0);
if (EXT(statp).nssocks[ns] < 0)
statp->ipv6_unavail = errno == EAFNOSUPPORT;
/* If IPv6 socket and nsap is IPv4, make it
@@ -929,8 +949,22 @@ send_dg(res_state statp,
else if (nsap->sin6_family == AF_INET)
convaddr4to6(nsap);
}
- if (EXT(statp).nssocks[ns] < 0)
- EXT(statp).nssocks[ns] = socket(PF_INET, SOCK_DGRAM, 0);
+ if (EXT(statp).nssocks[ns] < 0) {
+ if (__have_o_nonblock >= 0) {
+ EXT(statp).nssocks[ns]
+ = socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK,
+ 0);
+#ifndef __ASSUME_SOCK_CLOEXEC
+ if (__have_o_nonblock == 0)
+ __have_o_nonblock
+ = (EXT(statp).nssocks[ns] == -1
+ && errno == EINVAL ? -1 : 1);
+#endif
+ }
+ if (__have_o_nonblock < 0)
+ EXT(statp).nssocks[ns]
+ = socket(PF_INET, SOCK_DGRAM, 0);
+ }
if (EXT(statp).nssocks[ns] < 0) {
*terrno = errno;
Perror(statp, stderr, "socket(dg)", errno);
@@ -955,13 +989,15 @@ send_dg(res_state statp,
__res_iclose(statp, false);
return (0);
}
- /* Make socket non-blocking. */
- int fl = __fcntl (EXT(statp).nssocks[ns], F_GETFL);
- if (fl != -1)
- __fcntl (EXT(statp).nssocks[ns], F_SETFL,
- fl | O_NONBLOCK);
- Dprint(statp->options & RES_DEBUG,
- (stdout, ";; new DG socket\n"))
+ if (__have_o_nonblock < 0) {
+ /* Make socket non-blocking. */
+ int fl = __fcntl (EXT(statp).nssocks[ns], F_GETFL);
+ if (fl != -1)
+ __fcntl (EXT(statp).nssocks[ns], F_SETFL,
+ fl | O_NONBLOCK);
+ Dprint(statp->options & RES_DEBUG,
+ (stdout, ";; new DG socket\n"))
+ }
}
/*
diff --git a/libc/scripts/firstversions.awk b/libc/scripts/firstversions.awk
index 8da92ae48..4a20fc0f9 100644
--- a/libc/scripts/firstversions.awk
+++ b/libc/scripts/firstversions.awk
@@ -1,6 +1,31 @@
# Script to preprocess Versions.all lists based on "earliest version"
# specifications in the shlib-versions file.
+# Return -1, 0 or 1 according to whether v1 is less than, equal to or
+# greater than v2 as a version string. Simplified from GNU Autoconf
+# version; this one does not need to handle .0x fraction-style versions.
+function vers_compare (v1, v2)
+{
+ while (length(v1) && length(v2)) {
+ if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
+ for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue;
+ for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue;
+ d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1);
+ d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1);
+ d1 += 0;
+ d2 += 0;
+ } else {
+ d1 = substr(v1, 1, 1); v1 = substr(v1, 2);
+ d2 = substr(v2, 1, 1); v2 = substr(v2, 2);
+ }
+ if (d1 < d2) return -1;
+ if (d1 > d2) return 1;
+ }
+ if (length(v2)) return -1;
+ if (length(v1)) return 1;
+ return 0;
+}
+
NF > 2 && $2 == ":" {
for (i = 0; i <= NF - 3; ++i)
firstversion[$1, i] = $(3 + i);
@@ -25,10 +50,8 @@ $1 == "}" {
{
if ((thislib, idx[thislib]) in firstversion) {
- # XXX relative string comparison loses if we ever have multiple digits
- # between dots in GLIBC_x.y[.z] names.
f = v = firstversion[thislib, idx[thislib]];
- while ($1 >= v) {
+ while (vers_compare($1, v) >= 0) {
delete firstversion[thislib, idx[thislib]];
idx[thislib]++;
if ((thislib, idx[thislib]) in firstversion)
@@ -39,7 +62,7 @@ $1 == "}" {
if ($1 == v || $1 == f)
# This version was the specified earliest version itself.
print;
- else if ($1 < v) {
+ else if (vers_compare($1, v) < 0) {
# This version is older than the specified earliest version.
print " " $1, "=", v;
# Record that V has been referred to, so we will be sure to emit it
diff --git a/libc/scripts/versions.awk b/libc/scripts/versions.awk
index e642b3d16..22b1c8edc 100644
--- a/libc/scripts/versions.awk
+++ b/libc/scripts/versions.awk
@@ -28,10 +28,8 @@ BEGIN {
close(defsfile);
tmpfile = buildroot "Versions.tmp";
- # Note this sorting presumes only single digits between dots for proper
- # numeric ordering. sort -n doesn't do quite the right thing either,
- # and in some non-GNU sort implementations does not sort at all.
- sort = "sort > " tmpfile;
+ # POSIX sort needed.
+ sort = "sort -t. -k 1,1 -k 2n,2n -k 3 > " tmpfile;
}
# Remove comment lines.
@@ -135,5 +133,5 @@ END {
printf("\n");
closeversion(oldver, veryoldver);
close_and_move(outfile, real_outfile);
- system("rm -f " tmpfile);
+ #system("rm -f " tmpfile);
}
diff --git a/libc/socket/Makefile b/libc/socket/Makefile
index 92a87079e..0e242b579 100644
--- a/libc/socket/Makefile
+++ b/libc/socket/Makefile
@@ -27,7 +27,7 @@ headers := sys/socket.h sys/un.h bits/sockaddr.h bits/socket.h \
routines := accept bind connect getpeername getsockname getsockopt \
listen recv recvfrom recvmsg send sendmsg sendto \
setsockopt shutdown socket socketpair isfdtype opensock \
- sockatmark
+ sockatmark accept4
aux := have_sock_cloexec
diff --git a/libc/socket/Versions b/libc/socket/Versions
index d282eff79..7a96b1e93 100644
--- a/libc/socket/Versions
+++ b/libc/socket/Versions
@@ -31,4 +31,7 @@ libc {
# Addition from P1003.1-200x
sockatmark;
}
+ GLIBC_2.10 {
+ accept4;
+ }
}
diff --git a/libc/socket/paccept.c b/libc/socket/accept4.c
index 777dd8c30..40709d570 100644
--- a/libc/socket/paccept.c
+++ b/libc/socket/accept4.c
@@ -23,21 +23,20 @@
When a connection arrives, open a new socket to communicate with it,
set *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting
peer and *ADDR_LEN to the address's actual length, and return the
- new socket's descriptor, or -1 for errors. SS is installed as
- the thread's signal mask and FLAGS are additional flags. */
+ new socket's descriptor, or -1 for errors. The operation can be influenced
+ by the FLAGS parameter. */
int
-paccept (fd, addr, addr_len, ss, flags)
+accept4 (fd, addr, addr_len, flags)
int fd;
__SOCKADDR_ARG addr;
socklen_t *addr_len;
- const __sigset_t *ss;
int flags;
{
__set_errno (ENOSYS);
return -1;
}
-libc_hidden_def (paccept)
+libc_hidden_def (accept4)
-stub_warning (paccept)
+stub_warning (accept4)
#include <stub-tag.h>
diff --git a/libc/socket/sys/socket.h b/libc/socket/sys/socket.h
index e0a6a5216..9b1f56f8b 100644
--- a/libc/socket/sys/socket.h
+++ b/libc/socket/sys/socket.h
@@ -214,6 +214,15 @@ extern int listen (int __fd, int __n) __THROW;
extern int accept (int __fd, __SOCKADDR_ARG __addr,
socklen_t *__restrict __addr_len);
+#ifdef __USE_GNU
+/* Similar to 'accept' but takes an additional parameter to specify flags.
+
+ This function is a cancellation point and therefore not marked with
+ __THROW. */
+extern int accept4 (int __fd, __SOCKADDR_ARG __addr,
+ socklen_t *__restrict __addr_len, int __flags);
+#endif
+
/* Shut down all or part of the connection open on socket FD.
HOW determines what to shut down:
SHUT_RD = No more receptions;
diff --git a/libc/stdlib/Makefile b/libc/stdlib/Makefile
index 9491229f4..3986ac4a6 100644
--- a/libc/stdlib/Makefile
+++ b/libc/stdlib/Makefile
@@ -77,7 +77,8 @@ tests := tst-strtol tst-strtod testrand testsort testdiv \
tst-limits tst-rand48 bug-strtod tst-setcontext \
test-a64l tst-qsort tst-system bug-strtod2 \
tst-atof1 tst-atof2 tst-strtod2 tst-rand48-2 \
- tst-makecontext tst-qsort2 tst-makecontext2 tst-strtod6
+ tst-makecontext tst-qsort2 tst-makecontext2 tst-strtod6 \
+ tst-unsetenv1
tests-$(OPTION_EGLIBC_LOCALE_CODE) \
+= tst-strtod3 tst-strtod4 tst-strtod5 testmb2
tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \
diff --git a/libc/stdlib/setenv.c b/libc/stdlib/setenv.c
index 48aaecffe..fe591b7db 100644
--- a/libc/stdlib/setenv.c
+++ b/libc/stdlib/setenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992,1995-2001,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1992,1995-2001,2004, 2008 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
@@ -292,19 +292,20 @@ unsetenv (name)
LOCK;
ep = __environ;
- while (*ep != NULL)
- if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
- {
- /* Found it. Remove this pointer by moving later ones back. */
- char **dp = ep;
-
- do
- dp[0] = dp[1];
- while (*dp++);
- /* Continue the loop in case NAME appears again. */
- }
- else
- ++ep;
+ if (ep != NULL)
+ while (*ep != NULL)
+ if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
+ {
+ /* Found it. Remove this pointer by moving later ones back. */
+ char **dp = ep;
+
+ do
+ dp[0] = dp[1];
+ while (*dp++);
+ /* Continue the loop in case NAME appears again. */
+ }
+ else
+ ++ep;
UNLOCK;
diff --git a/libc/stdlib/tst-unsetenv1.c b/libc/stdlib/tst-unsetenv1.c
new file mode 100644
index 000000000..a2a760d24
--- /dev/null
+++ b/libc/stdlib/tst-unsetenv1.c
@@ -0,0 +1,12 @@
+#include <stdlib.h>
+
+static int
+do_test (void)
+{
+ clearenv ();
+ unsetenv ("FOO");
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libc/sysdeps/i386/dl-tlsdesc.S b/libc/sysdeps/i386/dl-tlsdesc.S
index db5005d9f..4d17e5991 100644
--- a/libc/sysdeps/i386/dl-tlsdesc.S
+++ b/libc/sysdeps/i386/dl-tlsdesc.S
@@ -128,8 +128,7 @@ _dl_tlsdesc_dynamic:
.Lslow:
cfi_adjust_cfa_offset (28)
movl %ebx, 16(%esp)
- call __i686.get_pc_thunk.bx
- addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ LOAD_PIC_REG (bx)
call ___tls_get_addr@PLT
movl 16(%esp), %ebx
jmp .Lret
diff --git a/libc/sysdeps/mach/strerror_l.c b/libc/sysdeps/mach/strerror_l.c
new file mode 100644
index 000000000..ccd3bad7e
--- /dev/null
+++ b/libc/sysdeps/mach/strerror_l.c
@@ -0,0 +1,102 @@
+/* strerror_l - Get errno description string in given locale. Mach version.
+ Copyright (C) 2007, 2008 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 <libintl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <mach/error.h>
+#include <errorlib.h>
+#include <sys/param.h>
+
+
+static __thread char *last_value;
+
+
+static const char *
+translate (const char *str, locale_t loc)
+{
+ locale_t oldloc = __uselocale (loc);
+ const char *res = _(str);
+ __uselocale (oldloc);
+ return res;
+}
+
+
+/* Return a string describing the errno code in ERRNUM. */
+char *
+strerror_l (int errnum, locale_t loc)
+{
+ int system;
+ int sub;
+ int code;
+ const struct error_system *es;
+ extern void __mach_error_map_compat (int *);
+
+ __mach_error_map_compat (&errnum);
+
+ system = err_get_system (errnum);
+ sub = err_get_sub (errnum);
+ code = err_get_code (errnum);
+
+ if (system > err_max_system || ! __mach_error_systems[system].bad_sub)
+ {
+ free (last_value);
+ if (__asprintf (&last_value, "%s%X",
+ translate ("Error in unknown error system: ", loc),
+ errnum) == -1)
+ last_value = NULL;
+
+ return last_value;
+ }
+
+ es = &__mach_error_systems[system];
+
+ if (sub >= es->max_sub)
+ return (char *) translate (es->bad_sub, loc);
+
+ if (code >= es->subsystem[sub].max_code)
+ {
+ free (last_value);
+ if (__asprintf (&last_value, "%s%s %d",
+ translate ("Unknown error ", loc),
+ translate (es->subsystem[sub].subsys_name, loc),
+ errnum) == -1)
+ last_value = NULL;
+
+ return last_value;
+ }
+
+ return (char *) translate (es->subsystem[sub].codes[code], loc);
+}
+
+
+#ifdef _LIBC
+# ifdef _LIBC_REENTRANT
+/* This is called when a thread is exiting to free the last_value string. */
+static void __attribute__ ((section ("__libc_thread_freeres_fn")))
+strerror_thread_freeres (void)
+{
+ free (last_value);
+}
+text_set_element (__libc_thread_subfreeres, strerror_thread_freeres);
+text_set_element (__libc_subfreeres, strerror_thread_freeres);
+# endif
+#endif
diff --git a/libc/sysdeps/posix/getaddrinfo.c b/libc/sysdeps/posix/getaddrinfo.c
index 97f3af993..6ff0fc47a 100644
--- a/libc/sysdeps/posix/getaddrinfo.c
+++ b/libc/sysdeps/posix/getaddrinfo.c
@@ -733,6 +733,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
tmpbuflen, 2 * tmpbuflen);
}
+ no_inet6_data = no_data;
+
if (status == NSS_STATUS_SUCCESS)
{
if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL)
@@ -2108,7 +2110,7 @@ getaddrinfo (const char *name, const char *service,
{
/* If we haven't seen both IPv4 and IPv6 interfaces we can
narrow down the search. */
- if (! seen_ipv4 || ! seen_ipv6)
+ if ((! seen_ipv4 || ! seen_ipv6) && (seen_ipv4 || seen_ipv6))
{
local_hints = *hints;
local_hints.ai_family = seen_ipv4 ? PF_INET : PF_INET6;
diff --git a/libc/sysdeps/unix/sysv/linux/paccept.c b/libc/sysdeps/unix/sysv/linux/accept4.c
index cc2979c0e..97f7b8ce6 100644
--- a/libc/sysdeps/unix/sysv/linux/paccept.c
+++ b/libc/sysdeps/unix/sysv/linux/accept4.c
@@ -24,19 +24,20 @@
#include <sysdep-cancel.h>
#include <sys/syscall.h>
-#ifdef __NR_paccept
+#define __NR_accept4 288
+
+
+#ifdef __NR_accept4
int
-paccept (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len,
- const __sigset_t *ss, int flags)
+accept4 (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len, int flags)
{
if (SINGLE_THREAD_P)
- return INLINE_SYSCALL (paccept, 6, fd, addr.__sockaddr__, addr_len, ss,
- _NSIG / 8, flags);
+ return INLINE_SYSCALL (accept4, 4, fd, addr.__sockaddr__, addr_len, flags);
int oldtype = LIBC_CANCEL_ASYNC ();
- int result = INLINE_SYSCALL (paccept, 6, fd, addr.__sockaddr__, addr_len, ss,
- _NSIG / 8, flags);
+ int result = INLINE_SYSCALL (accept4, 4, fd, addr.__sockaddr__, addr_len,
+ flags);
LIBC_CANCEL_RESET (oldtype);
@@ -44,11 +45,10 @@ paccept (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len,
}
#else
int
-paccept (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len,
- const __sigset_t *ss, int flags)
+accept4 (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len, int flags)
{
__set_errno (ENOSYS);
return -1;
-stub_warning (epoll_pwait)
}
+stub_warning (accept4)
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/ipc_priv.h b/libc/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
deleted file mode 100644
index 0328dc08e..000000000
--- a/libc/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 1995-1999, 2000, 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 <sys/ipc.h>
-
-#define __IPC_64 0x100
-
-struct __old_ipc_perm
-{
- __key_t __key; /* Key. */
- unsigned int uid; /* Owner's user ID. */
- unsigned int gid; /* Owner's group ID. */
- unsigned int cuid; /* Creator's user ID. */
- unsigned int cgid; /* Creator's group ID. */
- unsigned int mode; /* Read/write permission. */
- unsigned short int __seq; /* Sequence number. */
-};
-
-
-/* The codes for the functions to use the ipc syscall multiplexer. */
-#define IPCOP_semop 1
-#define IPCOP_semget 2
-#define IPCOP_semctl 3
-#define IPCOP_semtimedop 4
-#define IPCOP_msgsnd 11
-#define IPCOP_msgrcv 12
-#define IPCOP_msgget 13
-#define IPCOP_msgctl 14
-#define IPCOP_shmat 21
-#define IPCOP_shmdt 22
-#define IPCOP_shmget 23
-#define IPCOP_shmctl 24
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/wordexp.c b/libc/sysdeps/unix/sysv/linux/alpha/wordexp.c
deleted file mode 100644
index c2972e40c..000000000
--- a/libc/sysdeps/unix/sysv/linux/alpha/wordexp.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* 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
- 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 <shlib-compat.h>
-
-/* For Linux/Alpha we have to make the wordexp symbols versioned. */
-#define wordexp(words, pwordexp, flags) \
- __new_wordexp (words, pwordexp, flags)
-
-#include <posix/wordexp.c>
-
-versioned_symbol (libc, __new_wordexp, wordexp, GLIBC_2_2_2);
-
-
-#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2_2)
-/* The old, incorrect wordexp_t definition. */
-typedef struct
- {
- int we_wordc; /* Count of words matched. */
- char **we_wordv; /* List of expanded words. */
- int we_offs; /* Slots to reserve in `we_wordv'. */
- } old_wordexp_t;
-
-
-int
-attribute_compat_text_section
-__old_wordexp (const char *words, old_wordexp_t *pwordexp, int flags)
-{
- wordexp_t we;
- int result;
-
- we.we_wordc = pwordexp->we_wordc;
- we.we_wordv = pwordexp->we_wordv;
- we.we_offs = pwordexp->we_offs;
-
- result = __new_wordexp (words, &we, flags);
-
- pwordexp->we_wordc = we.we_wordc;
- pwordexp->we_wordv = we.we_wordv;
- pwordexp->we_offs = we.we_offs;
-
- return result;
-}
-compat_symbol (libc, __old_wordexp, wordexp, GLIBC_2_1);
-#endif
diff --git a/libc/sysdeps/unix/sysv/linux/bits/sched.h b/libc/sysdeps/unix/sysv/linux/bits/sched.h
index 8f694d70c..95d05b4ab 100644
--- a/libc/sysdeps/unix/sysv/linux/bits/sched.h
+++ b/libc/sysdeps/unix/sysv/linux/bits/sched.h
@@ -131,26 +131,31 @@ typedef struct
do { \
size_t __i; \
size_t __imax = (setsize) / sizeof (__cpu_mask); \
- cpu_set_t *__arr = (cpusetp); \
+ __cpu_mask *__bits = (cpusetp)->__bits; \
for (__i = 0; __i < __imax; ++__i) \
- __arr->__bits[__i] = 0; \
+ __bits[__i] = 0; \
} while (0)
# endif
# define __CPU_SET_S(cpu, setsize, cpusetp) \
(__extension__ \
({ size_t __cpu = (cpu); \
__cpu < 8 * (setsize) \
- ? ((cpusetp)->__bits[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; }))
+ ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \
+ |= __CPUMASK (__cpu)) \
+ : 0; }))
# define __CPU_CLR_S(cpu, setsize, cpusetp) \
(__extension__ \
({ size_t __cpu = (cpu); \
__cpu < 8 * (setsize) \
- ? ((cpusetp)->__bits[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; }))
+ ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \
+ &= ~__CPUMASK (__cpu)) \
+ : 0; }))
# define __CPU_ISSET_S(cpu, setsize, cpusetp) \
(__extension__ \
({ size_t __cpu = (cpu); \
__cpu < 8 * (setsize) \
- ? (((cpusetp)->__bits[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 \
+ ? ((((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \
+ & __CPUMASK (__cpu))) != 0 \
: 0; }))
# define __CPU_COUNT_S(setsize, cpusetp) \
@@ -162,12 +167,12 @@ typedef struct
# else
# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
(__extension__ \
- ({ cpu_set_t *__arr1 = (cpusetp1); \
- cpu_set_t *__arr2 = (cpusetp2); \
+ ({ __cpu_mask *__arr1 = (cpusetp1)->__bits; \
+ __cpu_mask *__arr2 = (cpusetp2)->__bits; \
size_t __imax = (setsize) / sizeof (__cpu_mask); \
size_t __i; \
for (__i = 0; __i < __imax; ++__i) \
- if (__arr1->__bits[__i] != __arr2->__bits[__i]) \
+ if (__bits[__i] != __bits[__i]) \
break; \
__i == __imax; }))
# endif
@@ -175,12 +180,12 @@ typedef struct
# define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \
(__extension__ \
({ cpu_set_t *__dest = (destset); \
- cpu_set_t *__arr1 = (srcset1); \
- cpu_set_t *__arr2 = (srcset2); \
+ __cpu_mask *__arr1 = (srcset1)->__bits; \
+ __cpu_mask *__arr2 = (srcset2)->__bits; \
size_t __imax = (setsize) / sizeof (__cpu_mask); \
size_t __i; \
for (__i = 0; __i < __imax; ++__i) \
- __dest->__bits[__i] = __arr1->__bits[__i] op __arr2->__bits[__i]; \
+ ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; \
__dest; }))
# define __CPU_ALLOC_SIZE(count) \
diff --git a/libc/sysdeps/unix/sysv/linux/bits/socket.h b/libc/sysdeps/unix/sysv/linux/bits/socket.h
index 87c3b9180..72c7335ae 100644
--- a/libc/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/libc/sysdeps/unix/sysv/linux/bits/socket.h
@@ -309,7 +309,7 @@ enum
{
SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
#define SCM_RIGHTS SCM_RIGHTS
-#ifdef __USE_BSD
+#ifdef __USE_GNU
, SCM_CREDENTIALS = 0x02 /* Credentials passing. */
# define SCM_CREDENTIALS SCM_CREDENTIALS
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/i386/paccept.S b/libc/sysdeps/unix/sysv/linux/i386/accept4.S
index 02ad78dd4..087ccc456 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/paccept.S
+++ b/libc/sysdeps/unix/sysv/linux/i386/accept4.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1998,2002,2003,2005,2008 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1998,2002,2003,2005, 2008 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,67 +19,33 @@
#include <sysdep-cancel.h>
#include <socketcall.h>
#include <tls.h>
+#include <kernel-features.h>
-#define _NSIG 64
+#define EINVAL 22
+#define ENOSYS 38
-#define P(a, b) P2(a, b)
-#define P2(a, b) a##b
+#ifndef SOCKOP_accept4
+# define SOCKOP_accept4 18
+#endif
+
+#ifdef __ASSUME_ACCEPT4
+# define errlabel SYSCALL_ERROR_LABEL
+#else
+# define errlabel .Lerr
+ .data
+have_accept4:
+ .long 0
+#endif
.text
-/* The socket-oriented system calls are handled unusally in Linux.
+/* The socket-oriented system calls are handled unusally in Linux/i386.
They are all gated through the single `socketcall' system call number.
`socketcall' takes two arguments: the first is the subcode, specifying
which socket function is being called; and the second is a pointer to
the arguments to the specific function. */
-ENTRY(do_paccept)
-#ifdef SOCKOP_paccept
- subl $6*4, %esp
- cfi_adjust_cfa_offset(6*4)
-
- movl (%eax), %ecx
- movl %ecx, (%esp)
- movl 4(%eax), %ecx
- movl %ecx, 4(%esp)
- movl 8(%eax), %ecx
- movl %ecx, 8(%esp)
- movl 12(%eax), %ecx
- movl %ecx, 12(%esp)
- movl $(_NSIG / 8), 16(%esp)
- movl 16(%eax), %ecx
- movl %ecx, 20(%esp)
-
- movl $SYS_ify(socketcall), %eax /* System call number in %eax. */
-
- movl $SOCKOP_paccept, %ebx /* Subcode is first arg to syscall. */
- movl %esp, %ecx /* Address of args is 2nd arg. */
-
- /* Do the system call trap. */
- ENTER_KERNEL
-
- addl $6*4, %esp
- cfi_adjust_cfa_offset(-6*4)
-
- /* %eax is < 0 if there was an error. */
- cmpl $-125, %eax
- jae SYSCALL_ERROR_LABEL
-#else
- movl $-ENOSYS, %eax
- jmp SYSCALL_ERROR_LABEL
-
- .section .gnu.glibc-stub.paccept
- .previous
- .section .gnu.warning.paccept
- .string "warning: paccept is not implemented and will always fail"
- .previous
-#endif
-L(pseudo_end):
- ret
-PSEUDO_END(do_paccept)
-
-
- .globl paccept
-ENTRY (paccept)
+.globl __libc_accept4
+ENTRY (__libc_accept4)
#ifdef CENABLE
SINGLE_THREAD_P
jne 1f
@@ -89,15 +55,27 @@ ENTRY (paccept)
movl %ebx, %edx
cfi_register (3, 2)
- lea 4(%esp), %eax
- call do_paccept
+ movl $SYS_ify(socketcall), %eax /* System call number in %eax. */
+
+ movl $SOCKOP_accept4, %ebx /* Subcode is first arg to syscall. */
+ lea 4(%esp), %ecx /* Address of args is 2nd arg. */
+
+ /* Do the system call trap. */
+ ENTER_KERNEL
/* Restore registers. */
movl %edx, %ebx
cfi_restore (3)
+ /* %eax is < 0 if there was an error. */
+ cmpl $-125, %eax
+ jae errlabel
+
+ /* Successful; return the syscall's value. */
+L(pseudo_end):
ret
+
#ifdef CENABLE
/* We need one more register. */
1: pushl %esi
@@ -112,8 +90,13 @@ ENTRY (paccept)
movl %ebx, %edx
cfi_register (3, 2)
- lea 8(%esp), %eax
- call do_paccept
+ movl $SYS_ify(socketcall), %eax /* System call number in %eax. */
+
+ movl $SOCKOP_accept4, %ebx /* Subcode is first arg to syscall. */
+ lea 8(%esp), %ecx /* Address of args is 2nd arg. */
+
+ /* Do the system call trap. */
+ ENTER_KERNEL
/* Restore registers. */
movl %edx, %ebx
@@ -129,7 +112,72 @@ ENTRY (paccept)
cfi_restore (6)
cfi_adjust_cfa_offset(-4)
+ /* %eax is < 0 if there was an error. */
+ cmpl $-125, %eax
+ jae errlabel
+
/* Successful; return the syscall's value. */
ret
#endif
-PSEUDO_END (paccept)
+
+#ifndef __ASSUME_ACCEPT4
+ /* The kernel returns -EINVAL for unknown socket operations.
+ We need to convert that error to an ENOSYS error. */
+.Lerr: cmpl $-EINVAL, %eax
+ jne SYSCALL_ERROR_LABEL
+
+ /* Save registers. */
+ pushl %ebx
+ cfi_adjust_cfa_offset(4)
+ cfi_offset(ebx, -8)
+
+# ifdef PIC
+ SETUP_PIC_REG (dx)
+ addl $_GLOBAL_OFFSET_TABLE_, %edx
+ movl have_accept4@GOTOFF(%edx), %eax
+# else
+ movl have_accept4, %eax
+# endif
+ testl %eax, %eax
+ jne 1f
+
+ /* Try another call, this time with the FLAGS parameter
+ cleared and an invalid file descriptor. This call will not
+ cause any harm and it will return immediately. */
+ movl $-1, 8(%esp)
+ movl $0, 20(%esp)
+
+ movl $SYS_ify(socketcall), %eax /* System call number in %eax. */
+
+ movl $SOCKOP_accept4, %ebx /* Subcode is first arg to syscall. */
+ lea 8(%esp), %ecx /* Address of args is 2nd arg. */
+
+ /* Do the system call trap. */
+ ENTER_KERNEL
+
+ cmpl $-EINVAL, %eax
+ movl $-1, %eax
+ je 3f
+ movl $1, %eax
+3:
+# ifdef PIC
+ movl %eax, have_accept4@GOTOFF(%edx)
+# else
+ movl %eax, have_accept4
+# endif
+
+ testl %eax, %eax
+
+1: movl $-EINVAL, %eax
+ jns 2f
+ movl $-ENOSYS, %eax
+
+ /* Restore registers. */
+2: popl %ebx
+ cfi_restore (ebx)
+
+ jmp SYSCALL_ERROR_LABEL
+#endif
+PSEUDO_END (__libc_accept4)
+
+weak_alias (__libc_accept4, accept4)
diff --git a/libc/sysdeps/unix/sysv/linux/i386/socket.S b/libc/sysdeps/unix/sysv/linux/i386/socket.S
index 7c8ac29b8..889e5c706 100644
--- a/libc/sysdeps/unix/sysv/linux/i386/socket.S
+++ b/libc/sysdeps/unix/sysv/linux/i386/socket.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1998,2002,2003,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1998,2002,2003,2005,2008 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
@@ -24,7 +24,7 @@
#define P2(a, b) a##b
.text
-/* The socket-oriented system calls are handled unusally in Linux.
+/* The socket-oriented system calls are handled unusally in Linux/i386.
They are all gated through the single `socketcall' system call number.
`socketcall' takes two arguments: the first is the subcode, specifying
which socket function is being called; and the second is a pointer to
diff --git a/libc/sysdeps/unix/sysv/linux/ia64/wordexp.c b/libc/sysdeps/unix/sysv/linux/ia64/wordexp.c
index 2e3d5bc2e..c2972e40c 100644
--- a/libc/sysdeps/unix/sysv/linux/ia64/wordexp.c
+++ b/libc/sysdeps/unix/sysv/linux/ia64/wordexp.c
@@ -1 +1,60 @@
-#include <sysdeps/unix/sysv/linux/alpha/wordexp.c>
+/* 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
+ 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 <shlib-compat.h>
+
+/* For Linux/Alpha we have to make the wordexp symbols versioned. */
+#define wordexp(words, pwordexp, flags) \
+ __new_wordexp (words, pwordexp, flags)
+
+#include <posix/wordexp.c>
+
+versioned_symbol (libc, __new_wordexp, wordexp, GLIBC_2_2_2);
+
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2_2)
+/* The old, incorrect wordexp_t definition. */
+typedef struct
+ {
+ int we_wordc; /* Count of words matched. */
+ char **we_wordv; /* List of expanded words. */
+ int we_offs; /* Slots to reserve in `we_wordv'. */
+ } old_wordexp_t;
+
+
+int
+attribute_compat_text_section
+__old_wordexp (const char *words, old_wordexp_t *pwordexp, int flags)
+{
+ wordexp_t we;
+ int result;
+
+ we.we_wordc = pwordexp->we_wordc;
+ we.we_wordv = pwordexp->we_wordv;
+ we.we_offs = pwordexp->we_offs;
+
+ result = __new_wordexp (words, &we, flags);
+
+ pwordexp->we_wordc = we.we_wordc;
+ pwordexp->we_wordv = we.we_wordv;
+ pwordexp->we_offs = we.we_offs;
+
+ return result;
+}
+compat_symbol (libc, __old_wordexp, wordexp, GLIBC_2_1);
+#endif
diff --git a/libc/sysdeps/unix/sysv/linux/kernel-features.h b/libc/sysdeps/unix/sysv/linux/kernel-features.h
index 6031eae2d..42b1c105a 100644
--- a/libc/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/libc/sysdeps/unix/sysv/linux/kernel-features.h
@@ -509,5 +509,11 @@
# define __ASSUME_SOCK_CLOEXEC 1
# define __ASSUME_IN_NONBLOCK 1
# define __ASSUME_PIPE2 1
-# define __ASSUME_PACCEPT 1
+#endif
+
+/* Support for the accept4 syscall was added in 2.6.28. */
+#if __LINUX_KERNEL_VERSION >= 0x02061c \
+ && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
+ || defined __ia64__ || defined __sparc__ || __s390__)
+# define __ASSUME_ACCEPT4 1
#endif
diff --git a/libc/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h b/libc/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
index 9b85386a7..0328dc08e 100644
--- a/libc/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
+++ b/libc/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
@@ -1 +1,47 @@
-#include <sysdeps/unix/sysv/linux/alpha/ipc_priv.h>
+/* Copyright (C) 1995-1999, 2000, 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 <sys/ipc.h>
+
+#define __IPC_64 0x100
+
+struct __old_ipc_perm
+{
+ __key_t __key; /* Key. */
+ unsigned int uid; /* Owner's user ID. */
+ unsigned int gid; /* Owner's group ID. */
+ unsigned int cuid; /* Creator's user ID. */
+ unsigned int cgid; /* Creator's group ID. */
+ unsigned int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+};
+
+
+/* The codes for the functions to use the ipc syscall multiplexer. */
+#define IPCOP_semop 1
+#define IPCOP_semget 2
+#define IPCOP_semctl 3
+#define IPCOP_semtimedop 4
+#define IPCOP_msgsnd 11
+#define IPCOP_msgrcv 12
+#define IPCOP_msgget 13
+#define IPCOP_msgctl 14
+#define IPCOP_shmat 21
+#define IPCOP_shmdt 22
+#define IPCOP_shmget 23
+#define IPCOP_shmctl 24
diff --git a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
index 2e3d5bc2e..075b267bb 100644
--- a/libc/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
+++ b/libc/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
@@ -1 +1 @@
-#include <sysdeps/unix/sysv/linux/alpha/wordexp.c>
+#include <sysdeps/unix/sysv/linux/ia64/wordexp.c>
diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
new file mode 100644
index 000000000..6bb3b7c3e
--- /dev/null
+++ b/ports/ChangeLog.alpha
@@ -0,0 +1,25 @@
+2008-11-26 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/unix/sysv/linux/alpha/wordexp.c: Contents moved to main
+ repository's ia64 file; #include that.
+ * sysdeps/unix/sysv/linux/alpha/ipc_priv.h: Contents moved to main
+ repository's powerpc file; #include that.
+
+2008-11-25 Roland McGrath <roland@redhat.com>
+
+ * ChangeLog.alpha: New file (this one).
+ * sysdeps/alpha, sysdeps/unix/bsd/osf/alpha,
+ sysdeps/unix/bsd/Attic/osf1/alpha, sysdeps/unix/sysv/linux/alpha,
+ sysdeps/unix/sysv/linux/alpha/alpha, sysdeps/unix/alpha,
+ sysdeps/mach/alpha, sysdeps/mach/hurd/alpha:
+ Subdirectories moved here from main repository.
+ * sysdeps/alpha/nptl, sysdeps/unix/sysv/linux/alpha/nptl:
+ Subdirectories moved here from main repository's nptl/ subdirectory.
+ * sysdeps/alpha/preconfigure: New file.
+ * sysdeps/alpha/shlib-versions: New file.
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+End:
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index e40900185..045b6d5b5 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,15 @@
+2008-12-03 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h: Define
+ FUTEX_WAIT_BITSET and FUTEX_WAKE_BITSET.
+
+2008-11-25 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/arm/sysdep.h (LOAD_ARGS_1, LOAD_ARGS_2,
+ LOAD_ARGS_3, LOAD_ARGS_4, LOAD_ARGS_5, LOAD_ARGS_6, LOAD_ARGS_7):
+ Load all arguments into temporary variables before loading into
+ registers.
+
2008-08-19 Joseph Myers <joseph@codesourcery.com>
* data/c++-types-arm-linux-gnueabi.data: New.
diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips
index e94e10981..23c1e25f5 100644
--- a/ports/ChangeLog.mips
+++ b/ports/ChangeLog.mips
@@ -1,3 +1,18 @@
+2008-12-09 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/mips/bits/socket.h (SCM_CREDENTIALS):
+ Make available only for __USE_GNU.
+
+2008-12-03 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h: Define
+ FUTEX_WAIT_BITSET and FUTEX_WAKE_BITSET.
+
+2008-11-25 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/mips/sys/signalfd.h (signalfd): Fix
+ __THROW vs. __nonnull order for C++.
+
2008-10-15 Daniel Jacobowitz <dan@codesourcery.com>
* sysdeps/mips/dl-dtprocnum.h (DT_MIPS_NUM): Do not redefine.
diff --git a/libc/sysdeps/alpha/Implies b/ports/sysdeps/alpha/Implies
index 18c35908c..18c35908c 100644
--- a/libc/sysdeps/alpha/Implies
+++ b/ports/sysdeps/alpha/Implies
diff --git a/libc/sysdeps/alpha/Makefile b/ports/sysdeps/alpha/Makefile
index 725ae4358..725ae4358 100644
--- a/libc/sysdeps/alpha/Makefile
+++ b/ports/sysdeps/alpha/Makefile
diff --git a/libc/sysdeps/alpha/Subdirs b/ports/sysdeps/alpha/Subdirs
index 87eadf302..87eadf302 100644
--- a/libc/sysdeps/alpha/Subdirs
+++ b/ports/sysdeps/alpha/Subdirs
diff --git a/libc/sysdeps/alpha/Versions b/ports/sysdeps/alpha/Versions
index 76b67a6b9..76b67a6b9 100644
--- a/libc/sysdeps/alpha/Versions
+++ b/ports/sysdeps/alpha/Versions
diff --git a/libc/sysdeps/alpha/__longjmp.S b/ports/sysdeps/alpha/__longjmp.S
index bed26658d..bed26658d 100644
--- a/libc/sysdeps/alpha/__longjmp.S
+++ b/ports/sysdeps/alpha/__longjmp.S
diff --git a/libc/sysdeps/alpha/_mcount.S b/ports/sysdeps/alpha/_mcount.S
index c4c921b4f..c4c921b4f 100644
--- a/libc/sysdeps/alpha/_mcount.S
+++ b/ports/sysdeps/alpha/_mcount.S
diff --git a/libc/sysdeps/alpha/add_n.s b/ports/sysdeps/alpha/add_n.s
index e0dc2fd0c..e0dc2fd0c 100644
--- a/libc/sysdeps/alpha/add_n.s
+++ b/ports/sysdeps/alpha/add_n.s
diff --git a/libc/sysdeps/alpha/addmul_1.s b/ports/sysdeps/alpha/addmul_1.s
index da26c692a..da26c692a 100644
--- a/libc/sysdeps/alpha/addmul_1.s
+++ b/ports/sysdeps/alpha/addmul_1.s
diff --git a/libc/sysdeps/alpha/alphaev5/add_n.s b/ports/sysdeps/alpha/alphaev5/add_n.s
index 1ff8e9543..1ff8e9543 100644
--- a/libc/sysdeps/alpha/alphaev5/add_n.s
+++ b/ports/sysdeps/alpha/alphaev5/add_n.s
diff --git a/libc/sysdeps/alpha/alphaev5/lshift.s b/ports/sysdeps/alpha/alphaev5/lshift.s
index e41ce9a91..e41ce9a91 100644
--- a/libc/sysdeps/alpha/alphaev5/lshift.s
+++ b/ports/sysdeps/alpha/alphaev5/lshift.s
diff --git a/libc/sysdeps/alpha/alphaev5/rshift.s b/ports/sysdeps/alpha/alphaev5/rshift.s
index 9948e5000..9948e5000 100644
--- a/libc/sysdeps/alpha/alphaev5/rshift.s
+++ b/ports/sysdeps/alpha/alphaev5/rshift.s
diff --git a/libc/sysdeps/alpha/alphaev5/sub_n.s b/ports/sysdeps/alpha/alphaev5/sub_n.s
index 3c706cf23..3c706cf23 100644
--- a/libc/sysdeps/alpha/alphaev5/sub_n.s
+++ b/ports/sysdeps/alpha/alphaev5/sub_n.s
diff --git a/libc/sysdeps/alpha/alphaev6/Implies b/ports/sysdeps/alpha/alphaev6/Implies
index 0e7fc170b..0e7fc170b 100644
--- a/libc/sysdeps/alpha/alphaev6/Implies
+++ b/ports/sysdeps/alpha/alphaev6/Implies
diff --git a/libc/sysdeps/alpha/alphaev6/addmul_1.s b/ports/sysdeps/alpha/alphaev6/addmul_1.s
index a061fb9ed..a061fb9ed 100644
--- a/libc/sysdeps/alpha/alphaev6/addmul_1.s
+++ b/ports/sysdeps/alpha/alphaev6/addmul_1.s
diff --git a/libc/sysdeps/alpha/alphaev6/fpu/e_sqrt.S b/ports/sysdeps/alpha/alphaev6/fpu/e_sqrt.S
index 64a08826f..64a08826f 100644
--- a/libc/sysdeps/alpha/alphaev6/fpu/e_sqrt.S
+++ b/ports/sysdeps/alpha/alphaev6/fpu/e_sqrt.S
diff --git a/libc/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S b/ports/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S
index 3500e832c..3500e832c 100644
--- a/libc/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S
+++ b/ports/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S
diff --git a/libc/sysdeps/alpha/alphaev6/memchr.S b/ports/sysdeps/alpha/alphaev6/memchr.S
index 88e91fa98..88e91fa98 100644
--- a/libc/sysdeps/alpha/alphaev6/memchr.S
+++ b/ports/sysdeps/alpha/alphaev6/memchr.S
diff --git a/libc/sysdeps/alpha/alphaev6/memcpy.S b/ports/sysdeps/alpha/alphaev6/memcpy.S
index 7cff521da..7cff521da 100644
--- a/libc/sysdeps/alpha/alphaev6/memcpy.S
+++ b/ports/sysdeps/alpha/alphaev6/memcpy.S
diff --git a/libc/sysdeps/alpha/alphaev6/memset.S b/ports/sysdeps/alpha/alphaev6/memset.S
index 3b3c4ba06..3b3c4ba06 100644
--- a/libc/sysdeps/alpha/alphaev6/memset.S
+++ b/ports/sysdeps/alpha/alphaev6/memset.S
diff --git a/libc/sysdeps/alpha/alphaev6/stxcpy.S b/ports/sysdeps/alpha/alphaev6/stxcpy.S
index 3c3e7d72b..3c3e7d72b 100644
--- a/libc/sysdeps/alpha/alphaev6/stxcpy.S
+++ b/ports/sysdeps/alpha/alphaev6/stxcpy.S
diff --git a/libc/sysdeps/alpha/alphaev6/stxncpy.S b/ports/sysdeps/alpha/alphaev6/stxncpy.S
index f39c23a88..f39c23a88 100644
--- a/libc/sysdeps/alpha/alphaev6/stxncpy.S
+++ b/ports/sysdeps/alpha/alphaev6/stxncpy.S
diff --git a/libc/sysdeps/alpha/alphaev67/Implies b/ports/sysdeps/alpha/alphaev67/Implies
index 49d19c4ad..49d19c4ad 100644
--- a/libc/sysdeps/alpha/alphaev67/Implies
+++ b/ports/sysdeps/alpha/alphaev67/Implies
diff --git a/libc/sysdeps/alpha/alphaev67/ffs.S b/ports/sysdeps/alpha/alphaev67/ffs.S
index fb1cdd932..fb1cdd932 100644
--- a/libc/sysdeps/alpha/alphaev67/ffs.S
+++ b/ports/sysdeps/alpha/alphaev67/ffs.S
diff --git a/libc/sysdeps/alpha/alphaev67/ffsll.S b/ports/sysdeps/alpha/alphaev67/ffsll.S
index 72ef09418..72ef09418 100644
--- a/libc/sysdeps/alpha/alphaev67/ffsll.S
+++ b/ports/sysdeps/alpha/alphaev67/ffsll.S
diff --git a/libc/sysdeps/alpha/alphaev67/fpu/Implies b/ports/sysdeps/alpha/alphaev67/fpu/Implies
index 9e3f12d0a..9e3f12d0a 100644
--- a/libc/sysdeps/alpha/alphaev67/fpu/Implies
+++ b/ports/sysdeps/alpha/alphaev67/fpu/Implies
diff --git a/libc/sysdeps/alpha/alphaev67/rawmemchr.S b/ports/sysdeps/alpha/alphaev67/rawmemchr.S
index 8c7e9423b..8c7e9423b 100644
--- a/libc/sysdeps/alpha/alphaev67/rawmemchr.S
+++ b/ports/sysdeps/alpha/alphaev67/rawmemchr.S
diff --git a/libc/sysdeps/alpha/alphaev67/stpcpy.S b/ports/sysdeps/alpha/alphaev67/stpcpy.S
index b5da4e05d..b5da4e05d 100644
--- a/libc/sysdeps/alpha/alphaev67/stpcpy.S
+++ b/ports/sysdeps/alpha/alphaev67/stpcpy.S
diff --git a/libc/sysdeps/alpha/alphaev67/stpncpy.S b/ports/sysdeps/alpha/alphaev67/stpncpy.S
index 4d61d7131..4d61d7131 100644
--- a/libc/sysdeps/alpha/alphaev67/stpncpy.S
+++ b/ports/sysdeps/alpha/alphaev67/stpncpy.S
diff --git a/libc/sysdeps/alpha/alphaev67/strcat.S b/ports/sysdeps/alpha/alphaev67/strcat.S
index ae7c48808..ae7c48808 100644
--- a/libc/sysdeps/alpha/alphaev67/strcat.S
+++ b/ports/sysdeps/alpha/alphaev67/strcat.S
diff --git a/libc/sysdeps/alpha/alphaev67/strchr.S b/ports/sysdeps/alpha/alphaev67/strchr.S
index 101c7d489..101c7d489 100644
--- a/libc/sysdeps/alpha/alphaev67/strchr.S
+++ b/ports/sysdeps/alpha/alphaev67/strchr.S
diff --git a/libc/sysdeps/alpha/alphaev67/strlen.S b/ports/sysdeps/alpha/alphaev67/strlen.S
index b83eaccea..b83eaccea 100644
--- a/libc/sysdeps/alpha/alphaev67/strlen.S
+++ b/ports/sysdeps/alpha/alphaev67/strlen.S
diff --git a/libc/sysdeps/alpha/alphaev67/strncat.S b/ports/sysdeps/alpha/alphaev67/strncat.S
index ae3257ca4..ae3257ca4 100644
--- a/libc/sysdeps/alpha/alphaev67/strncat.S
+++ b/ports/sysdeps/alpha/alphaev67/strncat.S
diff --git a/libc/sysdeps/alpha/alphaev67/strrchr.S b/ports/sysdeps/alpha/alphaev67/strrchr.S
index c46a3df4f..c46a3df4f 100644
--- a/libc/sysdeps/alpha/alphaev67/strrchr.S
+++ b/ports/sysdeps/alpha/alphaev67/strrchr.S
diff --git a/libc/sysdeps/alpha/backtrace.c b/ports/sysdeps/alpha/backtrace.c
index 297029456..297029456 100644
--- a/libc/sysdeps/alpha/backtrace.c
+++ b/ports/sysdeps/alpha/backtrace.c
diff --git a/libc/sysdeps/alpha/bb_init_func.S b/ports/sysdeps/alpha/bb_init_func.S
index f711c8cb7..f711c8cb7 100644
--- a/libc/sysdeps/alpha/bb_init_func.S
+++ b/ports/sysdeps/alpha/bb_init_func.S
diff --git a/libc/sysdeps/alpha/bits/atomic.h b/ports/sysdeps/alpha/bits/atomic.h
index 36a740c75..36a740c75 100644
--- a/libc/sysdeps/alpha/bits/atomic.h
+++ b/ports/sysdeps/alpha/bits/atomic.h
diff --git a/libc/sysdeps/alpha/bits/endian.h b/ports/sysdeps/alpha/bits/endian.h
index 8a16e14e2..8a16e14e2 100644
--- a/libc/sysdeps/alpha/bits/endian.h
+++ b/ports/sysdeps/alpha/bits/endian.h
diff --git a/libc/sysdeps/alpha/bits/link.h b/ports/sysdeps/alpha/bits/link.h
index 429faff43..429faff43 100644
--- a/libc/sysdeps/alpha/bits/link.h
+++ b/ports/sysdeps/alpha/bits/link.h
diff --git a/libc/sysdeps/alpha/bits/mathdef.h b/ports/sysdeps/alpha/bits/mathdef.h
index af4ace8ca..cbfaf68e2 100644
--- a/libc/sysdeps/alpha/bits/mathdef.h
+++ b/ports/sysdeps/alpha/bits/mathdef.h
@@ -27,10 +27,28 @@
#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
# define _MATH_H_MATHDEF 1
-/* Alpha has both `float' and `double' arithmetic. */
+# ifdef __GNUC__
+# if __STDC__ == 1
+
+/* In GNU or ANSI mode, gcc leaves `float' expressions as-is. */
typedef float float_t;
typedef double double_t;
+# else
+
+/* For `gcc -traditional', `float' expressions are evaluated as `double'. */
+typedef double float_t;
+typedef double double_t;
+
+# endif
+# else
+
+/* Wild guess at types for float_t and double_t. */
+typedef double float_t;
+typedef double double_t;
+
+# endif
+
/* The values returned by `ilogb' for 0 and NaN respectively. */
# define FP_ILOGB0 (-2147483647)
# define FP_ILOGBNAN (2147483647)
diff --git a/libc/sysdeps/alpha/bits/setjmp.h b/ports/sysdeps/alpha/bits/setjmp.h
index eb0b478fb..eb0b478fb 100644
--- a/libc/sysdeps/alpha/bits/setjmp.h
+++ b/ports/sysdeps/alpha/bits/setjmp.h
diff --git a/libc/sysdeps/alpha/bsd-_setjmp.S b/ports/sysdeps/alpha/bsd-_setjmp.S
index 4e6a2da56..4e6a2da56 100644
--- a/libc/sysdeps/alpha/bsd-_setjmp.S
+++ b/ports/sysdeps/alpha/bsd-_setjmp.S
diff --git a/libc/sysdeps/alpha/bsd-setjmp.S b/ports/sysdeps/alpha/bsd-setjmp.S
index 1da848d2f..1da848d2f 100644
--- a/libc/sysdeps/alpha/bsd-setjmp.S
+++ b/ports/sysdeps/alpha/bsd-setjmp.S
diff --git a/libc/sysdeps/alpha/bzero.S b/ports/sysdeps/alpha/bzero.S
index 87e575bab..87e575bab 100644
--- a/libc/sysdeps/alpha/bzero.S
+++ b/ports/sysdeps/alpha/bzero.S
diff --git a/libc/sysdeps/alpha/div.S b/ports/sysdeps/alpha/div.S
index d1a724d37..d1a724d37 100644
--- a/libc/sysdeps/alpha/div.S
+++ b/ports/sysdeps/alpha/div.S
diff --git a/libc/sysdeps/alpha/div_libc.h b/ports/sysdeps/alpha/div_libc.h
index b731b02e2..b731b02e2 100644
--- a/libc/sysdeps/alpha/div_libc.h
+++ b/ports/sysdeps/alpha/div_libc.h
diff --git a/libc/sysdeps/alpha/divl.S b/ports/sysdeps/alpha/divl.S
index 9bac0450d..9bac0450d 100644
--- a/libc/sysdeps/alpha/divl.S
+++ b/ports/sysdeps/alpha/divl.S
diff --git a/libc/sysdeps/alpha/divlu.S b/ports/sysdeps/alpha/divlu.S
index 5c54bb54c..5c54bb54c 100644
--- a/libc/sysdeps/alpha/divlu.S
+++ b/ports/sysdeps/alpha/divlu.S
diff --git a/libc/sysdeps/alpha/divq.S b/ports/sysdeps/alpha/divq.S
index d2ed2c5af..d2ed2c5af 100644
--- a/libc/sysdeps/alpha/divq.S
+++ b/ports/sysdeps/alpha/divq.S
diff --git a/libc/sysdeps/alpha/divqu.S b/ports/sysdeps/alpha/divqu.S
index ef3cdb1b2..ef3cdb1b2 100644
--- a/libc/sysdeps/alpha/divqu.S
+++ b/ports/sysdeps/alpha/divqu.S
diff --git a/libc/sysdeps/alpha/dl-dtprocnum.h b/ports/sysdeps/alpha/dl-dtprocnum.h
index 67845cdd6..67845cdd6 100644
--- a/libc/sysdeps/alpha/dl-dtprocnum.h
+++ b/ports/sysdeps/alpha/dl-dtprocnum.h
diff --git a/libc/sysdeps/alpha/dl-machine.h b/ports/sysdeps/alpha/dl-machine.h
index 29f500b2d..29f500b2d 100644
--- a/libc/sysdeps/alpha/dl-machine.h
+++ b/ports/sysdeps/alpha/dl-machine.h
diff --git a/libc/sysdeps/alpha/dl-sysdep.h b/ports/sysdeps/alpha/dl-sysdep.h
index cd678f4e4..cd678f4e4 100644
--- a/libc/sysdeps/alpha/dl-sysdep.h
+++ b/ports/sysdeps/alpha/dl-sysdep.h
diff --git a/libc/sysdeps/alpha/dl-tls.h b/ports/sysdeps/alpha/dl-tls.h
index f81f95d75..f81f95d75 100644
--- a/libc/sysdeps/alpha/dl-tls.h
+++ b/ports/sysdeps/alpha/dl-tls.h
diff --git a/libc/sysdeps/alpha/dl-trampoline.S b/ports/sysdeps/alpha/dl-trampoline.S
index c52efbb3b..c52efbb3b 100644
--- a/libc/sysdeps/alpha/dl-trampoline.S
+++ b/ports/sysdeps/alpha/dl-trampoline.S
diff --git a/libc/sysdeps/alpha/elf/configure b/ports/sysdeps/alpha/elf/configure
index ea99e3541..ea99e3541 100755..100644
--- a/libc/sysdeps/alpha/elf/configure
+++ b/ports/sysdeps/alpha/elf/configure
diff --git a/libc/sysdeps/alpha/elf/configure.in b/ports/sysdeps/alpha/elf/configure.in
index 798681454..798681454 100644
--- a/libc/sysdeps/alpha/elf/configure.in
+++ b/ports/sysdeps/alpha/elf/configure.in
diff --git a/libc/sysdeps/alpha/elf/initfini.c b/ports/sysdeps/alpha/elf/initfini.c
index 4d3342db9..4d3342db9 100644
--- a/libc/sysdeps/alpha/elf/initfini.c
+++ b/ports/sysdeps/alpha/elf/initfini.c
diff --git a/libc/sysdeps/alpha/elf/start.S b/ports/sysdeps/alpha/elf/start.S
index ebe14b4c8..ebe14b4c8 100644
--- a/libc/sysdeps/alpha/elf/start.S
+++ b/ports/sysdeps/alpha/elf/start.S
diff --git a/libc/sysdeps/alpha/ffs.S b/ports/sysdeps/alpha/ffs.S
index 5f2074ee7..5f2074ee7 100644
--- a/libc/sysdeps/alpha/ffs.S
+++ b/ports/sysdeps/alpha/ffs.S
diff --git a/libc/sysdeps/alpha/ffsll.S b/ports/sysdeps/alpha/ffsll.S
index b2f46d899..b2f46d899 100644
--- a/libc/sysdeps/alpha/ffsll.S
+++ b/ports/sysdeps/alpha/ffsll.S
diff --git a/libc/sysdeps/alpha/fpu/Versions b/ports/sysdeps/alpha/fpu/Versions
index c9b0e03a9..c9b0e03a9 100644
--- a/libc/sysdeps/alpha/fpu/Versions
+++ b/ports/sysdeps/alpha/fpu/Versions
diff --git a/libc/sysdeps/alpha/fpu/bits/fenv.h b/ports/sysdeps/alpha/fpu/bits/fenv.h
index a9e89b498..a9e89b498 100644
--- a/libc/sysdeps/alpha/fpu/bits/fenv.h
+++ b/ports/sysdeps/alpha/fpu/bits/fenv.h
diff --git a/libc/sysdeps/alpha/fpu/bits/mathinline.h b/ports/sysdeps/alpha/fpu/bits/mathinline.h
index 5378a181c..5378a181c 100644
--- a/libc/sysdeps/alpha/fpu/bits/mathinline.h
+++ b/ports/sysdeps/alpha/fpu/bits/mathinline.h
diff --git a/libc/sysdeps/alpha/fpu/cabsf.c b/ports/sysdeps/alpha/fpu/cabsf.c
index de8e6b554..de8e6b554 100644
--- a/libc/sysdeps/alpha/fpu/cabsf.c
+++ b/ports/sysdeps/alpha/fpu/cabsf.c
diff --git a/libc/sysdeps/alpha/fpu/cargf.c b/ports/sysdeps/alpha/fpu/cargf.c
index 1d96e5897..1d96e5897 100644
--- a/libc/sysdeps/alpha/fpu/cargf.c
+++ b/ports/sysdeps/alpha/fpu/cargf.c
diff --git a/libc/sysdeps/alpha/fpu/cfloat-compat.h b/ports/sysdeps/alpha/fpu/cfloat-compat.h
index d325a7650..d325a7650 100644
--- a/libc/sysdeps/alpha/fpu/cfloat-compat.h
+++ b/ports/sysdeps/alpha/fpu/cfloat-compat.h
diff --git a/libc/sysdeps/alpha/fpu/cimagf.c b/ports/sysdeps/alpha/fpu/cimagf.c
index a9b351f18..a9b351f18 100644
--- a/libc/sysdeps/alpha/fpu/cimagf.c
+++ b/ports/sysdeps/alpha/fpu/cimagf.c
diff --git a/libc/sysdeps/alpha/fpu/conjf.c b/ports/sysdeps/alpha/fpu/conjf.c
index 6ff92b994..6ff92b994 100644
--- a/libc/sysdeps/alpha/fpu/conjf.c
+++ b/ports/sysdeps/alpha/fpu/conjf.c
diff --git a/libc/sysdeps/alpha/fpu/crealf.c b/ports/sysdeps/alpha/fpu/crealf.c
index 52ab27173..52ab27173 100644
--- a/libc/sysdeps/alpha/fpu/crealf.c
+++ b/ports/sysdeps/alpha/fpu/crealf.c
diff --git a/libc/sysdeps/alpha/fpu/e_sqrt.c b/ports/sysdeps/alpha/fpu/e_sqrt.c
index c5ab25f16..c5ab25f16 100644
--- a/libc/sysdeps/alpha/fpu/e_sqrt.c
+++ b/ports/sysdeps/alpha/fpu/e_sqrt.c
diff --git a/libc/sysdeps/alpha/fpu/fclrexcpt.c b/ports/sysdeps/alpha/fpu/fclrexcpt.c
index b7176e097..b7176e097 100644
--- a/libc/sysdeps/alpha/fpu/fclrexcpt.c
+++ b/ports/sysdeps/alpha/fpu/fclrexcpt.c
diff --git a/libc/sysdeps/alpha/fpu/fedisblxcpt.c b/ports/sysdeps/alpha/fpu/fedisblxcpt.c
index 98c33ca84..98c33ca84 100644
--- a/libc/sysdeps/alpha/fpu/fedisblxcpt.c
+++ b/ports/sysdeps/alpha/fpu/fedisblxcpt.c
diff --git a/libc/sysdeps/alpha/fpu/feenablxcpt.c b/ports/sysdeps/alpha/fpu/feenablxcpt.c
index 80d657e4b..80d657e4b 100644
--- a/libc/sysdeps/alpha/fpu/feenablxcpt.c
+++ b/ports/sysdeps/alpha/fpu/feenablxcpt.c
diff --git a/libc/sysdeps/alpha/fpu/fegetenv.c b/ports/sysdeps/alpha/fpu/fegetenv.c
index c1950fa3b..c1950fa3b 100644
--- a/libc/sysdeps/alpha/fpu/fegetenv.c
+++ b/ports/sysdeps/alpha/fpu/fegetenv.c
diff --git a/libc/sysdeps/alpha/fpu/fegetexcept.c b/ports/sysdeps/alpha/fpu/fegetexcept.c
index ccc79e405..ccc79e405 100644
--- a/libc/sysdeps/alpha/fpu/fegetexcept.c
+++ b/ports/sysdeps/alpha/fpu/fegetexcept.c
diff --git a/libc/sysdeps/alpha/fpu/fegetround.c b/ports/sysdeps/alpha/fpu/fegetround.c
index 995aee80d..995aee80d 100644
--- a/libc/sysdeps/alpha/fpu/fegetround.c
+++ b/ports/sysdeps/alpha/fpu/fegetround.c
diff --git a/libc/sysdeps/alpha/fpu/feholdexcpt.c b/ports/sysdeps/alpha/fpu/feholdexcpt.c
index 79aa970ac..79aa970ac 100644
--- a/libc/sysdeps/alpha/fpu/feholdexcpt.c
+++ b/ports/sysdeps/alpha/fpu/feholdexcpt.c
diff --git a/libc/sysdeps/alpha/fpu/fenv_libc.h b/ports/sysdeps/alpha/fpu/fenv_libc.h
index f1d187d9e..f1d187d9e 100644
--- a/libc/sysdeps/alpha/fpu/fenv_libc.h
+++ b/ports/sysdeps/alpha/fpu/fenv_libc.h
diff --git a/libc/sysdeps/alpha/fpu/fesetenv.c b/ports/sysdeps/alpha/fpu/fesetenv.c
index c76e88289..c76e88289 100644
--- a/libc/sysdeps/alpha/fpu/fesetenv.c
+++ b/ports/sysdeps/alpha/fpu/fesetenv.c
diff --git a/libc/sysdeps/alpha/fpu/fesetround.c b/ports/sysdeps/alpha/fpu/fesetround.c
index 54b2bcf67..54b2bcf67 100644
--- a/libc/sysdeps/alpha/fpu/fesetround.c
+++ b/ports/sysdeps/alpha/fpu/fesetround.c
diff --git a/libc/sysdeps/alpha/fpu/feupdateenv.c b/ports/sysdeps/alpha/fpu/feupdateenv.c
index c798070bb..c798070bb 100644
--- a/libc/sysdeps/alpha/fpu/feupdateenv.c
+++ b/ports/sysdeps/alpha/fpu/feupdateenv.c
diff --git a/libc/sysdeps/alpha/fpu/fgetexcptflg.c b/ports/sysdeps/alpha/fpu/fgetexcptflg.c
index c28e91335..c28e91335 100644
--- a/libc/sysdeps/alpha/fpu/fgetexcptflg.c
+++ b/ports/sysdeps/alpha/fpu/fgetexcptflg.c
diff --git a/libc/sysdeps/alpha/fpu/fpu_control.h b/ports/sysdeps/alpha/fpu/fpu_control.h
index 28acdf170..28acdf170 100644
--- a/libc/sysdeps/alpha/fpu/fpu_control.h
+++ b/ports/sysdeps/alpha/fpu/fpu_control.h
diff --git a/libc/sysdeps/alpha/fpu/fsetexcptflg.c b/ports/sysdeps/alpha/fpu/fsetexcptflg.c
index d19873186..d19873186 100644
--- a/libc/sysdeps/alpha/fpu/fsetexcptflg.c
+++ b/ports/sysdeps/alpha/fpu/fsetexcptflg.c
diff --git a/libc/sysdeps/alpha/fpu/ftestexcept.c b/ports/sysdeps/alpha/fpu/ftestexcept.c
index a4b308187..a4b308187 100644
--- a/libc/sysdeps/alpha/fpu/ftestexcept.c
+++ b/ports/sysdeps/alpha/fpu/ftestexcept.c
diff --git a/libc/sysdeps/alpha/fpu/libm-test-ulps b/ports/sysdeps/alpha/fpu/libm-test-ulps
index d9df631d7..d9df631d7 100644
--- a/libc/sysdeps/alpha/fpu/libm-test-ulps
+++ b/ports/sysdeps/alpha/fpu/libm-test-ulps
diff --git a/libc/sysdeps/alpha/fpu/s_cacosf.c b/ports/sysdeps/alpha/fpu/s_cacosf.c
index 46dca5aeb..46dca5aeb 100644
--- a/libc/sysdeps/alpha/fpu/s_cacosf.c
+++ b/ports/sysdeps/alpha/fpu/s_cacosf.c
diff --git a/libc/sysdeps/alpha/fpu/s_cacoshf.c b/ports/sysdeps/alpha/fpu/s_cacoshf.c
index 6b61d1dda..6b61d1dda 100644
--- a/libc/sysdeps/alpha/fpu/s_cacoshf.c
+++ b/ports/sysdeps/alpha/fpu/s_cacoshf.c
diff --git a/libc/sysdeps/alpha/fpu/s_casinf.c b/ports/sysdeps/alpha/fpu/s_casinf.c
index fd41042ec..fd41042ec 100644
--- a/libc/sysdeps/alpha/fpu/s_casinf.c
+++ b/ports/sysdeps/alpha/fpu/s_casinf.c
diff --git a/libc/sysdeps/alpha/fpu/s_casinhf.c b/ports/sysdeps/alpha/fpu/s_casinhf.c
index 0b72a24d5..0b72a24d5 100644
--- a/libc/sysdeps/alpha/fpu/s_casinhf.c
+++ b/ports/sysdeps/alpha/fpu/s_casinhf.c
diff --git a/libc/sysdeps/alpha/fpu/s_catanf.c b/ports/sysdeps/alpha/fpu/s_catanf.c
index 8f4061661..8f4061661 100644
--- a/libc/sysdeps/alpha/fpu/s_catanf.c
+++ b/ports/sysdeps/alpha/fpu/s_catanf.c
diff --git a/libc/sysdeps/alpha/fpu/s_catanhf.c b/ports/sysdeps/alpha/fpu/s_catanhf.c
index ac1194572..ac1194572 100644
--- a/libc/sysdeps/alpha/fpu/s_catanhf.c
+++ b/ports/sysdeps/alpha/fpu/s_catanhf.c
diff --git a/libc/sysdeps/alpha/fpu/s_ccosf.c b/ports/sysdeps/alpha/fpu/s_ccosf.c
index 04036f461..04036f461 100644
--- a/libc/sysdeps/alpha/fpu/s_ccosf.c
+++ b/ports/sysdeps/alpha/fpu/s_ccosf.c
diff --git a/libc/sysdeps/alpha/fpu/s_ccoshf.c b/ports/sysdeps/alpha/fpu/s_ccoshf.c
index e9fb34ce4..e9fb34ce4 100644
--- a/libc/sysdeps/alpha/fpu/s_ccoshf.c
+++ b/ports/sysdeps/alpha/fpu/s_ccoshf.c
diff --git a/libc/sysdeps/alpha/fpu/s_ceil.c b/ports/sysdeps/alpha/fpu/s_ceil.c
index 40c237928..40c237928 100644
--- a/libc/sysdeps/alpha/fpu/s_ceil.c
+++ b/ports/sysdeps/alpha/fpu/s_ceil.c
diff --git a/libc/sysdeps/alpha/fpu/s_ceilf.c b/ports/sysdeps/alpha/fpu/s_ceilf.c
index 0df651f40..0df651f40 100644
--- a/libc/sysdeps/alpha/fpu/s_ceilf.c
+++ b/ports/sysdeps/alpha/fpu/s_ceilf.c
diff --git a/libc/sysdeps/alpha/fpu/s_cexpf.c b/ports/sysdeps/alpha/fpu/s_cexpf.c
index 4a28dcd9b..4a28dcd9b 100644
--- a/libc/sysdeps/alpha/fpu/s_cexpf.c
+++ b/ports/sysdeps/alpha/fpu/s_cexpf.c
diff --git a/libc/sysdeps/alpha/fpu/s_clog10f.c b/ports/sysdeps/alpha/fpu/s_clog10f.c
index e7dc7bb23..e7dc7bb23 100644
--- a/libc/sysdeps/alpha/fpu/s_clog10f.c
+++ b/ports/sysdeps/alpha/fpu/s_clog10f.c
diff --git a/libc/sysdeps/alpha/fpu/s_clogf.c b/ports/sysdeps/alpha/fpu/s_clogf.c
index 364dcec88..364dcec88 100644
--- a/libc/sysdeps/alpha/fpu/s_clogf.c
+++ b/ports/sysdeps/alpha/fpu/s_clogf.c
diff --git a/libc/sysdeps/alpha/fpu/s_copysign.c b/ports/sysdeps/alpha/fpu/s_copysign.c
index 52c632ec4..52c632ec4 100644
--- a/libc/sysdeps/alpha/fpu/s_copysign.c
+++ b/ports/sysdeps/alpha/fpu/s_copysign.c
diff --git a/libc/sysdeps/alpha/fpu/s_copysignf.c b/ports/sysdeps/alpha/fpu/s_copysignf.c
index f4b846bcb..f4b846bcb 100644
--- a/libc/sysdeps/alpha/fpu/s_copysignf.c
+++ b/ports/sysdeps/alpha/fpu/s_copysignf.c
diff --git a/libc/sysdeps/alpha/fpu/s_cpowf.c b/ports/sysdeps/alpha/fpu/s_cpowf.c
index cc61b1895..cc61b1895 100644
--- a/libc/sysdeps/alpha/fpu/s_cpowf.c
+++ b/ports/sysdeps/alpha/fpu/s_cpowf.c
diff --git a/libc/sysdeps/alpha/fpu/s_cprojf.c b/ports/sysdeps/alpha/fpu/s_cprojf.c
index 5cfb52667..5cfb52667 100644
--- a/libc/sysdeps/alpha/fpu/s_cprojf.c
+++ b/ports/sysdeps/alpha/fpu/s_cprojf.c
diff --git a/libc/sysdeps/alpha/fpu/s_csinf.c b/ports/sysdeps/alpha/fpu/s_csinf.c
index 8eb9a1019..8eb9a1019 100644
--- a/libc/sysdeps/alpha/fpu/s_csinf.c
+++ b/ports/sysdeps/alpha/fpu/s_csinf.c
diff --git a/libc/sysdeps/alpha/fpu/s_csinhf.c b/ports/sysdeps/alpha/fpu/s_csinhf.c
index 0e2c18674..0e2c18674 100644
--- a/libc/sysdeps/alpha/fpu/s_csinhf.c
+++ b/ports/sysdeps/alpha/fpu/s_csinhf.c
diff --git a/libc/sysdeps/alpha/fpu/s_csqrtf.c b/ports/sysdeps/alpha/fpu/s_csqrtf.c
index ebf23a828..ebf23a828 100644
--- a/libc/sysdeps/alpha/fpu/s_csqrtf.c
+++ b/ports/sysdeps/alpha/fpu/s_csqrtf.c
diff --git a/libc/sysdeps/alpha/fpu/s_ctanf.c b/ports/sysdeps/alpha/fpu/s_ctanf.c
index e26db963e..e26db963e 100644
--- a/libc/sysdeps/alpha/fpu/s_ctanf.c
+++ b/ports/sysdeps/alpha/fpu/s_ctanf.c
diff --git a/libc/sysdeps/alpha/fpu/s_ctanhf.c b/ports/sysdeps/alpha/fpu/s_ctanhf.c
index 5d047bd46..5d047bd46 100644
--- a/libc/sysdeps/alpha/fpu/s_ctanhf.c
+++ b/ports/sysdeps/alpha/fpu/s_ctanhf.c
diff --git a/libc/sysdeps/alpha/fpu/s_fabs.c b/ports/sysdeps/alpha/fpu/s_fabs.c
index 9bc42f68d..9bc42f68d 100644
--- a/libc/sysdeps/alpha/fpu/s_fabs.c
+++ b/ports/sysdeps/alpha/fpu/s_fabs.c
diff --git a/libc/sysdeps/alpha/fpu/s_fabsf.c b/ports/sysdeps/alpha/fpu/s_fabsf.c
index 35e16bf65..35e16bf65 100644
--- a/libc/sysdeps/alpha/fpu/s_fabsf.c
+++ b/ports/sysdeps/alpha/fpu/s_fabsf.c
diff --git a/libc/sysdeps/alpha/fpu/s_floor.c b/ports/sysdeps/alpha/fpu/s_floor.c
index 5af638615..5af638615 100644
--- a/libc/sysdeps/alpha/fpu/s_floor.c
+++ b/ports/sysdeps/alpha/fpu/s_floor.c
diff --git a/libc/sysdeps/alpha/fpu/s_floorf.c b/ports/sysdeps/alpha/fpu/s_floorf.c
index 8b421705c..8b421705c 100644
--- a/libc/sysdeps/alpha/fpu/s_floorf.c
+++ b/ports/sysdeps/alpha/fpu/s_floorf.c
diff --git a/libc/sysdeps/alpha/fpu/s_fmax.S b/ports/sysdeps/alpha/fpu/s_fmax.S
index d638eec80..d638eec80 100644
--- a/libc/sysdeps/alpha/fpu/s_fmax.S
+++ b/ports/sysdeps/alpha/fpu/s_fmax.S
diff --git a/libc/sysdeps/alpha/fpu/s_fmaxf.S b/ports/sysdeps/alpha/fpu/s_fmaxf.S
index 3c2d62bb8..3c2d62bb8 100644
--- a/libc/sysdeps/alpha/fpu/s_fmaxf.S
+++ b/ports/sysdeps/alpha/fpu/s_fmaxf.S
diff --git a/libc/sysdeps/alpha/fpu/s_fmin.S b/ports/sysdeps/alpha/fpu/s_fmin.S
index d70fab625..d70fab625 100644
--- a/libc/sysdeps/alpha/fpu/s_fmin.S
+++ b/ports/sysdeps/alpha/fpu/s_fmin.S
diff --git a/libc/sysdeps/alpha/fpu/s_fminf.S b/ports/sysdeps/alpha/fpu/s_fminf.S
index 10ab7fe53..10ab7fe53 100644
--- a/libc/sysdeps/alpha/fpu/s_fminf.S
+++ b/ports/sysdeps/alpha/fpu/s_fminf.S
diff --git a/libc/sysdeps/alpha/fpu/s_isnan.c b/ports/sysdeps/alpha/fpu/s_isnan.c
index a9230329c..a9230329c 100644
--- a/libc/sysdeps/alpha/fpu/s_isnan.c
+++ b/ports/sysdeps/alpha/fpu/s_isnan.c
diff --git a/libc/sysdeps/alpha/fpu/s_isnanf.c b/ports/sysdeps/alpha/fpu/s_isnanf.c
index af41e4385..af41e4385 100644
--- a/libc/sysdeps/alpha/fpu/s_isnanf.c
+++ b/ports/sysdeps/alpha/fpu/s_isnanf.c
diff --git a/libc/sysdeps/alpha/fpu/s_llrint.c b/ports/sysdeps/alpha/fpu/s_llrint.c
index 5db97be03..5db97be03 100644
--- a/libc/sysdeps/alpha/fpu/s_llrint.c
+++ b/ports/sysdeps/alpha/fpu/s_llrint.c
diff --git a/libc/sysdeps/alpha/fpu/s_llrintf.c b/ports/sysdeps/alpha/fpu/s_llrintf.c
index 18f2885ef..18f2885ef 100644
--- a/libc/sysdeps/alpha/fpu/s_llrintf.c
+++ b/ports/sysdeps/alpha/fpu/s_llrintf.c
diff --git a/libc/sysdeps/alpha/fpu/s_llround.c b/ports/sysdeps/alpha/fpu/s_llround.c
index b212fbd8e..b212fbd8e 100644
--- a/libc/sysdeps/alpha/fpu/s_llround.c
+++ b/ports/sysdeps/alpha/fpu/s_llround.c
diff --git a/libc/sysdeps/alpha/fpu/s_llroundf.c b/ports/sysdeps/alpha/fpu/s_llroundf.c
index 73bdf3103..73bdf3103 100644
--- a/libc/sysdeps/alpha/fpu/s_llroundf.c
+++ b/ports/sysdeps/alpha/fpu/s_llroundf.c
diff --git a/libc/sysdeps/alpha/fpu/s_lrint.c b/ports/sysdeps/alpha/fpu/s_lrint.c
index 169640870..169640870 100644
--- a/libc/sysdeps/alpha/fpu/s_lrint.c
+++ b/ports/sysdeps/alpha/fpu/s_lrint.c
diff --git a/libc/sysdeps/alpha/fpu/s_lrintf.c b/ports/sysdeps/alpha/fpu/s_lrintf.c
index 20a6a6cf8..20a6a6cf8 100644
--- a/libc/sysdeps/alpha/fpu/s_lrintf.c
+++ b/ports/sysdeps/alpha/fpu/s_lrintf.c
diff --git a/libc/sysdeps/alpha/fpu/s_lround.c b/ports/sysdeps/alpha/fpu/s_lround.c
index 0e0e98806..0e0e98806 100644
--- a/libc/sysdeps/alpha/fpu/s_lround.c
+++ b/ports/sysdeps/alpha/fpu/s_lround.c
diff --git a/libc/sysdeps/alpha/fpu/s_lroundf.c b/ports/sysdeps/alpha/fpu/s_lroundf.c
index 16ff348b2..16ff348b2 100644
--- a/libc/sysdeps/alpha/fpu/s_lroundf.c
+++ b/ports/sysdeps/alpha/fpu/s_lroundf.c
diff --git a/libc/sysdeps/alpha/fpu/s_nearbyint.c b/ports/sysdeps/alpha/fpu/s_nearbyint.c
index b18db8ba7..b18db8ba7 100644
--- a/libc/sysdeps/alpha/fpu/s_nearbyint.c
+++ b/ports/sysdeps/alpha/fpu/s_nearbyint.c
diff --git a/libc/sysdeps/alpha/fpu/s_nearbyintf.c b/ports/sysdeps/alpha/fpu/s_nearbyintf.c
index ee637982d..ee637982d 100644
--- a/libc/sysdeps/alpha/fpu/s_nearbyintf.c
+++ b/ports/sysdeps/alpha/fpu/s_nearbyintf.c
diff --git a/libc/sysdeps/alpha/fpu/s_rint.c b/ports/sysdeps/alpha/fpu/s_rint.c
index e9aa02882..e9aa02882 100644
--- a/libc/sysdeps/alpha/fpu/s_rint.c
+++ b/ports/sysdeps/alpha/fpu/s_rint.c
diff --git a/libc/sysdeps/alpha/fpu/s_rintf.c b/ports/sysdeps/alpha/fpu/s_rintf.c
index 9e4cbd1ff..9e4cbd1ff 100644
--- a/libc/sysdeps/alpha/fpu/s_rintf.c
+++ b/ports/sysdeps/alpha/fpu/s_rintf.c
diff --git a/libc/sysdeps/alpha/fpu/s_round.c b/ports/sysdeps/alpha/fpu/s_round.c
index 71763cf4a..71763cf4a 100644
--- a/libc/sysdeps/alpha/fpu/s_round.c
+++ b/ports/sysdeps/alpha/fpu/s_round.c
diff --git a/libc/sysdeps/alpha/fpu/s_roundf.c b/ports/sysdeps/alpha/fpu/s_roundf.c
index 89584f062..89584f062 100644
--- a/libc/sysdeps/alpha/fpu/s_roundf.c
+++ b/ports/sysdeps/alpha/fpu/s_roundf.c
diff --git a/libc/sysdeps/alpha/fpu/s_trunc.c b/ports/sysdeps/alpha/fpu/s_trunc.c
index 11a279a53..11a279a53 100644
--- a/libc/sysdeps/alpha/fpu/s_trunc.c
+++ b/ports/sysdeps/alpha/fpu/s_trunc.c
diff --git a/libc/sysdeps/alpha/fpu/s_truncf.c b/ports/sysdeps/alpha/fpu/s_truncf.c
index 094997b43..094997b43 100644
--- a/libc/sysdeps/alpha/fpu/s_truncf.c
+++ b/ports/sysdeps/alpha/fpu/s_truncf.c
diff --git a/libc/sysdeps/alpha/gccframe.h b/ports/sysdeps/alpha/gccframe.h
index b67022548..b67022548 100644
--- a/libc/sysdeps/alpha/gccframe.h
+++ b/ports/sysdeps/alpha/gccframe.h
diff --git a/libc/sysdeps/alpha/hp-timing.h b/ports/sysdeps/alpha/hp-timing.h
index ccae06b48..ccae06b48 100644
--- a/libc/sysdeps/alpha/hp-timing.h
+++ b/ports/sysdeps/alpha/hp-timing.h
diff --git a/libc/sysdeps/alpha/htonl.S b/ports/sysdeps/alpha/htonl.S
index ef2a57599..ef2a57599 100644
--- a/libc/sysdeps/alpha/htonl.S
+++ b/ports/sysdeps/alpha/htonl.S
diff --git a/libc/sysdeps/alpha/htons.S b/ports/sysdeps/alpha/htons.S
index 7c6270226..7c6270226 100644
--- a/libc/sysdeps/alpha/htons.S
+++ b/ports/sysdeps/alpha/htons.S
diff --git a/libc/sysdeps/alpha/jmpbuf-offsets.h b/ports/sysdeps/alpha/jmpbuf-offsets.h
index c2503d442..c2503d442 100644
--- a/libc/sysdeps/alpha/jmpbuf-offsets.h
+++ b/ports/sysdeps/alpha/jmpbuf-offsets.h
diff --git a/libc/sysdeps/alpha/jmpbuf-unwind.h b/ports/sysdeps/alpha/jmpbuf-unwind.h
index ca5f693d5..ca5f693d5 100644
--- a/libc/sysdeps/alpha/jmpbuf-unwind.h
+++ b/ports/sysdeps/alpha/jmpbuf-unwind.h
diff --git a/libc/sysdeps/alpha/ldiv.S b/ports/sysdeps/alpha/ldiv.S
index 0a971a7ed..0a971a7ed 100644
--- a/libc/sysdeps/alpha/ldiv.S
+++ b/ports/sysdeps/alpha/ldiv.S
diff --git a/libc/sysdeps/alpha/libc-tls.c b/ports/sysdeps/alpha/libc-tls.c
index 7e0276917..7e0276917 100644
--- a/libc/sysdeps/alpha/libc-tls.c
+++ b/ports/sysdeps/alpha/libc-tls.c
diff --git a/libc/sysdeps/alpha/lldiv.S b/ports/sysdeps/alpha/lldiv.S
index 80c450a3f..80c450a3f 100644
--- a/libc/sysdeps/alpha/lldiv.S
+++ b/ports/sysdeps/alpha/lldiv.S
diff --git a/libc/sysdeps/alpha/lshift.s b/ports/sysdeps/alpha/lshift.s
index 42fb430dd..42fb430dd 100644
--- a/libc/sysdeps/alpha/lshift.s
+++ b/ports/sysdeps/alpha/lshift.s
diff --git a/libc/sysdeps/alpha/machine-gmon.h b/ports/sysdeps/alpha/machine-gmon.h
index 5f5522c0b..5f5522c0b 100644
--- a/libc/sysdeps/alpha/machine-gmon.h
+++ b/ports/sysdeps/alpha/machine-gmon.h
diff --git a/libc/sysdeps/alpha/memchr.S b/ports/sysdeps/alpha/memchr.S
index 5d713d53b..5d713d53b 100644
--- a/libc/sysdeps/alpha/memchr.S
+++ b/ports/sysdeps/alpha/memchr.S
diff --git a/libc/sysdeps/alpha/memset.S b/ports/sysdeps/alpha/memset.S
index e34af2b31..e34af2b31 100644
--- a/libc/sysdeps/alpha/memset.S
+++ b/ports/sysdeps/alpha/memset.S
diff --git a/libc/sysdeps/alpha/memusage.h b/ports/sysdeps/alpha/memusage.h
index 3d8416033..3d8416033 100644
--- a/libc/sysdeps/alpha/memusage.h
+++ b/ports/sysdeps/alpha/memusage.h
diff --git a/libc/sysdeps/alpha/mul_1.s b/ports/sysdeps/alpha/mul_1.s
index 165c281ac..165c281ac 100644
--- a/libc/sysdeps/alpha/mul_1.s
+++ b/ports/sysdeps/alpha/mul_1.s
diff --git a/libc/nptl/sysdeps/alpha/Makefile b/ports/sysdeps/alpha/nptl/Makefile
index 88c106bbb..88c106bbb 100644
--- a/libc/nptl/sysdeps/alpha/Makefile
+++ b/ports/sysdeps/alpha/nptl/Makefile
diff --git a/libc/nptl/sysdeps/alpha/elf/pt-initfini.c b/ports/sysdeps/alpha/nptl/elf/pt-initfini.c
index ba2e419d6..ba2e419d6 100644
--- a/libc/nptl/sysdeps/alpha/elf/pt-initfini.c
+++ b/ports/sysdeps/alpha/nptl/elf/pt-initfini.c
diff --git a/libc/nptl/sysdeps/alpha/pthread_spin_lock.S b/ports/sysdeps/alpha/nptl/pthread_spin_lock.S
index ce6cd41a4..ce6cd41a4 100644
--- a/libc/nptl/sysdeps/alpha/pthread_spin_lock.S
+++ b/ports/sysdeps/alpha/nptl/pthread_spin_lock.S
diff --git a/libc/nptl/sysdeps/alpha/pthread_spin_trylock.S b/ports/sysdeps/alpha/nptl/pthread_spin_trylock.S
index 0948da698..0948da698 100644
--- a/libc/nptl/sysdeps/alpha/pthread_spin_trylock.S
+++ b/ports/sysdeps/alpha/nptl/pthread_spin_trylock.S
diff --git a/libc/nptl/sysdeps/alpha/pthreaddef.h b/ports/sysdeps/alpha/nptl/pthreaddef.h
index 26c4daf7b..26c4daf7b 100644
--- a/libc/nptl/sysdeps/alpha/pthreaddef.h
+++ b/ports/sysdeps/alpha/nptl/pthreaddef.h
diff --git a/libc/nptl/sysdeps/alpha/tcb-offsets.sym b/ports/sysdeps/alpha/nptl/tcb-offsets.sym
index c21a79104..c21a79104 100644
--- a/libc/nptl/sysdeps/alpha/tcb-offsets.sym
+++ b/ports/sysdeps/alpha/nptl/tcb-offsets.sym
diff --git a/libc/nptl/sysdeps/alpha/tls.h b/ports/sysdeps/alpha/nptl/tls.h
index e77b1ffca..e77b1ffca 100644
--- a/libc/nptl/sysdeps/alpha/tls.h
+++ b/ports/sysdeps/alpha/nptl/tls.h
diff --git a/libc/sysdeps/alpha/nscd-types.h b/ports/sysdeps/alpha/nscd-types.h
index 957edaf29..957edaf29 100644
--- a/libc/sysdeps/alpha/nscd-types.h
+++ b/ports/sysdeps/alpha/nscd-types.h
diff --git a/ports/sysdeps/alpha/preconfigure b/ports/sysdeps/alpha/preconfigure
new file mode 100644
index 000000000..ad3dc69cf
--- /dev/null
+++ b/ports/sysdeps/alpha/preconfigure
@@ -0,0 +1,3 @@
+case "$machine" in
+alpha*) base_machine=alpha machine=alpha/$machine ;;
+esac
diff --git a/libc/sysdeps/alpha/rawmemchr.S b/ports/sysdeps/alpha/rawmemchr.S
index d3a69fa63..d3a69fa63 100644
--- a/libc/sysdeps/alpha/rawmemchr.S
+++ b/ports/sysdeps/alpha/rawmemchr.S
diff --git a/libc/sysdeps/alpha/reml.S b/ports/sysdeps/alpha/reml.S
index ae291b050..ae291b050 100644
--- a/libc/sysdeps/alpha/reml.S
+++ b/ports/sysdeps/alpha/reml.S
diff --git a/libc/sysdeps/alpha/remlu.S b/ports/sysdeps/alpha/remlu.S
index f8691e19a..f8691e19a 100644
--- a/libc/sysdeps/alpha/remlu.S
+++ b/ports/sysdeps/alpha/remlu.S
diff --git a/libc/sysdeps/alpha/remq.S b/ports/sysdeps/alpha/remq.S
index 64e958bb9..64e958bb9 100644
--- a/libc/sysdeps/alpha/remq.S
+++ b/ports/sysdeps/alpha/remq.S
diff --git a/libc/sysdeps/alpha/remqu.S b/ports/sysdeps/alpha/remqu.S
index 398a345a1..398a345a1 100644
--- a/libc/sysdeps/alpha/remqu.S
+++ b/ports/sysdeps/alpha/remqu.S
diff --git a/libc/sysdeps/alpha/rshift.s b/ports/sysdeps/alpha/rshift.s
index 7c230f193..7c230f193 100644
--- a/libc/sysdeps/alpha/rshift.s
+++ b/ports/sysdeps/alpha/rshift.s
diff --git a/libc/sysdeps/alpha/setjmp.S b/ports/sysdeps/alpha/setjmp.S
index bc5da0f5b..bc5da0f5b 100644
--- a/libc/sysdeps/alpha/setjmp.S
+++ b/ports/sysdeps/alpha/setjmp.S
diff --git a/ports/sysdeps/alpha/shlib-versions b/ports/sysdeps/alpha/shlib-versions
new file mode 100644
index 000000000..cd4b9af78
--- /dev/null
+++ b/ports/sysdeps/alpha/shlib-versions
@@ -0,0 +1,14 @@
+alpha.*-.*-linux.* libm=6.1
+alpha.*-.*-linux.* libc=6.1
+
+alpha.*-.*-linux.* ld=ld-linux.so.2
+
+alpha.*-.*-linux.* libdl=2.1
+
+alpha.*-.*-linux.* libutil=1.1
+
+alpha.*-.*-linux.* libresolv=2.1
+
+alpha.*-.*-linux.* libnsl=1.1
+alpha.*-.*-linux.* libcrypt=1.1
+alpha.*-.*-linux.* libBrokenLocale=1.1
diff --git a/libc/sysdeps/alpha/soft-fp/Makefile b/ports/sysdeps/alpha/soft-fp/Makefile
index 5410a7898..5410a7898 100644
--- a/libc/sysdeps/alpha/soft-fp/Makefile
+++ b/ports/sysdeps/alpha/soft-fp/Makefile
diff --git a/libc/sysdeps/alpha/soft-fp/Versions b/ports/sysdeps/alpha/soft-fp/Versions
index 390128711..390128711 100644
--- a/libc/sysdeps/alpha/soft-fp/Versions
+++ b/ports/sysdeps/alpha/soft-fp/Versions
diff --git a/libc/sysdeps/alpha/soft-fp/e_sqrtl.c b/ports/sysdeps/alpha/soft-fp/e_sqrtl.c
index 717d17012..717d17012 100644
--- a/libc/sysdeps/alpha/soft-fp/e_sqrtl.c
+++ b/ports/sysdeps/alpha/soft-fp/e_sqrtl.c
diff --git a/libc/sysdeps/alpha/soft-fp/local-soft-fp.h b/ports/sysdeps/alpha/soft-fp/local-soft-fp.h
index e93a2ad06..e93a2ad06 100644
--- a/libc/sysdeps/alpha/soft-fp/local-soft-fp.h
+++ b/ports/sysdeps/alpha/soft-fp/local-soft-fp.h
diff --git a/libc/sysdeps/alpha/soft-fp/ots_add.c b/ports/sysdeps/alpha/soft-fp/ots_add.c
index acf66f316..acf66f316 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_add.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_add.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_cmp.c b/ports/sysdeps/alpha/soft-fp/ots_cmp.c
index c356b4848..c356b4848 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_cmp.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_cmp.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_cmpe.c b/ports/sysdeps/alpha/soft-fp/ots_cmpe.c
index 001eb75a9..001eb75a9 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_cmpe.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_cmpe.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_cvtqux.c b/ports/sysdeps/alpha/soft-fp/ots_cvtqux.c
index 82c50806c..82c50806c 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_cvtqux.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_cvtqux.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_cvtqx.c b/ports/sysdeps/alpha/soft-fp/ots_cvtqx.c
index dc8029150..dc8029150 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_cvtqx.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_cvtqx.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_cvttx.c b/ports/sysdeps/alpha/soft-fp/ots_cvttx.c
index 2d0bc9bca..2d0bc9bca 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_cvttx.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_cvttx.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_cvtxq.c b/ports/sysdeps/alpha/soft-fp/ots_cvtxq.c
index 2c9df529d..2c9df529d 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_cvtxq.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_cvtxq.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_cvtxt.c b/ports/sysdeps/alpha/soft-fp/ots_cvtxt.c
index 6221a2365..6221a2365 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_cvtxt.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_cvtxt.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_div.c b/ports/sysdeps/alpha/soft-fp/ots_div.c
index eb0748928..eb0748928 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_div.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_div.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_mul.c b/ports/sysdeps/alpha/soft-fp/ots_mul.c
index f88ee33fb..f88ee33fb 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_mul.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_mul.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_nintxq.c b/ports/sysdeps/alpha/soft-fp/ots_nintxq.c
index a718372af..a718372af 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_nintxq.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_nintxq.c
diff --git a/libc/sysdeps/alpha/soft-fp/ots_sub.c b/ports/sysdeps/alpha/soft-fp/ots_sub.c
index 5147266a0..5147266a0 100644
--- a/libc/sysdeps/alpha/soft-fp/ots_sub.c
+++ b/ports/sysdeps/alpha/soft-fp/ots_sub.c
diff --git a/libc/sysdeps/alpha/soft-fp/sfp-machine.h b/ports/sysdeps/alpha/soft-fp/sfp-machine.h
index 2bad4e9dc..2bad4e9dc 100644
--- a/libc/sysdeps/alpha/soft-fp/sfp-machine.h
+++ b/ports/sysdeps/alpha/soft-fp/sfp-machine.h
diff --git a/libc/sysdeps/alpha/stackinfo.h b/ports/sysdeps/alpha/stackinfo.h
index 0a281bd43..0a281bd43 100644
--- a/libc/sysdeps/alpha/stackinfo.h
+++ b/ports/sysdeps/alpha/stackinfo.h
diff --git a/libc/sysdeps/alpha/stpcpy.S b/ports/sysdeps/alpha/stpcpy.S
index b73e85f21..b73e85f21 100644
--- a/libc/sysdeps/alpha/stpcpy.S
+++ b/ports/sysdeps/alpha/stpcpy.S
diff --git a/libc/sysdeps/alpha/stpncpy.S b/ports/sysdeps/alpha/stpncpy.S
index e877cf176..e877cf176 100644
--- a/libc/sysdeps/alpha/stpncpy.S
+++ b/ports/sysdeps/alpha/stpncpy.S
diff --git a/libc/sysdeps/alpha/strcat.S b/ports/sysdeps/alpha/strcat.S
index d8ef8f154..d8ef8f154 100644
--- a/libc/sysdeps/alpha/strcat.S
+++ b/ports/sysdeps/alpha/strcat.S
diff --git a/libc/sysdeps/alpha/strchr.S b/ports/sysdeps/alpha/strchr.S
index e0b17415a..e0b17415a 100644
--- a/libc/sysdeps/alpha/strchr.S
+++ b/ports/sysdeps/alpha/strchr.S
diff --git a/libc/sysdeps/alpha/strcmp.S b/ports/sysdeps/alpha/strcmp.S
index 9196be2ce..9196be2ce 100644
--- a/libc/sysdeps/alpha/strcmp.S
+++ b/ports/sysdeps/alpha/strcmp.S
diff --git a/libc/sysdeps/alpha/strcpy.S b/ports/sysdeps/alpha/strcpy.S
index 02bfe5240..02bfe5240 100644
--- a/libc/sysdeps/alpha/strcpy.S
+++ b/ports/sysdeps/alpha/strcpy.S
diff --git a/libc/sysdeps/alpha/strlen.S b/ports/sysdeps/alpha/strlen.S
index 2560b973c..2560b973c 100644
--- a/libc/sysdeps/alpha/strlen.S
+++ b/ports/sysdeps/alpha/strlen.S
diff --git a/libc/sysdeps/alpha/strncat.S b/ports/sysdeps/alpha/strncat.S
index ddf686f57..ddf686f57 100644
--- a/libc/sysdeps/alpha/strncat.S
+++ b/ports/sysdeps/alpha/strncat.S
diff --git a/libc/sysdeps/alpha/strncmp.S b/ports/sysdeps/alpha/strncmp.S
index ff199eb74..ff199eb74 100644
--- a/libc/sysdeps/alpha/strncmp.S
+++ b/ports/sysdeps/alpha/strncmp.S
diff --git a/libc/sysdeps/alpha/strncpy.S b/ports/sysdeps/alpha/strncpy.S
index 5d3e72e28..5d3e72e28 100644
--- a/libc/sysdeps/alpha/strncpy.S
+++ b/ports/sysdeps/alpha/strncpy.S
diff --git a/libc/sysdeps/alpha/strrchr.S b/ports/sysdeps/alpha/strrchr.S
index 248181f70..248181f70 100644
--- a/libc/sysdeps/alpha/strrchr.S
+++ b/ports/sysdeps/alpha/strrchr.S
diff --git a/libc/sysdeps/alpha/stxcpy.S b/ports/sysdeps/alpha/stxcpy.S
index 5ba2d43e5..5ba2d43e5 100644
--- a/libc/sysdeps/alpha/stxcpy.S
+++ b/ports/sysdeps/alpha/stxcpy.S
diff --git a/libc/sysdeps/alpha/stxncpy.S b/ports/sysdeps/alpha/stxncpy.S
index 73bcd36e4..73bcd36e4 100644
--- a/libc/sysdeps/alpha/stxncpy.S
+++ b/ports/sysdeps/alpha/stxncpy.S
diff --git a/libc/sysdeps/alpha/sub_n.s b/ports/sysdeps/alpha/sub_n.s
index e0a6d5c6b..e0a6d5c6b 100644
--- a/libc/sysdeps/alpha/sub_n.s
+++ b/ports/sysdeps/alpha/sub_n.s
diff --git a/libc/sysdeps/alpha/submul_1.s b/ports/sysdeps/alpha/submul_1.s
index 5343f67d8..5343f67d8 100644
--- a/libc/sysdeps/alpha/submul_1.s
+++ b/ports/sysdeps/alpha/submul_1.s
diff --git a/libc/sysdeps/alpha/udiv_qrnnd.S b/ports/sysdeps/alpha/udiv_qrnnd.S
index d4ca795aa..d4ca795aa 100644
--- a/libc/sysdeps/alpha/udiv_qrnnd.S
+++ b/ports/sysdeps/alpha/udiv_qrnnd.S
diff --git a/libc/sysdeps/mach/alpha/machine-lock.h b/ports/sysdeps/mach/alpha/machine-lock.h
index bd27d2a51..bd27d2a51 100644
--- a/libc/sysdeps/mach/alpha/machine-lock.h
+++ b/ports/sysdeps/mach/alpha/machine-lock.h
diff --git a/libc/sysdeps/mach/alpha/machine-sp.h b/ports/sysdeps/mach/alpha/machine-sp.h
index e6df63c9a..e6df63c9a 100644
--- a/libc/sysdeps/mach/alpha/machine-sp.h
+++ b/ports/sysdeps/mach/alpha/machine-sp.h
diff --git a/libc/sysdeps/mach/alpha/setfpucw.c b/ports/sysdeps/mach/alpha/setfpucw.c
index a2887c8df..a2887c8df 100644
--- a/libc/sysdeps/mach/alpha/setfpucw.c
+++ b/ports/sysdeps/mach/alpha/setfpucw.c
diff --git a/libc/sysdeps/mach/alpha/syscall.S b/ports/sysdeps/mach/alpha/syscall.S
index 15fc5b75b..15fc5b75b 100644
--- a/libc/sysdeps/mach/alpha/syscall.S
+++ b/ports/sysdeps/mach/alpha/syscall.S
diff --git a/libc/sysdeps/mach/alpha/sysdep.h b/ports/sysdeps/mach/alpha/sysdep.h
index 84e21c8d5..84e21c8d5 100644
--- a/libc/sysdeps/mach/alpha/sysdep.h
+++ b/ports/sysdeps/mach/alpha/sysdep.h
diff --git a/libc/sysdeps/mach/alpha/thread_state.h b/ports/sysdeps/mach/alpha/thread_state.h
index 0c9527bd2..0c9527bd2 100644
--- a/libc/sysdeps/mach/alpha/thread_state.h
+++ b/ports/sysdeps/mach/alpha/thread_state.h
diff --git a/libc/sysdeps/mach/hurd/alpha/bits/sigcontext.h b/ports/sysdeps/mach/hurd/alpha/bits/sigcontext.h
index 4f13a2c9b..4f13a2c9b 100644
--- a/libc/sysdeps/mach/hurd/alpha/bits/sigcontext.h
+++ b/ports/sysdeps/mach/hurd/alpha/bits/sigcontext.h
diff --git a/libc/sysdeps/mach/hurd/alpha/exc2signal.c b/ports/sysdeps/mach/hurd/alpha/exc2signal.c
index 5f3fbbbbb..5f3fbbbbb 100644
--- a/libc/sysdeps/mach/hurd/alpha/exc2signal.c
+++ b/ports/sysdeps/mach/hurd/alpha/exc2signal.c
diff --git a/libc/sysdeps/mach/hurd/alpha/init-first.c b/ports/sysdeps/mach/hurd/alpha/init-first.c
index 6e5522589..6e5522589 100644
--- a/libc/sysdeps/mach/hurd/alpha/init-first.c
+++ b/ports/sysdeps/mach/hurd/alpha/init-first.c
diff --git a/libc/sysdeps/mach/hurd/alpha/intr-msg.h b/ports/sysdeps/mach/hurd/alpha/intr-msg.h
index 4f172124e..4f172124e 100644
--- a/libc/sysdeps/mach/hurd/alpha/intr-msg.h
+++ b/ports/sysdeps/mach/hurd/alpha/intr-msg.h
diff --git a/libc/sysdeps/mach/hurd/alpha/longjmp-ts.c b/ports/sysdeps/mach/hurd/alpha/longjmp-ts.c
index f472dbcb3..f472dbcb3 100644
--- a/libc/sysdeps/mach/hurd/alpha/longjmp-ts.c
+++ b/ports/sysdeps/mach/hurd/alpha/longjmp-ts.c
diff --git a/libc/sysdeps/mach/hurd/alpha/sigreturn.c b/ports/sysdeps/mach/hurd/alpha/sigreturn.c
index 182d4cbd8..182d4cbd8 100644
--- a/libc/sysdeps/mach/hurd/alpha/sigreturn.c
+++ b/ports/sysdeps/mach/hurd/alpha/sigreturn.c
diff --git a/libc/sysdeps/mach/hurd/alpha/static-start.S b/ports/sysdeps/mach/hurd/alpha/static-start.S
index a31d0d097..a31d0d097 100644
--- a/libc/sysdeps/mach/hurd/alpha/static-start.S
+++ b/ports/sysdeps/mach/hurd/alpha/static-start.S
diff --git a/libc/sysdeps/mach/hurd/alpha/trampoline.c b/ports/sysdeps/mach/hurd/alpha/trampoline.c
index 2360cbb46..2360cbb46 100644
--- a/libc/sysdeps/mach/hurd/alpha/trampoline.c
+++ b/ports/sysdeps/mach/hurd/alpha/trampoline.c
diff --git a/libc/sysdeps/unix/alpha/Makefile b/ports/sysdeps/unix/alpha/Makefile
index 441aa02a8..441aa02a8 100644
--- a/libc/sysdeps/unix/alpha/Makefile
+++ b/ports/sysdeps/unix/alpha/Makefile
diff --git a/libc/sysdeps/unix/alpha/pipe.S b/ports/sysdeps/unix/alpha/pipe.S
index 2da4d78ab..2da4d78ab 100644
--- a/libc/sysdeps/unix/alpha/pipe.S
+++ b/ports/sysdeps/unix/alpha/pipe.S
diff --git a/libc/sysdeps/unix/alpha/rt-sysdep.S b/ports/sysdeps/unix/alpha/rt-sysdep.S
index f966bf1e5..f966bf1e5 100644
--- a/libc/sysdeps/unix/alpha/rt-sysdep.S
+++ b/ports/sysdeps/unix/alpha/rt-sysdep.S
diff --git a/libc/sysdeps/unix/alpha/sysdep.S b/ports/sysdeps/unix/alpha/sysdep.S
index c67a6542f..c67a6542f 100644
--- a/libc/sysdeps/unix/alpha/sysdep.S
+++ b/ports/sysdeps/unix/alpha/sysdep.S
diff --git a/libc/sysdeps/unix/alpha/sysdep.h b/ports/sysdeps/unix/alpha/sysdep.h
index 2e5bc798e..2e5bc798e 100644
--- a/libc/sysdeps/unix/alpha/sysdep.h
+++ b/ports/sysdeps/unix/alpha/sysdep.h
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/bits/stat.h b/ports/sysdeps/unix/bsd/osf/alpha/bits/stat.h
deleted file mode 100644
index 20f358f70..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/bits/stat.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 1993, 1996, 1997, 1999, 2000 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 _SYS_STAT_H
-# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Structure describing file characteristics. */
-struct stat
- {
- int st_dev; /* Device. */
- unsigned int st_ino; /* File serial number. */
- unsigned int st_mode; /* File mode. */
- unsigned short st_nlink; /* Link count. */
- unsigned int st_uid; /* User ID of the file's owner. */
- unsigned int st_gid; /* Group ID of the file's group.*/
- int st_rdev; /* Device number, if device. */
-
- long st_size; /* Size of file, in bytes. */
-
- int st_atime; /* Time of last access. */
- int st_atime_usec;
- int st_mtime; /* Time of last modification. */
- int st_mtime_usec;
- int st_ctime; /* Time of last status change. */
- int st_ctime_usec;
-
- __blksize_t st_blksize; /* Optimal block size for I/O. */
-#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */
-
- __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */
- unsigned int st_flags;
- unsigned int st_gen;
- };
-
-/* Encoding of the file mode. */
-
-#define __S_IFMT 0170000 /* These bits determine file type. */
-
-/* File types. */
-#define __S_IFDIR 0040000 /* Directory. */
-#define __S_IFCHR 0020000 /* Character device. */
-#define __S_IFBLK 0060000 /* Block device. */
-#define __S_IFREG 0100000 /* Regular file. */
-#define __S_IFIFO 0010000 /* FIFO. */
-
-#define __S_IFLNK 0120000 /* Symbolic link. */
-#define __S_IFSOCK 0140000 /* Socket. */
-
-/* POSIX.1b objects. */
-#define __S_TYPEISMQ(buf) (0)
-#define __S_TYPEISSEM(buf) (0)
-#define __S_TYPEISSHM(buf) (0)
-
-/* Protection bits. */
-
-#define __S_ISUID 04000 /* Set user ID on execution. */
-#define __S_ISGID 02000 /* Set group ID on execution. */
-#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
-#define __S_IREAD 0400 /* Read by owner. */
-#define __S_IWRITE 0200 /* Write by owner. */
-#define __S_IEXEC 0100 /* Execute by owner. */
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/brk.S b/ports/sysdeps/unix/bsd/osf/alpha/brk.S
deleted file mode 100644
index 51abaa6c1..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/brk.S
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Brendan Kehoe (brendan@zen.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.
-
- 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>
-
-#ifndef SYS_brk
-#define SYS_brk 17
-#endif
-
-#ifndef HAVE_GNU_LD
-#define __end end
-#endif
-
-.data
- .extern __end,8
- .globl __curbrk
-__curbrk:
- .quad __end
-
-.text
-ENTRY(__brk)
- /* FIXME We do not check for asking for less than a page yet. */
- ldiq v0, SYS_brk
- call_pal PAL_callsys
- bne a3, error
-
- /* Update __curbrk and exit cleanly. */
-/* ldgp gp, 0(t12) */
- stq a0, __curbrk
-
- mov zero, v0
- ret
- /* What a horrible way to die. */
-error: ldgp gp,0(gp)
- jmp zero,syscall_error
- .end __brk
-
-weak_alias (__brk, brk)
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/dl-brk.S b/ports/sysdeps/unix/bsd/osf/alpha/dl-brk.S
deleted file mode 100644
index eeb96544e..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/dl-brk.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <brk.S>
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/fork.S b/ports/sysdeps/unix/bsd/osf/alpha/fork.S
deleted file mode 100644
index a4ec14b56..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/fork.S
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1993, 1995, 1997, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Brendan Kehoe (brendan@zen.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.
-
- 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>
-
-SYSCALL__ (fork, 0)
- cmovne a4, 0, v0
- ret
- .end __fork
-libc_hidden_def (__fork)
-
-weak_alias (__fork, fork)
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/killpg.S b/ports/sysdeps/unix/bsd/osf/alpha/killpg.S
deleted file mode 100644
index 741616bc7..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/killpg.S
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 1993, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Brendan Kehoe (brendan@zen.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.
-
- 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>
-
-#include <sys/ult_syscall.h>
-#define SYS_killpg SYS_ult_killpg
-
-SYSCALL (killpg, 2)
- ret
- .end killpg
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/recv.S b/ports/sysdeps/unix/bsd/osf/alpha/recv.S
deleted file mode 100644
index 92a273d15..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/recv.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 1991, 1992, 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. */
-
-#include <sysdep.h>
-
-#include <sys/ult_syscall.h>
-#define SYS_recv SYS_ult_recv
-
-SYSCALL (recv, 4)
- ret
- .end recv
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/send.S b/ports/sysdeps/unix/bsd/osf/alpha/send.S
deleted file mode 100644
index 7d61d46a1..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/send.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 1991, 1992, 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. */
-
-#include <sysdep.h>
-
-#include <sys/ult_syscall.h>
-#define SYS_send SYS_ult_send
-
-SYSCALL (send, 4)
- ret
- .end send
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/sigblock.S b/ports/sysdeps/unix/bsd/osf/alpha/sigblock.S
deleted file mode 100644
index 5db55f447..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/sigblock.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Brendan Kehoe (brendan@zen.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.
-
- 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>
-
-#include <sys/ult_syscall.h>
-#define SYS_sigblock SYS_ult_sigblock
-
-SYSCALL__ (sigblock, 1)
- ret
- .end __sigblock
-
-weak_alias (__sigblock, sigblock)
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/sigpause.S b/ports/sysdeps/unix/bsd/osf/alpha/sigpause.S
deleted file mode 100644
index 764636647..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/sigpause.S
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1993,95,97,2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Brendan Kehoe (brendan@zen.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.
-
- 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>
-
-#include <sys/ult_syscall.h>
-#define SYS_sigpause SYS_ult_sigpause
-
-SYSCALL__ (sigpause, 1)
- ret
- .end __sigpause
-libc_hidden_def (__sigpause)
-
-weak_alias (__sigpause, sigpause)
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/sigsetmask.S b/ports/sysdeps/unix/bsd/osf/alpha/sigsetmask.S
deleted file mode 100644
index 93333aa0b..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/sigsetmask.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Brendan Kehoe (brendan@zen.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.
-
- 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>
-
-#include <sys/ult_syscall.h>
-#define SYS_sigsetmask SYS_ult_sigsetmask
-
-SYSCALL__ (sigsetmask, 1)
- ret
- .end __sigsetmask
-
-weak_alias (__sigsetmask, sigsetmask)
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/sigvec.S b/ports/sysdeps/unix/bsd/osf/alpha/sigvec.S
deleted file mode 100644
index 45fcc58a0..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/sigvec.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Brendan Kehoe (brendan@zen.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.
-
- 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>
-
-#include <sys/ult_syscall.h>
-#define SYS_sigvec SYS_ult_sigvec
-
-SYSCALL__ (sigvec, 3)
- ret
- .end __sigvec
-
-weak_alias (__sigvec, sigvec)
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/start.S b/ports/sysdeps/unix/bsd/osf/alpha/start.S
deleted file mode 100644
index 1fa52a643..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/start.S
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Brendan Kehoe (brendan@zen.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.
-
- 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 <sysdep.h>
-
-#if 0
-.sdata
-.globl STARTFRM
-STARTFRM = 0
-#endif
-
-.text
-ENTRY(__start)
- lda sp, -16(sp)
- stq zero, 8(sp)
-
- /* This branch puts the address of the current insn in t0. */
- br t0, 10f
-10:
- /* We set the GP register by using the address of the ldgp */
- /* (what we just put into t0). */
- ldgp gp, 0(t0)
-
- /* get argc */
- ldl a0, 16(sp)
-
- /* get argv */
- lda a1, 24(sp)
-
- /* move ahead to envp */
- s8addq a0, a1, a2
- addq a2, 0x8, a2
-
- /* Store in environ. */
- stq a2, environ
-
- /* Clear out errno. */
-/* ldgp gp, 0(t12) */
- stl zero, errno
-
- /* Call main. */
- jsr ra, main
- ldgp gp, 0(ra)
-
- mov v0, a0
-
- jsr ra, exit
- ldgp gp, 0(ra)
-
- .end __start
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/syscalls.list b/ports/sysdeps/unix/bsd/osf/alpha/syscalls.list
deleted file mode 100644
index ac883925e..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/syscalls.list
+++ /dev/null
@@ -1,3 +0,0 @@
-# File name Caller Syscall name # args Strong name Weak names
-
-wait4 - wait4 4 __wait4 wait4
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/sysdep.h b/ports/sysdeps/unix/bsd/osf/alpha/sysdep.h
deleted file mode 100644
index 84ac541aa..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/sysdep.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Brendan Kehoe (brendan@zen.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.
-
- 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. */
-
-/* OSF/1 does not precede the asm names of C symbols with a `_'. */
-#define NO_UNDERSCORES
-
-#include <sysdeps/unix/alpha/sysdep.h>
-
-#ifdef __ASSEMBLER__
-
-#include <machine/pal.h> /* get PAL_callsys */
-#include <regdef.h>
-
-#endif
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/vhangup.S b/ports/sysdeps/unix/bsd/osf/alpha/vhangup.S
deleted file mode 100644
index 3c2b04af7..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/vhangup.S
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 1991, 1992, 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. */
-
-#include <sysdep.h>
-
-#include <sys/ult_syscall.h>
-#define SYS_vhangup SYS_ult_vhangup
-
-SYSCALL (vhangup, 1)
- ret
- .end vhangup
diff --git a/ports/sysdeps/unix/bsd/osf/alpha/waitpid.c b/ports/sysdeps/unix/bsd/osf/alpha/waitpid.c
deleted file mode 100644
index 8378982ac..000000000
--- a/ports/sysdeps/unix/bsd/osf/alpha/waitpid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/bsd/bsd4.4/waitpid.c>
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/Implies b/ports/sysdeps/unix/sysv/linux/alpha/Implies
index 1616efecb..1616efecb 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/Implies
+++ b/ports/sysdeps/unix/sysv/linux/alpha/Implies
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/Makefile b/ports/sysdeps/unix/sysv/linux/alpha/Makefile
index f64f23fd7..f64f23fd7 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/Makefile
+++ b/ports/sysdeps/unix/sysv/linux/alpha/Makefile
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/Versions b/ports/sysdeps/unix/sysv/linux/alpha/Versions
index 8709dd2a3..8709dd2a3 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/ports/sysdeps/unix/sysv/linux/alpha/Versions
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/a.out.h b/ports/sysdeps/unix/sysv/linux/alpha/a.out.h
index a7699f0fe..a7699f0fe 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/a.out.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/a.out.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/adjtime.c b/ports/sysdeps/unix/sysv/linux/alpha/adjtime.c
index 1700524d3..1700524d3 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/adjtime.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/adjtime.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h b/ports/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h
index 57b96d64d..57b96d64d 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h b/ports/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h
index 142df9c4f..142df9c4f 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies b/ports/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies
index 0d7000dc2..0d7000dc2 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies
+++ b/ports/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies b/ports/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies
index 617c388d2..617c388d2 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies
+++ b/ports/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/a.out.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/a.out.h
index 82a3dd4c0..82a3dd4c0 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/a.out.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/a.out.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/dirent.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
index 6ed74783a..6ed74783a 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h
index e5aa4a0fb..e5aa4a0fb 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/errno.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/errno.h
index 8b2f152a1..8b2f152a1 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/errno.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/errno.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
index 710bace21..710bace21 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
index c525046e5..c525046e5 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/ipc.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/ipc.h
index 77f3c938d..77f3c938d 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/ipc.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/ipc.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/mman.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h
index 2f0e56491..2f0e56491 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/mman.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/msq.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h
index ab251eaf7..ab251eaf7 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/msq.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/netdb.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
index e3664fd29..e3664fd29 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/resource.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/resource.h
index 92d0199dc..92d0199dc 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/resource.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/resource.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/sem.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/sem.h
index f63360b2b..f63360b2b 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/sem.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/sem.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/shm.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/shm.h
index cb214e641..cb214e641 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/shm.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/shm.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
index 80feb2fa2..80feb2fa2 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
index a2aacc04b..a2aacc04b 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/signum.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/signum.h
index 477c13175..477c13175 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/signum.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/signum.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
index 7faaf98d5..7faaf98d5 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/stat.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/stat.h
index 42748be76..42748be76 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/stat.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/stat.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/statfs.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
index d838e6bf4..d838e6bf4 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/termios.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/termios.h
index 966ccf94d..966ccf94d 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/termios.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/termios.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
index 201585af1..201585af1 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
index 22fc64109..22fc64109 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/brk.S b/ports/sysdeps/unix/sysv/linux/alpha/brk.S
index e01abebe0..e01abebe0 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/brk.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/brk.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/clone.S b/ports/sysdeps/unix/sysv/linux/alpha/clone.S
index 5e0b21ea1..5e0b21ea1 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/clone.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/clone.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/dl-auxv.h b/ports/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
index 8afc4dba3..8afc4dba3 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/dl-brk.S b/ports/sysdeps/unix/sysv/linux/alpha/dl-brk.S
index eeb96544e..eeb96544e 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/dl-brk.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/dl-brk.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/dl-support.c b/ports/sysdeps/unix/sysv/linux/alpha/dl-support.c
index 290217671..290217671 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/dl-support.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/dl-support.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c b/ports/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
index 4034820f4..4034820f4 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/fpu/Implies b/ports/sysdeps/unix/sysv/linux/alpha/fpu/Implies
index d76f511c2..d76f511c2 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/fpu/Implies
+++ b/ports/sysdeps/unix/sysv/linux/alpha/fpu/Implies
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c b/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c
index 5e63be5cc..5e63be5cc 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/fxstat.c b/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c
index 40e08fd86..40e08fd86 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/fxstat.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/fxstatat.c b/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
index 497694619..497694619 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/fxstatat.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/getclktck.c b/ports/sysdeps/unix/sysv/linux/alpha/getclktck.c
index 6636bbe68..6636bbe68 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/getclktck.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/getclktck.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/getcontext.S b/ports/sysdeps/unix/sysv/linux/alpha/getcontext.S
index f010f337e..f010f337e 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/getcontext.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/getcontext.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/getdents.c b/ports/sysdeps/unix/sysv/linux/alpha/getdents.c
index dfecfef92..dfecfef92 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/getdents.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/getdents.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/getdents64.c b/ports/sysdeps/unix/sysv/linux/alpha/getdents64.c
index e53570c03..e53570c03 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/getdents64.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/getdents64.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/gethostname.c b/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c
index 4e15ee43e..4e15ee43e 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/gethostname.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/getitimer.S b/ports/sysdeps/unix/sysv/linux/alpha/getitimer.S
index 6644a5c36..6644a5c36 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/getitimer.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/getitimer.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/getrusage.S b/ports/sysdeps/unix/sysv/linux/alpha/getrusage.S
index 0bca4b5f2..0bca4b5f2 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/getrusage.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/getrusage.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/getsysstats.c b/ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c
index 0e49a8452..0e49a8452 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/getsysstats.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/gettimeofday.S b/ports/sysdeps/unix/sysv/linux/alpha/gettimeofday.S
index 7c9183a4f..7c9183a4f 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/gettimeofday.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/gettimeofday.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/glob.c b/ports/sysdeps/unix/sysv/linux/alpha/glob.c
index 84573899d..84573899d 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/glob.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/glob.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S b/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
index 4779f175e..4779f175e 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S b/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
index a9c0891aa..a9c0891aa 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/ioperm.c b/ports/sysdeps/unix/sysv/linux/alpha/ioperm.c
index 32e96ec2f..32e96ec2f 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/ioperm.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/ioperm.c
diff --git a/ports/sysdeps/unix/sysv/linux/alpha/ipc_priv.h b/ports/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
new file mode 100644
index 000000000..67883be10
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/powerpc/ipc_priv.h>
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h b/ports/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
index 4c35d969c..4c35d969c 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/kernel_stat.h b/ports/sysdeps/unix/sysv/linux/alpha/kernel_stat.h
index a1d012ab0..a1d012ab0 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/kernel_stat.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/kernel_stat.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h b/ports/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h
index a3edec226..a3edec226 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/kernel_termios.h b/ports/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
index c38f1fac1..c38f1fac1 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/lxstat.c b/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c
index 38fac2e2b..38fac2e2b 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/lxstat.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/makecontext.S b/ports/sysdeps/unix/sysv/linux/alpha/makecontext.S
index 223117e26..223117e26 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/makecontext.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/makecontext.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/msgctl.c b/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c
index a59911fe4..a59911fe4 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/msgctl.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h b/ports/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h
index bd985cc59..bd985cc59 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/Makefile b/ports/sysdeps/unix/sysv/linux/alpha/nptl/Makefile
index 8c8084079..8c8084079 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/Makefile
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/Makefile
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/Versions b/ports/sysdeps/unix/sysv/linux/alpha/nptl/Versions
index 437c4da28..437c4da28 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/Versions
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/aio_cancel.c b/ports/sysdeps/unix/sysv/linux/alpha/nptl/aio_cancel.c
index 0d6da8291..0d6da8291 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/aio_cancel.c
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h b/ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/local_lim.h
index a7c9740a0..a7c9740a0 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/local_lim.h
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h b/ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h
index 41c0be197..41c0be197 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h b/ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/semaphore.h
index be4469c69..be4469c69 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/semaphore.h
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/clone.S b/ports/sysdeps/unix/sysv/linux/alpha/nptl/clone.S
index 675a997e9..675a997e9 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/clone.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/clone.S
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c b/ports/sysdeps/unix/sysv/linux/alpha/nptl/createthread.c
index 6a51e73da..6a51e73da 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/createthread.c
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/fork.c b/ports/sysdeps/unix/sysv/linux/alpha/nptl/fork.c
index ca85fc008..ca85fc008 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/fork.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/fork.c
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h b/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h
index 93188234c..93188234c 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S b/ports/sysdeps/unix/sysv/linux/alpha/nptl/pt-vfork.S
index ec5d175be..ec5d175be 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/pt-vfork.S
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c b/ports/sysdeps/unix/sysv/linux/alpha/nptl/pthread_once.c
index 0e7e9790d..0e7e9790d 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/pthread_once.c
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/sem_post.c b/ports/sysdeps/unix/sysv/linux/alpha/nptl/sem_post.c
index 27fd817e6..27fd817e6 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/sem_post.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/sem_post.c
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h b/ports/sysdeps/unix/sysv/linux/alpha/nptl/sysdep-cancel.h
index 1db847c9e..1db847c9e 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/sysdep-cancel.h
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_create.c b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c
index 172223af3..172223af3 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_create.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_delete.c b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c
index 537516e0a..537516e0a 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_delete.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c
index 3f21a73c9..3f21a73c9 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_gettime.c b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c
index a50143adc..a50143adc 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_gettime.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_settime.c b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c
index 37baeffac..37baeffac 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/timer_settime.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S b/ports/sysdeps/unix/sysv/linux/alpha/nptl/vfork.S
index f4ed9311b..f4ed9311b 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/vfork.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/oldglob.c b/ports/sysdeps/unix/sysv/linux/alpha/oldglob.c
index 6d9b79f2c..6d9b79f2c 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/oldglob.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/oldglob.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/pipe.S b/ports/sysdeps/unix/sysv/linux/alpha/pipe.S
index 1e7ec1c19..1e7ec1c19 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/pipe.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/pipe.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/register-dump.h b/ports/sysdeps/unix/sysv/linux/alpha/register-dump.h
index 77f962952..77f962952 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/register-dump.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/register-dump.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
index e27949fef..e27949fef 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/select.S b/ports/sysdeps/unix/sysv/linux/alpha/select.S
index 35a81e949..35a81e949 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/select.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/select.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/semctl.c b/ports/sysdeps/unix/sysv/linux/alpha/semctl.c
index 9957f983b..9957f983b 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/semctl.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/semctl.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/setcontext.S b/ports/sysdeps/unix/sysv/linux/alpha/setcontext.S
index 27abfd0c1..27abfd0c1 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/setcontext.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/setcontext.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/setfpucw.c b/ports/sysdeps/unix/sysv/linux/alpha/setfpucw.c
index a7e3a5581..a7e3a5581 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/setfpucw.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/setfpucw.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/setitimer.S b/ports/sysdeps/unix/sysv/linux/alpha/setitimer.S
index 59caeac68..59caeac68 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/setitimer.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/setitimer.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/setregid.c b/ports/sysdeps/unix/sysv/linux/alpha/setregid.c
index 0973fe4ac..0973fe4ac 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/setregid.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/setregid.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/setresgid.c b/ports/sysdeps/unix/sysv/linux/alpha/setresgid.c
index 50e29e3c7..50e29e3c7 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/setresgid.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/setresgid.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/setresuid.c b/ports/sysdeps/unix/sysv/linux/alpha/setresuid.c
index e76413bf6..e76413bf6 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/setresuid.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/setresuid.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/setreuid.c b/ports/sysdeps/unix/sysv/linux/alpha/setreuid.c
index a23a34792..a23a34792 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/setreuid.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/setreuid.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/settimeofday.S b/ports/sysdeps/unix/sysv/linux/alpha/settimeofday.S
index e39eadc20..e39eadc20 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/settimeofday.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/settimeofday.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/shmctl.c b/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c
index e63211fa0..e63211fa0 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/shmctl.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sigaction.c b/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c
index 26b081d9a..26b081d9a 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sigaction.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h b/ports/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
index 16c5dcbc5..16c5dcbc5 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sigprocmask.c b/ports/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
index 1916111a2..1916111a2 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sigsuspend.S b/ports/sysdeps/unix/sysv/linux/alpha/sigsuspend.S
index 6863c07ec..6863c07ec 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sigsuspend.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sigsuspend.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sizes.h b/ports/sysdeps/unix/sysv/linux/alpha/sizes.h
index 0c7f4d5d2..0c7f4d5d2 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sizes.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sizes.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/swapcontext.S b/ports/sysdeps/unix/sysv/linux/alpha/swapcontext.S
index 1221f67f7..1221f67f7 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/swapcontext.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/swapcontext.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sys/acct.h b/ports/sysdeps/unix/sysv/linux/alpha/sys/acct.h
index 1e00006ef..1e00006ef 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sys/acct.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sys/acct.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sys/epoll.h b/ports/sysdeps/unix/sysv/linux/alpha/sys/epoll.h
index 9f983a515..9f983a515 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sys/epoll.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sys/epoll.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sys/eventfd.h b/ports/sysdeps/unix/sysv/linux/alpha/sys/eventfd.h
index c8ce55462..c8ce55462 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sys/eventfd.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sys/eventfd.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sys/inotify.h b/ports/sysdeps/unix/sysv/linux/alpha/sys/inotify.h
index d61c700d5..d61c700d5 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sys/inotify.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sys/inotify.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sys/io.h b/ports/sysdeps/unix/sysv/linux/alpha/sys/io.h
index 4334c6392..4334c6392 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sys/io.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sys/io.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sys/procfs.h b/ports/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
index bee51f94e..bee51f94e 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h b/ports/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h
index 4cbe97776..4cbe97776 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sys/timerfd.h b/ports/sysdeps/unix/sysv/linux/alpha/sys/timerfd.h
index 09d6ccf6c..09d6ccf6c 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sys/timerfd.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sys/timerfd.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/ports/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
index 438293c62..438293c62 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sys/user.h b/ports/sysdeps/unix/sysv/linux/alpha/sys/user.h
index 4cd29d2ff..4cd29d2ff 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sys/user.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sys/user.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/syscall.S b/ports/sysdeps/unix/sysv/linux/alpha/syscall.S
index 0c4081363..0c4081363 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/syscall.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/syscall.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/syscalls.list b/ports/sysdeps/unix/sysv/linux/alpha/syscalls.list
index de2c3ceac..de2c3ceac 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/syscalls.list
+++ b/ports/sysdeps/unix/sysv/linux/alpha/syscalls.list
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sysconf.c b/ports/sysdeps/unix/sysv/linux/alpha/sysconf.c
index 3e5b4ee85..3e5b4ee85 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sysconf.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sysconf.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h b/ports/sysdeps/unix/sysv/linux/alpha/sysdep.h
index f0661d162..f0661d162 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/sysdep.h
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym b/ports/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym
index f95ff7563..f95ff7563 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym
+++ b/ports/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/utimes.S b/ports/sysdeps/unix/sysv/linux/alpha/utimes.S
index 0dd0a9372..0dd0a9372 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/utimes.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/utimes.S
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/wait4.S b/ports/sysdeps/unix/sysv/linux/alpha/wait4.S
index 634993deb..634993deb 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/wait4.S
+++ b/ports/sysdeps/unix/sysv/linux/alpha/wait4.S
diff --git a/ports/sysdeps/unix/sysv/linux/alpha/wordexp.c b/ports/sysdeps/unix/sysv/linux/alpha/wordexp.c
new file mode 100644
index 000000000..075b267bb
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/alpha/wordexp.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/ia64/wordexp.c>
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/xstat.c b/ports/sysdeps/unix/sysv/linux/alpha/xstat.c
index b7488e425..b7488e425 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/xstat.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/xstat.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/xstatconv.c b/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c
index a193b62ad..a193b62ad 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/xstatconv.c
+++ b/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c
diff --git a/libc/sysdeps/unix/sysv/linux/alpha/xstatconv.h b/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h
index 094d11e5c..094d11e5c 100644
--- a/libc/sysdeps/unix/sysv/linux/alpha/xstatconv.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h
diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h b/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
index 889f97c0f..7a054620d 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
+++ b/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
@@ -35,6 +35,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
/* Values for 'private' parameter of locking macros. Yes, the
diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/socket.h b/ports/sysdeps/unix/sysv/linux/mips/bits/socket.h
index 4f219d5af..dad2c2d09 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/bits/socket.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/bits/socket.h
@@ -303,7 +303,7 @@ enum
{
SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
#define SCM_RIGHTS SCM_RIGHTS
-#ifdef __USE_BSD
+#ifdef __USE_GNU
, SCM_CREDENTIALS = 0x02 /* Credentials passing. */
# define SCM_CREDENTIALS SCM_CREDENTIALS
#endif
diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h b/ports/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h
index 1cb3d9b7c..eae3f40f7 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h
@@ -35,6 +35,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
/* Values for 'private' parameter of locking macros. Yes, the
diff --git a/ports/sysdeps/unix/sysv/linux/mips/sys/signalfd.h b/ports/sysdeps/unix/sysv/linux/mips/sys/signalfd.h
index 2fe7e379d..08923c086 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/sys/signalfd.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/sys/signalfd.h
@@ -59,7 +59,7 @@ __BEGIN_DECLS
/* Request notification for delivery of signals in MASK to be
performed using descriptor FD.*/
extern int signalfd (int __fd, const sigset_t *__mask, int __flags)
- __nonnull ((2)) __THROW;
+ __THROW __nonnull ((2));
__END_DECLS