Updated to fedora-glibc-20051227T1426
authorjakub <jakub>
Tue, 27 Dec 2005 14:48:06 +0000 (14:48 +0000)
committerjakub <jakub>
Tue, 27 Dec 2005 14:48:06 +0000 (14:48 +0000)
211 files changed:
ChangeLog
Makeconfig
Makerules
Versions.def
bits/byteswap.h
bits/confname.h
bits/dlfcn.h
bits/environments.h
bits/link.h
bits/linkmap.h [new file with mode: 0644]
bits/mman.h
bits/types.h
bits/waitstatus.h
csu/dso_handle.c
elf/cache.c
elf/chroot_canon.c
elf/dl-error.c
elf/dl-lookup.c
elf/ldconfig.c
elf/readlib.c
elf/rtld.c
fedora/branch.mk
fedora/glibc.spec.in
gmon/mcount.c
hurd/hurdfault.c
hurd/hurdsig.c
hurd/report-wait.c
hurd/sigunwind.c
iconv/gconv_conf.c
include/stdlib.h
include/time.h
intl/l10nflist.c
mach/setup-thread.c
manual/errno.texi
misc/syslog.c
nptl/ChangeLog
nptl/Makefile
nptl/Versions
nptl/descr.h
nptl/libc-cancellation.c
nptl/pt-cleanup.c
nptl/pthreadP.h
nptl/pthread_create.c
nptl/pthread_join.c
nptl/pthread_mutex_consistent.c [new file with mode: 0644]
nptl/pthread_mutex_destroy.c
nptl/pthread_mutex_init.c
nptl/pthread_mutex_lock.c
nptl/pthread_mutex_timedlock.c
nptl/pthread_mutex_trylock.c
nptl/pthread_mutex_unlock.c
nptl/pthread_mutexattr_getpshared.c
nptl/pthread_mutexattr_getrobust.c [new file with mode: 0644]
nptl/pthread_mutexattr_gettype.c
nptl/pthread_mutexattr_setpshared.c
nptl/pthread_mutexattr_setrobust.c [new file with mode: 0644]
nptl/pthread_mutexattr_settype.c
nptl/pthread_timedjoin.c
nptl/pthread_tryjoin.c
nptl/sysdeps/pthread/pthread.h
nptl/sysdeps/pthread/sigaction.c
nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S
nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
nptl/sysdeps/unix/sysv/linux/register-atfork.c
nptl/sysdeps/unix/sysv/linux/unregister-atfork.c
nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
nptl/tst-cancel24.cc [new file with mode: 0644]
nptl/tst-once3.c
nptl/tst-robust1.c [new file with mode: 0644]
nptl/tst-robust2.c [new file with mode: 0644]
nptl/tst-robust3.c [new file with mode: 0644]
nptl/tst-robust4.c [new file with mode: 0644]
nptl/tst-robust5.c [new file with mode: 0644]
nptl/tst-robust6.c [new file with mode: 0644]
nptl/tst-typesizes.c [new file with mode: 0644]
nptl/unwind.c
nptl/version.c
rt/aio_read64.c
rt/aio_sigqueue.c
rt/aio_write64.c
scripts/gen-as-const.awk
soft-fp/soft-fp.h
stdio-common/tmpfile64.c
stdlib/Makefile
stdlib/tst-ucontext-off.c [deleted file]
sysdeps/generic/bits/atomic.h [deleted file]
sysdeps/generic/bits/byteswap.h [deleted file]
sysdeps/generic/bits/confname.h [deleted file]
sysdeps/generic/bits/dirent.h [deleted file]
sysdeps/generic/bits/dlfcn.h [deleted file]
sysdeps/generic/bits/elfclass.h [deleted file]
sysdeps/generic/bits/endian.h [deleted file]
sysdeps/generic/bits/environments.h [deleted file]
sysdeps/generic/bits/errno.h [deleted file]
sysdeps/generic/bits/fcntl.h [deleted file]
sysdeps/generic/bits/fenv.h [deleted file]
sysdeps/generic/bits/fenvinline.h [deleted file]
sysdeps/generic/bits/huge_val.h [deleted file]
sysdeps/generic/bits/huge_valf.h [deleted file]
sysdeps/generic/bits/huge_vall.h [deleted file]
sysdeps/generic/bits/in.h [deleted file]
sysdeps/generic/bits/inf.h [deleted file]
sysdeps/generic/bits/ioctl-types.h [deleted file]
sysdeps/generic/bits/ioctls.h [deleted file]
sysdeps/generic/bits/ipc.h [deleted file]
sysdeps/generic/bits/ipctypes.h [deleted file]
sysdeps/generic/bits/libc-lock.h [deleted file]
sysdeps/generic/bits/libc-tsd.h [deleted file]
sysdeps/generic/bits/link.h [deleted file]
sysdeps/generic/bits/linkmap.h [deleted file]
sysdeps/generic/bits/local_lim.h [deleted file]
sysdeps/generic/bits/mathdef.h [deleted file]
sysdeps/generic/bits/mathinline.h [deleted file]
sysdeps/generic/bits/mman.h [deleted file]
sysdeps/generic/bits/mqueue.h [deleted file]
sysdeps/generic/bits/msq.h [deleted file]
sysdeps/generic/bits/nan.h [deleted file]
sysdeps/generic/bits/netdb.h [deleted file]
sysdeps/generic/bits/poll.h [deleted file]
sysdeps/generic/bits/posix_opt.h [deleted file]
sysdeps/generic/bits/pthreadtypes.h [deleted file]
sysdeps/generic/bits/resource.h [deleted file]
sysdeps/generic/bits/sched.h [deleted file]
sysdeps/generic/bits/select.h [deleted file]
sysdeps/generic/bits/sem.h [deleted file]
sysdeps/generic/bits/setjmp.h [deleted file]
sysdeps/generic/bits/shm.h [deleted file]
sysdeps/generic/bits/sigaction.h [deleted file]
sysdeps/generic/bits/sigcontext.h [deleted file]
sysdeps/generic/bits/siginfo.h [deleted file]
sysdeps/generic/bits/signum.h [deleted file]
sysdeps/generic/bits/sigset.h [deleted file]
sysdeps/generic/bits/sigstack.h [deleted file]
sysdeps/generic/bits/sigthread.h [deleted file]
sysdeps/generic/bits/sockaddr.h [deleted file]
sysdeps/generic/bits/socket.h [deleted file]
sysdeps/generic/bits/stat.h [deleted file]
sysdeps/generic/bits/statfs.h [deleted file]
sysdeps/generic/bits/statvfs.h [deleted file]
sysdeps/generic/bits/stdio-lock.h [deleted file]
sysdeps/generic/bits/string.h [deleted file]
sysdeps/generic/bits/stropts.h [deleted file]
sysdeps/generic/bits/sys_errlist.h [deleted file]
sysdeps/generic/bits/termios.h [deleted file]
sysdeps/generic/bits/time.h [deleted file]
sysdeps/generic/bits/types.h [deleted file]
sysdeps/generic/bits/typesizes.h [deleted file]
sysdeps/generic/bits/uio.h [deleted file]
sysdeps/generic/bits/ustat.h [deleted file]
sysdeps/generic/bits/utmp.h [deleted file]
sysdeps/generic/bits/utsname.h [deleted file]
sysdeps/generic/bits/waitflags.h [deleted file]
sysdeps/generic/bits/waitstatus.h [deleted file]
sysdeps/generic/bits/wchar.h [deleted file]
sysdeps/generic/bits/wordsize.h [deleted file]
sysdeps/generic/bits/xtitypes.h [deleted file]
sysdeps/generic/unwind-dw2.c
sysdeps/gnu/errlist.c
sysdeps/i386/fpu/e_expl.c
sysdeps/i386/i586/memusage.h [new file with mode: 0644]
sysdeps/i386/memusage.h
sysdeps/ieee754/dbl-64/e_exp2.c
sysdeps/ieee754/dbl-64/halfulp.c
sysdeps/ieee754/flt-32/e_exp2f.c
sysdeps/ieee754/flt-32/e_expf.c
sysdeps/ieee754/flt-32/s_expm1f.c
sysdeps/mach/hurd/fork.c
sysdeps/mach/hurd/hppa/trampoline.c
sysdeps/mach/hurd/i386/trampoline.c
sysdeps/mach/hurd/ifreq.c
sysdeps/mach/hurd/mips/trampoline.c
sysdeps/mach/hurd/powerpc/trampoline.c
sysdeps/posix/sprofil.c
sysdeps/powerpc/fpu/libm-test-ulps
sysdeps/pthread/aio_cancel.c
sysdeps/pthread/aio_fsync.c
sysdeps/pthread/aio_read.c
sysdeps/pthread/aio_read64.c
sysdeps/pthread/aio_suspend.c
sysdeps/pthread/aio_write.c
sysdeps/pthread/aio_write64.c
sysdeps/pthread/lio_listio.c
sysdeps/pthread/lio_listio64.c
sysdeps/unix/sysv/linux/Versions
sysdeps/unix/sysv/linux/aio_sigqueue.c
sysdeps/unix/sysv/linux/bits/errno.h
sysdeps/unix/sysv/linux/i386/Makefile
sysdeps/unix/sysv/linux/i386/ucontext_i.h [deleted file]
sysdeps/unix/sysv/linux/i386/ucontext_i.sym [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/Makefile
sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.h [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym [new file with mode: 0644]
sysdeps/unix/sysv/linux/s390/Makefile
sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.h [deleted file]
sysdeps/unix/sysv/linux/s390/s390-64/ucontext_i.h [deleted file]
sysdeps/unix/sysv/linux/s390/ucontext_i.sym [new file with mode: 0644]
sysdeps/unix/sysv/linux/sh/Makefile
sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.h [deleted file]
sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym [new file with mode: 0644]
sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.h [deleted file]
sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym [new file with mode: 0644]
sysdeps/unix/sysv/linux/x86_64/Makefile
sysdeps/unix/sysv/linux/x86_64/ucontext_i.h [deleted file]
sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym [new file with mode: 0644]
sysdeps/unix/sysv/tcflow.c
sysdeps/x86_64/__longjmp.S
sysdeps/x86_64/setjmp.S
test-skeleton.c

index f471b85..33a598f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,160 @@
+2005-12-26  Ulrich Drepper  <drepper@redhat.com>
+
+       * Versions.def: Add GLIBC_2.4 for libpthread.
+
+2005-12-25  Ulrich Drepper  <drepper@redhat.com>
+
+       * stdlib/Makefile ($(objpfx)isomac.out): Move -I.. to the end so
+       that $(..)/bits is not found early.
+
+2005-12-24  Ulrich Drepper  <drepper@redhat.com>
+
+       * manual/errno.texi: Add new Linux errno codes.
+       * sysdeps/unix/sysv/linux/Versions: Add new errlist-compat entry
+       for up to 132 errnos.
+       * sysdeps/unix/sysv/linux/bits/errno.h: Define EOWNERDEAD and
+       ENOTRECOVERABLE if not already defined.
+
+2005-12-23  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #1566]
+       * sysdeps/i386/i586/memusage.h: New file.
+       * sysdeps/i386/memusage.h: Don't define GETTIME.
+
+2005-12-22  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #1499]
+       * misc/syslog.c (SyslogAddr): Use sockaddr_un instead of sockaddr.
+       (openlog_internal): Adjust for this change.
+
+       * Makeconfig: Define CXXFLAGS.  Split out warnings from +gccwarn which
+       are not understood by the C++ compiler.
+       * Makerules: Add rules to build C++ code for test cases.
+       * include/stdlib.h: Protect for inclusion in C++ code.
+       * include/time.h: Likewise.
+
+2005-12-22  Roland McGrath  <roland@redhat.com>
+
+       * Makerules [gen-as-const-headers] (tests): Add one test per .sym
+       file, not just one.
+       ($(objpfx)test-as-const.c): Target replaced with ...
+       ($(objpfx)test-as-const-%.c): ... this pattern rule.
+       (generated): Add those files.
+
+2005-12-22  Ulrich Drepper  <drepper@redhat.com>
+
+       * test-skeleton.c (timeout_handler): Rewrite ts initialization for
+       C++ compatibility.
+
+       * sysdeps/x86_64/__longjmp.S: Also protect SP and BP.
+       * sysdeps/x86_64/setjmp.S: Likewise.
+
+2005-12-21  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/ucontext_i.h: File removed.
+       * sysdeps/unix/sysv/linux/i386/ucontext_i.sym: New file.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h: File removed.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym: New file.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.h: File removed.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym: New file.
+       * sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.h: File removed.
+       * sysdeps/unix/sysv/linux/s390/s390-64/ucontext_i.h: File removed.
+       * sysdeps/unix/sysv/linux/s390/ucontext_i.sym: New file.
+       * sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.h: File removed.
+       * sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym: New file.
+       * sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.h: File removed.
+       * sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym: New file.
+       * sysdeps/unix/sysv/linux/x86_64/ucontext_i.h: File removed.
+       * sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym: New file.
+       * sysdeps/unix/sysv/linux/i386/Makefile [$(subdir) = stdlib]:
+       (gen-as-const-headers): Add it.
+       * sysdeps/unix/sysv/linux/powerpc/Makefile: Likewise.
+       * sysdeps/unix/sysv/linux/sh/Makefile: Likewise.
+       * sysdeps/unix/sysv/linux/s390/Makefile: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/Makefile: Likewise.
+       * stdlib/tst-ucontext-off.c: File removed.
+       * stdlib/Makefile (tests): Remove it.
+
+       * scripts/gen-as-const.awk: Support generating a test program.
+       * Makerules [gen-as-const-headers] (tests): Add test-as-const.
+       [gen-as-const-headers] ($(objpfx)test-as-const.c): New target.
+
+       * sysdeps/generic/bits: Subdirectory and all files moved to ...
+       * bits: ... here, new subdirectory.
+       * Makeconfig (+includes): Reordered includes to put build and sysdeps
+       dirs first after $(..)include, $(sysincludes) last.
+
+       [BZ #2066]
+       * intl/l10nflist.c (_nl_make_l10nflist): Free ABS_FILENAME when later
+       malloc fails.
+
+2005-12-21  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/powerpc/fpu/libm-test-ulps: Update for GCC 4.1 prerelease.
+
+2005-12-21  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/mach/hurd/ifreq.c: Add missing #includes.
+
+       * elf/cache.c: Use <> rather than "" #includes.
+       * elf/chroot_canon.c: Likewise.
+       * elf/dl-lookup.c: Likewise.
+       * elf/ldconfig.c: Likewise.
+       * elf/readlib.c: Likewise.
+       * elf/rtld.c: Likewise.
+       * gmon/mcount.c: Likewise.
+       * hurd/hurdfault.c: Likewise.
+       * hurd/hurdsig.c: Likewise.
+       * hurd/report-wait.c: Likewise.
+       * hurd/sigunwind.c: Likewise.
+       * mach/setup-thread.c: Likewise.
+       * rt/aio_read64.c: Likewise.
+       * rt/aio_sigqueue.c: Likewise.
+       * rt/aio_write64.c: Likewise.
+       * soft-fp/soft-fp.h: Likewise.
+       * stdio-common/tmpfile64.c: Likewise.
+       * sysdeps/mach/hurd/fork.c: Likewise.
+       * sysdeps/mach/hurd/hppa/trampoline.c: Likewise.
+       * sysdeps/mach/hurd/i386/trampoline.c: Likewise.
+       * sysdeps/mach/hurd/mips/trampoline.c: Likewise.
+       * sysdeps/mach/hurd/powerpc/trampoline.c: Likewise.
+       * sysdeps/posix/sprofil.c: Likewise.
+       * sysdeps/pthread/aio_cancel.c: Likewise.
+       * sysdeps/pthread/aio_fsync.c: Likewise.
+       * sysdeps/pthread/aio_read64.c: Likewise.
+       * sysdeps/pthread/aio_read.c: Likewise.
+       * sysdeps/pthread/aio_suspend.c: Likewise.
+       * sysdeps/pthread/aio_write64.c: Likewise.
+       * sysdeps/pthread/aio_write.c: Likewise.
+       * sysdeps/pthread/lio_listio64.c: Likewise.
+       * sysdeps/pthread/lio_listio.c: Likewise.
+       * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise.
+       * sysdeps/unix/sysv/tcflow.c: Likewise.
+
+       * sysdeps/generic/unwind-dw2.c (extract_cie_info): Add a cast.
+
+       * elf/dl-error.c (_dl_signal_error): Use .__jmpbuf in __longjmp call.
+
+       * csu/dso_handle.c (__dso_handle): Add const to pointer type too.
+
+2005-12-21  Ulrich Drepper  <drepper@redhat.com>
+
+       * iconv/gconv_conf.c: Initialize empty_path_elem.
+
+       * sysdeps/ieee754/dbl-64/halfulp.c: Mark tab54 as static and const.
+       * sysdeps/i386/fpu/e_expl.c: Mark c0 and c1 as const.
+       * sysdeps/ieee754/flt-32/s_expm1f.c: Make sure huge and tiny end
+       up in .rodata.
+       * sysdeps/ieee754/flt-32/e_exp2f.c: Make sure TWO127 and TWOM100
+       end up in .rodata.
+       * sysdeps/ieee754/flt-32/e_expf.c: Likewise.
+       * sysdeps/ieee754/dbl-64/e_exp2.c: Make sure TWO1023 and TWOM1000
+       end up in .rodata.
+
+2005-12-21  Thorsten Kukuk  <kukuk@suse.de>
+
+       * elf/readlib.c: Fix include of readelflib.c.
+
 2005-12-21  Ulrich Drepper  <drepper@redhat.com>
 
        [BZ #1962]
index 45a9704..f32a19e 100644 (file)
@@ -552,10 +552,11 @@ endif
 
 # Extra flags to pass to GCC.
 ifeq ($(all-warnings),yes)
-+gccwarn := -Wall -Wwrite-strings -Winline -Wstrict-prototypes -Wcast-qual -Wbad-function-cast -Wmissing-noreturn -Wmissing-prototypes -Wmissing-declarations -Wcomment -Wcomments -Wtrigraphs -Wsign-compare -Wfloat-equal -Wmultichar
++gccwarn := -Wall -Wwrite-strings -Winline -Wcast-qual -Wbad-function-cast -Wmissing-noreturn -Wmissing-prototypes -Wmissing-declarations -Wcomment -Wcomments -Wtrigraphs -Wsign-compare -Wfloat-equal -Wmultichar
 else
-+gccwarn := -Wall -Wwrite-strings -Winline -Wstrict-prototypes
++gccwarn := -Wall -Wwrite-strings -Winline
 endif
++gccwarn-c = -Wstrict-prototypes
 
 # We do not depend on the address of constants in different files to be
 # actually different, so allow the compiler to merge them all.
@@ -627,10 +628,10 @@ endif     # $(+cflags) == ""
 # library source directory, in the include directory, and in the
 # current directory.
 # `+sysdep-includes' will be defined by Makerules.
-+includes = -I$(..)include $(patsubst %/,-I%,$(..)) \
-           $(libio-include) $(includes) \
-           $(+sysdep-includes) $(sysincludes) -I. \
-           $(patsubst %/,-I%,$(objpfx))
++includes = -I$(..)include \
+           $(patsubst %/,-I%,$(objpfx)) $(+sysdep-includes) \
+           $(patsubst %/,-I%,$(..)) $(libio-include) $(includes) -I. \
+           $(sysincludes)
 
 # Since libio has several internal header files, we use a -I instead
 # of many little headers in the include directory.
@@ -647,8 +648,11 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+includes) $(defines) \
                         $(libof-$(<F)) $(libof-$(@F)),$(CPPFLAGS-$(lib))) \
           $(CPPFLAGS-$(<F)) $(CPPFLAGS-$(@F)) $(CPPFLAGS-$(basename $(@F)))
 override CFLAGS        = -std=gnu99 \
-                 $(filter-out %frame-pointer,$(+cflags)) $(sysdep-CFLAGS) \
-                 $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) $(CFLAGS-$(@F))
+                 $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
+                 $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \
+                 $(CFLAGS-$(@F))
+override CXXFLAGS = $(filter-out %frame-pointer,$(+cflags)) $(sysdep-CFLAGS) \
+                   $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) $(CFLAGS-$(@F))
 
 # If everything is compiled with -fPIC (implicitly) we must tell this by
 # defining the PIC symbol.
index d0b1d89..3193983 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -183,6 +183,7 @@ sed-remove-dotdot := -e 's@  *\([^  \/$$][^         \]*\)@ $$(..)\1@g' \
 endif
 
 
+ifdef gen-as-const-headers
 # Generating headers for assembly constants.
 # We need this defined early to get into before-compile before
 # it's used in sysd-rules, below.
@@ -201,6 +202,16 @@ $(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.awk \
        mv -f $(@:.h.d=.h)T $(@:.h.d=.h)
 vpath %.sym $(sysdirs)
 before-compile += $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
+
+tests += $(gen-as-const-headers:%.sym=test-as-const-%)
+generated += $(gen-as-const-headers:%.sym=test-as-const-%.c)
+$(objpfx)test-as-const-%.c: $(..)scripts/gen-as-const.awk $(..)Makerules \
+                           %.sym $(common-objpfx)%.h
+       ($(AWK) '{ sub(/^/, "asconst_", $$2); print; }' $(filter %.h,$^); \
+        $(AWK) -v test=1 -f $< $(filter %.sym,$^); \
+        echo '#include "$(..)test-skeleton.c"') > $@T
+       mv -f $@T $@
+endif
 \f
 # Generate an ordered list of implicit rules which find the source files in
 # each sysdep directory.  The old method was to use vpath to search all the
@@ -295,6 +306,12 @@ endef
 object-suffixes-left := $(all-object-suffixes)
 include $(o-iterator)
 
+define o-iterator-doit
+$(objpfx)%$o: %.cc $(before-compile); $$(compile-command.cc)
+endef
+object-suffixes-left := $(all-object-suffixes)
+include $(o-iterator)
+
 # Omit the objpfx rules when building in the source tree, because
 # objpfx is empty and so these rules just override the ones above.
 ifdef objpfx
@@ -370,9 +387,11 @@ compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@
 compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags)
 compile-command.s = $(COMPILE.s) $< $(OUTPUT_OPTION) $(compile-mkdep-flags)
 compile-command.c = $(compile.c) $(OUTPUT_OPTION) $(compile-mkdep-flags)
+compile-command.cc = $(compile.cc) $(OUTPUT_OPTION) $(compile-mkdep-flags)
 
 # GCC can grok options after the file name, and it looks nicer that way.
 compile.c = $(CC) $< -c $(CFLAGS) $(CPPFLAGS)
+compile.cc = $(CXX) $< -c $(CXXFLAGS) $(CPPFLAGS)
 compile.S = $(CC) $< -c $(CPPFLAGS) $(S-CPPFLAGS) \
                  $(ASFLAGS) $(ASFLAGS-$(suffix $@))
 COMPILE.S = $(CC) -c $(CPPFLAGS) $(S-CPPFLAGS) \
@@ -1169,9 +1188,9 @@ xcheck: xtests
 
 all-nonlib = $(strip $(tests) $(xtests) $(test-srcs) $(test-extras) $(others))
 ifneq (,$(all-nonlib))
-cpp-srcs-left = $(all-nonlib:=.c)
+cpp-srcs-left = $(all-nonlib:=.c) $(all-nonlib:=.cc)
 lib := nonlib
-include $(patsubst %,$(..)cppflags-iterator.mk,$(all-nonlib))
+include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
 endif
 
 # The include magic above causes those files to use this variable for flags.
index 09cef14..d7be703 100644 (file)
@@ -80,6 +80,7 @@ libpthread {
   GLIBC_2.3.2
   GLIBC_2.3.3
   GLIBC_2.3.4
+  GLIBC_2.4
   GLIBC_PRIVATE
 }
 libresolv {
index 38d8540..949ed0b 100644 (file)
@@ -1,5 +1,5 @@
 /* Macros to swap the order of bytes in integer values.
-   Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1997,1998,2000,2001,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 #define _BITS_BYTESWAP_H 1
 
 /* Swap bytes in 16 bit value.  */
+#define __bswap_constant_16(x) \
+     ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
+
 #ifdef __GNUC__
 # define __bswap_16(x) \
     (__extension__                                                           \
-     ({ unsigned short int __bsx = (x);                                              \
-        ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8)); }))
+     ({ unsigned short int __bsx = (x); __bswap_constant_16 (__bsx); }))
 #else
 static __inline unsigned short int
 __bswap_16 (unsigned short int __bsx)
 {
-  return ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8));
+  return __bswap_constant_16 (__bsx);
 }
 #endif
 
 /* Swap bytes in 32 bit value.  */
+#define __bswap_constant_32(x) \
+     ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >>  8) |            \
+      (((x) & 0x0000ff00u) <<  8) | (((x) & 0x000000ffu) << 24))
+
 #ifdef __GNUC__
 # define __bswap_32(x) \
-    (__extension__                                                           \
-     ({ unsigned int __bsx = (x);                                            \
-        ((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >>  8) |    \
-        (((__bsx) & 0x0000ff00) <<  8) | (((__bsx) & 0x000000ff) << 24)); }))
+  (__extension__                                                             \
+   ({ register unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
 #else
 static __inline unsigned int
 __bswap_32 (unsigned int __bsx)
 {
-  return ((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >>  8) |
-         (((__bsx) & 0x0000ff00) <<  8) | (((__bsx) & 0x000000ff) << 24));
+  return __bswap_constant_32 (__bsx);
 }
 #endif
 
index d097a4b..8947d48 100644 (file)
@@ -492,9 +492,14 @@ enum
 #define _SC_LEVEL4_CACHE_SIZE          _SC_LEVEL4_CACHE_SIZE
     _SC_LEVEL4_CACHE_ASSOC,
 #define _SC_LEVEL4_CACHE_ASSOC         _SC_LEVEL4_CACHE_ASSOC
-    _SC_LEVEL4_CACHE_LINESIZE
+    _SC_LEVEL4_CACHE_LINESIZE,
 #define _SC_LEVEL4_CACHE_LINESIZE      _SC_LEVEL4_CACHE_LINESIZE
     /* Leave room here, maybe we need a few more cache levels some day.  */
+
+    _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
+#define _SC_IPV6                       _SC_IPV6
+    _SC_RAW_SOCKETS
+#define _SC_RAW_SOCKETS                        _SC_RAW_SOCKETS
   };
 
 /* Values for the NAME argument to `confstr'.  */
index e96b5c1..67fd96a 100644 (file)
@@ -1,5 +1,5 @@
 /* System dependent definitions for run-time dynamic loading.
-   Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
+   Copyright (C) 1996-2001, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -26,6 +26,7 @@
 #define RTLD_NOW       0x00002 /* Immediate function call binding.  */
 #define        RTLD_BINDING_MASK   0x3 /* Mask of binding time value.  */
 #define RTLD_NOLOAD    0x00004 /* Do not load the object.  */
+#define RTLD_DEEPBIND  0x00008 /* Use deep binding.  */
 
 /* If the following bit is set in the MODE argument to `dlopen',
    the symbols of the loaded object and its dependencies are made
index c382992..4617dc4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -72,4 +72,7 @@
 # define _XBS5_LP64_OFF64      -1
 # define _XBS5_LPBIG_OFFBIG    -1
 
+/* CFLAGS.  */
+#define __ILP32_OFFBIG_CFLAGS   "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+
 #endif /* __WORDSIZE == 32 */
index 470b4d3..6b4f811 100644 (file)
@@ -1,4 +1 @@
-struct link_map_machine
-  {
-    /* empty by default */
-  };
+#error "Architecture-specific definition needed."
diff --git a/bits/linkmap.h b/bits/linkmap.h
new file mode 100644 (file)
index 0000000..470b4d3
--- /dev/null
@@ -0,0 +1,4 @@
+struct link_map_machine
+  {
+    /* empty by default */
+  };
index a2ee064..0c15902 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for BSD-style memory management.
-   Copyright (C) 1994-1998,2000,01,02 Free Software Foundation, Inc.
+   Copyright (C) 1994-1998,2000,01,02,05 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
 #define MS_SYNC                0               /* Synchronous memory sync.  */
 #define MS_INVALIDATE  2               /* Invalidate the caches.  */
 
+/* Flags for `mremap'.  */
+#ifdef __USE_GNU
+# define MREMAP_MAYMOVE        1               /* Mapping address may change.  */
+# define MREMAP_FIXED  2               /* Fifth argument sets new address.  */
+#endif
+
 /* Flags for `mlockall' (can be OR'd together).  */
 #define MCL_CURRENT    1               /* Lock all currently mapped pages.  */
 #define MCL_FUTURE     2               /* Lock all additions to address
index 8abea03..65c8a9f 100644 (file)
@@ -1,5 +1,5 @@
 /* bits/types.h -- definitions of __*_t types underlying *_t types.
-   Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -106,14 +106,17 @@ typedef struct
 #define __SLONGWORD_TYPE       long int
 #define __ULONGWORD_TYPE       unsigned long int
 #if __WORDSIZE == 32
-# define __SQUAD_TYPE          long long int
-# define __UQUAD_TYPE          unsigned long long int
+# define __SQUAD_TYPE          __quad_t
+# define __UQUAD_TYPE          __u_quad_t
 # define __SWORD_TYPE          int
 # define __UWORD_TYPE          unsigned int
 # define __SLONG32_TYPE                long int
 # define __ULONG32_TYPE                unsigned long int
 # define __S64_TYPE            __quad_t
 # define __U64_TYPE            __u_quad_t
+/* We want __extension__ before typedef's that use nonstandard base types
+   such as `long long' in C89 mode.  */
+# define __STD_TYPE            __extension__ typedef
 #elif __WORDSIZE == 64
 # define __SQUAD_TYPE          long int
 # define __UQUAD_TYPE          unsigned long int
@@ -123,15 +126,13 @@ typedef struct
 # define __ULONG32_TYPE                unsigned int
 # define __S64_TYPE            long int
 # define __U64_TYPE            unsigned long int
+/* No need to mark the typedef with __extension__.   */
+# define __STD_TYPE            typedef
 #else
 # error
 #endif
 #include <bits/typesizes.h>    /* Defines __*_T_TYPE macros.  */
 
-/* We want __extension__ before typedef's that use nonstandard base types
-   such as `long long' in C89 mode.  */
-#define __STD_TYPE __extension__ typedef
-
 
 __STD_TYPE __DEV_T_TYPE __dev_t;       /* Type of device numbers.  */
 __STD_TYPE __UID_T_TYPE __uid_t;       /* Type of user identifications.  */
index 982c9db..699c224 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions of status bits for `wait' et al.
-   Copyright (C) 1992, 1994, 1996, 1997, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,1994,1996,1997,2000,2004 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
 #define        __WIFEXITED(status)     (__WTERMSIG(status) == 0)
 
 /* Nonzero if STATUS indicates termination by a signal.  */
-#ifdef __GNUC__
-# define __WIFSIGNALED(status) \
-  (__extension__ ({ int __status = (status);                                 \
-                   !__WIFSTOPPED(__status) && !__WIFEXITED(__status); }))
-#else  /* Not GCC.  */
-# define __WIFSIGNALED(status) (!__WIFSTOPPED(status) && !__WIFEXITED(status))
-#endif /* GCC.  */
+#define __WIFSIGNALED(status) \
+  (((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
 
 /* Nonzero if STATUS indicates the child is stopped.  */
 #define        __WIFSTOPPED(status)    (((status) & 0xff) == 0x7f)
 
+/* Nonzero if STATUS indicates the child continued after a stop.  We only
+   define this if <bits/waitflags.h> provides the WCONTINUED flag bit.  */
+#ifdef WCONTINUED
+# define __WIFCONTINUED(status)        ((status) == __W_CONTINUED)
+#endif
+
 /* Nonzero if STATUS indicates the child dumped core.  */
 #define        __WCOREDUMP(status)     ((status) & __WCOREFLAG)
 
 /* Macros for constructing status values.  */
 #define        __W_EXITCODE(ret, sig)  ((ret) << 8 | (sig))
 #define        __W_STOPCODE(sig)       ((sig) << 8 | 0x7f)
+#define __W_CONTINUED          0xffff
 #define        __WCOREFLAG             0x80
 
 
index 72f8088..fd295f2 100644 (file)
@@ -18,5 +18,5 @@
 
 /* We have to define __dso_handle ourselves since we do not use gcc's
    crtbegin files.  */
-void *const __dso_handle __attribute__ ((__visibility__ ("hidden")))
+const void *const __dso_handle __attribute__ ((__visibility__ ("hidden")))
   = &__dso_handle;
index 9ce3d16..c13918c 100644 (file)
@@ -30,8 +30,8 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 
-#include "ldconfig.h"
-#include "dl-cache.h"
+#include <ldconfig.h>
+#include <dl-cache.h>
 
 struct cache_entry
 {
index 41d6e82..3ef2fdf 100644 (file)
@@ -1,6 +1,6 @@
 /* Return the canonical absolute name of a given file inside chroot.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2004, 2005
-   Free Software Foundation, Inc.
+   Copyright (C) 1996,1997,1998,1999,2000,2001,2004,2005
+       Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software; you can redistribute it and/or modify
@@ -26,7 +26,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "ldconfig.h"
+#include <ldconfig.h>
 
 #ifndef PATH_MAX
 #define PATH_MAX 1024
index b5374e9..79ebaaf 100644 (file)
@@ -113,7 +113,7 @@ _dl_signal_error (int errcode, const char *objname, const char *occation,
          lcatch->malloced = false;
        }
       /* We do not restore the signal mask because none was saved.  */
-      __longjmp (lcatch->env, errcode ?: -1);
+      __longjmp (lcatch->env[0].__jmpbuf, errcode ?: -1);
     }
   else
     {
index 130453c..5a7bed1 100644 (file)
@@ -23,7 +23,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <ldsodefs.h>
-#include "dl-hash.h"
+#include <dl-hash.h>
 #include <dl-machine.h>
 #include <bits/libc-lock.h>
 #include <tls.h>
index e63b312..e5a9319 100644 (file)
 #include <glob.h>
 #include <libgen.h>
 
-#include "ldconfig.h"
-#include "dl-cache.h"
+#include <ldconfig.h>
+#include <dl-cache.h>
 
-#include "dl-procinfo.h"
+#include <dl-procinfo.h>
 
 #ifdef _DL_FIRST_PLATFORM
 # define _DL_FIRST_EXTRA (_DL_FIRST_PLATFORM + _DL_PLATFORMS_COUNT)
index 65c8e9d..8896bbd 100644 (file)
@@ -34,7 +34,7 @@
 #include <sys/stat.h>
 #include <gnu/lib-names.h>
 
-#include "ldconfig.h"
+#include <ldconfig.h>
 
 #define Elf32_CLASS ELFCLASS32
 #define Elf64_CLASS ELFCLASS64
@@ -178,4 +178,4 @@ process_file (const char *real_file_name, const char *file_name,
 }
 
 /* Get architecture specific version of process_elf_file.  */
-#include "readelflib.c"
+#include <readelflib.c>
index aee3ea9..71bcf0a 100644 (file)
@@ -34,7 +34,7 @@
 #include <hp-timing.h>
 #include <bits/libc-lock.h>
 #include "dynamic-link.h"
-#include "dl-librecon.h"
+#include <dl-librecon.h>
 #include <unsecvars.h>
 #include <dl-cache.h>
 #include <dl-osinfo.h>
index 43a878b..eb64c97 100644 (file)
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-fc4
-fedora-sync-date := 2005-12-21 09:31 UTC
-fedora-sync-tag := fedora-glibc-20051221T0931
+fedora-sync-date := 2005-12-27 14:26 UTC
+fedora-sync-tag := fedora-glibc-20051227T1426
index d28e548..70c2b41 100644 (file)
@@ -1,4 +1,4 @@
-%define glibcrelease 22
+%define glibcrelease 23
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define xenarches i686 athlon
@@ -390,7 +390,7 @@ cat > asm/unistd.h <<EOF
 #define __NR_waitid            281
 #endif
 %endif
-%ifarch sparc sparc64
+%ifarch sparc sparcv9 sparc64
 #ifndef __NR_mq_open
 #define __NR_mq_open           273
 #define __NR_mq_unlink         274
@@ -418,6 +418,47 @@ cat > asm/unistd.h <<EOF
 %endif
 #endif
 EOF
+cat > asm/errno.h <<EOF
+#ifndef _HACK_ASM_ERRNO_H
+#include_next <asm/errno.h>
+%ifarch alpha
+#ifndef ENOKEY
+#define ENOKEY         132
+#define EKEYEXPIRED    133
+#define EKEYREVOKED    134
+#define EKEYREJECTED   135
+#endif
+#ifndef EOWNERDEAD
+#define EOWNERDEAD     136
+#define ENOTRECOVERABLE        137
+#endif
+%endif
+%ifarch %{ix86} ia64 ppc ppc64 s390 s390x x86_64
+#ifndef ENOKEY
+#define ENOKEY         126
+#define EKEYEXPIRED    127
+#define EKEYREVOKED    128
+#define EKEYREJECTED   129
+#endif
+#ifndef EOWNERDEAD
+#define EOWNERDEAD     130
+#define ENOTRECOVERABLE        131
+#endif
+%endif
+%ifarch sparc sparcv9 sparc64
+#ifndef ENOKEY
+#define ENOKEY         128
+#define EKEYEXPIRED    129
+#define EKEYREVOKED    130
+#define EKEYREJECTED   131
+#endif
+#ifndef EOWNERDEAD
+#define EOWNERDEAD     132
+#define ENOTRECOVERABLE        133
+#endif
+%endif
+#endif
+EOF
 
 # A lot of programs still misuse memcpy when they have to use
 # memmove. The memcpy implementation below is not tolerant at
@@ -1074,6 +1115,12 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Tue Dec 27 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-23
+- update from CVS
+  - robust mutexes
+- fix transliteration segfaults (#176573, #176583)
+- ignore prelink temporaries in ldconfig (#176570)
+
 * Wed Dec 21 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-22
 - update from CVS
   - minor fts fixes
index e18bf86..32a5f1e 100644 (file)
@@ -37,7 +37,7 @@ static char sccsid[] = "@(#)mcount.c  8.1 (Berkeley) 6/4/93";
 
 /* This file provides the machine-dependent definitions of the _MCOUNT_DECL
    and MCOUNT macros.  */
-#include "machine-gmon.h"
+#include <machine-gmon.h>
 
 #include <atomic.h>
 
index 6ab5a97..36653e1 100644 (file)
@@ -1,5 +1,6 @@
 /* Handle faults in the signal thread.
-   Copyright (C) 1994,95,96,97,2002 Free Software Foundation, Inc.
+   Copyright (C) 1994,1995,1996,1997,2002,2005
+       Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -24,7 +25,7 @@
 #include <string.h>
 #include <setjmp.h>
 #include <stdio.h>
-#include "thread_state.h"
+#include <thread_state.h>
 #include "faultexc_server.h"   /* mig-generated header for our exc server.  */
 #include <assert.h>
 
index bbd0c17..e12d19d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,01,2002
+/* Copyright (C) 1991,92,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2005
        Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -132,7 +132,7 @@ _hurd_thread_sigstate (thread_t thread)
 #include <setjmp.h>
 #include <fcntl.h>
 #include <sys/wait.h>
-#include "thread_state.h"
+#include <thread_state.h>
 #include <hurd/msg_server.h>
 #include <hurd/msg_reply.h>    /* For __msg_sig_post_reply.  */
 #include <hurd/interrupt.h>
@@ -256,7 +256,7 @@ interrupted_reply_port_location (struct machine_thread_all_state *thread_state,
 }
 \f
 #include <hurd/sigpreempt.h>
-#include "intr-msg.h"
+#include <intr-msg.h>
 
 /* Timeout on interrupt_operation calls.  */
 mach_msg_timeout_t _hurdsig_interrupt_timeout = 1000;
index 2ec1c19..da0ca3b 100644 (file)
@@ -1,5 +1,5 @@
 /* Report on what a thread in our task is waiting for.
-   Copyright (C) 1996,97,99,2002 Free Software Foundation, Inc.
+   Copyright (C) 1996,1997,1999,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -23,8 +23,8 @@
 #include <string.h>
 #include <assert.h>
 #include <hurd/msg_server.h>
-#include "thread_state.h"
-#include "intr-msg.h"
+#include <thread_state.h>
+#include <intr-msg.h>
 
 static char *
 describe_number (string_t description, const char *flavor, long int i)
index 1c6489b..2231518 100644 (file)
@@ -18,7 +18,7 @@
    02111-1307 USA.  */
 
 #include <hurd.h>
-#include "thread_state.h"
+#include <thread_state.h>
 #include <setjmp.h>
 #include <assert.h>
 
index 78f41cb..ad5a7ee 100644 (file)
@@ -46,7 +46,7 @@ struct path_elem *__gconv_path_elem;
 size_t __gconv_max_path_elem_len;
 
 /* We use the following struct if we couldn't allocate memory.  */
-static const struct path_elem empty_path_elem;
+static const struct path_elem empty_path_elem = { NULL, 0 };
 
 /* Name of the file containing the module information in the directories
    along the path.  */
index 49e8757..90b779d 100644 (file)
@@ -10,6 +10,8 @@
 /* Now define the internal interfaces.  */
 #ifndef __Need_M_And_C
 
+__BEGIN_DECLS
+
 extern __typeof (strtol_l) __strtol_l;
 extern __typeof (strtoul_l) __strtoul_l;
 extern __typeof (strtoll_l) __strtoll_l;
@@ -197,6 +199,8 @@ __strtoull_l (__const char * __restrict __nptr, char **__restrict __endptr,
 extern void * __default_morecore (ptrdiff_t);
 libc_hidden_proto (__default_morecore)
 
+__END_DECLS
+
 #undef __Need_M_And_C
 
 #endif  /* include/stdlib.h */
index c2171ef..adf2dea 100644 (file)
@@ -5,6 +5,8 @@
 # include <time/time.h>
 # include <xlocale.h>
 
+__BEGIN_DECLS
+
 extern __typeof (strftime_l) __strftime_l;
 libc_hidden_proto (__strftime_l)
 extern __typeof (strptime_l) __strptime_l;
@@ -89,6 +91,8 @@ extern int __getclktck (void);
 
 /* strptime support.  */
 /* Status of lookup: do we use the locale data or the raw data?  */
+#ifndef __cplusplus
+// C++ cannot deal with using 'not'.
 enum ptime_locale_status { not, loc, raw };
 
 extern char * __strptime_internal (const char *rp, const char *fmt,
@@ -96,6 +100,7 @@ extern char * __strptime_internal (const char *rp, const char *fmt,
                                   enum ptime_locale_status *decided,
                                   int era_cnt, __locale_t locparam)
      internal_function;
+#endif
 
 extern double __difftime (time_t time1, time_t time0);
 
@@ -105,5 +110,8 @@ extern double __difftime (time_t time1, time_t time0);
 #ifndef _ISOMAC
 # define CLOCK_IDFIELD_SIZE    3
 #endif
+
+__END_DECLS
+
 #endif
 #endif
index 7ffb4ab..2c06a91 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2002, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2002, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
@@ -270,7 +270,10 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
                                * (1 << pop (mask))
                                * sizeof (struct loaded_l10nfile *)));
   if (retval == NULL)
-    return NULL;
+    {
+      free (abs_filename);
+      return NULL;
+    }
 
   retval->filename = abs_filename;
   /* If more than one directory is in the list this is a pseudo-entry
index 937e9ca..fecffd9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,94,95,97,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,94,1995,1997,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,7 +17,7 @@
    02111-1307 USA.  */
 
 #include <mach.h>
-#include "thread_state.h"
+#include <thread_state.h>
 #include <string.h>
 #include <mach/machine/vm_param.h>
 #include "sysdep.h"            /* Defines stack direction.  */
index c799d26..e230506 100644 (file)
@@ -1229,6 +1229,42 @@ They are not yet documented.}
 @comment errno ???/???
 @end deftypevr
 
+@comment errno.h
+@comment Linux: Required key not available
+@deftypevr Macro int ENOKEY
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux: Key has expired
+@deftypevr Macro int EKEYEXPIRED
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux: Key has been revoked
+@deftypevr Macro int EKEYREVOKED
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux: Key was rejected by service
+@deftypevr Macro int EKEYREJECTED
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux: Owner died
+@deftypevr Macro int EOWNERDEAD
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux: State not recoverable
+@deftypevr Macro int ENOTRECOVERABLE
+@comment errno ???/???
+@end deftypevr
+
 @node Error Messages,  , Error Codes, Error Reporting
 @section Error Messages
 
index cae13f8..6b0e774 100644 (file)
@@ -35,6 +35,7 @@ static char sccsid[] = "@(#)syslog.c  8.4 (Berkeley) 3/18/94";
 #include <sys/socket.h>
 #include <sys/syslog.h>
 #include <sys/uio.h>
+#include <sys/un.h>
 #include <netdb.h>
 
 #include <errno.h>
@@ -326,7 +327,7 @@ vsyslog(pri, fmt, ap)
 }
 libc_hidden_def (vsyslog)
 
-static struct sockaddr SyslogAddr;     /* AF_UNIX address of local logger */
+static struct sockaddr_un SyslogAddr;  /* AF_UNIX address of local logger */
 
 
 static void
@@ -342,9 +343,9 @@ openlog_internal(const char *ident, int logstat, int logfac)
        int retry = 0;
        while (retry < 2) {
                if (LogFile == -1) {
-                       SyslogAddr.sa_family = AF_UNIX;
-                       (void)strncpy(SyslogAddr.sa_data, _PATH_LOG,
-                                     sizeof(SyslogAddr.sa_data));
+                       SyslogAddr.sun_family = AF_UNIX;
+                       (void)strncpy(SyslogAddr.sun_path, _PATH_LOG,
+                                     sizeof(SyslogAddr.sun_path));
                        if (LogStat & LOG_NDELAY) {
                                if ((LogFile = __socket(AF_UNIX, LogType, 0))
                                    == -1)
index cc4fc0e..7c0030c 100644 (file)
@@ -1,3 +1,98 @@
+2005-12-26  Ulrich Drepper  <drepper@redhat.com>
+
+       * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
+       PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
+       PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
+       PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
+       PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
+       and PTHREAD_MUTEXATTR_FLAG_BITS.
+       * descr.h (struct pthread): Add robust_list field and define
+       ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
+       * pthread_mutexattr_getrobust.c: New file.
+       * pthread_mutexattr_setrobust.c: New file.
+       * pthread_mutex_consistent.c: New file.
+       * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
+       pthread_mutexattr_setrobust, and pthread_mutex_consistent.
+       Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
+       Adjust pthread_mutex_t initializers.
+       * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
+       field to pthread_mutex_t.
+       * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
+       and __prev field to pthread_mutex_t.
+       * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
+       pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
+       * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
+       and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
+       * pthread_mutexattr_gettype.c: Likewise.
+       * pthread_mutexattr_setpshared.c: Likewise.
+       * pthread_mutexattr_settype.c: Likewise.
+       * pthread_mutex_init.c: Reject robust+pshared attribute for now.
+       Initialize mutex kind according to robust flag.
+       * pthread_mutex_lock.c: Implement local robust mutex.
+       * pthread_mutex_timedlock.c: Likewise.
+       * pthread_mutex_trylock.c: Likewise.
+       * pthread_mutex_unlock.c: Likewise.
+       * pthread_create.c (start_thread): Mark robust mutexes which remained
+       locked as dead.
+       * tst-robust1.c: New file.
+       * tst-robust2.c: New file.
+       * tst-robust3.c: New file.
+       * tst-robust4.c: New file.
+       * tst-robust5.c: New file.
+       * tst-robust6.c: New file.
+       * tst-robust7.c: New file.
+       * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
+       pthread_mutexattr_setrobust, and pthread_mutex_consistent.
+       (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
+       tst-robust5, tst-robust6, and tst-robust7.
+
+       * tst-typesizes.c: New file.
+       * Makefile (tests): Add tst-typesizes.
+
+       * tst-once3.c: More debug output.
+
+2005-12-24  Ulrich Drepper  <drepper@redhat.com>
+
+       * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
+       missing after last change.
+
+       * version.c: Update cpoyright year.
+
+2005-12-23  Ulrich Drepper  <drepper@redhat.com>
+
+       * pthread_mutex_destroy.c: Set mutex type to an invalid value.
+       * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
+       * pthread_mutex_trylock.c: Likewise.
+       * pthread_mutex_timedlock.c: Likewise.
+       * pthread_mutex_unlock.c: Likewise.
+
+2005-12-22  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
+       so that #include_next's search location is not reset to the -I..
+       directory where <nptl/...> can be found.
+
+2005-12-22  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #1913]
+       * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
+       Fix unwind info.  Remove useless branch prediction prefix.
+       * tst-cancel24.cc: New file.
+       * Makefile: Add rules to build and run tst-cancel24.
+
+2005-12-21  Roland McGrath  <roland@redhat.com>
+
+       * libc-cancellation.c: Use <> rather than "" #includes.
+       * pt-cleanup.c: Likewise.
+       * pthread_create.c: Likewise.
+       * pthread_join.c: Likewise.
+       * pthread_timedjoin.c: Likewise.
+       * pthread_tryjoin.c: Likewise.
+       * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
+       * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
+       * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
+       * unwind.c: Likewise.
+
 2005-12-19  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
 
        * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
index dbe84b1..a3b1173 100644 (file)
@@ -116,6 +116,8 @@ libpthread-routines = init vars events version \
                      pthread_kill_other_threads \
                      pthread_getaffinity pthread_setaffinity \
                      pthread_attr_getaffinity pthread_attr_setaffinity \
+                     pthread_mutexattr_getrobust pthread_mutexattr_setrobust \
+                     pthread_mutex_consistent \
                      cleanup_routine unwind-forcedunwind
 #                    pthread_setuid pthread_seteuid pthread_setreuid \
 #                    pthread_setresuid \
@@ -189,7 +191,8 @@ CFLAGS-pt-system.c = -fexceptions
 omit-deps = $(unix-syscalls:%=ptw-%)
 
 
-tests = tst-attr1 tst-attr2 tst-attr3 \
+tests = tst-typesizes \
+       tst-attr1 tst-attr2 tst-attr3 \
        tst-mutex1 tst-mutex2 tst-mutex3 tst-mutex4 tst-mutex5 tst-mutex6 \
        tst-mutex7 tst-mutex8 tst-mutex9 tst-mutex5a tst-mutex7a \
        tst-spin1 tst-spin2 tst-spin3 \
@@ -197,6 +200,8 @@ tests = tst-attr1 tst-attr2 tst-attr3 \
        tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \
        tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \
        tst-cond20 tst-cond21 \
+       tst-robust1 tst-robust2 tst-robust3 tst-robust4 tst-robust5 \
+       tst-robust6 tst-robust7 \
        tst-rwlock1 tst-rwlock2 tst-rwlock3 tst-rwlock4 tst-rwlock5 \
        tst-rwlock6 tst-rwlock7 tst-rwlock8 tst-rwlock9 tst-rwlock10 \
        tst-rwlock11 tst-rwlock12 tst-rwlock13 tst-rwlock14 \
@@ -220,7 +225,7 @@ tests = tst-attr1 tst-attr2 tst-attr3 \
        tst-cancel6 tst-cancel7 tst-cancel8 tst-cancel9 tst-cancel10 \
        tst-cancel11 tst-cancel12 tst-cancel13 tst-cancel14 tst-cancel15 \
        tst-cancel16 tst-cancel17 tst-cancel18 tst-cancel19 tst-cancel20 \
-       tst-cancel21 tst-cancel22 tst-cancel23 \
+       tst-cancel21 tst-cancel22 tst-cancel23 tst-cancel24 \
        tst-cleanup0 tst-cleanup1 tst-cleanup2 tst-cleanup3 tst-cleanup4 \
        tst-flock1 tst-flock2 \
        tst-signal1 tst-signal2 tst-signal3 tst-signal4 tst-signal5 \
@@ -479,6 +484,8 @@ $(objpfx)tst-clock2: $(common-objpfx)rt/librt.a
 $(objpfx)tst-rwlock14: $(common-objpfx)rt/librt.a
 endif
 
+LDFLAGS-tst-cancel24 = -lstdc++
+
 extra-B-pthread.so = -B$(common-objpfx)nptl/
 $(objpfx)libpthread.so: $(addprefix $(objpfx),$(crti-objs) $(crtn-objs))
 $(objpfx)libpthread.so: +preinit += $(addprefix $(objpfx),$(crti-objs))
index 79bf190..2b4dd01 100644 (file)
@@ -232,6 +232,11 @@ libpthread {
     pthread_setschedprio;
   }
 
+  GLIBC_2.4 {
+    pthread_mutexattr_getrobust_np; pthread_mutexattr_setrobust_np;
+    pthread_mutex_consistent_np;
+  };
+
   GLIBC_PRIVATE {
     __pthread_initialize_minimal;
     __pthread_clock_gettime; __pthread_clock_settime;
index aaef9bc..a9f830e 100644 (file)
@@ -134,6 +134,51 @@ struct pthread
   /* Process ID - thread group ID in kernel speak.  */
   pid_t pid;
 
+  /* List of robust mutexes the thread is holding.  */
+  pthread_mutex_t *robust_list;
+
+#ifdef __PTHREAD_MUTEX_HAVE_PREV
+# define ENQUEUE_MUTEX(mutex) \
+  do {                                                                       \
+    mutex->__data.__next = THREAD_GETMEM (THREAD_SELF, robust_list);         \
+    THREAD_SETMEM (THREAD_SELF, robust_list, mutex);                         \
+    if (mutex->__data.__next != NULL)                                        \
+      mutex->__data.__next->__data.__prev = mutex;                           \
+    mutex->__data.__prev = NULL;                                             \
+  } while (0)
+# define DEQUEUE_MUTEX(mutex) \
+  do {                                                                       \
+    if (mutex->__data.__prev == NULL)                                        \
+      THREAD_SETMEM (THREAD_SELF, robust_list, mutex->__data.__next);        \
+    else                                                                     \
+      mutex->__data.__prev->__data.__next = mutex->__data.__next;            \
+    if (mutex->__data.__next != NULL)                                        \
+      mutex->__data.__next->__data.__prev = mutex->__data.__prev;            \
+    mutex->__data.__prev = NULL;                                             \
+    mutex->__data.__next = NULL;                                             \
+  } while (0)
+#else
+# define ENQUEUE_MUTEX(mutex) \
+  do {                                                                       \
+    mutex->__data.__next = THREAD_GETMEM (THREAD_SELF, robust_list);         \
+    THREAD_SETMEM (THREAD_SELF, robust_list, mutex);                         \
+  } while (0)
+# define DEQUEUE_MUTEX(mutex) \
+  do {                                                                       \
+    pthread_mutex_t *runp = THREAD_GETMEM (THREAD_SELF, robust_list);        \
+    if (runp == mutex)                                                       \
+      THREAD_SETMEM (THREAD_SELF, robust_list, runp->__data.__next);         \
+    else                                                                     \
+      {                                                                              \
+       while (runp->__data.__next != mutex)                                  \
+         runp = runp->__data.__next;                                         \
+                                                                             \
+       runp->__data.__next = runp->__data.__next->__data.__next;             \
+       mutex->__data.__next = NULL;                                          \
+      }                                                                              \
+  } while (0)
+#endif
+
   /* List of cleanup buffers.  */
   struct _pthread_cleanup_buffer *cleanup;
 
index c9237e0..b88a32f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -20,7 +20,7 @@
 #include <setjmp.h>
 #include <stdlib.h>
 #include "pthreadP.h"
-#include "atomic.h"
+#include <atomic.h>
 #include <bits/libc-lock.h>
 
 
index 96836a1..f72ea26 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -20,7 +20,7 @@
 #include <setjmp.h>
 #include <stdlib.h>
 #include "pthreadP.h"
-#include "jmpbuf-unwind.h"
+#include <jmpbuf-unwind.h>
 
 void
 __pthread_cleanup_upto (__jmp_buf target, char *targetframe)
@@ -61,4 +61,3 @@ __pthread_cleanup_upto (__jmp_buf target, char *targetframe)
   THREAD_SETMEM (self, cleanup, cbuf);
 }
 hidden_def (__pthread_cleanup_upto)
-
index 2416814..61b7176 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
 #endif
 
 
+/* Magic cookie representing robust mutex with dead owner.  */
+#define PTHREAD_MUTEX_OWNERDEAD                INT_MAX
+/* Magic cookie representing not recoverable robust mutex.  */
+#define PTHREAD_MUTEX_NOTRECOVERABLE   (INT_MAX - 1)
+
+
+/* Internal mutex type value.  */
+enum
+{
+  PTHREAD_MUTEX_ROBUST_PRIVATE_NP = 256,
+  PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP
+  = PTHREAD_MUTEX_ROBUST_PRIVATE_NP | PTHREAD_MUTEX_RECURSIVE_NP,
+  PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP
+  = PTHREAD_MUTEX_ROBUST_PRIVATE_NP | PTHREAD_MUTEX_ERRORCHECK_NP,
+  PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP
+  = PTHREAD_MUTEX_ROBUST_PRIVATE_NP | PTHREAD_MUTEX_ADAPTIVE_NP
+};
+
+
+/* Flags in mutex attr.  */
+#define PTHREAD_MUTEXATTR_FLAG_ROBUST  0x40000000
+#define PTHREAD_MUTEXATTR_FLAG_PSHARED 0x80000000
+#define PTHREAD_MUTEXATTR_FLAG_BITS \
+  (PTHREAD_MUTEXATTR_FLAG_ROBUST | PTHREAD_MUTEXATTR_FLAG_PSHARED)
+
+
 /* Internal variables.  */
 
 
index c11d972..2dbe58d 100644 (file)
@@ -52,7 +52,7 @@ unsigned int __nptl_nthreads = 1;
 #include "allocatestack.c"
 
 /* Code to create the thread.  */
-#include "createthread.c"
+#include <createthread.c>
 
 
 struct pthread *
@@ -310,6 +310,33 @@ start_thread (void *arg)
      the breakpoint reports TD_THR_RUN state rather than TD_THR_ZOMBIE.  */
   atomic_bit_set (&pd->cancelhandling, EXITING_BIT);
 
+  /* If this thread has any robust mutexes locked, handle them now.  */
+  pthread_mutex_t *robust = THREAD_GETMEM (pd, robust_list);
+  if (__builtin_expect (robust != NULL, 0))
+    {
+      do
+       {
+         pthread_mutex_t *this = robust;
+         robust = robust->__data.__next;
+
+         assert (lll_mutex_islocked (this->__data.__lock));
+         this->__data.__count = 0;
+         --this->__data.__nusers;
+         assert (this->__data.__owner != PTHREAD_MUTEX_NOTRECOVERABLE);
+         this->__data.__owner = PTHREAD_MUTEX_OWNERDEAD;
+         this->__data.__next = NULL;
+#ifdef __PTHREAD_MUTEX_HAVE_PREV
+         this->__data.__prev = NULL;
+#endif
+
+         lll_mutex_unlock (this->__data.__lock);
+       }
+      while (robust != NULL);
+
+      /* Clean up so that the thread descriptor can be reused.  */
+      THREAD_SETMEM (pd, robust_list, NULL);
+    }
+
   /* If the thread is detached free the TCB.  */
   if (IS_DETACHED (pd))
     /* Free the TCB.  */
index f94128d..70dc81a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -20,7 +20,7 @@
 #include <errno.h>
 #include <stdlib.h>
 
-#include "atomic.h"
+#include <atomic.h>
 #include "pthreadP.h"
 
 
diff --git a/nptl/pthread_mutex_consistent.c b/nptl/pthread_mutex_consistent.c
new file mode 100644 (file)
index 0000000..2edfe8a
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <pthreadP.h>
+
+
+int
+pthread_mutex_consistent_np (mutex)
+     pthread_mutex_t *mutex;
+{
+  /* Test whether this is a robust mutex with a dead owner.  */
+  if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_PRIVATE_NP) == 0
+      || mutex->__data.__owner != -THREAD_GETMEM (THREAD_SELF, tid))
+    return EINVAL;
+
+  mutex->__data.__owner = -mutex->__data.__owner;
+
+  return 0;
+}
index 91ccfb0..2bf76a9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -28,6 +28,9 @@ __pthread_mutex_destroy (mutex)
   if (mutex->__data.__nusers != 0)
     return EBUSY;
 
+  /* Set to an invalid value.  */
+  mutex->__data.__kind = -1;
+
   return 0;
 }
 strong_alias (__pthread_mutex_destroy, pthread_mutex_destroy)
index 074941d..17d1c99 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include <assert.h>
+#include <errno.h>
 #include <string.h>
 #include "pthreadP.h"
 
@@ -40,17 +41,26 @@ __pthread_mutex_init (mutex, mutexattr)
 
   imutexattr = (const struct pthread_mutexattr *) mutexattr ?: &default_attr;
 
+  /* Sanity checks.  */
+  // XXX For now we cannot implement robust mutexes if they are shared.
+  if ((imutexattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_ROBUST) != 0
+      && (imutexattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_PSHARED) != 0)
+    return ENOTSUP;
+
   /* Clear the whole variable.  */
   memset (mutex, '\0', __SIZEOF_PTHREAD_MUTEX_T);
 
   /* Copy the values from the attribute.  */
-  mutex->__data.__kind = imutexattr->mutexkind & ~0x80000000;
+  mutex->__data.__kind = imutexattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS;
+  if ((imutexattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_ROBUST) != 0)
+    mutex->__data.__kind |= PTHREAD_MUTEX_ROBUST_PRIVATE_NP;
 
   /* Default values: mutex not used yet.  */
   // mutex->__count = 0;       already done by memset
   // mutex->__owner = 0;       already done by memset
   // mutex->__nusers = 0;      already done by memset
   // mutex->__spins = 0;       already done by memset
+  // mutex->__next = NULL;     already done by memset
 
   return 0;
 }
index ee39f20..420711a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -19,6 +19,7 @@
 
 #include <assert.h>
 #include <errno.h>
+#include <stdlib.h>
 #include "pthreadP.h"
 #include <lowlevellock.h>
 
@@ -37,6 +38,7 @@ __pthread_mutex_lock (mutex)
 
   pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
 
+  int retval = 0;
   switch (__builtin_expect (mutex->__data.__kind, PTHREAD_MUTEX_TIMED_NP))
     {
       /* Recursive mutex.  */
@@ -57,23 +59,23 @@ __pthread_mutex_lock (mutex)
       /* We have to get the mutex.  */
       LLL_MUTEX_LOCK (mutex->__data.__lock);
 
+      assert (mutex->__data.__owner == 0);
       mutex->__data.__count = 1;
       break;
 
       /* Error checking mutex.  */
     case PTHREAD_MUTEX_ERRORCHECK_NP:
       /* Check whether we already hold the mutex.  */
-      if (mutex->__data.__owner == id)
+      if (__builtin_expect (mutex->__data.__owner == id, 0))
        return EDEADLK;
 
       /* FALLTHROUGH */
 
-    default:
-      /* Correct code cannot set any other type.  */
     case PTHREAD_MUTEX_TIMED_NP:
     simple:
       /* Normal mutex.  */
       LLL_MUTEX_LOCK (mutex->__data.__lock);
+      assert (mutex->__data.__owner == 0);
       break;
 
     case PTHREAD_MUTEX_ADAPTIVE_NP:
@@ -101,17 +103,79 @@ __pthread_mutex_lock (mutex)
 
          mutex->__data.__spins += (cnt - mutex->__data.__spins) / 8;
        }
+      assert (mutex->__data.__owner == 0);
+      break;
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP:
+      /* Check whether we already hold the mutex.  */
+      if (abs (mutex->__data.__owner) == id)
+       {
+         /* Just bump the counter.  */
+         if (__builtin_expect (mutex->__data.__count + 1 == 0, 0))
+           /* Overflow of the counter.  */
+           return EAGAIN;
+
+         ++mutex->__data.__count;
+
+         return 0;
+       }
+
+      /* We have to get the mutex.  */
+      LLL_MUTEX_LOCK (mutex->__data.__lock);
+
+      mutex->__data.__count = 1;
+
+      goto robust;
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP:
+      /* Check whether we already hold the mutex.  */
+      if (__builtin_expect (abs (mutex->__data.__owner) == id, 0))
+       return EDEADLK;
+
+      /* FALLTHROUGH */
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_NP:
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP:
+      LLL_MUTEX_LOCK (mutex->__data.__lock);
+
+    robust:
+      if (__builtin_expect (mutex->__data.__owner
+                           == PTHREAD_MUTEX_NOTRECOVERABLE, 0))
+       {
+         /* This mutex is now not recoverable.  */
+         mutex->__data.__count = 0;
+         lll_mutex_unlock (mutex->__data.__lock);
+         return ENOTRECOVERABLE;
+       }
+
+      /* This mutex is either healthy or we can try to recover it.  */
+      assert (mutex->__data.__owner == 0
+             || mutex->__data.__owner == PTHREAD_MUTEX_OWNERDEAD);
+
+      if (__builtin_expect (mutex->__data.__owner
+                           == PTHREAD_MUTEX_OWNERDEAD, 0))
+       {
+         retval = EOWNERDEAD;
+         /* We signal ownership of a not yet recovered robust mutex
+            by storing the negative thread ID.  */
+         id = -id;
+       }
+
+      ENQUEUE_MUTEX (mutex);
       break;
+
+    default:
+      /* Correct code cannot set any other type.  */
+      return EINVAL;
     }
 
   /* Record the ownership.  */
-  assert (mutex->__data.__owner == 0);
   mutex->__data.__owner = id;
 #ifndef NO_INCR
   ++mutex->__data.__nusers;
 #endif
 
-  return 0;
+  return retval;
 }
 #ifndef __pthread_mutex_lock
 strong_alias (__pthread_mutex_lock, pthread_mutex_lock)
index 1cd2c7e..bc4ead7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <errno.h>
 #include "pthreadP.h"
 #include <lowlevellock.h>
@@ -49,17 +50,15 @@ pthread_mutex_timedlock (mutex, abstime)
 
          goto out;
        }
-      else
-       {
-         /* We have to get the mutex.  */
-         result = lll_mutex_timedlock (mutex->__data.__lock, abstime);
 
-         if (result != 0)
-           goto out;
+      /* We have to get the mutex.  */
+      result = lll_mutex_timedlock (mutex->__data.__lock, abstime);
 
-         /* Only locked once so far.  */
-         mutex->__data.__count = 1;
-       }
+      if (result != 0)
+       goto out;
+
+      /* Only locked once so far.  */
+      mutex->__data.__count = 1;
       break;
 
       /* Error checking mutex.  */
@@ -70,8 +69,6 @@ pthread_mutex_timedlock (mutex, abstime)
 
       /* FALLTHROUGH */
 
-    default:
-      /* Correct code cannot set any other type.  */
     case PTHREAD_MUTEX_TIMED_NP:
     simple:
       /* Normal mutex.  */
@@ -104,6 +101,75 @@ pthread_mutex_timedlock (mutex, abstime)
          mutex->__data.__spins += (cnt - mutex->__data.__spins) / 8;
        }
       break;
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP:
+      /* Check whether we already hold the mutex.  */
+      if (abs (mutex->__data.__owner) == id)
+       {
+         /* Just bump the counter.  */
+         if (__builtin_expect (mutex->__data.__count + 1 == 0, 0))
+           /* Overflow of the counter.  */
+           return EAGAIN;
+
+         ++mutex->__data.__count;
+
+         goto out;
+       }
+
+      /* We have to get the mutex.  */
+      result = lll_mutex_timedlock (mutex->__data.__lock, abstime);
+
+      if (result != 0)
+       goto out;
+
+      /* Only locked once so far.  */
+      mutex->__data.__count = 1;
+      goto robust;
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP:
+      /* Check whether we already hold the mutex.  */
+      if (__builtin_expect (abs (mutex->__data.__owner) == id, 0))
+       return EDEADLK;
+
+      /* FALLTHROUGH */
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_NP:
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP:
+      result = lll_mutex_timedlock (mutex->__data.__lock, abstime);
+
+      if (result != 0)
+       goto out;
+
+    robust:
+      if (__builtin_expect (mutex->__data.__owner
+                           == PTHREAD_MUTEX_NOTRECOVERABLE, 0))
+       {
+         /* This mutex is now not recoverable.  */
+         mutex->__data.__count = 0;
+         lll_mutex_unlock (mutex->__data.__lock);
+         return ENOTRECOVERABLE;
+       }
+
+      /* This mutex is either healthy or we can try to recover it.  */
+      assert (mutex->__data.__owner == 0
+             || mutex->__data.__owner == PTHREAD_MUTEX_OWNERDEAD);
+
+      if (__builtin_expect (mutex->__data.__owner
+                           == PTHREAD_MUTEX_OWNERDEAD, 0))
+       {
+         result = EOWNERDEAD;
+         /* We signal ownership of a not yet recovered robust mutex
+            by storing the negative thread ID.  */
+         mutex->__data.__owner = -id;
+         ++mutex->__data.__nusers;
+       }
+
+      ENQUEUE_MUTEX (mutex);
+      break;
+
+    default:
+      /* Correct code cannot set any other type.  */
+      return EINVAL;
     }
 
   if (result == 0)
index 7008af3..ae73ecc 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -17,7 +17,9 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <errno.h>
+#include <stdlib.h>
 #include "pthreadP.h"
 #include <lowlevellock.h>
 
@@ -26,13 +28,12 @@ int
 __pthread_mutex_trylock (mutex)
      pthread_mutex_t *mutex;
 {
-  pid_t id;
+  pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
 
   switch (__builtin_expect (mutex->__data.__kind, PTHREAD_MUTEX_TIMED_NP))
     {
       /* Recursive mutex.  */
     case PTHREAD_MUTEX_RECURSIVE_NP:
-      id = THREAD_GETMEM (THREAD_SELF, tid);
       /* Check whether we already hold the mutex.  */
       if (mutex->__data.__owner == id)
        {
@@ -56,20 +57,96 @@ __pthread_mutex_trylock (mutex)
       break;
 
     case PTHREAD_MUTEX_ERRORCHECK_NP:
-      /* Error checking mutex.  We do not check for deadlocks.  */
-    default:
-      /* Correct code cannot set any other type.  */
+      /* Check whether we already hold the mutex.  */
+      if (__builtin_expect (mutex->__data.__owner == id, 0))
+       return EDEADLK;
+
+      /* FALLTHROUGH */
+
     case PTHREAD_MUTEX_TIMED_NP:
     case PTHREAD_MUTEX_ADAPTIVE_NP:
       /* Normal mutex.  */
-      if (lll_mutex_trylock (mutex->__data.__lock) == 0)
+      if (lll_mutex_trylock (mutex->__data.__lock) != 0)
+       break;
+
+      /* Record the ownership.  */
+      mutex->__data.__owner = id;
+      ++mutex->__data.__nusers;
+
+      return 0;
+
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP:
+      /* Check whether we already hold the mutex.  */
+      if (abs (mutex->__data.__owner) == id)
        {
-         /* Record the ownership.  */
-         mutex->__data.__owner = THREAD_GETMEM (THREAD_SELF, tid);
-         ++mutex->__data.__nusers;
+         /* Just bump the counter.  */
+         if (__builtin_expect (mutex->__data.__count + 1 == 0, 0))
+           /* Overflow of the counter.  */
+           return EAGAIN;
+
+         ++mutex->__data.__count;
 
          return 0;
        }
+
+      /* We have to get the mutex.  */
+      if (lll_mutex_trylock (mutex->__data.__lock) == 0)
+       {
+         mutex->__data.__count = 1;
+
+         goto robust;
+       }
+
+      break;
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP:
+      /* Check whether we already hold the mutex.  */
+      if (__builtin_expect (abs (mutex->__data.__owner) == id, 0))
+       return EDEADLK;
+
+      /* FALLTHROUGH */
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_NP:
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP:
+      if (lll_mutex_trylock (mutex->__data.__lock) != 0)
+       break;
+
+    robust:
+      if (__builtin_expect (mutex->__data.__owner
+                           == PTHREAD_MUTEX_NOTRECOVERABLE, 0))
+       {
+         /* This mutex is now not recoverable.  */
+         mutex->__data.__count = 0;
+         lll_mutex_unlock (mutex->__data.__lock);
+         return ENOTRECOVERABLE;
+       }
+
+      /* This mutex is either healthy or we can try to recover it.  */
+      assert (mutex->__data.__owner == 0
+             || mutex->__data.__owner == PTHREAD_MUTEX_OWNERDEAD);
+
+      /* Record the ownership.  */
+      int retval = 0;
+      if (__builtin_expect (mutex->__data.__owner
+                           == PTHREAD_MUTEX_OWNERDEAD, 0))
+       {
+         retval = EOWNERDEAD;
+         /* We signal ownership of a not yet recovered robust
+            mutex by storing the negative thread ID.  */
+         id = -id;
+       }
+
+      ENQUEUE_MUTEX (mutex);
+
+      mutex->__data.__owner = id;
+      ++mutex->__data.__nusers;
+
+      return retval
+;
+    default:
+      /* Correct code cannot set any other type.  */
+      return EINVAL;
     }
 
   return EBUSY;
index 32bc2a4..babce51 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include <errno.h>
+#include <stdlib.h>
 #include "pthreadP.h"
 #include <lowlevellock.h>
 
@@ -28,6 +29,8 @@ __pthread_mutex_unlock_usercnt (mutex, decr)
      pthread_mutex_t *mutex;
      int decr;
 {
+  int newowner = 0;
+
   switch (__builtin_expect (mutex->__data.__kind, PTHREAD_MUTEX_TIMED_NP))
     {
     case PTHREAD_MUTEX_RECURSIVE_NP:
@@ -47,16 +50,63 @@ __pthread_mutex_unlock_usercnt (mutex, decr)
        return EPERM;
       break;
 
-    default:
-      /* Correct code cannot set any other type.  */
     case PTHREAD_MUTEX_TIMED_NP:
     case PTHREAD_MUTEX_ADAPTIVE_NP:
       /* Normal mutex.  Nothing special to do.  */
       break;
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP:
+      /* Recursive mutex.  */
+      if (mutex->__data.__owner == -THREAD_GETMEM (THREAD_SELF, tid))
+       {
+         if (--mutex->__data.__count != 0)
+           /* We still hold the mutex.  */
+           return ENOTRECOVERABLE;
+
+         goto notrecoverable;
+       }
+
+      if (mutex->__data.__owner != THREAD_GETMEM (THREAD_SELF, tid))
+       return EPERM;
+
+      if (--mutex->__data.__count != 0)
+       /* We still hold the mutex.  */
+       return 0;
+
+      goto robust;
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP:
+      /* Error checking mutex.  */
+      if (abs (mutex->__data.__owner) != THREAD_GETMEM (THREAD_SELF, tid)
+         || ! lll_mutex_islocked (mutex->__data.__lock))
+       return EPERM;
+
+      /* FALLTHROUGH */
+
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_NP:
+    case PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP:
+      /* If the previous owner died and the caller did not succeed in
+        making the state consistent, mark the mutex as unrecoverable
+        and make all waiters.  */
+      if (__builtin_expect (mutex->__data.__owner
+                           == -THREAD_GETMEM (THREAD_SELF, tid)
+                           || (mutex->__data.__owner
+                               == PTHREAD_MUTEX_NOTRECOVERABLE), 0))
+      notrecoverable:
+       newowner = PTHREAD_MUTEX_NOTRECOVERABLE;
+
+    robust:
+      /* Remove mutex from the list.  */
+      DEQUEUE_MUTEX (mutex);
+      break;
+
+    default:
+      /* Correct code cannot set any other type.  */
+      return EINVAL;
     }
 
   /* Always reset the owner field.  */
-  mutex->__data.__owner = 0;
+  mutex->__data.__owner = newowner;
   if (decr)
     /* One less user.  */
     --mutex->__data.__nusers;
index 4bd4ea1..6454125 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -29,9 +29,7 @@ pthread_mutexattr_getpshared (attr, pshared)
 
   iattr = (const struct pthread_mutexattr *) attr;
 
-  /* We use bit 31 to signal whether the mutex is going to be
-     process-shared or not.  */
-  *pshared = ((iattr->mutexkind & 0x80000000) != 0
+  *pshared = ((iattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_PSHARED) != 0
              ? PTHREAD_PROCESS_SHARED : PTHREAD_PROCESS_PRIVATE);
 
   return 0;
diff --git a/nptl/pthread_mutexattr_getrobust.c b/nptl/pthread_mutexattr_getrobust.c
new file mode 100644 (file)
index 0000000..5ec43d1
--- /dev/null
@@ -0,0 +1,36 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
+
+   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 <pthreadP.h>
+
+
+int
+pthread_mutexattr_getrobust_np (attr, robustness)
+     const pthread_mutexattr_t *attr;
+     int *robustness;
+{
+  const struct pthread_mutexattr *iattr;
+
+  iattr = (const struct pthread_mutexattr *) attr;
+
+  *robustness = ((iattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_ROBUST) != 0
+                ? PTHREAD_MUTEX_ROBUST_NP : PTHREAD_MUTEX_STALLED_NP);
+
+  return 0;
+}
index 5c32b2c..7303703 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -29,9 +29,7 @@ pthread_mutexattr_gettype (attr, kind)
 
   iattr = (const struct pthread_mutexattr *) attr;
 
-  /* We use bit 31 to signal whether the mutex is going to be
-     process-shared or not.  */
-  *kind = iattr->mutexkind & ~0x80000000;
+  *kind = iattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS;
 
   return 0;
 }
index 5f2cf41..8e08b9e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -34,12 +34,10 @@ pthread_mutexattr_setpshared (attr, pshared)
 
   iattr = (struct pthread_mutexattr *) attr;
 
-  /* We use bit 31 to signal whether the mutex is going to be
-     process-shared or not.  */
   if (pshared == PTHREAD_PROCESS_PRIVATE)
-    iattr->mutexkind &= ~0x80000000;
+    iattr->mutexkind &= ~PTHREAD_MUTEXATTR_FLAG_PSHARED;
   else
-    iattr->mutexkind |= 0x80000000;
+    iattr->mutexkind |= PTHREAD_MUTEXATTR_FLAG_PSHARED;
 
   return 0;
 }
diff --git a/nptl/pthread_mutexattr_setrobust.c b/nptl/pthread_mutexattr_setrobust.c
new file mode 100644 (file)
index 0000000..cf95e35
--- /dev/null
@@ -0,0 +1,43 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <pthreadP.h>
+
+
+int
+pthread_mutexattr_setrobust_np (attr, robustness)
+     pthread_mutexattr_t *attr;
+     int robustness;
+{
+  if (robustness != PTHREAD_MUTEX_STALLED_NP
+      && __builtin_expect (robustness != PTHREAD_MUTEX_ROBUST_NP, 0))
+    return EINVAL;
+
+  struct pthread_mutexattr *iattr = (struct pthread_mutexattr *) attr;
+
+  /* We use bit 30 to signal whether the mutex is going to be
+     robust or not.  */
+  if (robustness == PTHREAD_MUTEX_STALLED_NP)
+    iattr->mutexkind &= ~PTHREAD_MUTEXATTR_FLAG_ROBUST;
+  else
+    iattr->mutexkind |= PTHREAD_MUTEXATTR_FLAG_ROBUST;
+
+  return 0;
+}
index c77fe79..fe6b5c2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -33,9 +33,7 @@ __pthread_mutexattr_settype (attr, kind)
 
   iattr = (struct pthread_mutexattr *) attr;
 
-  /* We use bit 31 to signal whether the mutex is going to be
-     process-shared or not.  */
-  iattr->mutexkind = (iattr->mutexkind & 0x80000000) | kind;
+  iattr->mutexkind = (iattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_BITS) | kind;
 
   return 0;
 }
index 1cc0721..5df6ab6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -19,7 +19,7 @@
 
 #include <errno.h>
 #include <stdlib.h>
-#include "atomic.h"
+#include <atomic.h>
 #include "pthreadP.h"
 
 
index 904cb52..fc363dd 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -20,7 +20,7 @@
 #include <errno.h>
 #include <stdlib.h>
 
-#include "atomic.h"
+#include <atomic.h>
 #include "pthreadP.h"
 
 
index badadae..5413661 100644 (file)
@@ -60,24 +60,39 @@ enum
 #endif
 };
 
-/* Mutex initializers.  */
-#define PTHREAD_MUTEX_INITIALIZER \
-  { { 0, 0, 0, 0, 0, 0 } }
+
 #ifdef __USE_GNU
-# if __WORDSIZE == 64
+/* Robust mutex or not flags.  */
+enum
+{
+  PTHREAD_MUTEX_STALLED_NP,
+  PTHREAD_MUTEX_ROBUST_NP
+};
+#endif
+
+
+/* Mutex initializers.  */
+#if __WORDSIZE == 64
+# define PTHREAD_MUTEX_INITIALIZER \
+  { { 0, 0, 0, 0, 0, 0, (void *) 0, (void *) 0 } }
+# ifdef __USE_GNU
 #  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0 } }
+  { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, (void *) 0, (void *) 0 } }
 #  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0 } }
+  { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, (void *) 0, (void *) 0 } }
 #  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0 } }
-# else
+  { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, (void *) 0, (void *) 0 } }
+# endif
+#else
+# define PTHREAD_MUTEX_INITIALIZER \
+  { { 0, 0, 0, 0, 0, { 0 } } }
+# ifdef __USE_GNU
 #  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, 0 } }
+  { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0 } } }
 #  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, 0 } }
+  { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { 0 } } }
 #  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, 0 } }
+  { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { 0 } } }
 # endif
 #endif
 
@@ -696,6 +711,12 @@ extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) __THROW;
 
 
+#ifdef __USE_GNU
+/* Declare the state protected by MUTEX as consistent.  */
+extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) __THROW;
+#endif
+
+
 /* Functions for handling mutex attributes.  */
 
 /* Initialize mutex attribute object ATTR with default attributes
@@ -726,6 +747,16 @@ extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
      __THROW;
 #endif
 
+#ifdef __USE_GNU
+/* Get the robustness flag of the mutex attribute ATTR.  */
+extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
+                                          int *__robustness) __THROW;
+
+/* Set the robustness flag of the mutex attribute ATTR.  */
+extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
+                                          int __robustness) __THROW;
+#endif
+
 
 #if defined __USE_UNIX98 || defined __USE_XOPEN2K
 /* Functions for handling read-write locks.  */
index 4d36150..445a2cb 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
    SIGCANCEL or SIGTIMER to be handled.  */
 # define LIBC_SIGACTION        1
 
-# include <nptl/sysdeps/pthread/sigaction.c>
+/* Note this include must be one that isn't found using a -I directory such
+   as -I. or -I.. for using an explicit <sysdeps/...> path, because that
+   would reset the search path starting position for the #include_next
+   below, to after that -I directory, and skip the search we want to do.  */
+# include "sigaction.c"
 
 int
 __sigaction (sig, act, oact)
index ddb3574..3bd1019 100644 (file)
@@ -45,7 +45,7 @@ typedef union
 
 /* Data structures for mutex handling.  The structure of the attribute
    type is not exposed on purpose.  */
-typedef union
+typedef union __pthread_mutex_u
 {
   struct
   {
@@ -56,7 +56,11 @@ typedef union
        binary compatibility.  */
     int __kind;
     unsigned int __nusers;
-    int __spins;
+    union
+    {
+      int __spins;
+      union __pthread_mutex_u *__next;
+    };
   } __data;
   char __size[__SIZEOF_PTHREAD_MUTEX_T];
   long int __align;
index 1605b69..3e908ae 100644 (file)
@@ -57,7 +57,7 @@ __new_sem_wait:
        cfi_offset(6, -12)              /* %esi */
 3:     movl    (%ebx), %eax
 2:     testl   %eax, %eax
-       je,pn   1f
+       je      1f
 
        leal    -1(%eax), %edx
        LOCK
@@ -73,7 +73,7 @@ __new_sem_wait:
        cfi_adjust_cfa_offset(-12)
        ret
 
-       cfi_adjust_cfa_offset(8)
+       cfi_adjust_cfa_offset(12)
        cfi_offset(3, -8)               /* %ebx */
        cfi_offset(6, -12)              /* %esi */
 1:     call    __pthread_enable_asynccancel
index 3d1c021..4e60596 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -19,7 +19,7 @@
 
 #include <unistd.h>
 #include <list.h>
-#include "fork.h"
+#include <fork.h>
 #include <dl-sysdep.h>
 #include <tls.h>
 #include <string.h>
index 9707e46..cb5b2b8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -20,7 +20,7 @@
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
-#include "fork.h"
+#include <fork.h>
 
 
 /* Lock to protect allocation and deallocation of fork handlers.  */
index 72c8d61..964f5b7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -19,7 +19,7 @@
 
 #include <errno.h>
 #include <stdlib.h>
-#include "fork.h"
+#include <fork.h>
 #include <atomic.h>
 
 
index 7f1ace6..3eb33a8 100644 (file)
@@ -59,7 +59,7 @@ typedef union
 
 /* Data structures for mutex handling.  The structure of the attribute
    type is not exposed on purpose.  */
-typedef union
+typedef union __pthread_mutex_u
 {
   struct
   {
@@ -72,10 +72,19 @@ typedef union
     /* KIND must stay at this position in the structure to maintain
        binary compatibility.  */
     int __kind;
-#if __WORDSIZE != 64
+#if __WORDSIZE == 64
+    int __spins;
+    union __pthread_mutex_u *__next;
+    union __pthread_mutex_u *__prev;
+# define __PTHREAD_MUTEX_HAVE_PREV     1
+#else
     unsigned int __nusers;
+    union
+    {
+      int __spins;
+      union __pthread_mutex_u *__next;
+    };
 #endif
-    int __spins;
   } __data;
   char __size[__SIZEOF_PTHREAD_MUTEX_T];
   long int __align;
diff --git a/nptl/tst-cancel24.cc b/nptl/tst-cancel24.cc
new file mode 100644 (file)
index 0000000..52cf079
--- /dev/null
@@ -0,0 +1,113 @@
+#include <cstdlib>
+#include <cstdio>
+#include <pthread.h>
+#include <semaphore.h>
+#include <unistd.h>
+
+
+static volatile bool destr_called;
+static volatile bool except_caught;
+
+static pthread_barrier_t b;
+
+
+struct monitor
+{
+  // gcc is broken and would generate a warning without this dummy
+  // constructor.
+  monitor () { }
+  ~monitor() { destr_called = true; }
+};
+
+
+static void *
+tf (void *arg)
+{
+  sem_t *s = static_cast<sem_t *> (arg);
+
+  try
+    {
+      monitor m;
+
+      pthread_barrier_wait (&b);
+
+      while (1)
+      sem_wait (s);
+    }
+  catch (...)
+    {
+      except_caught = true;
+      throw;
+    }
+
+  return NULL;
+}
+
+
+static int
+do_test ()
+{
+  if (pthread_barrier_init (&b, NULL, 2) != 0)
+    {
+      puts ("barrier_init failed");
+      return 1;
+    }
+
+  sem_t s;
+  if (sem_init (&s, 0, 0) != 0)
+    {
+      puts ("sem_init failed");
+      return 1;
+    }
+
+  pthread_t th;
+  if (pthread_create (&th, NULL, tf, &s) != 0)
+    {
+      puts ("pthread_create failed");
+      return 1;
+    }
+
+  pthread_barrier_wait (&b);
+
+  /* There is unfortunately no better method to try to assure the
+     child thread reached the sem_wait call and is actually waiting
+     than to sleep here.  */
+  sleep (1);
+
+  if (pthread_cancel (th) != 0)
+    {
+      puts ("cancel failed");
+      return 1;
+    }
+
+  void *res;
+  if (pthread_join (th, &res) != 0)
+    {
+      puts ("join failed");
+      return 1;
+    }
+
+  if (res != PTHREAD_CANCELED)
+    {
+      puts ("thread was not canceled");
+      return 1;
+    }
+
+  if (! except_caught)
+    {
+      puts ("exception not caught");
+      return 1;
+    }
+
+  if (! destr_called)
+    {
+      puts ("destructor not called");
+      return 1;
+    }
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#define TIMEOUT 3
+#include "../test-skeleton.c"
index 43b354a..1a74abb 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -52,6 +52,8 @@ once_handler1 (void)
       exit (1);
     }
 
+  puts ("once_handler1: going to wait on cond");
+
   pthread_cond_wait (&cond, &mut);
 
   /* We should never get here.  */
@@ -139,6 +141,9 @@ do_test (void)
       puts ("join didn't return PTHREAD_CANCELED");
       return 1;
     }
+  puts ("joined successfully");
+
+  printf ("once = %d\n", *(int *) &once);
 
   if (cl_called != 1)
     {
diff --git a/nptl/tst-robust1.c b/nptl/tst-robust1.c
new file mode 100644 (file)
index 0000000..13267a5
--- /dev/null
@@ -0,0 +1,245 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+
+static pthread_mutex_t m;
+static pthread_barrier_t b;
+
+
+#ifndef LOCK
+# define LOCK(m) pthread_mutex_lock (m)
+#endif
+
+
+static void *
+tf (void *arg)
+{
+  long int round = (long int) arg;
+
+  if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL) != 0)
+    {
+      printf ("%ld: setcancelstate failed\n", round);
+      exit (1);
+    }
+
+  int e = LOCK (&m);
+  if (e != 0)
+    {
+      printf ("%ld: child: mutex_lock failed with error %d\n", round, e);
+      exit (1);
+    }
+
+  e = pthread_barrier_wait (&b);
+  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
+    {
+      printf ("%ld: child: 1st barrier_wait failed\n", round);
+      exit (1);
+    }
+
+  e = pthread_barrier_wait (&b);
+  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
+    {
+      printf ("%ld: child: 2nd barrier_wait failed\n", round);
+      exit (1);
+    }
+
+  pthread_testcancel ();
+
+  printf ("%ld: testcancel returned\n", round);
+  exit (1);
+}
+
+
+static int
+do_test (void)
+{
+#ifdef PREPARE_TMO
+  PREPARE_TMO;
+#endif
+
+  pthread_mutexattr_t a;
+  if (pthread_mutexattr_init (&a) != 0)
+    {
+      puts ("mutexattr_init failed");
+      return 1;
+    }
+  if (pthread_mutexattr_setrobust_np (&a, PTHREAD_MUTEX_ROBUST_NP) != 0)
+    {
+      puts ("mutexattr_setrobust failed");
+      return 1;
+    }
+#ifndef NOT_CONSISTENT
+  if (pthread_mutex_init (&m, &a) != 0)
+    {
+      puts ("mutex_init failed");
+      return 1;
+    }
+#endif
+
+  if (pthread_barrier_init (&b, NULL, 2) != 0)
+    {
+      puts ("barrier_init failed");
+      return 1;
+    }
+
+  for (long int round = 1; round < 5; ++round)
+    {
+#ifdef NOT_CONSISTENT
+      if (pthread_mutex_init (&m, &a) != 0)
+       {
+         puts ("mutex_init failed");
+         return 1;
+       }
+#endif
+
+      pthread_t th;
+      if (pthread_create (&th, NULL, tf, (void *) round) != 0)
+       {
+         printf ("%ld: create failed\n", round);
+         return 1;
+       }
+
+      int e = pthread_barrier_wait (&b);
+      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
+       {
+         printf ("%ld: parent: 1st barrier_wait failed\n", round);
+         return 1;
+       }
+
+      if (pthread_cancel (th) != 0)
+       {
+         printf ("%ld: cancel failed\n", round);
+         return 1;
+       }
+
+      e = pthread_barrier_wait (&b);
+      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
+       {
+         printf ("%ld: parent: 2nd barrier_wait failed\n", round);
+         return 1;
+       }
+
+#ifndef AFTER_JOIN
+      if (round & 1)
+#endif
+       {
+         void *res;
+         if (pthread_join (th, &res) != 0)
+           {
+             printf ("%ld: join failed\n", round);
+             return 1;
+           }
+         if (res != PTHREAD_CANCELED)
+           {
+             printf ("%ld: thread not canceled\n", round);
+             return 1;
+           }
+       }
+
+      e = LOCK (&m);
+      if (e == 0)
+       {
+         printf ("%ld: parent: mutex_lock succeeded\n", round);
+         return 1;
+       }
+      if (e != EOWNERDEAD)
+       {
+         printf ("%ld: parent: mutex_lock returned wrong code\n", round);
+         return 1;
+       }
+
+#ifndef AFTER_JOIN
+      if ((round & 1) == 0)
+       {
+         void *res;
+         if (pthread_join (th, &res) != 0)
+           {
+             printf ("%ld: join failed\n", round);
+             return 1;
+           }
+         if (res != PTHREAD_CANCELED)
+           {
+             printf ("%ld: thread not canceled\n", round);
+             return 1;
+           }
+       }
+#endif
+
+#ifndef NOT_CONSISTENT
+      e = pthread_mutex_consistent_np (&m);
+      if (e != 0)
+       {
+         printf ("%ld: mutex_consistent failed with error %d\n", round, e);
+         return 1;
+       }
+#endif
+
+      e = pthread_mutex_unlock (&m);
+      if (e != 0)
+       {
+         printf ("%ld: mutex_unlocked failed\n", round);
+         return 1;
+       }
+
+#ifdef NOT_CONSISTENT
+      e = LOCK (&m);
+      if (e == 0)
+       {
+         printf ("%ld: locking inconsistent mutex succeeded\n", round);
+         return 1;
+       }
+      if (e != ENOTRECOVERABLE)
+       {
+         printf ("%ld: locking inconsistent mutex failed with error %d\n",
+                 round, e);
+         return 1;
+       }
+
+      if (pthread_mutex_destroy (&m) != 0)
+       {
+         puts ("mutex_destroy failed");
+         return 1;
+       }
+#endif
+    }
+
+#ifndef NOT_CONSISTENT
+  if (pthread_mutex_destroy (&m) != 0)
+    {
+      puts ("mutex_destroy failed");
+      return 1;
+    }
+#endif
+
+  if (pthread_mutexattr_destroy (&a) != 0)
+    {
+      puts ("mutexattr_destroy failed");
+      return 1;
+    }
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/nptl/tst-robust2.c b/nptl/tst-robust2.c
new file mode 100644 (file)
index 0000000..cf603fe
--- /dev/null
@@ -0,0 +1,3 @@
+#define AFTER_JOIN 1
+#define LOCK(m) pthread_mutex_trylock (m)
+#include "tst-robust1.c"
diff --git a/nptl/tst-robust3.c b/nptl/tst-robust3.c
new file mode 100644 (file)
index 0000000..e56f276
--- /dev/null
@@ -0,0 +1,20 @@
+#include <time.h>
+#include <sys/time.h>
+
+
+static struct timespec tmo;
+
+
+#define PREPARE_TMO \
+  do {                                                                       \
+    struct timeval tv;                                                       \
+    gettimeofday (&tv, NULL);                                                \
+                                                                             \
+    /* Define the timeout as one hour in the future.  */                     \
+    tmo.tv_sec = tv.tv_sec + 3600;                                           \
+    tmo.tv_nsec = 0;                                                         \
+  } while (0)
+
+
+#define LOCK(m) pthread_mutex_timedlock (m, &tmo)
+#include "tst-robust1.c"
diff --git a/nptl/tst-robust4.c b/nptl/tst-robust4.c
new file mode 100644 (file)
index 0000000..b9c42b8
--- /dev/null
@@ -0,0 +1,2 @@
+#define NOT_CONSISTENT 1
+#include "tst-robust1.c"
diff --git a/nptl/tst-robust5.c b/nptl/tst-robust5.c
new file mode 100644 (file)
index 0000000..b83d3d6
--- /dev/null
@@ -0,0 +1,2 @@
+#define NOT_CONSISTENT 1
+#include "tst-robust2.c"
diff --git a/nptl/tst-robust6.c b/nptl/tst-robust6.c
new file mode 100644 (file)
index 0000000..6713396
--- /dev/null
@@ -0,0 +1,2 @@
+#define NOT_CONSISTENT 1
+#include "tst-robust3.c"
diff --git a/nptl/tst-typesizes.c b/nptl/tst-typesizes.c
new file mode 100644 (file)
index 0000000..db8936f
--- /dev/null
@@ -0,0 +1,68 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
+
+   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 <stdio.h>
+#include <pthreadP.h>
+#include <semaphore.h>
+
+
+static int
+do_test (void)
+{
+  int result = 0;
+
+#define TEST_TYPE(name) \
+  printf ("%s: ", #name);                                                    \
+  if (sizeof (name) != sizeof (((name *) 0)->__size))                        \
+    {                                                                        \
+      printf ("expected %zu, is %zu\n",                                              \
+             sizeof (((name *) 0)->__size), sizeof (name));                  \
+      result = 1;                                                            \
+    }                                                                        \
+  else                                                                       \
+    puts ("OK")
+
+  TEST_TYPE (pthread_mutex_t);
+  TEST_TYPE (pthread_cond_t);
+  TEST_TYPE (pthread_rwlock_t);
+
+#define TEST_TYPE2(name, internal)                                           \
+  printf ("%s: ", #name);                                                    \
+  if (sizeof (((name *) 0)->__size) < sizeof (internal))                     \
+    {                                                                        \
+      printf ("expected %zu, is %zu\n",                                              \
+             sizeof (((name *) 0)->__size), sizeof (internal));              \
+      result = 1;                                                            \
+    }                                                                        \
+  else                                                                       \
+    puts ("OK")
+
+  TEST_TYPE2 (pthread_attr_t, struct pthread_attr);
+  TEST_TYPE2 (pthread_mutexattr_t, struct pthread_mutexattr);
+  TEST_TYPE2 (pthread_condattr_t, struct pthread_condattr);
+  TEST_TYPE2 (pthread_rwlockattr_t, struct pthread_rwlockattr);
+  TEST_TYPE2 (pthread_barrier_t, struct pthread_barrier);
+  TEST_TYPE2 (pthread_barrierattr_t, struct pthread_barrierattr);
+  TEST_TYPE2 (sem_t, struct sem);
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
index 56a4238..9a35695 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>
    and Richard Henderson <rth@redhat.com>, 2003.
@@ -23,7 +23,7 @@
 #include <string.h>
 #include <unistd.h>
 #include "pthreadP.h"
-#include "jmpbuf-unwind.h"
+#include <jmpbuf-unwind.h>
 
 #ifdef HAVE_FORCED_UNWIND
 
index f2fd25f..1be6b7f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -23,7 +23,7 @@
 
 static const char banner[] =
 #include "banner.h"
-"Copyright (C) 2003 Free Software Foundation, Inc.\n\
+"Copyright (C) 2005 Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.\n\
 There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\
 PARTICULAR PURPOSE.\n"
index c129235..e9994ae 100644 (file)
@@ -1,2 +1,2 @@
 #define BE_AIO64
-#include "aio_read.c"
+#include <aio_read.c>
index e824c6b..0e3ba1f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,7 @@
 #include <errno.h>
 #include <signal.h>
 
-#include "aio_misc.h"
+#include <aio_misc.h>
 
 int
 __aio_sigqueue (sig, val, caller_pid)
index bb1693e..88d5c00 100644 (file)
@@ -1,2 +1,2 @@
 #define BE_AIO64
-#include "aio_write.c"
+#include <aio_write.c>
index a315066..c529fa4 100644 (file)
@@ -13,7 +13,17 @@ BEGIN { started = 0 }
 /^#/ { print; next }
 
 NF >= 1 && !started {
-  print "void dummy(void) {";
+  if (test) {
+    print "\n#include <stdio.h>";
+    print "\nstatic int do_test (void)\n{\n  int bad = 0, good = 0;\n";
+    print "#define TEST(name, source, expr) \\\n" \
+      "  if (asconst_##name != (expr)) { ++bad;" \
+      " fprintf (stderr, \"%s: %s is %ld but %s is %ld\\n\"," \
+      " source, #name, (long int) asconst_##name, #expr, (long int) (expr));" \
+      " } else ++good;\n";
+  }
+  else
+    print "void dummy(void) {";
   started = 1;
 }
 
@@ -25,8 +35,18 @@ NF == 1 { sub(/^.*$/, "& &"); }
 NF > 1 {
   name = $1;
   sub(/^[^     ]+[     ]+/, "");
-  printf "asm (\"@@@name@@@%s@@@value@@@%%0@@@end@@@\" : : \"i\" (%s));\n",
-    name, $0;
+  if (test)
+    print "  TEST (" name ", \"" FILENAME ":" FNR "\", " $0 ")";
+  else
+    printf "asm (\"@@@name@@@%s@@@value@@@%%0@@@end@@@\" : : \"i\" (%s));\n",
+      name, $0;
 }
 
-END { if (started) print "}" }
+END {
+  if (test) {
+    print "  printf (\"%d errors in %d tests\\n\", bad, good + bad);"
+    print "  return bad != 0 || good == 0;\n}\n";
+    print "#define TEST_FUNCTION do_test ()";
+  }
+  else if (started) print "}";
+}
index 2dc66c1..24a9b33 100644 (file)
@@ -1,5 +1,6 @@
 /* Software floating-point emulation.
-   Copyright (C) 1997,1998,1999,2000,2002,2003 Free Software Foundation, Inc.
+   Copyright (C) 1997,1998,1999,2000,2002,2003,2005
+       Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@cygnus.com),
                  Jakub Jelinek (jj@ultra.linux.cz),
@@ -24,7 +25,7 @@
 #ifndef SOFT_FP_H
 #define SOFT_FP_H
 
-#include "sfp-machine.h"
+#include <sfp-machine.h>
 
 /* Allow sfp-machine to have its own byte order definitions. */
 #ifndef __BYTE_ORDER
index adce634..b265aee 100644 (file)
@@ -1,3 +1,3 @@
 #define GEN_THIS       __GT_BIGFILE
 #define tmpfile                tmpfile64
-#include "tmpfile.c"
+#include <tmpfile.c>
index fa65c95..f44c66b 100644 (file)
@@ -63,8 +63,7 @@ tests         := tst-strtol tst-strtod testmb testrand testsort testdiv   \
                   test-canon test-canon2 tst-strtoll tst-environ           \
                   tst-xpg-basename tst-random tst-random2 tst-bsearch      \
                   tst-limits tst-rand48 bug-strtod tst-setcontext          \
-                  test-a64l tst-qsort tst-system testmb2 bug-strtod2       \
-                  tst-ucontext-off
+                  test-a64l tst-qsort tst-system testmb2 bug-strtod2
 
 include ../Makeconfig
 
@@ -125,7 +124,7 @@ endif
 
 $(objpfx)isomac.out: $(objpfx)isomac
        $(dir $<)$(notdir $<) '$(CC)'  \
-       '-I../include -I.. $(+sysdep-includes) $(sysincludes)' > $<.out
+       '-I../include $(+sysdep-includes) $(sysincludes) -I..' > $<.out
 
 isomac-CFLAGS = -O
 $(objpfx)isomac: isomac.c
diff --git a/stdlib/tst-ucontext-off.c b/stdlib/tst-ucontext-off.c
deleted file mode 100644 (file)
index 2e97f21..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <stddef.h>
-#include <stdio.h>
-#include <sys/ucontext.h>
-
-#include <ucontext_i.h>
-
-static int
-do_test  (void)
-{
-  int nerrors = 0;
-  int ntests = 0;
-
-#define TEST(member, val) \
-  do {                                                                 \
-    if (offsetof (struct ucontext, member) != val)                     \
-      {                                                                        \
-       printf ("offsetof(%s) = %zu, %s = %zu\n",                       \
-               #member, offsetof (struct ucontext, member),            \
-               #val, (size_t) val);                                    \
-       ++nerrors;                                                      \
-      }                                                                        \
-    ++ntests;                                                          \
-  } while (0)
-
-#ifdef TESTS
-  TESTS
-#endif
-
-  printf ("%d errors in %d tests\n", nerrors, ntests);
-
-  return nerrors != 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/sysdeps/generic/bits/atomic.h b/sysdeps/generic/bits/atomic.h
deleted file mode 100644 (file)
index 6245130..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   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 _BITS_ATOMIC_H
-#define _BITS_ATOMIC_H 1
-
-/* We have by default no support for atomic operations.  So define
-   them non-atomic.  If this is a problem somebody will have to come
-   up with real definitions.  */
-
-/* The only basic operation needed is compare and exchange.  */
-#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
-  ({ __typeof (mem) __gmemp = (mem);                                 \
-     __typeof (*mem) __gret = *__gmemp;                                      \
-     __typeof (*mem) __gnewval = (newval);                           \
-                                                                     \
-     if (__gret == (oldval))                                         \
-       *__gmemp = __gnewval;                                         \
-     __gret; })
-
-#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
-  ({ __typeof (mem) __gmemp = (mem);                                 \
-     __typeof (*mem) __gnewval = (newval);                           \
-                                                                     \
-     *__gmemp == (oldval) ? (*__gmemp = __gnewval, 0) : 1; })
-
-#endif /* bits/atomic.h */
diff --git a/sysdeps/generic/bits/byteswap.h b/sysdeps/generic/bits/byteswap.h
deleted file mode 100644 (file)
index 949ed0b..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Macros to swap the order of bytes in integer values.
-   Copyright (C) 1997,1998,2000,2001,2002,2005 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#if !defined _BYTESWAP_H && !defined _NETINET_IN_H
-# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
-#endif
-
-#ifndef _BITS_BYTESWAP_H
-#define _BITS_BYTESWAP_H 1
-
-/* Swap bytes in 16 bit value.  */
-#define __bswap_constant_16(x) \
-     ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
-
-#ifdef __GNUC__
-# define __bswap_16(x) \
-    (__extension__                                                           \
-     ({ unsigned short int __bsx = (x); __bswap_constant_16 (__bsx); }))
-#else
-static __inline unsigned short int
-__bswap_16 (unsigned short int __bsx)
-{
-  return __bswap_constant_16 (__bsx);
-}
-#endif
-
-/* Swap bytes in 32 bit value.  */
-#define __bswap_constant_32(x) \
-     ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >>  8) |            \
-      (((x) & 0x0000ff00u) <<  8) | (((x) & 0x000000ffu) << 24))
-
-#ifdef __GNUC__
-# define __bswap_32(x) \
-  (__extension__                                                             \
-   ({ register unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
-#else
-static __inline unsigned int
-__bswap_32 (unsigned int __bsx)
-{
-  return __bswap_constant_32 (__bsx);
-}
-#endif
-
-#if defined __GNUC__ && __GNUC__ >= 2
-/* Swap bytes in 64 bit value.  */
-# define __bswap_constant_64(x) \
-     ((((x) & 0xff00000000000000ull) >> 56)                                  \
-      | (((x) & 0x00ff000000000000ull) >> 40)                                \
-      | (((x) & 0x0000ff0000000000ull) >> 24)                                \
-      | (((x) & 0x000000ff00000000ull) >> 8)                                 \
-      | (((x) & 0x00000000ff000000ull) << 8)                                 \
-      | (((x) & 0x0000000000ff0000ull) << 24)                                \
-      | (((x) & 0x000000000000ff00ull) << 40)                                \
-      | (((x) & 0x00000000000000ffull) << 56))
-
-# define __bswap_64(x) \
-     (__extension__                                                          \
-      ({ union { __extension__ unsigned long long int __ll;                  \
-                unsigned int __l[2]; } __w, __r;                             \
-         if (__builtin_constant_p (x))                                       \
-          __r.__ll = __bswap_constant_64 (x);                                \
-        else                                                                 \
-          {                                                                  \
-            __w.__ll = (x);                                                  \
-            __r.__l[0] = __bswap_32 (__w.__l[1]);                            \
-            __r.__l[1] = __bswap_32 (__w.__l[0]);                            \
-          }                                                                  \
-        __r.__ll; }))
-#endif
-
-#endif /* _BITS_BYTESWAP_H */
diff --git a/sysdeps/generic/bits/confname.h b/sysdeps/generic/bits/confname.h
deleted file mode 100644 (file)
index 8947d48..0000000
+++ /dev/null
@@ -1,601 +0,0 @@
-/* `sysconf', `pathconf', and `confstr' NAME values.  Generic version.
-   Copyright (C) 1993,1995-1998,2000,2001,2003,2004
-   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 _UNISTD_H
-# error "Never use <bits/confname.h> directly; include <unistd.h> instead."
-#endif
-
-/* Values for the NAME argument to `pathconf' and `fpathconf'.  */
-enum
-  {
-    _PC_LINK_MAX,
-#define        _PC_LINK_MAX                    _PC_LINK_MAX
-    _PC_MAX_CANON,
-#define        _PC_MAX_CANON                   _PC_MAX_CANON
-    _PC_MAX_INPUT,
-#define        _PC_MAX_INPUT                   _PC_MAX_INPUT
-    _PC_NAME_MAX,
-#define        _PC_NAME_MAX                    _PC_NAME_MAX
-    _PC_PATH_MAX,
-#define        _PC_PATH_MAX                    _PC_PATH_MAX
-    _PC_PIPE_BUF,
-#define        _PC_PIPE_BUF                    _PC_PIPE_BUF
-    _PC_CHOWN_RESTRICTED,
-#define        _PC_CHOWN_RESTRICTED            _PC_CHOWN_RESTRICTED
-    _PC_NO_TRUNC,
-#define        _PC_NO_TRUNC                    _PC_NO_TRUNC
-    _PC_VDISABLE,
-#define _PC_VDISABLE                   _PC_VDISABLE
-    _PC_SYNC_IO,
-#define        _PC_SYNC_IO                     _PC_SYNC_IO
-    _PC_ASYNC_IO,
-#define        _PC_ASYNC_IO                    _PC_ASYNC_IO
-    _PC_PRIO_IO,
-#define        _PC_PRIO_IO                     _PC_PRIO_IO
-    _PC_SOCK_MAXBUF,
-#define        _PC_SOCK_MAXBUF                 _PC_SOCK_MAXBUF
-    _PC_FILESIZEBITS,
-#define _PC_FILESIZEBITS               _PC_FILESIZEBITS
-    _PC_REC_INCR_XFER_SIZE,
-#define _PC_REC_INCR_XFER_SIZE         _PC_REC_INCR_XFER_SIZE
-    _PC_REC_MAX_XFER_SIZE,
-#define _PC_REC_MAX_XFER_SIZE          _PC_REC_MAX_XFER_SIZE
-    _PC_REC_MIN_XFER_SIZE,
-#define _PC_REC_MIN_XFER_SIZE          _PC_REC_MIN_XFER_SIZE
-    _PC_REC_XFER_ALIGN,
-#define _PC_REC_XFER_ALIGN             _PC_REC_XFER_ALIGN
-    _PC_ALLOC_SIZE_MIN,
-#define _PC_ALLOC_SIZE_MIN             _PC_ALLOC_SIZE_MIN
-    _PC_SYMLINK_MAX,
-#define _PC_SYMLINK_MAX                        _PC_SYMLINK_MAX
-    _PC_2_SYMLINKS
-#define _PC_2_SYMLINKS                 _PC_2_SYMLINKS
-  };
-
-/* Values for the argument to `sysconf'.  */
-enum
-  {
-    _SC_ARG_MAX,
-#define        _SC_ARG_MAX                     _SC_ARG_MAX
-    _SC_CHILD_MAX,
-#define        _SC_CHILD_MAX                   _SC_CHILD_MAX
-    _SC_CLK_TCK,
-#define        _SC_CLK_TCK                     _SC_CLK_TCK
-    _SC_NGROUPS_MAX,
-#define        _SC_NGROUPS_MAX                 _SC_NGROUPS_MAX
-    _SC_OPEN_MAX,
-#define        _SC_OPEN_MAX                    _SC_OPEN_MAX
-    _SC_STREAM_MAX,
-#define        _SC_STREAM_MAX                  _SC_STREAM_MAX
-    _SC_TZNAME_MAX,
-#define        _SC_TZNAME_MAX                  _SC_TZNAME_MAX
-    _SC_JOB_CONTROL,
-#define        _SC_JOB_CONTROL                 _SC_JOB_CONTROL
-    _SC_SAVED_IDS,
-#define        _SC_SAVED_IDS                   _SC_SAVED_IDS
-    _SC_REALTIME_SIGNALS,
-#define        _SC_REALTIME_SIGNALS            _SC_REALTIME_SIGNALS
-    _SC_PRIORITY_SCHEDULING,
-#define        _SC_PRIORITY_SCHEDULING         _SC_PRIORITY_SCHEDULING
-    _SC_TIMERS,
-#define        _SC_TIMERS                      _SC_TIMERS
-    _SC_ASYNCHRONOUS_IO,
-#define        _SC_ASYNCHRONOUS_IO             _SC_ASYNCHRONOUS_IO
-    _SC_PRIORITIZED_IO,
-#define        _SC_PRIORITIZED_IO              _SC_PRIORITIZED_IO
-    _SC_SYNCHRONIZED_IO,
-#define        _SC_SYNCHRONIZED_IO             _SC_SYNCHRONIZED_IO
-    _SC_FSYNC,
-#define        _SC_FSYNC                       _SC_FSYNC
-    _SC_MAPPED_FILES,
-#define        _SC_MAPPED_FILES                _SC_MAPPED_FILES
-    _SC_MEMLOCK,
-#define        _SC_MEMLOCK                     _SC_MEMLOCK
-    _SC_MEMLOCK_RANGE,
-#define        _SC_MEMLOCK_RANGE               _SC_MEMLOCK_RANGE
-    _SC_MEMORY_PROTECTION,
-#define        _SC_MEMORY_PROTECTION           _SC_MEMORY_PROTECTION
-    _SC_MESSAGE_PASSING,
-#define        _SC_MESSAGE_PASSING             _SC_MESSAGE_PASSING
-    _SC_SEMAPHORES,
-#define        _SC_SEMAPHORES                  _SC_SEMAPHORES
-    _SC_SHARED_MEMORY_OBJECTS,
-#define        _SC_SHARED_MEMORY_OBJECTS       _SC_SHARED_MEMORY_OBJECTS
-    _SC_AIO_LISTIO_MAX,
-#define        _SC_AIO_LISTIO_MAX              _SC_AIO_LISTIO_MAX
-    _SC_AIO_MAX,
-#define        _SC_AIO_MAX                     _SC_AIO_MAX
-    _SC_AIO_PRIO_DELTA_MAX,
-#define        _SC_AIO_PRIO_DELTA_MAX          _SC_AIO_PRIO_DELTA_MAX
-    _SC_DELAYTIMER_MAX,
-#define        _SC_DELAYTIMER_MAX              _SC_DELAYTIMER_MAX
-    _SC_MQ_OPEN_MAX,
-#define        _SC_MQ_OPEN_MAX                 _SC_MQ_OPEN_MAX
-    _SC_MQ_PRIO_MAX,
-#define        _SC_MQ_PRIO_MAX                 _SC_MQ_PRIO_MAX
-    _SC_VERSION,
-#define        _SC_VERSION                     _SC_VERSION
-    _SC_PAGESIZE,
-#define        _SC_PAGESIZE                    _SC_PAGESIZE
-#define        _SC_PAGE_SIZE                   _SC_PAGESIZE
-    _SC_RTSIG_MAX,
-#define        _SC_RTSIG_MAX                   _SC_RTSIG_MAX
-    _SC_SEM_NSEMS_MAX,
-#define        _SC_SEM_NSEMS_MAX               _SC_SEM_NSEMS_MAX
-    _SC_SEM_VALUE_MAX,
-#define        _SC_SEM_VALUE_MAX               _SC_SEM_VALUE_MAX
-    _SC_SIGQUEUE_MAX,
-#define        _SC_SIGQUEUE_MAX                _SC_SIGQUEUE_MAX
-    _SC_TIMER_MAX,
-#define        _SC_TIMER_MAX                   _SC_TIMER_MAX
-
-    /* Values for the argument to `sysconf'
-       corresponding to _POSIX2_* symbols.  */
-    _SC_BC_BASE_MAX,
-#define        _SC_BC_BASE_MAX                 _SC_BC_BASE_MAX
-    _SC_BC_DIM_MAX,
-#define        _SC_BC_DIM_MAX                  _SC_BC_DIM_MAX
-    _SC_BC_SCALE_MAX,
-#define        _SC_BC_SCALE_MAX                _SC_BC_SCALE_MAX
-    _SC_BC_STRING_MAX,
-#define        _SC_BC_STRING_MAX               _SC_BC_STRING_MAX
-    _SC_COLL_WEIGHTS_MAX,
-#define        _SC_COLL_WEIGHTS_MAX            _SC_COLL_WEIGHTS_MAX
-    _SC_EQUIV_CLASS_MAX,
-#define        _SC_EQUIV_CLASS_MAX             _SC_EQUIV_CLASS_MAX
-    _SC_EXPR_NEST_MAX,
-#define        _SC_EXPR_NEST_MAX               _SC_EXPR_NEST_MAX
-    _SC_LINE_MAX,
-#define        _SC_LINE_MAX                    _SC_LINE_MAX
-    _SC_RE_DUP_MAX,
-#define        _SC_RE_DUP_MAX                  _SC_RE_DUP_MAX
-    _SC_CHARCLASS_NAME_MAX,
-#define        _SC_CHARCLASS_NAME_MAX          _SC_CHARCLASS_NAME_MAX
-
-    _SC_2_VERSION,
-#define        _SC_2_VERSION                   _SC_2_VERSION
-    _SC_2_C_BIND,
-#define        _SC_2_C_BIND                    _SC_2_C_BIND
-    _SC_2_C_DEV,
-#define        _SC_2_C_DEV                     _SC_2_C_DEV
-    _SC_2_FORT_DEV,
-#define        _SC_2_FORT_DEV                  _SC_2_FORT_DEV
-    _SC_2_FORT_RUN,
-#define        _SC_2_FORT_RUN                  _SC_2_FORT_RUN
-    _SC_2_SW_DEV,
-#define        _SC_2_SW_DEV                    _SC_2_SW_DEV
-    _SC_2_LOCALEDEF,
-#define        _SC_2_LOCALEDEF                 _SC_2_LOCALEDEF
-
-    _SC_PII,
-#define        _SC_PII                         _SC_PII
-    _SC_PII_XTI,
-#define        _SC_PII_XTI                     _SC_PII_XTI
-    _SC_PII_SOCKET,
-#define        _SC_PII_SOCKET                  _SC_PII_SOCKET
-    _SC_PII_INTERNET,
-#define        _SC_PII_INTERNET                _SC_PII_INTERNET
-    _SC_PII_OSI,
-#define        _SC_PII_OSI                     _SC_PII_OSI
-    _SC_POLL,
-#define        _SC_POLL                        _SC_POLL
-    _SC_SELECT,
-#define        _SC_SELECT                      _SC_SELECT
-    _SC_UIO_MAXIOV,
-#define        _SC_UIO_MAXIOV                  _SC_UIO_MAXIOV
-    _SC_IOV_MAX = _SC_UIO_MAXIOV,
-#define _SC_IOV_MAX                    _SC_IOV_MAX
-    _SC_PII_INTERNET_STREAM,
-#define        _SC_PII_INTERNET_STREAM         _SC_PII_INTERNET_STREAM
-    _SC_PII_INTERNET_DGRAM,
-#define        _SC_PII_INTERNET_DGRAM          _SC_PII_INTERNET_DGRAM
-    _SC_PII_OSI_COTS,
-#define        _SC_PII_OSI_COTS                _SC_PII_OSI_COTS
-    _SC_PII_OSI_CLTS,
-#define        _SC_PII_OSI_CLTS                _SC_PII_OSI_CLTS
-    _SC_PII_OSI_M,
-#define        _SC_PII_OSI_M                   _SC_PII_OSI_M
-    _SC_T_IOV_MAX,
-#define        _SC_T_IOV_MAX                   _SC_T_IOV_MAX
-
-    /* Values according to POSIX 1003.1c (POSIX threads).  */
-    _SC_THREADS,
-#define        _SC_THREADS                     _SC_THREADS
-    _SC_THREAD_SAFE_FUNCTIONS,
-#define _SC_THREAD_SAFE_FUNCTIONS      _SC_THREAD_SAFE_FUNCTIONS
-    _SC_GETGR_R_SIZE_MAX,
-#define        _SC_GETGR_R_SIZE_MAX            _SC_GETGR_R_SIZE_MAX
-    _SC_GETPW_R_SIZE_MAX,
-#define        _SC_GETPW_R_SIZE_MAX            _SC_GETPW_R_SIZE_MAX
-    _SC_LOGIN_NAME_MAX,
-#define        _SC_LOGIN_NAME_MAX              _SC_LOGIN_NAME_MAX
-    _SC_TTY_NAME_MAX,
-#define        _SC_TTY_NAME_MAX                _SC_TTY_NAME_MAX
-    _SC_THREAD_DESTRUCTOR_ITERATIONS,
-#define        _SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS
-    _SC_THREAD_KEYS_MAX,
-#define        _SC_THREAD_KEYS_MAX             _SC_THREAD_KEYS_MAX
-    _SC_THREAD_STACK_MIN,
-#define        _SC_THREAD_STACK_MIN            _SC_THREAD_STACK_MIN
-    _SC_THREAD_THREADS_MAX,
-#define        _SC_THREAD_THREADS_MAX          _SC_THREAD_THREADS_MAX
-    _SC_THREAD_ATTR_STACKADDR,
-#define        _SC_THREAD_ATTR_STACKADDR       _SC_THREAD_ATTR_STACKADDR
-    _SC_THREAD_ATTR_STACKSIZE,
-#define        _SC_THREAD_ATTR_STACKSIZE       _SC_THREAD_ATTR_STACKSIZE
-    _SC_THREAD_PRIORITY_SCHEDULING,
-#define        _SC_THREAD_PRIORITY_SCHEDULING  _SC_THREAD_PRIORITY_SCHEDULING
-    _SC_THREAD_PRIO_INHERIT,
-#define        _SC_THREAD_PRIO_INHERIT         _SC_THREAD_PRIO_INHERIT
-    _SC_THREAD_PRIO_PROTECT,
-#define        _SC_THREAD_PRIO_PROTECT         _SC_THREAD_PRIO_PROTECT
-    _SC_THREAD_PROCESS_SHARED,
-#define        _SC_THREAD_PROCESS_SHARED       _SC_THREAD_PROCESS_SHARED
-
-    _SC_NPROCESSORS_CONF,
-#define _SC_NPROCESSORS_CONF           _SC_NPROCESSORS_CONF
-    _SC_NPROCESSORS_ONLN,
-#define _SC_NPROCESSORS_ONLN           _SC_NPROCESSORS_ONLN
-    _SC_PHYS_PAGES,
-#define _SC_PHYS_PAGES                 _SC_PHYS_PAGES
-    _SC_AVPHYS_PAGES,
-#define _SC_AVPHYS_PAGES               _SC_AVPHYS_PAGES
-    _SC_ATEXIT_MAX,
-#define _SC_ATEXIT_MAX                 _SC_ATEXIT_MAX
-    _SC_PASS_MAX,
-#define _SC_PASS_MAX                   _SC_PASS_MAX
-
-    _SC_XOPEN_VERSION,
-#define _SC_XOPEN_VERSION              _SC_XOPEN_VERSION
-    _SC_XOPEN_XCU_VERSION,
-#define _SC_XOPEN_XCU_VERSION          _SC_XOPEN_XCU_VERSION
-    _SC_XOPEN_UNIX,
-#define _SC_XOPEN_UNIX                 _SC_XOPEN_UNIX
-    _SC_XOPEN_CRYPT,
-#define _SC_XOPEN_CRYPT                        _SC_XOPEN_CRYPT
-    _SC_XOPEN_ENH_I18N,
-#define _SC_XOPEN_ENH_I18N             _SC_XOPEN_ENH_I18N
-    _SC_XOPEN_SHM,
-#define _SC_XOPEN_SHM                  _SC_XOPEN_SHM
-
-    _SC_2_CHAR_TERM,
-#define _SC_2_CHAR_TERM                        _SC_2_CHAR_TERM
-    _SC_2_C_VERSION,
-#define _SC_2_C_VERSION                        _SC_2_C_VERSION
-    _SC_2_UPE,
-#define _SC_2_UPE                      _SC_2_UPE
-
-    _SC_XOPEN_XPG2,
-#define _SC_XOPEN_XPG2                 _SC_XOPEN_XPG2
-    _SC_XOPEN_XPG3,
-#define _SC_XOPEN_XPG3                 _SC_XOPEN_XPG3
-    _SC_XOPEN_XPG4,
-#define _SC_XOPEN_XPG4                 _SC_XOPEN_XPG4
-
-    _SC_CHAR_BIT,
-#define        _SC_CHAR_BIT                    _SC_CHAR_BIT
-    _SC_CHAR_MAX,
-#define        _SC_CHAR_MAX                    _SC_CHAR_MAX
-    _SC_CHAR_MIN,
-#define        _SC_CHAR_MIN                    _SC_CHAR_MIN
-    _SC_INT_MAX,
-#define        _SC_INT_MAX                     _SC_INT_MAX
-    _SC_INT_MIN,
-#define        _SC_INT_MIN                     _SC_INT_MIN
-    _SC_LONG_BIT,
-#define        _SC_LONG_BIT                    _SC_LONG_BIT
-    _SC_WORD_BIT,
-#define        _SC_WORD_BIT                    _SC_WORD_BIT
-    _SC_MB_LEN_MAX,
-#define        _SC_MB_LEN_MAX                  _SC_MB_LEN_MAX
-    _SC_NZERO,
-#define        _SC_NZERO                       _SC_NZERO
-    _SC_SSIZE_MAX,
-#define        _SC_SSIZE_MAX                   _SC_SSIZE_MAX
-    _SC_SCHAR_MAX,
-#define        _SC_SCHAR_MAX                   _SC_SCHAR_MAX
-    _SC_SCHAR_MIN,
-#define        _SC_SCHAR_MIN                   _SC_SCHAR_MIN
-    _SC_SHRT_MAX,
-#define        _SC_SHRT_MAX                    _SC_SHRT_MAX
-    _SC_SHRT_MIN,
-#define        _SC_SHRT_MIN                    _SC_SHRT_MIN
-    _SC_UCHAR_MAX,
-#define        _SC_UCHAR_MAX                   _SC_UCHAR_MAX
-    _SC_UINT_MAX,
-#define        _SC_UINT_MAX                    _SC_UINT_MAX
-    _SC_ULONG_MAX,
-#define        _SC_ULONG_MAX                   _SC_ULONG_MAX
-    _SC_USHRT_MAX,
-#define        _SC_USHRT_MAX                   _SC_USHRT_MAX
-
-    _SC_NL_ARGMAX,
-#define        _SC_NL_ARGMAX                   _SC_NL_ARGMAX
-    _SC_NL_LANGMAX,
-#define        _SC_NL_LANGMAX                  _SC_NL_LANGMAX
-    _SC_NL_MSGMAX,
-#define        _SC_NL_MSGMAX                   _SC_NL_MSGMAX
-    _SC_NL_NMAX,
-#define        _SC_NL_NMAX                     _SC_NL_NMAX
-    _SC_NL_SETMAX,
-#define        _SC_NL_SETMAX                   _SC_NL_SETMAX
-    _SC_NL_TEXTMAX,
-#define        _SC_NL_TEXTMAX                  _SC_NL_TEXTMAX
-
-    _SC_XBS5_ILP32_OFF32,
-#define _SC_XBS5_ILP32_OFF32           _SC_XBS5_ILP32_OFF32
-    _SC_XBS5_ILP32_OFFBIG,
-#define _SC_XBS5_ILP32_OFFBIG          _SC_XBS5_ILP32_OFFBIG
-    _SC_XBS5_LP64_OFF64,
-#define _SC_XBS5_LP64_OFF64            _SC_XBS5_LP64_OFF64
-    _SC_XBS5_LPBIG_OFFBIG,
-#define _SC_XBS5_LPBIG_OFFBIG          _SC_XBS5_LPBIG_OFFBIG
-
-    _SC_XOPEN_LEGACY,
-#define _SC_XOPEN_LEGACY               _SC_XOPEN_LEGACY
-    _SC_XOPEN_REALTIME,
-#define _SC_XOPEN_REALTIME             _SC_XOPEN_REALTIME
-    _SC_XOPEN_REALTIME_THREADS,
-#define _SC_XOPEN_REALTIME_THREADS     _SC_XOPEN_REALTIME_THREADS
-
-    _SC_ADVISORY_INFO,
-#define _SC_ADVISORY_INFO              _SC_ADVISORY_INFO
-    _SC_BARRIERS,
-#define _SC_BARRIERS                   _SC_BARRIERS
-    _SC_BASE,
-#define _SC_BASE                       _SC_BASE
-    _SC_C_LANG_SUPPORT,
-#define _SC_C_LANG_SUPPORT             _SC_C_LANG_SUPPORT
-    _SC_C_LANG_SUPPORT_R,
-#define _SC_C_LANG_SUPPORT_R           _SC_C_LANG_SUPPORT_R
-    _SC_CLOCK_SELECTION,
-#define _SC_CLOCK_SELECTION            _SC_CLOCK_SELECTION
-    _SC_CPUTIME,
-#define _SC_CPUTIME                    _SC_CPUTIME
-    _SC_THREAD_CPUTIME,
-#define _SC_THREAD_CPUTIME             _SC_THREAD_CPUTIME
-    _SC_DEVICE_IO,
-#define _SC_DEVICE_IO                  _SC_DEVICE_IO
-    _SC_DEVICE_SPECIFIC,
-#define _SC_DEVICE_SPECIFIC            _SC_DEVICE_SPECIFIC
-    _SC_DEVICE_SPECIFIC_R,
-#define _SC_DEVICE_SPECIFIC_R          _SC_DEVICE_SPECIFIC_R
-    _SC_FD_MGMT,
-#define _SC_FD_MGMT                    _SC_FD_MGMT
-    _SC_FIFO,
-#define _SC_FIFO                       _SC_FIFO
-    _SC_PIPE,
-#define _SC_PIPE                       _SC_PIPE
-    _SC_FILE_ATTRIBUTES,
-#define _SC_FILE_ATTRIBUTES            _SC_FILE_ATTRIBUTES
-    _SC_FILE_LOCKING,
-#define _SC_FILE_LOCKING               _SC_FILE_LOCKING
-    _SC_FILE_SYSTEM,
-#define _SC_FILE_SYSTEM                        _SC_FILE_SYSTEM
-    _SC_MONOTONIC_CLOCK,
-#define _SC_MONOTONIC_CLOCK            _SC_MONOTONIC_CLOCK
-    _SC_MULTI_PROCESS,
-#define _SC_MULTI_PROCESS              _SC_MULTI_PROCESS
-    _SC_SINGLE_PROCESS,
-#define _SC_SINGLE_PROCESS             _SC_SINGLE_PROCESS
-    _SC_NETWORKING,
-#define _SC_NETWORKING                 _SC_NETWORKING
-    _SC_READER_WRITER_LOCKS,
-#define _SC_READER_WRITER_LOCKS                _SC_READER_WRITER_LOCKS
-    _SC_SPIN_LOCKS,
-#define _SC_SPIN_LOCKS                 _SC_SPIN_LOCKS
-    _SC_REGEXP,
-#define _SC_REGEXP                     _SC_REGEXP
-    _SC_REGEX_VERSION,
-#define _SC_REGEX_VERSION              _SC_REGEX_VERSION
-    _SC_SHELL,
-#define _SC_SHELL                      _SC_SHELL
-    _SC_SIGNALS,
-#define _SC_SIGNALS                    _SC_SIGNALS
-    _SC_SPAWN,
-#define _SC_SPAWN                      _SC_SPAWN
-    _SC_SPORADIC_SERVER,
-#define _SC_SPORADIC_SERVER            _SC_SPORADIC_SERVER
-    _SC_THREAD_SPORADIC_SERVER,
-#define _SC_THREAD_SPORADIC_SERVER     _SC_THREAD_SPORADIC_SERVER
-    _SC_SYSTEM_DATABASE,
-#define _SC_SYSTEM_DATABASE            _SC_SYSTEM_DATABASE
-    _SC_SYSTEM_DATABASE_R,
-#define _SC_SYSTEM_DATABASE_R          _SC_SYSTEM_DATABASE_R
-    _SC_TIMEOUTS,
-#define _SC_TIMEOUTS                   _SC_TIMEOUTS
-    _SC_TYPED_MEMORY_OBJECTS,
-#define _SC_TYPED_MEMORY_OBJECTS       _SC_TYPED_MEMORY_OBJECTS
-    _SC_USER_GROUPS,
-#define _SC_USER_GROUPS                        _SC_USER_GROUPS
-    _SC_USER_GROUPS_R,
-#define _SC_USER_GROUPS_R              _SC_USER_GROUPS_R
-    _SC_2_PBS,
-#define _SC_2_PBS                      _SC_2_PBS
-    _SC_2_PBS_ACCOUNTING,
-#define _SC_2_PBS_ACCOUNTING           _SC_2_PBS_ACCOUNTING
-    _SC_2_PBS_LOCATE,
-#define _SC_2_PBS_LOCATE               _SC_2_PBS_LOCATE
-    _SC_2_PBS_MESSAGE,
-#define _SC_2_PBS_MESSAGE              _SC_2_PBS_MESSAGE
-    _SC_2_PBS_TRACK,
-#define _SC_2_PBS_TRACK                        _SC_2_PBS_TRACK
-    _SC_SYMLOOP_MAX,
-#define _SC_SYMLOOP_MAX                        _SC_SYMLOOP_MAX
-    _SC_STREAMS,
-#define _SC_STREAMS                    _SC_STREAMS
-    _SC_2_PBS_CHECKPOINT,
-#define _SC_2_PBS_CHECKPOINT           _SC_2_PBS_CHECKPOINT
-
-    _SC_V6_ILP32_OFF32,
-#define _SC_V6_ILP32_OFF32             _SC_V6_ILP32_OFF32
-    _SC_V6_ILP32_OFFBIG,
-#define _SC_V6_ILP32_OFFBIG            _SC_V6_ILP32_OFFBIG
-    _SC_V6_LP64_OFF64,
-#define _SC_V6_LP64_OFF64              _SC_V6_LP64_OFF64
-    _SC_V6_LPBIG_OFFBIG,
-#define _SC_V6_LPBIG_OFFBIG            _SC_V6_LPBIG_OFFBIG
-
-    _SC_HOST_NAME_MAX,
-#define _SC_HOST_NAME_MAX              _SC_HOST_NAME_MAX
-    _SC_TRACE,
-#define _SC_TRACE                      _SC_TRACE
-    _SC_TRACE_EVENT_FILTER,
-#define _SC_TRACE_EVENT_FILTER         _SC_TRACE_EVENT_FILTER
-    _SC_TRACE_INHERIT,
-#define _SC_TRACE_INHERIT              _SC_TRACE_INHERIT
-    _SC_TRACE_LOG,
-#define _SC_TRACE_LOG                  _SC_TRACE_LOG
-
-    _SC_LEVEL1_ICACHE_SIZE,
-#define _SC_LEVEL1_ICACHE_SIZE         _SC_LEVEL1_ICACHE_SIZE
-    _SC_LEVEL1_ICACHE_ASSOC,
-#define _SC_LEVEL1_ICACHE_ASSOC                _SC_LEVEL1_ICACHE_ASSOC
-    _SC_LEVEL1_ICACHE_LINESIZE,
-#define _SC_LEVEL1_ICACHE_LINESIZE     _SC_LEVEL1_ICACHE_LINESIZE
-    _SC_LEVEL1_DCACHE_SIZE,
-#define _SC_LEVEL1_DCACHE_SIZE         _SC_LEVEL1_DCACHE_SIZE
-    _SC_LEVEL1_DCACHE_ASSOC,
-#define _SC_LEVEL1_DCACHE_ASSOC                _SC_LEVEL1_DCACHE_ASSOC
-    _SC_LEVEL1_DCACHE_LINESIZE,
-#define _SC_LEVEL1_DCACHE_LINESIZE     _SC_LEVEL1_DCACHE_LINESIZE
-    _SC_LEVEL2_CACHE_SIZE,
-#define _SC_LEVEL2_CACHE_SIZE          _SC_LEVEL2_CACHE_SIZE
-    _SC_LEVEL2_CACHE_ASSOC,
-#define _SC_LEVEL2_CACHE_ASSOC         _SC_LEVEL2_CACHE_ASSOC
-    _SC_LEVEL2_CACHE_LINESIZE,
-#define _SC_LEVEL2_CACHE_LINESIZE      _SC_LEVEL2_CACHE_LINESIZE
-    _SC_LEVEL3_CACHE_SIZE,
-#define _SC_LEVEL3_CACHE_SIZE          _SC_LEVEL3_CACHE_SIZE
-    _SC_LEVEL3_CACHE_ASSOC,
-#define _SC_LEVEL3_CACHE_ASSOC         _SC_LEVEL3_CACHE_ASSOC
-    _SC_LEVEL3_CACHE_LINESIZE,
-#define _SC_LEVEL3_CACHE_LINESIZE      _SC_LEVEL3_CACHE_LINESIZE
-    _SC_LEVEL4_CACHE_SIZE,
-#define _SC_LEVEL4_CACHE_SIZE          _SC_LEVEL4_CACHE_SIZE
-    _SC_LEVEL4_CACHE_ASSOC,
-#define _SC_LEVEL4_CACHE_ASSOC         _SC_LEVEL4_CACHE_ASSOC
-    _SC_LEVEL4_CACHE_LINESIZE,
-#define _SC_LEVEL4_CACHE_LINESIZE      _SC_LEVEL4_CACHE_LINESIZE
-    /* Leave room here, maybe we need a few more cache levels some day.  */
-
-    _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
-#define _SC_IPV6                       _SC_IPV6
-    _SC_RAW_SOCKETS
-#define _SC_RAW_SOCKETS                        _SC_RAW_SOCKETS
-  };
-
-/* Values for the NAME argument to `confstr'.  */
-enum
-  {
-    _CS_PATH,                  /* The default search path.  */
-#define _CS_PATH               _CS_PATH
-
-    _CS_V6_WIDTH_RESTRICTED_ENVS,
-# define _CS_V6_WIDTH_RESTRICTED_ENVS  _CS_V6_WIDTH_RESTRICTED_ENVS
-
-    _CS_GNU_LIBC_VERSION,
-#define _CS_GNU_LIBC_VERSION   _CS_GNU_LIBC_VERSION
-    _CS_GNU_LIBPTHREAD_VERSION,
-#define _CS_GNU_LIBPTHREAD_VERSION     _CS_GNU_LIBPTHREAD_VERSION
-
-    _CS_LFS_CFLAGS = 1000,
-#define _CS_LFS_CFLAGS _CS_LFS_CFLAGS
-    _CS_LFS_LDFLAGS,
-#define _CS_LFS_LDFLAGS        _CS_LFS_LDFLAGS
-    _CS_LFS_LIBS,
-#define _CS_LFS_LIBS           _CS_LFS_LIBS
-    _CS_LFS_LINTFLAGS,
-#define _CS_LFS_LINTFLAGS      _CS_LFS_LINTFLAGS
-    _CS_LFS64_CFLAGS,
-#define _CS_LFS64_CFLAGS       _CS_LFS64_CFLAGS
-    _CS_LFS64_LDFLAGS,
-#define _CS_LFS64_LDFLAGS      _CS_LFS64_LDFLAGS
-    _CS_LFS64_LIBS,
-#define _CS_LFS64_LIBS _CS_LFS64_LIBS
-    _CS_LFS64_LINTFLAGS,
-#define _CS_LFS64_LINTFLAGS    _CS_LFS64_LINTFLAGS
-
-    _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
-#define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
-    _CS_XBS5_ILP32_OFF32_LDFLAGS,
-#define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
-    _CS_XBS5_ILP32_OFF32_LIBS,
-#define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
-    _CS_XBS5_ILP32_OFF32_LINTFLAGS,
-#define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
-    _CS_XBS5_ILP32_OFFBIG_CFLAGS,
-#define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
-    _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
-#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
-    _CS_XBS5_ILP32_OFFBIG_LIBS,
-#define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
-    _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
-#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
-    _CS_XBS5_LP64_OFF64_CFLAGS,
-#define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
-    _CS_XBS5_LP64_OFF64_LDFLAGS,
-#define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
-    _CS_XBS5_LP64_OFF64_LIBS,
-#define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
-    _CS_XBS5_LP64_OFF64_LINTFLAGS,
-#define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
-    _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
-#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
-    _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
-#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
-    _CS_XBS5_LPBIG_OFFBIG_LIBS,
-#define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
-    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
-#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
-
-    _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
-#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS
-    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
-#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
-    _CS_POSIX_V6_ILP32_OFF32_LIBS,
-#define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS
-    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
-#define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
-    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
-#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
-    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
-#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
-    _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
-#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS
-    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
-#define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
-    _CS_POSIX_V6_LP64_OFF64_CFLAGS,
-#define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS
-    _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
-#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS
-    _CS_POSIX_V6_LP64_OFF64_LIBS,
-#define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS
-    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
-#define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
-    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
-#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
-    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
-#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
-    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
-#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
-    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
-#define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
-  };
diff --git a/sysdeps/generic/bits/dirent.h b/sysdeps/generic/bits/dirent.h
deleted file mode 100644 (file)
index 3407ebd..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Directory entry structure `struct dirent'.  Stub version.
-   Copyright (C) 1996, 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.  */
-
-#ifndef _DIRENT_H
-# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
-#endif
-
-struct dirent
-  {
-    char d_name[1];            /* Variable length.  */
-    int d_fileno;
-  };
-
-#ifdef __USE_LARGEFILE64
-struct dirent64
-  {
-    char d_name[1];            /* Variable length.  */
-    int d_fileno;
-  };
-#endif
-
diff --git a/sysdeps/generic/bits/dlfcn.h b/sysdeps/generic/bits/dlfcn.h
deleted file mode 100644 (file)
index 67fd96a..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/* System dependent definitions for run-time dynamic loading.
-   Copyright (C) 1996-2001, 2004 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 _DLFCN_H
-# error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
-#endif
-
-/* The MODE argument to `dlopen' contains one of the following: */
-#define RTLD_LAZY      0x00001 /* Lazy function call binding.  */
-#define RTLD_NOW       0x00002 /* Immediate function call binding.  */
-#define        RTLD_BINDING_MASK   0x3 /* Mask of binding time value.  */
-#define RTLD_NOLOAD    0x00004 /* Do not load the object.  */
-#define RTLD_DEEPBIND  0x00008 /* Use deep binding.  */
-
-/* If the following bit is set in the MODE argument to `dlopen',
-   the symbols of the loaded object and its dependencies are made
-   visible as if the object were linked directly into the program.  */
-#define RTLD_GLOBAL    0x00100
-
-/* Unix98 demands the following flag which is the inverse to RTLD_GLOBAL.
-   The implementation does this by default and so we can define the
-   value to zero.  */
-#define RTLD_LOCAL     0
-
-/* Do not delete object when closed.  */
-#define RTLD_NODELETE  0x01000
-
-#ifdef __USE_GNU
-/* To support profiling of shared objects it is a good idea to call
-   the function found using `dlsym' using the following macro since
-   these calls do not use the PLT.  But this would mean the dynamic
-   loader has no chance to find out when the function is called.  The
-   macro applies the necessary magic so that profiling is possible.
-   Rewrite
-       foo = (*fctp) (arg1, arg2);
-   into
-        foo = DL_CALL_FCT (fctp, (arg1, arg2));
-*/
-# define DL_CALL_FCT(fctp, args) \
-  (_dl_mcount_wrapper_check ((void *) (fctp)), (*(fctp)) args)
-
-__BEGIN_DECLS
-
-/* This function calls the profiling functions.  */
-extern void _dl_mcount_wrapper_check (void *__selfpc) __THROW;
-
-__END_DECLS
-
-#endif
diff --git a/sysdeps/generic/bits/elfclass.h b/sysdeps/generic/bits/elfclass.h
deleted file mode 100644 (file)
index 180227d..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* This file specifies the native word size of the machine, which indicates
-   the ELF file class used for executables and shared objects on this
-   machine.  */
-
-#ifndef _LINK_H
-# error "Never use <bits/elfclass.h> directly; include <link.h> instead."
-#endif
-
-#include <bits/wordsize.h>
-
-#define __ELF_NATIVE_CLASS __WORDSIZE
-
-/* The entries in the .hash table always have a size of 32 bits.  */
-typedef uint32_t Elf_Symndx;
diff --git a/sysdeps/generic/bits/endian.h b/sysdeps/generic/bits/endian.h
deleted file mode 100644 (file)
index 45afd4a..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/* This file should define __BYTE_ORDER as appropriate for the machine
-   in question.  See string/endian.h for how to define it.
-
-   If only the stub bits/endian.h applies to a particular configuration,
-   bytesex.h is generated by running a program on the host machine.
-   So if cross-compiling to a machine with a different byte order,
-   the bits/endian.h file for that machine must exist.  */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#error Machine byte order unknown.
diff --git a/sysdeps/generic/bits/environments.h b/sysdeps/generic/bits/environments.h
deleted file mode 100644 (file)
index 4617dc4..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (C) 1999, 2001, 2004 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 _UNISTD_H
-# error "Never include this file directly.  Use <unistd.h> instead"
-#endif
-
-#include <bits/wordsize.h>
-
-/* This header should define the following symbols under the described
-   situations.  A value `1' means that the model is always supported,
-   `-1' means it is never supported.  Undefined means it cannot be
-   statically decided.
-
-   _POSIX_V6_ILP32_OFF32   32bit int, long, pointers, and off_t type
-   _POSIX_V6_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type
-
-   _POSIX_V6_LP64_OFF32           64bit long and pointers and 32bit off_t type
-   _POSIX_V6_LPBIG_OFFBIG  64bit long and pointers and large off_t type
-
-   The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and
-   _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard
-   and are available only for compatibility.
-*/
-
-#if __WORDSIZE == 64
-
-/* We can never provide environments with 32-bit wide pointers.  */
-# define _POSIX_V6_ILP32_OFF32 -1
-# define _POSIX_V6_ILP32_OFFBIG        -1
-# define _XBS5_ILP32_OFF32     -1
-# define _XBS5_ILP32_OFFBIG    -1
-/* We also have no use (for now) for an environment with bigger pointers
-   and offsets.  */
-# define _POSIX_V6_LPBIG_OFFBIG        -1
-# define _XBS5_LPBIG_OFFBIG    -1
-
-/* By default we have 64-bit wide `long int', pointers and `off_t'.  */
-# define _POSIX_V6_LP64_OFF64  1
-# define _XBS5_LP64_OFF64      1
-
-#else /* __WORDSIZE == 32 */
-
-/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
-   and all platforms support LFS.  */
-# define _POSIX_V6_ILP32_OFF32 1
-# define _POSIX_V6_ILP32_OFFBIG        1
-# define _XBS5_ILP32_OFF32     1
-# define _XBS5_ILP32_OFFBIG    1
-
-/* We optionally provide an environment with the above size but an 64-bit
-   side `off_t'.  Therefore we don't define _XBS5_ILP32_OFFBIG.  */
-
-/* We can never provide environments with 64-bit wide pointers.  */
-# define _POSIX_V6_LP64_OFF64  -1
-# define _POSIX_V6_LPBIG_OFFBIG        -1
-# define _XBS5_LP64_OFF64      -1
-# define _XBS5_LPBIG_OFFBIG    -1
-
-/* CFLAGS.  */
-#define __ILP32_OFFBIG_CFLAGS   "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
-
-#endif /* __WORDSIZE == 32 */
diff --git a/sysdeps/generic/bits/errno.h b/sysdeps/generic/bits/errno.h
deleted file mode 100644 (file)
index 89a5cfd..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1991, 1994, 1996, 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.  */
-
-/* This file defines the `errno' constants.  */
-
-#if !defined __Emath_defined && (defined _ERRNO_H || defined __need_Emath)
-#undef __need_Emath
-#define        __Emath_defined 1
-
-# define EDOM  XXX     <--- fill in what is actually needed
-# define EILSEQ        XXX     <--- fill in what is actually needed
-# define ERANGE        XXX     <--- fill in what is actually needed
-#endif
-
-#ifdef _ERRNO_H
-# error "Define here all the missing error messages for the port.  These"
-# error "must match the numbers of the kernel."
-# define Exxxx XXX
-...
-#endif
diff --git a/sysdeps/generic/bits/fcntl.h b/sysdeps/generic/bits/fcntl.h
deleted file mode 100644 (file)
index b397f81..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/* O_*, F_*, FD_* bit values for stub configuration.
-   Copyright (C) 1991, 1992, 1997, 2000, 2004 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.  */
-
-/* These values should be changed as appropriate for your system.  */
-
-#ifndef        _FCNTL_H
-# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-#endif
-
-
-/* File access modes for `open' and `fcntl'.  */
-#define        O_RDONLY        0       /* Open read-only.  */
-#define        O_WRONLY        1       /* Open write-only.  */
-#define        O_RDWR          2       /* Open read/write.  */
-
-
-/* Bits OR'd into the second argument to open.  */
-#define        O_CREAT         0x0200  /* Create file if it doesn't exist.  */
-#define        O_EXCL          0x0800  /* Fail if file already exists.  */
-#define        O_TRUNC         0x0400  /* Truncate file to zero length.  */
-#define        O_NOCTTY        0x0100  /* Don't assign a controlling terminal.  */
-
-/* File status flags for `open' and `fcntl'.  */
-#define        O_APPEND        0x0008  /* Writes append to the file.  */
-#define        O_NONBLOCK      0x0004  /* Non-blocking I/O.  */
-
-#ifdef __USE_BSD
-# define O_NDELAY      O_NONBLOCK
-#endif
-
-/* Mask for file access modes.  This is system-dependent in case
-   some system ever wants to define some other flavor of access.  */
-#define        O_ACCMODE       (O_RDONLY|O_WRONLY|O_RDWR)
-
-/* Values for the second argument to `fcntl'.  */
-#define        F_DUPFD         0       /* Duplicate file descriptor.  */
-#define        F_GETFD         1       /* Get file descriptor flags.  */
-#define        F_SETFD         2       /* Set file descriptor flags.  */
-#define        F_GETFL         3       /* Get file status flags.  */
-#define        F_SETFL         4       /* Set file status flags.  */
-#if defined __USE_BSD || defined __USE_UNIX98
-# define F_GETOWN      5       /* Get owner (receiver of SIGIO).  */
-# define F_SETOWN      6       /* Set owner (receiver of SIGIO).  */
-#endif
-#define        F_GETLK         7       /* Get record locking info.  */
-#define        F_SETLK         8       /* Set record locking info.  */
-#define        F_SETLKW        9       /* Set record locking info, wait.  */
-
-/* File descriptor flags used with F_GETFD and F_SETFD.  */
-#define        FD_CLOEXEC      1       /* Close on exec.  */
-
-
-#include <bits/types.h>
-
-/* The structure describing an advisory lock.  This is the type of the third
-   argument to `fcntl' for the F_GETLK, F_SETLK, and F_SETLKW requests.  */
-struct flock
-  {
-    short int l_type;  /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.  */
-    short int l_whence;        /* Where `l_start' is relative to (like `lseek').  */
-    __off_t l_start;   /* Offset where the lock begins.  */
-    __off_t l_len;     /* Size of the locked area; zero means until EOF.  */
-    __pid_t l_pid;     /* Process holding the lock.  */
-  };
-
-/* Values for the `l_type' field of a `struct flock'.  */
-#define        F_RDLCK 1       /* Read lock.  */
-#define        F_WRLCK 2       /* Write lock.  */
-#define        F_UNLCK 3       /* Remove lock.  */
-
-/* Advise to `posix_fadvise'.  */
-#ifdef __USE_XOPEN2K
-# define POSIX_FADV_NORMAL     0 /* No further special treatment.  */
-# define POSIX_FADV_RANDOM     1 /* Expect random page references.  */
-# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references.  */
-# define POSIX_FADV_WILLNEED   3 /* Will need these pages.  */
-# define POSIX_FADV_DONTNEED   4 /* Don't need these pages.  */
-# define POSIX_FADV_NOREUSE    5 /* Data will be accessed once.  */
-#endif
diff --git a/sysdeps/generic/bits/fenv.h b/sysdeps/generic/bits/fenv.h
deleted file mode 100644 (file)
index a9cb53b..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2001 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 _FENV_H
-# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-#endif
-
-
-/* Here should be the exception be defined:
-    FE_INVALID
-    FE_DIVBYZERO
-    FE_OVERFLOW
-    FE_UNDERFLOW
-    FE_INEXACT
-   We define no macro which signals no exception is supported.  */
-
-#define FE_ALL_EXCEPT 0
-
-
-/* Here should the rounding modes be defined:
-    FE_TONEAREST
-    FE_DOWNWARD
-    FE_UPWARD
-    FE_TOWARDZERO
-   We define no macro which signals no rounding mode is selectable.  */
-
-
-/* Type representing exception flags.  */
-typedef unsigned int fexcept_t;
-
-
-/* Type representing floating-point environment.  */
-typedef struct
-  {
-    fexcept_t __excepts;
-    /* XXX I don't know what else we should save.  */
-  }
-fenv_t;
-
-/* If the default argument is used we use this value.  */
-#define FE_DFL_ENV     ((__const fenv_t *) -1l)
diff --git a/sysdeps/generic/bits/fenvinline.h b/sysdeps/generic/bits/fenvinline.h
deleted file mode 100644 (file)
index 42f77b5..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/* This file provides inline versions of floating-pint environment
-   handling functions.  If there were any.  */
-
-#ifndef __NO_MATH_INLINES
-
-/* Here is where the code would go.  */
-
-#endif
diff --git a/sysdeps/generic/bits/huge_val.h b/sysdeps/generic/bits/huge_val.h
deleted file mode 100644 (file)
index e102ac3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Stub `HUGE_VAL' constant.
-   Used by <stdlib.h> and <math.h> functions for overflow.
-   Copyright (C) 1992, 1996, 1997, 2004 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 _MATH_H
-# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
-#endif
-
-#if __GNUC_PREREQ(3,3)
-# define HUGE_VAL      (__builtin_huge_val())
-#else
-# define HUGE_VAL      1e37
-#endif
diff --git a/sysdeps/generic/bits/huge_valf.h b/sysdeps/generic/bits/huge_valf.h
deleted file mode 100644 (file)
index 4cb5ebd..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Stub `HUGE_VALF' constant.
-   Used by <stdlib.h> and <math.h> functions for overflow.
-   Copyright (C) 1992, 1996, 1997, 2004 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 _MATH_H
-# error "Never use <bits/huge_valf.h> directly; include <math.h> instead."
-#endif
-
-#if __GNUC_PREREQ(3,3)
-# define HUGE_VALF     (__builtin_huge_valf())
-#else
-# define HUGE_VALF     1e37f
-#endif
diff --git a/sysdeps/generic/bits/huge_vall.h b/sysdeps/generic/bits/huge_vall.h
deleted file mode 100644 (file)
index d5e8e22..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Default `HUGE_VALL' constant.
-   Used by <stdlib.h> and <math.h> functions for overflow.
-   Copyright (C) 1992, 1996, 1997, 2004 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 _MATH_H
-# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
-#endif
-
-#if __GNUC_PREREQ(3,3)
-# define HUGE_VALL     (__builtin_huge_vall())
-#else
-# define HUGE_VALL     ((long double) HUGE_VAL)
-#endif
diff --git a/sysdeps/generic/bits/in.h b/sysdeps/generic/bits/in.h
deleted file mode 100644 (file)
index 31eb0f9..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 1997, 2000, 2004 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.  */
-
-/* Generic version.  */
-
-#ifndef _NETINET_IN_H
-# error "Never use <bits/in.h> directly; include <netinet/in.h> instead."
-#endif
-
-/* Options for use with `getsockopt' and `setsockopt' at the IP level.
-   The first word in the comment at the right is the data type used;
-   "bool" means a boolean value stored in an `int'.  */
-#define        IP_OPTIONS      1       /* ip_opts; IP per-packet options.  */
-#define        IP_HDRINCL      2       /* int; Header is included with data.  */
-#define        IP_TOS          3       /* int; IP type of service and precedence.  */
-#define        IP_TTL          4       /* int; IP time to live.  */
-#define        IP_RECVOPTS     5       /* bool; Receive all IP options w/datagram.  */
-#define        IP_RECVRETOPTS  6       /* bool; Receive IP options for response.  */
-#define        IP_RECVDSTADDR  7       /* bool; Receive IP dst addr w/datagram.  */
-#define        IP_RETOPTS      8       /* ip_opts; Set/get IP per-packet options.  */
-#define IP_MULTICAST_IF 9      /* in_addr; set/get IP multicast i/f */
-#define IP_MULTICAST_TTL 10    /* u_char; set/get IP multicast ttl */
-#define IP_MULTICAST_LOOP 11   /* i_char; set/get IP multicast loopback */
-#define IP_ADD_MEMBERSHIP 12   /* ip_mreq; add an IP group membership */
-#define IP_DROP_MEMBERSHIP 13  /* ip_mreq; drop an IP group membership */
-
-/* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
-   The `ip_dst' field is used for the first-hop gateway when using a
-   source route (this gets put into the header proper).  */
-struct ip_opts
-  {
-    struct in_addr ip_dst;     /* First hop; zero without source route.  */
-    char ip_opts[40];          /* Actually variable in size.  */
-  };
-
-/* IPV6 socket options.  */
-#define IPV6_ADDRFORM          1
-#define IPV6_RXINFO            2
-#define IPV6_HOPOPTS           3
-#define IPV6_DSTOPTS           4
-#define IPV6_RTHDR             5
-#define IPV6_PKTOPTIONS                6
-#define IPV6_CHECKSUM          7
-#define IPV6_HOPLIMIT          8
-
-#define IPV6_TXINFO            IPV6_RXINFO
-#define SCM_SRCINFO            IPV6_TXINFO
-#define SCM_SRCRT              IPV6_RXSRCRT
-
-#define IPV6_UNICAST_HOPS      16
-#define IPV6_MULTICAST_IF      17
-#define IPV6_MULTICAST_HOPS    18
-#define IPV6_MULTICAST_LOOP    19
-#define IPV6_JOIN_GROUP                20
-#define IPV6_LEAVE_GROUP       21
-
-/* Obsolete synonyms for the above.  */
-#define IPV6_ADD_MEMBERSHIP    IPV6_JOIN_GROUP
-#define IPV6_DROP_MEMBERSHIP   IPV6_LEAVE_GROUP
-#define IPV6_RXHOPOPTS         IPV6_HOPOPTS
-#define IPV6_RXDSTOPTS         IPV6_DSTOPTS
-
-/* Routing header options for IPv6.  */
-#define IPV6_RTHDR_LOOSE       0       /* Hop doesn't need to be neighbour. */
-#define IPV6_RTHDR_STRICT      1       /* Hop must be a neighbour.  */
-
-#define IPV6_RTHDR_TYPE_0      0       /* IPv6 Routing header type 0.  */
diff --git a/sysdeps/generic/bits/inf.h b/sysdeps/generic/bits/inf.h
deleted file mode 100644 (file)
index 2d526ad..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Default `INFINITY' constant.
-   Copyright (C) 2004 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 _MATH_H
-# error "Never use <bits/inf.h> directly; include <math.h> instead."
-#endif
-
-/* If we don't have real infinity, then we're supposed to produce a float
-   value that overflows at translation time, which is required to produce
-   a diagnostic.  GCC's __builtin_inff produces a quite nice diagnostic
-   that tells the user that the target doesn't support infinities.  */
-
-#if __GNUC_PREREQ(3,3)
-# define INFINITY      (__builtin_inff())
-#else
-# define INFINITY      (1e9999f)
-#endif
diff --git a/sysdeps/generic/bits/ioctl-types.h b/sysdeps/generic/bits/ioctl-types.h
deleted file mode 100644 (file)
index 58b78a6..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Structure types for pre-termios terminal ioctls.  Generic Unix version.
-   Copyright (C) 1996, 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.  */
-
-#ifndef _SYS_IOCTL_H
-# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
-#endif
-
-#if defined TIOCGETC || defined TIOCSETC
-/* Type of ARG for TIOCGETC and TIOCSETC requests.  */
-struct tchars
-{
-  char t_intrc;                        /* Interrupt character.  */
-  char t_quitc;                        /* Quit character.  */
-  char t_startc;               /* Start-output character.  */
-  char t_stopc;                        /* Stop-output character.  */
-  char t_eofc;                 /* End-of-file character.  */
-  char t_brkc;                 /* Input delimiter character.  */
-};
-
-#define        _IOT_tchars     /* Hurd ioctl type field.  */ \
-  _IOT (_IOTS (char), 6, 0, 0, 0, 0)
-#endif
-
-#if defined TIOCGLTC || defined TIOCSLTC
-/* Type of ARG for TIOCGLTC and TIOCSLTC requests.  */
-struct ltchars
-{
-  char t_suspc;                        /* Suspend character.  */
-  char t_dsuspc;               /* Delayed suspend character.  */
-  char t_rprntc;               /* Reprint-line character.  */
-  char t_flushc;               /* Flush-output character.  */
-  char t_werasc;               /* Word-erase character.  */
-  char t_lnextc;               /* Literal-next character.  */
-};
-
-#define        _IOT_ltchars    /* Hurd ioctl type field.  */ \
-  _IOT (_IOTS (char), 6, 0, 0, 0, 0)
-#endif
-
-/* Type of ARG for TIOCGETP and TIOCSETP requests (and gtty and stty).  */
-struct sgttyb
-{
-  char sg_ispeed;              /* Input speed.  */
-  char sg_ospeed;              /* Output speed.  */
-  char sg_erase;               /* Erase character.  */
-  char sg_kill;                        /* Kill character.  */
-  short int sg_flags;          /* Mode flags.  */
-};
-
-#define        _IOT_sgttyb     /* Hurd ioctl type field.  */ \
-  _IOT (_IOTS (char), 6, _IOTS (short int), 1, 0, 0)
-
-#if defined TIOCGWINSZ || defined TIOCSWINSZ
-/* Type of ARG for TIOCGWINSZ and TIOCSWINSZ requests.  */
-struct winsize
-{
-  unsigned short int ws_row;   /* Rows, in characters.  */
-  unsigned short int ws_col;   /* Columns, in characters.  */
-
-  /* These are not actually used.  */
-  unsigned short int ws_xpixel;        /* Horizontal pixels.  */
-  unsigned short int ws_ypixel;        /* Vertical pixels.  */
-};
-
-#define        _IOT_winsize    /* Hurd ioctl type field.  */ \
-  _IOT (_IOTS (unsigned short int), 4, 0, 0, 0, 0)
-#endif
-
-#if defined TIOCGSIZE || defined TIOCSSIZE
-/* The BSD-style ioctl constructor macros use `sizeof', which can't be used
-   in a preprocessor conditional.  Since the commands are always unique
-   regardless of the size bits, we can safely define away `sizeof' for the
-   purpose of the conditional.  */
-#  define sizeof(type) 0
-#  if defined TIOCGWINSZ && TIOCGSIZE == TIOCGWINSZ
-/* Many systems that have TIOCGWINSZ define TIOCGSIZE for source
-   compatibility with Sun; they define `struct ttysize' to have identical
-   layout as `struct winsize' and #define TIOCGSIZE to be TIOCGWINSZ
-   (likewise TIOCSSIZE and TIOCSWINSZ).  */
-struct ttysize
-{
-  unsigned short int ts_lines;
-  unsigned short int ts_cols;
-  unsigned short int ts_xxx;
-  unsigned short int ts_yyy;
-};
-#define        _IOT_ttysize    _IOT_winsize
-#  else
-/* Suns use a different layout for `struct ttysize', and TIOCGSIZE and
-   TIOCGWINSZ are separate commands that do the same thing with different
-   structures (likewise TIOCSSIZE and TIOCSWINSZ).  */
-struct ttysize
-{
-  int ts_lines, ts_cols;       /* Lines and columns, in characters.  */
-};
-#  endif
-#  undef sizeof                        /* See above.  */
-#endif
diff --git a/sysdeps/generic/bits/ioctls.h b/sysdeps/generic/bits/ioctls.h
deleted file mode 100644 (file)
index d3ecad9..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifndef _SYS_IOCTL_H
-# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
-#endif
-
-/* This space intentionally left blank.  */
diff --git a/sysdeps/generic/bits/ipc.h b/sysdeps/generic/bits/ipc.h
deleted file mode 100644 (file)
index 5ba227d..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 1995, 1996, 1997, 1999 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_IPC_H
-# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Mode bits for `msgget', `semget', and `shmget'.  */
-#define IPC_CREAT      01000           /* create key if key does not exist */
-#define IPC_EXCL       02000           /* fail if key exists */
-#define IPC_NOWAIT     04000           /* return error on wait */
-
-/* Control commands for `msgctl', `semctl', and `shmctl'.  */
-#define IPC_RMID       0               /* remove identifier */
-#define IPC_SET                1               /* set `ipc_perm' options */
-#define IPC_STAT       2               /* get `ipc_perm' options */
-
-/* Special key values.  */
-#define IPC_PRIVATE    ((key_t) 0)     /* private key */
-
-
-/* Data structure used to pass permission information to IPC operations.  */
-struct ipc_perm
-  {
-    __uid_t uid;                       /* owner's user ID */
-    __gid_t gid;                       /* owner's group ID */
-    __uid_t cuid;                      /* creator's user ID */
-    __gid_t cgid;                      /* creator's group ID */
-    __mode_t mode;                     /* read/write permission */
-  };
diff --git a/sysdeps/generic/bits/ipctypes.h b/sysdeps/generic/bits/ipctypes.h
deleted file mode 100644 (file)
index b88ca1d..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM.  Generic.
-   Copyright (C) 2002 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.  */
-
-/*
- * Never include <bits/ipctypes.h> directly.
- */
-
-#ifndef _BITS_IPCTYPES_H
-#define _BITS_IPCTYPES_H       1
-
-#include <bits/types.h>
-
-/* Used in `struct shmid_ds'.  */
-# if __WORDSIZE == 32
-typedef unsigned short int __ipc_pid_t;
-# else
-typedef int __ipc_pid_t;
-# endif
-
-
-#endif /* bits/ipctypes.h */
diff --git a/sysdeps/generic/bits/libc-lock.h b/sysdeps/generic/bits/libc-lock.h
deleted file mode 100644 (file)
index 3f9c211..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/* libc-internal interface for mutex locks.  Stub version.
-   Copyright (C) 1996,97,99,2000-2002,2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _BITS_LIBC_LOCK_H
-#define _BITS_LIBC_LOCK_H 1
-
-
-/* Define a lock variable NAME with storage class CLASS.  The lock must be
-   initialized with __libc_lock_init before it can be used (or define it
-   with __libc_lock_define_initialized, below).  Use `extern' for CLASS to
-   declare a lock defined in another module.  In public structure
-   definitions you must use a pointer to the lock structure (i.e., NAME
-   begins with a `*'), because its storage size will not be known outside
-   of libc.  */
-#define __libc_lock_define(CLASS,NAME)
-#define __libc_lock_define_recursive(CLASS,NAME)
-#define __rtld_lock_define_recursive(CLASS,NAME)
-#define __libc_rwlock_define(CLASS,NAME)
-
-/* Define an initialized lock variable NAME with storage class CLASS.  */
-#define __libc_lock_define_initialized(CLASS,NAME)
-#define __libc_rwlock_define_initialized(CLASS,NAME)
-
-/* Define an initialized recursive lock variable NAME with storage
-   class CLASS.  */
-#define __libc_lock_define_initialized_recursive(CLASS,NAME)
-#define __rtld_lock_define_initialized_recursive(CLASS,NAME)
-
-/* Initialize the named lock variable, leaving it in a consistent, unlocked
-   state.  */
-#define __libc_lock_init(NAME)
-#define __libc_rwlock_init(NAME)
-
-/* Same as last but this time we initialize a recursive mutex.  */
-#define __libc_lock_init_recursive(NAME)
-#define __rtld_lock_init_recursive(NAME)
-
-/* Finalize the named lock variable, which must be locked.  It cannot be
-   used again until __libc_lock_init is called again on it.  This must be
-   called on a lock variable before the containing storage is reused.  */
-#define __libc_lock_fini(NAME)
-#define __libc_rwlock_fini(NAME)
-
-/* Finalize recursive named lock.  */
-#define __libc_lock_fini_recursive(NAME)
-
-/* Lock the named lock variable.  */
-#define __libc_lock_lock(NAME)
-#define __libc_rwlock_rdlock(NAME)
-#define __libc_rwlock_wrlock(NAME)
-
-/* Lock the recursive named lock variable.  */
-#define __libc_lock_lock_recursive(NAME)
-#define __rtld_lock_lock_recursive(NAME)
-
-/* Try to lock the named lock variable.  */
-#define __libc_lock_trylock(NAME) 0
-#define __libc_rwlock_tryrdlock(NAME) 0
-#define __libc_rwlock_trywrlock(NAME) 0
-
-/* Try to lock the recursive named lock variable.  */
-#define __libc_lock_trylock_recursive(NAME) 0
-
-/* Unlock the named lock variable.  */
-#define __libc_lock_unlock(NAME)
-#define __libc_rwlock_unlock(NAME)
-
-/* Unlock the recursive named lock variable.  */
-#define __libc_lock_unlock_recursive(NAME)
-#define __rtld_lock_unlock_recursive(NAME)
-
-
-/* Define once control variable.  */
-#define __libc_once_define(CLASS, NAME) CLASS int NAME = 0
-
-/* Call handler iff the first call.  */
-#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
-  do {                                                                       \
-    if ((ONCE_CONTROL) == 0) {                                               \
-      INIT_FUNCTION ();                                                              \
-      (ONCE_CONTROL) = 1;                                                    \
-    }                                                                        \
-  } while (0)
-
-
-/* Start a critical region with a cleanup function */
-#define __libc_cleanup_region_start(DOIT, FCT, ARG)                        \
-{                                                                          \
-  typeof (***(FCT)) *__save_FCT = (DOIT) ? (FCT) : 0;                      \
-  typeof (ARG) __save_ARG = ARG;                                           \
-  /* close brace is in __libc_cleanup_region_end below. */
-
-/* End a critical region started with __libc_cleanup_region_start. */
-#define __libc_cleanup_region_end(DOIT)                                            \
-  if ((DOIT) && __save_FCT != 0)                                           \
-    (*__save_FCT)(__save_ARG);                                             \
-}
-
-/* Sometimes we have to exit the block in the middle.  */
-#define __libc_cleanup_end(DOIT)                                           \
-  if ((DOIT) && __save_FCT != 0)                                           \
-    (*__save_FCT)(__save_ARG);                                             \
-
-#define __libc_cleanup_push(fct, arg) __libc_cleanup_region_start (1, fct, arg)
-#define __libc_cleanup_pop(execute) __libc_cleanup_region_end (execute)
-
-/* We need portable names for some of the functions.  */
-#define __libc_mutex_unlock
-
-/* Type for key of thread specific data.  */
-typedef int __libc_key_t;
-
-/* Create key for thread specific data.  */
-#define __libc_key_create(KEY,DEST) -1
-
-/* Set thread-specific data associated with KEY to VAL.  */
-#define __libc_setspecific(KEY,VAL) ((void)0)
-
-/* Get thread-specific data associated with KEY.  */
-#define __libc_getspecific(KEY) 0
-
-#endif /* bits/libc-lock.h */
diff --git a/sysdeps/generic/bits/libc-tsd.h b/sysdeps/generic/bits/libc-tsd.h
deleted file mode 100644 (file)
index d393829..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/* libc-internal interface for thread-specific data.  Stub or TLS version.
-   Copyright (C) 1998,2001,02 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 _GENERIC_BITS_LIBC_TSD_H
-#define _GENERIC_BITS_LIBC_TSD_H 1
-
-/* This file defines the following macros for accessing a small fixed
-   set of thread-specific `void *' data used only internally by libc.
-
-   __libc_tsd_define(CLASS, KEY)       -- Define or declare a `void *' datum
-                                          for KEY.  CLASS can be `static' for
-                                          keys used in only one source file,
-                                          empty for global definitions, or
-                                          `extern' for global declarations.
-   __libc_tsd_address(KEY)             -- Return the `void **' pointing to
-                                          the current thread's datum for KEY.
-   __libc_tsd_get(KEY)                 -- Return the `void *' datum for KEY.
-   __libc_tsd_set(KEY, VALUE)          -- Set the datum for KEY to VALUE.
-
-   The set of available KEY's will usually be provided as an enum,
-   and contains (at least):
-               _LIBC_TSD_KEY_MALLOC
-               _LIBC_TSD_KEY_DL_ERROR
-               _LIBC_TSD_KEY_RPC_VARS
-   All uses must be the literal _LIBC_TSD_* name in the __libc_tsd_* macros.
-   Some implementations may not provide any enum at all and instead
-   using string pasting in the macros.  */
-
-#include <tls.h>
-
-/* When full support for __thread variables is available, this interface is
-   just a trivial wrapper for it.  Without TLS, this is the generic/stub
-   implementation for wholly single-threaded systems.
-
-   We don't define an enum for the possible key values, because the KEYs
-   translate directly into variables by macro magic.  */
-
-#if USE___THREAD
-# define __libc_tsd_define(CLASS, KEY) \
-  CLASS __thread void *__libc_tsd_##KEY attribute_tls_model_ie;
-
-# define __libc_tsd_address(KEY)       (&__libc_tsd_##KEY)
-# define __libc_tsd_get(KEY)           (__libc_tsd_##KEY)
-# define __libc_tsd_set(KEY, VALUE)    (__libc_tsd_##KEY = (VALUE))
-#else
-# define __libc_tsd_define(CLASS, KEY) CLASS void *__libc_tsd_##KEY##_data;
-
-# define __libc_tsd_address(KEY)       (&__libc_tsd_##KEY##_data)
-# define __libc_tsd_get(KEY)           (__libc_tsd_##KEY##_data)
-# define __libc_tsd_set(KEY, VALUE)    (__libc_tsd_##KEY##_data = (VALUE))
-#endif
-
-#endif /* bits/libc-tsd.h */
diff --git a/sysdeps/generic/bits/link.h b/sysdeps/generic/bits/link.h
deleted file mode 100644 (file)
index 6b4f811..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#error "Architecture-specific definition needed."
diff --git a/sysdeps/generic/bits/linkmap.h b/sysdeps/generic/bits/linkmap.h
deleted file mode 100644 (file)
index 470b4d3..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-struct link_map_machine
-  {
-    /* empty by default */
-  };
diff --git a/sysdeps/generic/bits/local_lim.h b/sysdeps/generic/bits/local_lim.h
deleted file mode 100644 (file)
index 42cc7eb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/* This file should define the implementation-specific limits described
-   in posix[12]_lim.h.  If there are no useful values to give a limit,
-   don't define it.  */
diff --git a/sysdeps/generic/bits/mathdef.h b/sysdeps/generic/bits/mathdef.h
deleted file mode 100644 (file)
index 00c6724..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#if !defined _MATH_H && !defined _COMPLEX_H
-# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-#endif
-
-#if defined  __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
-# define _MATH_H_MATHDEF       1
-
-/* Normally, there is no long double type and the `float' and `double'
-   expressions are evaluated as `double'.  */
-typedef double float_t;                /* `float' expressions are evaluated as
-                                  `double'.  */
-typedef double double_t;       /* `double' expressions are evaluated as
-                                  `double'.  */
-
-/* The values returned by `ilogb' for 0 and NaN respectively.  */
-# define FP_ILOGB0     (-2147483647)
-# define FP_ILOGBNAN   2147483647
-
-#endif /* ISO C99 */
-
-#ifndef __NO_LONG_DOUBLE_MATH
-/* Signal that we do not really have a `long double'.  The disables the
-   declaration of all the `long double' function variants.  */
-# define __NO_LONG_DOUBLE_MATH 1
-#endif
diff --git a/sysdeps/generic/bits/mathinline.h b/sysdeps/generic/bits/mathinline.h
deleted file mode 100644 (file)
index 5498af6..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/* This file should provide inline versions of math functions.
-
-   Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
-
-   This file should define __MATH_INLINES if functions are actually defined as
-   inlines.  */
-
-#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
-
-/* Here goes the real code.  */
-
-#endif
diff --git a/sysdeps/generic/bits/mman.h b/sysdeps/generic/bits/mman.h
deleted file mode 100644 (file)
index 0c15902..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Definitions for BSD-style memory management.
-   Copyright (C) 1994-1998,2000,01,02,05 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.  */
-
-/* These are the bits used by 4.4 BSD and its derivatives.  On systems
-   (such as GNU) where these facilities are not system services but can be
-   emulated in the C library, these are the definitions we emulate.  */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* Protections are chosen from these bits, OR'd together.  The
-   implementation does not necessarily support PROT_EXEC or PROT_WRITE
-   without PROT_READ.  The only guarantees are that no writing will be
-   allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
-
-#define        PROT_NONE        0x00   /* No access.  */
-#define        PROT_READ        0x04   /* Pages can be read.  */
-#define        PROT_WRITE       0x02   /* Pages can be written.  */
-#define        PROT_EXEC        0x01   /* Pages can be executed.  */
-
-/* Flags contain mapping type, sharing type and options.  */
-
-/* Mapping type (must choose one and only one of these).  */
-#ifdef __USE_BSD
-# define MAP_FILE       0x0001 /* Mapped from a file or device.  */
-# define MAP_ANON       0x0002 /* Allocated from anonymous virtual memory.  */
-# define MAP_TYPE       0x000f /* Mask for type field.  */
-# ifdef __USE_MISC
-#  define MAP_ANONYMOUS  MAP_ANON /* Linux name. */
-# endif
-#endif
-
-/* Sharing types (must choose one and only one of these).  */
-#ifdef __USE_BSD
-# define MAP_COPY       0x0020 /* Virtual copy of region at mapping time.  */
-#endif
-#define        MAP_SHARED       0x0010 /* Share changes.  */
-#define        MAP_PRIVATE      0x0000 /* Changes private; copy pages on write.  */
-
-/* Other flags.  */
-#define        MAP_FIXED        0x0100 /* Map address must be exactly as requested. */
-#ifdef __USE_BSD
-# define MAP_NOEXTEND   0x0200 /* For MAP_FILE, don't change file size.  */
-# define MAP_HASSEMPHORE 0x0400        /* Region may contain semaphores.  */
-# define MAP_INHERIT    0x0800 /* Region is retained after exec.  */
-#endif
-
-/* Advice to `madvise'.  */
-#ifdef __USE_BSD
-# define MADV_NORMAL    0      /* No further special treatment.  */
-# define MADV_RANDOM    1      /* Expect random page references.  */
-# define MADV_SEQUENTIAL 2     /* Expect sequential page references.  */
-# define MADV_WILLNEED  3      /* Will need these pages.  */
-# define MADV_DONTNEED  4      /* Don't need these pages.  */
-#endif
-
-/* The POSIX people had to invent similar names for the same things.  */
-#ifdef __USE_XOPEN2K
-# define POSIX_MADV_NORMAL     0 /* No further special treatment.  */
-# define POSIX_MADV_RANDOM     1 /* Expect random page references.  */
-# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references.  */
-# define POSIX_MADV_WILLNEED   3 /* Will need these pages.  */
-# define POSIX_MADV_DONTNEED   4 /* Don't need these pages.  */
-#endif
-
-/* Flags to `msync'.  */
-#define MS_ASYNC       1               /* Sync memory asynchronously.  */
-#define MS_SYNC                0               /* Synchronous memory sync.  */
-#define MS_INVALIDATE  2               /* Invalidate the caches.  */
-
-/* Flags for `mremap'.  */
-#ifdef __USE_GNU
-# define MREMAP_MAYMOVE        1               /* Mapping address may change.  */
-# define MREMAP_FIXED  2               /* Fifth argument sets new address.  */
-#endif
-
-/* Flags for `mlockall' (can be OR'd together).  */
-#define MCL_CURRENT    1               /* Lock all currently mapped pages.  */
-#define MCL_FUTURE     2               /* Lock all additions to address
-                                          space.  */
diff --git a/sysdeps/generic/bits/mqueue.h b/sysdeps/generic/bits/mqueue.h
deleted file mode 100644 (file)
index 27bb482..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2004 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 _MQUEUE_H
-# error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
-#endif
-
-typedef int mqd_t;
-
-struct mq_attr
-{
-  long int mq_flags;   /* Message queue flags.  */
-  long int mq_maxmsg;  /* Maximum number of messages.  */
-  long int mq_msgsize; /* Maximum message size.  */
-  long int mq_curmsgs; /* Number of messages currently queued.  */
-};
diff --git a/sysdeps/generic/bits/msq.h b/sysdeps/generic/bits/msq.h
deleted file mode 100644 (file)
index 0125c43..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 1995, 1997, 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_MSG_H
-#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Define options for message queue functions.  */
-#define MSG_NOERROR    010000  /* no error if message is too big */
-
-/* Types used in the structure definition.  */
-typedef unsigned short int msgqnum_t;
-typedef unsigned short int msglen_t;
-
-
-/* Structure of record for one message inside the kernel.
-   The type `struct __msg' is opaque.  */
-struct msqid_ds
-{
-  struct ipc_perm msg_perm;    /* structure describing operation permission */
-  __time_t msg_stime;          /* time of last msgsnd command */
-  __time_t msg_rtime;          /* time of last msgrcv command */
-  __time_t msg_ctime;          /* time of last change */
-  msgqnum_t msg_qnum;          /* number of messages currently on queue */
-  msglen_t msg_qbytes;         /* max number of bytes allowed on queue */
-  __pid_t msg_lspid;           /* pid of last msgsnd() */
-  __pid_t msg_lrpid;           /* pid of last msgrcv() */
-};
diff --git a/sysdeps/generic/bits/nan.h b/sysdeps/generic/bits/nan.h
deleted file mode 100644 (file)
index ab38168..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifndef _MATH_H
-#error "Never use <bits/nan.h> directly; include <math.h> instead."
-#endif
-
-/* This file should define `NAN' on machines that have such things.  */
diff --git a/sysdeps/generic/bits/netdb.h b/sysdeps/generic/bits/netdb.h
deleted file mode 100644 (file)
index 41dc731..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1996, 1997, 1998, 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 _NETDB_H
-# error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
-#endif
-
-
-/* Description of data base entry for a single network.  NOTE: here a
-   poor assumption is made.  The network number is expected to fit
-   into an unsigned long int variable.  */
-struct netent
-{
-  char *n_name;                        /* Official name of network.  */
-  char **n_aliases;            /* Alias list.  */
-  int n_addrtype;              /* Net address type.  */
-  uint32_t n_net;              /* Network number.  */
-};
diff --git a/sysdeps/generic/bits/poll.h b/sysdeps/generic/bits/poll.h
deleted file mode 100644 (file)
index 022a06c..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 1997, 2000, 2001 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_POLL_H
-# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
-#endif
-
-/* Event types that can be polled for.  These bits may be set in `events'
-   to indicate the interesting event types; they will appear in `revents'
-   to indicate the status of the file descriptor.  */
-#define POLLIN         01              /* There is data to read.  */
-#define POLLPRI                02              /* There is urgent data to read.  */
-#define POLLOUT                04              /* Writing now will not block.  */
-
-#ifdef __USE_XOPEN
-/* These values are defined in XPG4.2.  */
-# define POLLRDNORM    POLLIN          /* Normal data may be read.  */
-# define POLLRDBAND    POLLPRI         /* Priority data may be read.  */
-# define POLLWRNORM    POLLOUT         /* Writing now will not block.  */
-# define POLLWRBAND    POLLOUT         /* Priority data may be written.  */
-#endif
-
-/* Event types always implicitly polled for.  These bits need not be set in
-   `events', but they will appear in `revents' to indicate the status of
-   the file descriptor.  */
-#define POLLERR         010             /* Error condition.  */
-#define POLLHUP         020             /* Hung up.  */
-#define POLLNVAL        040             /* Invalid polling request.  */
diff --git a/sysdeps/generic/bits/posix_opt.h b/sysdeps/generic/bits/posix_opt.h
deleted file mode 100644 (file)
index 54f5a79..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/* This file should define the POSIX options described in <unistd.h>,
-   or leave them undefined, as appropriate.  */
diff --git a/sysdeps/generic/bits/pthreadtypes.h b/sysdeps/generic/bits/pthreadtypes.h
deleted file mode 100644 (file)
index 0e26952..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* No thread support.  */
diff --git a/sysdeps/generic/bits/resource.h b/sysdeps/generic/bits/resource.h
deleted file mode 100644 (file)
index 05b28df..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Bit values & structures for resource limits.  4.4 BSD/generic GNU version.
-   Copyright (C) 1994, 1996, 1997, 1998 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_RESOURCE_H
-# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* These are the values for 4.4 BSD and GNU.  Earlier BSD systems have a
-   subset of these kinds of resource limit.  In systems where `getrlimit'
-   and `setrlimit' are not system calls, these are the values used by the C
-   library to emulate them.  */
-
-/* Kinds of resource limit.  */
-enum __rlimit_resource
-  {
-    /* Per-process CPU limit, in seconds.  */
-    RLIMIT_CPU,
-#define        RLIMIT_CPU      RLIMIT_CPU
-    /* Largest file that can be created, in bytes.  */
-    RLIMIT_FSIZE,
-#define        RLIMIT_FSIZE    RLIMIT_FSIZE
-    /* Maximum size of data segment, in bytes.  */
-    RLIMIT_DATA,
-#define        RLIMIT_DATA     RLIMIT_DATA
-    /* Maximum size of stack segment, in bytes.  */
-    RLIMIT_STACK,
-#define        RLIMIT_STACK    RLIMIT_STACK
-    /* Largest core file that can be created, in bytes.  */
-    RLIMIT_CORE,
-#define        RLIMIT_CORE     RLIMIT_CORE
-    /* Largest resident set size, in bytes.
-       This affects swapping; processes that are exceeding their
-       resident set size will be more likely to have physical memory
-       taken from them.  */
-    RLIMIT_RSS,
-#define        RLIMIT_RSS      RLIMIT_RSS
-    /* Locked-in-memory address space.  */
-    RLIMIT_MEMLOCK,
-#define        RLIMIT_MEMLOCK  RLIMIT_MEMLOCK
-    /* Number of processes.  */
-    RLIMIT_NPROC,
-#define        RLIMIT_NPROC    RLIMIT_NPROC
-    /* Number of open files.  */
-    RLIMIT_OFILE,
-    RLIMIT_NOFILE = RLIMIT_OFILE, /* Another name for the same thing.  */
-#define        RLIMIT_OFILE    RLIMIT_OFILE
-#define        RLIMIT_NOFILE   RLIMIT_NOFILE
-
-    RLIMIT_NLIMITS,            /* Number of limit flavors.  */
-    RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same.  */
-  };
-
-/* Value to indicate that there is no limit.  */
-#ifndef __USE_FILE_OFFSET64
-# define RLIM_INFINITY 0x7fffffff
-#else
-# define RLIM_INFINITY 0x7fffffffffffffffLL
-#endif
-
-#ifdef __USE_LARGEFILE64
-# define RLIM64_INFINITY 0x7fffffffffffffffLL
-#endif
-
-
-/* Type for resource quantity measurement.  */
-#ifndef __USE_FILE_OFFSET64
-typedef __rlim_t rlim_t;
-#else
-typedef __rlim64_t rlim_t;
-#endif
-#ifdef __USE_LARGEFILE64
-typedef __rlim64_t rlim64_t;
-#endif
-
-struct rlimit
-  {
-    /* The current (soft) limit.  */
-    rlim_t rlim_cur;
-    /* The hard limit.  */
-    rlim_t rlim_max;
-  };
-
-#ifdef __USE_LARGEFILE64
-struct rlimit64
-  {
-    /* The current (soft) limit.  */
-    rlim64_t rlim_cur;
-    /* The hard limit.  */
-    rlim64_t rlim_max;
- };
-#endif
-
-/* Whose usage statistics do you want?  */
-enum __rusage_who
-/* The macro definitions are necessary because some programs want
-   to test for operating system features with #ifdef RUSAGE_SELF.
-   In ISO C the reflexive definition is a no-op.  */
-  {
-    /* The calling process.  */
-    RUSAGE_SELF = 0,
-#define RUSAGE_SELF     RUSAGE_SELF
-    /* All of its terminated child processes.  */
-    RUSAGE_CHILDREN = -1
-#define RUSAGE_CHILDREN RUSAGE_CHILDREN
-  };
-
-#define __need_timeval
-#include <bits/time.h>           /* For `struct timeval'.  */
-
-/* Structure which says how much of each resource has been used.  */
-struct rusage
-  {
-    /* Total amount of user time used.  */
-    struct timeval ru_utime;
-    /* Total amount of system time used.  */
-    struct timeval ru_stime;
-    /* Maximum resident set size (in kilobytes).  */
-    long int ru_maxrss;
-    /* Amount of sharing of text segment memory
-       with other processes (kilobyte-seconds).  */
-    long int ru_ixrss;
-    /* Amount of data segment memory used (kilobyte-seconds).  */
-    long int ru_idrss;
-    /* Amount of stack memory used (kilobyte-seconds).  */
-    long int ru_isrss;
-    /* Number of soft page faults (i.e. those serviced by reclaiming
-       a page from the list of pages awaiting reallocation.  */
-    long int ru_minflt;
-    /* Number of hard page faults (i.e. those that required I/O).  */
-    long int ru_majflt;
-    /* Number of times a process was swapped out of physical memory.  */
-    long int ru_nswap;
-    /* Number of input operations via the file system.  Note: This
-       and `ru_oublock' do not include operations with the cache.  */
-    long int ru_inblock;
-    /* Number of output operations via the file system.  */
-    long int ru_oublock;
-    /* Number of IPC messages sent.  */
-    long int ru_msgsnd;
-    /* Number of IPC messages received.  */
-    long int ru_msgrcv;
-    /* Number of signals delivered.  */
-    long int ru_nsignals;
-    /* Number of voluntary context switches, i.e. because the process
-       gave up the process before it had to (usually to wait for some
-       resource to be available).  */
-    long int ru_nvcsw;
-    /* Number of involuntary context switches, i.e. a higher priority process
-       became runnable or the current process used up its time slice.  */
-    long int ru_nivcsw;
-  };
-
-/* Priority limits.  */
-#define PRIO_MIN        -20     /* Minimum priority a process can have.  */
-#define PRIO_MAX        20      /* Maximum priority a process can have.  */
-
-/* The type of the WHICH argument to `getpriority' and `setpriority',
-   indicating what flavor of entity the WHO argument specifies.  */
-enum __priority_which
-  {
-    PRIO_PROCESS = 0,           /* WHO is a process ID.  */
-    PRIO_PGRP = 1,              /* WHO is a process group ID.  */
-    PRIO_USER = 2               /* WHO is a user ID.  */
-  };
diff --git a/sysdeps/generic/bits/sched.h b/sysdeps/generic/bits/sched.h
deleted file mode 100644 (file)
index 91b6dca..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Definitions of constants and data structure for POSIX 1003.1b-1993
-   scheduling interface.
-   Copyright (C) 1996, 1997, 2001, 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.  */
-
-#ifndef _SCHED_H
-# error "Never include <bits/sched.h> directly; use <sched.h> instead."
-#endif
-
-
-/* Scheduling algorithms.  */
-#define SCHED_OTHER    0
-#define SCHED_FIFO     1
-#define SCHED_RR       2
-
-/* Data structure to describe a process' schedulability.  */
-struct sched_param
-{
-  int __sched_priority;
-};
-
-
-#if defined _SCHED_H && !defined __cpu_set_t_defined
-# define __cpu_set_t_defined
-/* Size definition for CPU sets.  */
-# define __CPU_SETSIZE 1024
-# define __NCPUBITS    (8 * sizeof (__cpu_mask))
-
-/* Type for array elements in 'cpu_set'.  */
-typedef unsigned long int __cpu_mask;
-
-/* Basic access functions.  */
-# define __CPUELT(cpu) ((cpu) / __NCPUBITS)
-# define __CPUMASK(cpu)        ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))
-
-/* Data structure to describe CPU mask.  */
-typedef struct
-{
-  __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS];
-} cpu_set_t;
-
-/* Access functions for CPU masks.  */
-# define __CPU_ZERO(cpusetp) \
-  do {                                                                       \
-    unsigned int __i;                                                        \
-    cpu_set *__arr = (cpusetp);                                                      \
-    for (__i = 0; __i < sizeof (cpu_set) / sizeof (__cpu_mask); ++__i)       \
-      __arr->__bits[__i] = 0;                                                \
-  } while (0)
-# define __CPU_SET(cpu, cpusetp) \
-  ((cpusetp)->__bits[__CPUELT (cpu)] |= __CPUMASK (cpu))
-# define __CPU_CLR(cpu, cpusetp) \
-  ((cpusetp)->__bits[__CPUELT (cpu)] &= ~__CPUMASK (cpu))
-# define __CPU_ISSET(cpu, cpusetp) \
-  (((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0)
-#endif
diff --git a/sysdeps/generic/bits/select.h b/sysdeps/generic/bits/select.h
deleted file mode 100644 (file)
index 47e7ded..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1997, 1998, 2001 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_SELECT_H
-# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
-#endif
-
-
-/* We don't use `memset' because this would require a prototype and
-   the array isn't too big.  */
-#define __FD_ZERO(s) \
-  do {                                                                       \
-    unsigned int __i;                                                        \
-    fd_set *__arr = (s);                                                     \
-    for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)         \
-      __FDS_BITS (__arr)[__i] = 0;                                           \
-  } while (0)
-#define __FD_SET(d, s)     (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
-#define __FD_CLR(d, s)     (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d))
-#define __FD_ISSET(d, s)   ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0)
diff --git a/sysdeps/generic/bits/sem.h b/sysdeps/generic/bits/sem.h
deleted file mode 100644 (file)
index dcb1c3e..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 1995, 1996, 1997, 1998
-   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_SEM_H
-# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
-#endif
-
-#include <sys/types.h>
-
-/* Flags for `semop'.  */
-#define SEM_UNDO       0x1000          /* undo the operation on exit */
-
-/* Commands for `semctl'.  */
-#define GETPID         11              /* get sempid */
-#define GETVAL         12              /* get semval */
-#define GETALL         13              /* get all semval's */
-#define GETNCNT                14              /* get semncnt */
-#define GETZCNT                15              /* get semzcnt */
-#define SETVAL         16              /* set semval */
-#define SETALL         17              /* set all semval's */
-
-
-/* Data structure describing a set of semaphores.  */
-struct semid_ds
-{
-  struct ipc_perm sem_perm;            /* operation permission struct */
-  __time_t sem_otime;                  /* last semop() time */
-  __time_t sem_ctime;                  /* last time changed by semctl() */
-  unsigned short int sem_nsems;                /* number of semaphores in set */
-};
-
-/* The user should define a union like the following to use it for arguments
-   for `semctl'.
-
-   union semun
-   {
-     int val;                          <= value for SETVAL
-     struct semid_ds *buf;             <= buffer for IPC_STAT & IPC_SET
-     unsigned short int *array;                <= array for GETALL & SETALL
-     struct seminfo *__buf;            <= buffer for IPC_INFO
-   };
-
-   Previous versions of this file used to define this union but this is
-   incorrect.  One can test the macro _SEM_SEMUN_UNDEFINED to see whether
-   one must define the union or not.  */
-#define _SEM_SEMUN_UNDEFINED   1
diff --git a/sysdeps/generic/bits/setjmp.h b/sysdeps/generic/bits/setjmp.h
deleted file mode 100644 (file)
index 9150d8d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/* Define the machine-dependent type `jmp_buf'.  Stub version.  */
-
-#ifndef _SETJMP_H
-# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-#endif
-
-typedef int __jmp_buf[1];
diff --git a/sysdeps/generic/bits/shm.h b/sysdeps/generic/bits/shm.h
deleted file mode 100644 (file)
index 746a863..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (C) 1995, 1996, 1997, 2000, 2002, 2004
-   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_SHM_H
-# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Flags for `shmat'.  */
-#define SHM_RDONLY     010000          /* attach read-only else read-write */
-#define SHM_RND                020000          /* round attach address to SHMLBA */
-#define SHM_REMAP      040000          /* take-over region on attach */
-
-/* Commands for `shmctl'.  */
-#define SHM_LOCK       11              /* lock segment (root only) */
-#define SHM_UNLOCK     12              /* unlock segment (root only) */
-
-__BEGIN_DECLS
-
-/* Segment low boundary address multiple.  */
-#define SHMLBA         (__getpagesize ())
-extern int __getpagesize (void) __THROW __attribute__ ((__const__));
-
-
-/* Type to count number of attaches.  */
-typedef unsigned short int shmatt_t;
-
-/* Data structure describing a set of semaphores.  */
-struct shmid_ds
-  {
-    struct ipc_perm shm_perm;          /* operation permission struct */
-    int shm_segsz;                     /* size of segment in bytes */
-    __time_t shm_atime;                        /* time of last shmat() */
-    __time_t shm_dtime;                        /* time of last shmdt() */
-    __time_t shm_ctime;                        /* time of last change by shmctl() */
-    __pid_t shm_cpid;                  /* pid of creator */
-    __pid_t shm_lpid;                  /* pid of last shmop */
-    shmatt_t shm_nattch;               /* number of current attaches */
-  };
-
-__END_DECLS
diff --git a/sysdeps/generic/bits/sigaction.h b/sysdeps/generic/bits/sigaction.h
deleted file mode 100644 (file)
index adcc276..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (C) 1991,92,96,97,98,2001 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 _SIGNAL_H
-# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
-#endif
-
-/* These definitions match those used by the 4.4 BSD kernel.
-   If the operating system has a `sigaction' system call that correctly
-   implements the POSIX.1 behavior, there should be a system-dependent
-   version of this file that defines `struct sigaction' and the `SA_*'
-   constants appropriately.  */
-
-/* Structure describing the action to be taken when a signal arrives.  */
-struct sigaction
-  {
-    /* Signal handler.  */
-#ifdef __USE_POSIX199309
-    union
-      {
-       /* Used if SA_SIGINFO is not set.  */
-       __sighandler_t sa_handler;
-       /* Used if SA_SIGINFO is set.  */
-       void (*sa_sigaction) (int, siginfo_t *, void *);
-      }
-    __sigaction_handler;
-# define sa_handler    __sigaction_handler.sa_handler
-# define sa_sigaction  __sigaction_handler.sa_sigaction
-#else
-    __sighandler_t sa_handler;
-#endif
-
-    /* Additional set of signals to be blocked.  */
-    __sigset_t sa_mask;
-
-    /* Special flags.  */
-    int sa_flags;
-  };
-
-/* Bits in `sa_flags'.  */
-#if defined __USE_UNIX98 || defined __USE_MISC
-# define SA_ONSTACK    0x0001  /* Take signal on signal stack.  */
-# define SA_RESTART    0x0002  /* Restart syscall on signal return.  */
-# define SA_NODEFER    0x0010  /* Don't automatically block the signal when
-                                   its handler is being executed.  */
-# define SA_RESETHAND  0x0004  /* Reset to SIG_DFL on entry to handler.  */
-#endif
-#define        SA_NOCLDSTOP    0x0008  /* Don't send SIGCHLD when children stop.  */
-
-#ifdef __USE_MISC
-# define SA_INTERRUPT  0       /* Historical no-op ("not SA_RESTART").  */
-
-/* Some aliases for the SA_ constants.  */
-# define SA_NOMASK    SA_NODEFER
-# define SA_ONESHOT   SA_RESETHAND
-# define SA_STACK     SA_ONSTACK
-#endif
-
-
-/* Values for the HOW argument to `sigprocmask'.  */
-#define        SIG_BLOCK       1       /* Block signals.  */
-#define        SIG_UNBLOCK     2       /* Unblock signals.  */
-#define        SIG_SETMASK     3       /* Set the set of blocked signals.  */
diff --git a/sysdeps/generic/bits/sigcontext.h b/sysdeps/generic/bits/sigcontext.h
deleted file mode 100644 (file)
index 7e90e78..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Structure describing state saved while handling a signal.  Stub version.
-   Copyright (C) 1991, 1994, 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.  */
-
-#ifndef _SIGNAL_H
-# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
-#endif
-
-/* State of this thread when the signal was taken.  */
-struct sigcontext
-  {
-    int sc_onstack;
-    __sigset_t sc_mask;
-
-    /* Registers and such.  */
-  };
-
-/* Signal subcodes should be defined here.  */
diff --git a/sysdeps/generic/bits/siginfo.h b/sysdeps/generic/bits/siginfo.h
deleted file mode 100644 (file)
index fe7b3b5..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-/* siginfo_t, sigevent and constants.  Stub version.
-   Copyright (C) 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#if !defined _SIGNAL_H && !defined __need_siginfo_t \
-    && !defined __need_sigevent_t
-# error "Never include this file directly.  Use <signal.h> instead"
-#endif
-
-#if (!defined __have_sigval_t \
-     && (defined _SIGNAL_H || defined __need_siginfo_t \
-        || defined __need_sigevent_t))
-# define __have_sigval_t 1
-
-/* Type for data associated with a signal.  */
-typedef union sigval
-  {
-    int sival_int;
-    void *sival_ptr;
-  } sigval_t;
-#endif
-
-#if (!defined __have_siginfo_t \
-     && (defined _SIGNAL_H || defined __need_siginfo_t))
-# define __have_siginfo_t      1
-
-typedef struct siginfo
-  {
-    int si_signo;              /* Signal number.  */
-    int si_errno;              /* If non-zero, an errno value associated with
-                                  this signal, as defined in <errno.h>.  */
-    int si_code;               /* Signal code.  */
-    __pid_t si_pid;            /* Sending process ID.  */
-    __uid_t si_uid;            /* Real user ID of sending process.  */
-    void *si_addr;             /* Address of faulting instruction.  */
-    int si_status;             /* Exit value or signal.  */
-    long int si_band;          /* Band event for SIGPOLL.  */
-    union sigval si_value;     /* Signal value.  */
-  } siginfo_t;
-
-
-/* Values for `si_code'.  Positive values are reserved for kernel-generated
-   signals.  */
-enum
-{
-  SI_ASYNCIO = -4,             /* Sent by AIO completion.  */
-# define SI_ASYNCIO    SI_ASYNCIO
-  SI_MESGQ,                    /* Sent by real time mesq state change.  */
-# define SI_MESGQ      SI_MESGQ
-  SI_TIMER,                    /* Sent by timer expiration.  */
-# define SI_TIMER      SI_TIMER
-  SI_QUEUE,                    /* Sent by sigqueue.  */
-# define SI_QUEUE      SI_QUEUE
-  SI_USER                      /* Sent by kill, sigsend, raise.  */
-# define SI_USER       SI_USER
-};
-
-
-/* `si_code' values for SIGILL signal.  */
-enum
-{
-  ILL_ILLOPC = 1,              /* Illegal opcode.  */
-# define ILL_ILLOPC    ILL_ILLOPC
-  ILL_ILL_OPN,                 /* Illegal operand.  */
-# define ILL_ILLOPN    ILL_ILLOPN
-  ILL_ILLADR,                  /* Illegal addressing mode.  */
-# define ILL_ILLADR    ILL_ILLADR
-  ILL_ILLTRP,                  /* Illegal trap. */
-# define ILL_ILLTRP    ILL_ILLTRP
-  ILL_PRVOPC,                  /* Privileged opcode.  */
-# define ILL_PRVOPC    ILL_PRVOPC
-  ILL_PRVREG,                  /* Privileged register.  */
-# define ILL_PRVREG    ILL_PRVREG
-  ILL_COPROC,                  /* Coprocessor error.  */
-# define ILL_COPROC    ILL_COPROC
-  ILL_BADSTK                   /* Internal stack error.  */
-# define ILL_BADSTK    ILL_BADSTK
-};
-
-/* `si_code' values for SIGFPE signal.  */
-enum
-{
-  FPE_INTDIV = 1,              /* Integer divide by zero.  */
-# define FPE_INTDIV    FPE_INTDIV
-  FPE_INTOVF,                  /* Integer overflow.  */
-# define FPE_INTOVF    FPE_INTOVF
-  FPE_FLTDIV,                  /* Floating point divide by zero.  */
-# define FPE_FLTDIV    FPE_FLTDIV
-  FPE_FLTOVF,                  /* Floating point overflow.  */
-# define FPE_FLTOVF    FPE_FLTOVF
-  FPE_FLTUND,                  /* Floating point underflow.  */
-# define FPE_FLTUND    FPE_FLTUND
-  FPE_FLTRES,                  /* Floating point inexact result.  */
-# define FPE_FLTRES    FPE_FLTRES
-  FPE_FLTINV,                  /* Floating point invalid operation.  */
-# define FPE_FLTINV    FPE_FLTINV
-  FPE_FLTSUB                   /* Subscript out of range.  */
-# define FPE_FLTSUB    FPE_FLTSUB
-};
-
-/* `si_code' values for SIGSEGV signal.  */
-enum
-{
-  SEGV_MAPERR = 1,             /* Address not mapped to object.  */
-# define SEGV_MAPERR   SEGV_MAPERR
-  SEGV_ACCERR                  /* Invalid permissions for mapped object.  */
-# define SEGV_ACCERR   SEGV_ACCERR
-};
-
-/* `si_code' values for SIGBUS signal.  */
-enum
-{
-  BUS_ADRALN = 1,              /* Invalid address alignment.  */
-# define BUS_ADRALN    BUS_ADRALN
-  BUS_ADRERR,                  /* Non-existant physical address.  */
-# define BUS_ADRERR    BUS_ADRERR
-  BUS_OBJERR                   /* Object specific hardware error.  */
-# define BUS_OBJERR    BUS_OBJERR
-};
-
-/* `si_code' values for SIGTRAP signal.  */
-enum
-{
-  TRAP_BRKPT = 1,              /* Process breakpoint.  */
-# define TRAP_BRKPT    TRAP_BRKPT
-  TRAP_TRACE                   /* Process trace trap.  */
-# define TRAP_TRACE    TRAP_TRACE
-};
-
-/* `si_code' values for SIGCHLD signal.  */
-enum
-{
-  CLD_EXITED = 1,              /* Child has exited.  */
-# define CLD_EXITED    CLD_EXITED
-  CLD_KILLED,                  /* Child was killed.  */
-# define CLD_KILLED    CLD_KILLED
-  CLD_DUMPED,                  /* Child terminated abnormally.  */
-# define CLD_DUMPED    CLD_DUMPED
-  CLD_TRAPPED,                 /* Traced child has trapped.  */
-# define CLD_TRAPPED   CLD_TRAPPED
-  CLD_STOPPED,                 /* Child has stopped.  */
-# define CLD_STOPPED   CLD_STOPPED
-  CLD_CONTINUED                        /* Stopped child has continued.  */
-# define CLD_CONTINUED CLD_CONTINUED
-};
-
-/* `si_code' values for SIGPOLL signal.  */
-enum
-{
-  POLL_IN = 1,                 /* Data input available.  */
-# define POLL_IN       POLL_IN
-  POLL_OUT,                    /* Output buffers available.  */
-# define POLL_OUT      POLL_OUT
-  POLL_MSG,                    /* Input message available.   */
-# define POLL_MSG      POLL_MSG
-  POLL_ERR,                    /* I/O error.  */
-# define POLL_ERR      POLL_ERR
-  POLL_PRI,                    /* High priority input available.  */
-# define POLL_PRI      POLL_PRI
-  POLL_HUP                     /* Device disconnected.  */
-# define POLL_HUP      POLL_HUP
-};
-
-# undef __need_siginfo_t
-#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t).  */
-
-
-#if (defined _SIGNAL_H || defined __need_sigevent_t) \
-    && !defined __have_sigevent_t
-# define __have_sigevent_t     1
-
-/* Structure to transport application-defined values with signals.  */
-# define SIGEV_MAX_SIZE        64
-# define SIGEV_PAD_SIZE        ((SIGEV_MAX_SIZE / sizeof (int)) - 3)
-
-typedef struct sigevent
-  {
-    sigval_t sigev_value;
-    int sigev_signo;
-    int sigev_notify;
-    void (*sigev_notify_function) (sigval_t);      /* Function to start.  */
-    void *sigev_notify_attributes;                 /* Really pthread_attr_t.*/
-  } sigevent_t;
-
-/* `sigev_notify' values.  */
-enum
-{
-  SIGEV_SIGNAL = 0,            /* Notify via signal.  */
-# define SIGEV_SIGNAL  SIGEV_SIGNAL
-  SIGEV_NONE,                  /* Other notification: meaningless.  */
-# define SIGEV_NONE    SIGEV_NONE
-  SIGEV_THREAD                 /* Deliver via thread creation.  */
-# define SIGEV_THREAD  SIGEV_THREAD
-};
-
-#endif /* have _SIGNAL_H.  */
diff --git a/sysdeps/generic/bits/signum.h b/sysdeps/generic/bits/signum.h
deleted file mode 100644 (file)
index 25331f9..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (C) 1991, 1993, 1996, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifdef _SIGNAL_H
-
-/* Fake signal functions.  */
-
-#define        SIG_ERR  ((__sighandler_t) -1)  /* Error return.  */
-#define        SIG_DFL  ((__sighandler_t)  0)  /* Default action.  */
-#define        SIG_IGN  ((__sighandler_t)  1)  /* Ignore signal.  */
-
-#ifdef __USE_UNIX98
-# define SIG_HOLD ((__sighandler_t)  2)        /* Add signal to hold mask.  */
-#endif
-
-/* Signals in the 1-15 range are defined with their historical numbers.
-   Signals in the 20-25 range are relatively new and have no ingrained
-   numbers. */
-
-/* ANSI signals.  */
-#define        SIGINT  2       /* Interactive attention signal.  */
-#define        SIGILL  4       /* Illegal instruction.  */
-#define        SIGABRT 6       /* Abnormal termination.  */
-#define        SIGFPE  8       /* Erroneous arithmetic operation.  */
-#define        SIGSEGV 11      /* Invalid access to storage.  */
-#define        SIGTERM 15      /* Termination request.  */
-
-/* Historical signals specified by POSIX. */
-#define        SIGHUP  1       /* Hangup.  */
-#define        SIGQUIT 3       /* Quit.  */
-#define        SIGKILL 9       /* Kill (cannot be blocked, caught, or ignored).  */
-#define        SIGPIPE 13      /* Broken pipe.  */
-#define        SIGALRM 14      /* Alarm clock.  */
-
-/* New(er) POSIX signals. */
-#define        SIGSTOP 20      /* Stop (cannot be blocked, caught, or ignored).  */
-#define        SIGCONT 21      /* Continue.  */
-#define        SIGTSTP 22      /* Keyboard stop.  */
-#define        SIGTTIN 23      /* Background read from control terminal.  */
-#define        SIGTTOU 24      /* Background write to control terminal.  */
-#define        SIGCHLD 25      /* Child terminated or stopped.  */
-
-#define        _NSIG   26
-
-/* Archaic names for compatibility. */
-#define        SIGIOT  SIGABRT /* IOT instruction, abort() on a PDP11 */
-#define        SIGCLD  SIGCHLD /* Old System V name */
-
-#endif /* <signal.h> included.  */
diff --git a/sysdeps/generic/bits/sigset.h b/sysdeps/generic/bits/sigset.h
deleted file mode 100644 (file)
index 5fc8692..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/* __sig_atomic_t, __sigset_t, and related definitions.  Generic/BSD version.
-   Copyright (C) 1991, 1992, 1994, 1996, 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.  */
-
-#ifndef        _SIGSET_H_types
-#define        _SIGSET_H_types 1
-
-typedef int __sig_atomic_t;
-
-/* A `sigset_t' has a bit for each signal.  */
-typedef unsigned long int __sigset_t;
-
-#endif
-
-
-/* We only want to define these functions if <signal.h> was actually
-   included; otherwise we were included just to define the types.  Since we
-   are namespace-clean, it wouldn't hurt to define extra macros.  But
-   trouble can be caused by functions being defined (e.g., any global
-   register vars declared later will cause compilation errors).  */
-
-#if !defined _SIGSET_H_fns && defined _SIGNAL_H
-#define _SIGSET_H_fns 1
-
-#ifndef _EXTERN_INLINE
-# define _EXTERN_INLINE extern __inline
-#endif
-
-/* Return a mask that includes SIG only.  The cast to `sigset_t' avoids
-   overflow if `sigset_t' is wider than `int'.  */
-#define        __sigmask(sig)  (((__sigset_t) 1) << ((sig) - 1))
-
-#define        __sigemptyset(set)      ((*(set) = (__sigset_t) 0), 0)
-#define        __sigfillset(set)       ((*(set) = ~(__sigset_t) 0), 0)
-
-#ifdef _GNU_SOURCE
-# define __sigisemptyset(set)  (*(set) == (__sigset_t) 0)
-# define __sigandset(dest, left, right) \
-                               ((*(dest) = (*(left) & *(right))), 0)
-# define __sigorset(dest, left, right) \
-                               ((*(dest) = (*(left) | *(right))), 0)
-#endif
-
-/* These functions needn't check for a bogus signal number -- error
-   checking is done in the non __ versions.  */
-
-extern int __sigismember (__const __sigset_t *, int);
-extern int __sigaddset (__sigset_t *, int);
-extern int __sigdelset (__sigset_t *, int);
-
-#ifdef __USE_EXTERN_INLINES
-# define __SIGSETFN(NAME, BODY, CONST)                                       \
-  _EXTERN_INLINE int                                                         \
-  NAME (CONST __sigset_t *__set, int __sig)                                  \
-  {                                                                          \
-    __sigset_t __mask = __sigmask (__sig);                                   \
-    return BODY;                                                             \
-  }
-
-__SIGSETFN (__sigismember, (*__set & __mask) ? 1 : 0, __const)
-__SIGSETFN (__sigaddset, ((*__set |= __mask), 0), )
-__SIGSETFN (__sigdelset, ((*__set &= ~__mask), 0), )
-
-# undef __SIGSETFN
-#endif
-
-
-#endif /* ! _SIGSET_H_fns.  */
diff --git a/sysdeps/generic/bits/sigstack.h b/sysdeps/generic/bits/sigstack.h
deleted file mode 100644 (file)
index de79c90..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* sigstack, sigaltstack definitions.
-   Copyright (C) 1998, 1999 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 _SIGNAL_H
-# error "Never include this file directly.  Use <signal.h> instead"
-#endif
-
-
-/* Structure describing a signal stack (obsolete).  */
-struct sigstack
-  {
-    __ptr_t ss_sp;             /* Signal stack pointer.  */
-    int ss_onstack;            /* Nonzero if executing on this stack.  */
-  };
-
-
-/* Alternate, preferred interface.  */
-typedef struct sigaltstack
-  {
-    __ptr_t ss_sp;
-    size_t ss_size;
-    int ss_flags;
-  } stack_t;
-
-
-/* Possible values for `ss_flags.'.  */
-enum
-{
-  SS_ONSTACK = 0x0001,
-#define SS_ONSTACK     SS_ONSTACK
-  SS_DISABLE = 0x0004
-#define SS_DISABLE     SS_DISABLE
-};
-
-/* Minumum stack size for a signal handler.  */
-#define MINSIGSTKSZ    8192
-
-/* System default stack size.  */
-#define SIGSTKSZ       (MINSIGSTKSZ + 32768)
diff --git a/sysdeps/generic/bits/sigthread.h b/sysdeps/generic/bits/sigthread.h
deleted file mode 100644 (file)
index 2edb58c..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Signal handling function for threaded programs.  Generic version.
-   Copyright (C) 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 _BITS_SIGTHREAD_H
-#define _BITS_SIGTHREAD_H      1
-
-#if !defined _SIGNAL_H && !defined _PTHREAD_H
-# error "Never include this file directly.  Use <pthread.h> instead"
-#endif
-
-/* Modify the signal mask for the calling thread.  The arguments have the
-   same meaning as for sigprocmask; in fact, this and sigprocmask might be
-   the same function.  We declare this the same on all platforms, since it
-   doesn't use any thread-related types.  */
-extern int pthread_sigmask (int __how, __const __sigset_t *__newmask,
-                           __sigset_t *__oldmask) __THROW;
-
-
-#endif /* bits/sigthread.h */
diff --git a/sysdeps/generic/bits/sockaddr.h b/sysdeps/generic/bits/sockaddr.h
deleted file mode 100644 (file)
index 3e1d131..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Definition of `struct sockaddr_*' common members.  Generic/4.2 BSD version.
-   Copyright (C) 1995,1996,1997,1998,2000,2001 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.  */
-
-/*
- * Never include this file directly; use <sys/socket.h> instead.
- */
-
-#ifndef _BITS_SOCKADDR_H
-#define _BITS_SOCKADDR_H       1
-
-
-/* POSIX.1g specifies this type name for the `sa_family' member.  */
-typedef unsigned short int sa_family_t;
-
-/* This macro is used to declare the initial common members
-   of the data types used for socket addresses, `struct sockaddr',
-   `struct sockaddr_in', `struct sockaddr_un', etc.  */
-
-#define        __SOCKADDR_COMMON(sa_prefix) \
-  sa_family_t sa_prefix##family
-
-#define __SOCKADDR_COMMON_SIZE (sizeof (unsigned short int))
-
-#endif /* bits/sockaddr.h */
diff --git a/sysdeps/generic/bits/socket.h b/sysdeps/generic/bits/socket.h
deleted file mode 100644 (file)
index 20e6f03..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-/* System-specific socket constants and types.  Generic/4.3 BSD version.
-   Copyright (C) 1991,92,1994-1999,2000,2001 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 __BITS_SOCKET_H
-#define __BITS_SOCKET_H        1
-
-#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
-# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
-#endif
-
-#include <limits.h>
-#include <bits/types.h>
-
-#define        __need_size_t
-#include <stddef.h>
-
-/* Type for length arguments in socket calls.  */
-#ifndef __socklen_t_defined
-typedef __socklen_t socklen_t;
-# define __socklen_t_defined
-#endif
-
-
-/* Types of sockets.  */
-enum __socket_type
-{
-  SOCK_STREAM = 1,             /* Sequenced, reliable, connection-based
-                                  byte streams.  */
-#define SOCK_STREAM SOCK_STREAM
-  SOCK_DGRAM = 2,              /* Connectionless, unreliable datagrams
-                                  of fixed maximum length.  */
-#define SOCK_DGRAM SOCK_DGRAM
-  SOCK_RAW = 3,                        /* Raw protocol interface.  */
-#define SOCK_RAW SOCK_RAW
-  SOCK_RDM = 4,                        /* Reliably-delivered messages.  */
-#define SOCK_RDM SOCK_RDM
-  SOCK_SEQPACKET = 5           /* Sequenced, reliable, connection-based,
-                                  datagrams of fixed maximum length.  */
-#define SOCK_SEQPACKET SOCK_SEQPACKET
-};
-
-/* Protocol families.  */
-#define        PF_UNSPEC       0       /* Unspecified.  */
-#define        PF_LOCAL        1       /* Local to host (pipes and file-domain).  */
-#define        PF_UNIX         PF_LOCAL /* Old BSD name for PF_LOCAL.  */
-#define        PF_FILE         PF_LOCAL /* POSIX name for PF_LOCAL.  */
-#define        PF_INET         2       /* IP protocol family.  */
-#define        PF_IMPLINK      3       /* ARPAnet IMP protocol.  */
-#define        PF_PUP          4       /* PUP protocols.  */
-#define        PF_CHAOS        5       /* MIT Chaos protocols.  */
-#define        PF_NS           6       /* Xerox NS protocols.  */
-#define        PF_ISO          7       /* ISO protocols.  */
-#define        PF_OSI          PF_ISO
-#define        PF_ECMA         8       /* ECMA protocols.  */
-#define        PF_DATAKIT      9       /* AT&T Datakit protocols.  */
-#define        PF_CCITT        10      /* CCITT protocols (X.25 et al).  */
-#define        PF_SNA          11      /* IBM SNA protocol.  */
-#define        PF_DECnet       12      /* DECnet protocols.  */
-#define        PF_DLI          13      /* Direct data link interface.  */
-#define        PF_LAT          14      /* DEC Local Area Transport protocol.  */
-#define        PF_HYLINK       15      /* NSC Hyperchannel protocol.  */
-#define        PF_APPLETALK    16      /* Don't use this.  */
-#define        PF_ROUTE        17      /* Internal Routing Protocol.  */
-#define        PF_LINK         18      /* Link layer interface.  */
-#define        PF_XTP          19      /* eXpress Transfer Protocol (no AF).  */
-#define        PF_COIP         20      /* Connection-oriented IP, aka ST II.  */
-#define        PF_CNT          21      /* Computer Network Technology.  */
-#define PF_RTIP                22      /* Help Identify RTIP packets.  **/
-#define        PF_IPX          23      /* Novell Internet Protocol.  */
-#define        PF_SIP          24      /* Simple Internet Protocol.  */
-#define PF_PIP         25      /* Help Identify PIP packets.  */
-#define PF_INET6       26      /* IP version 6.  */
-#define        PF_MAX          27
-
-/* Address families.  */
-#define        AF_UNSPEC       PF_UNSPEC
-#define        AF_LOCAL        PF_LOCAL
-#define        AF_UNIX         PF_UNIX
-#define        AF_FILE         PF_FILE
-#define        AF_INET         PF_INET
-#define        AF_IMPLINK      PF_IMPLINK
-#define        AF_PUP          PF_PUP
-#define        AF_CHAOS        PF_CHAOS
-#define        AF_NS           PF_NS
-#define        AF_ISO          PF_ISO
-#define        AF_OSI          PF_OSI
-#define        AF_ECMA         PF_ECMA
-#define        AF_DATAKIT      PF_DATAKIT
-#define        AF_CCITT        PF_CCITT
-#define        AF_SNA          PF_SNA
-#define        AF_DECnet       PF_DECnet
-#define        AF_DLI