Update. cvs/libc-ud-971228
authorUlrich Drepper <drepper@redhat.com>
Sun, 28 Dec 1997 16:01:53 +0000 (16:01 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 28 Dec 1997 16:01:53 +0000 (16:01 +0000)
1997-12-28 15:08  Ulrich Drepper  <drepper@cygnus.com>

* sysdeps/powerpc/__longjmp.S: Define _SETJMP_H before including
<bits/setjmp.h>.
* sysdeps/powerpc/setjmp.S: Likewise.
Patches by Matt McLean <keys@keys.got.net>.

* Make-dist (sysdep_dirs): Ignore bits dirs while searching.

* Makefile: Undo last patch.
(distribute): Add test-installation.pl.

* configure.in: Correct handling of --enable-add-ons without parameter.
Correct address of WWW pages.

* libc.map: Add _nl_domain_bindings.

* db2/mutex/tsl_parisc.s: New file.

* iconvdata/Makefile (distribute): Add jis0201.c, jis0208.c, jis0212.c,
and extra-module.mk.

* localedata/Makefile (distribute): New.  Add all the files.

* stdlib/Makefile (headers): Add inttypes.h.
(routines): Add strtoimax, strtoumax, wcstoimax, and wcstoumax.
* sysdeps/generic/inttypes.h: New file.
* sysdeps/generic/strtoimax.c: New file.
* sysdeps/generic/strtoumax.c: New file.
* sysdeps/generic/wcstoimax.c: New file.
* sysdeps/generic/wcstoumax.c: New file.
* sysdeps/wordsize-32/Dist: Removed.
* sysdeps/wordsize-32/Makefile: Removed.
* sysdeps/wordsize-64/Dist: Removed.
* sysdeps/wordsize-64/Makefile: Removed.
* sysdeps/generic/bits/environments.h: New file.

* include/limits.h: Define MB_LEN_MAX in any case to 6.  The gcc
header is still not correct.

* io/fcntl.h [__USE_FILE_OFFSET64]: We have to use the __*64 types.
* posix/unistd.h: Likewise.
* sysdeps/generic/sys/mman.h: Likewise.
* sysdeps/unix/sysv/linux/sys/mman.h: Likewise.

* manual/arith.texi: Change definition of mul macro.
* manual/math.texi: Likewise.

* misc/Makefile (routines): Add mmap64.
* sysdeps/generic/mmap64.c: New file.
* sysdeps/unix/sysv/linux/alpha/mmap64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c: New file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __mmap64 and mmap64
aliases to mmap.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.

* sysdeps/generic/setrlimit64.c: Don't mark as stub.

* nis/nss_nis/nis-hosts.c (internal_nis_gethostent_r): Pretty print.

* nis(rpcsvc/nis_tags.h: Prevent warning by unknown pragma.

* sysdeps/posix/mk-stdiolim.c: Generate correct file which defines
FOPEN_MAX also when included by limits.h.
* sysdeps/unix/sysv/linux/stdio_lim.h.in: Likewise.

* sysdeps/unix/sysv/linux/Dist: Add oldsiglist.c, netax25/ax25.h,
and netrom/netrom.h.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=stdio-common]: Add
oldsiglist to sysdep_routines, not aux.
[$(subdir)=inet] (sysdep_headers): Add netax25/ax25.h, netrom/netrom.h.

* sysdeps/unix/sysv/linux/bits/socket.h: Remove SOL_AX25, SOL_ATALK,
and SOL_NETROM definition.

* sysdeps/unix/sysv/linux/i386/Dist: Add s_pwrite64.S and s_pread64.S.

* sysdeps/unix/sysv/linux/net/route.h: Pretty print.
* sysdeps/unix/sysv/linux/netatalk/at.h: Pretty print.

1997-12-25  Ulrich Drepper  <drepper@cygnus.com>

* sysdeps/unix/sysv/linux/alpha/net/route.h: New file.

* sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h: Replace
sa_handler with k_sa_handler.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __getrlimit as
strong alias.
Reported by a sun.

* sysdeps/unix/sysv/linux/sigsuspend.c: Don't define
__libc_have_rt_sigs here.
* sysdeps/unix/sysv/linux/sigaction.c: Do it instead here.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/sigpending.c: Correct comment.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.

1997-12-11 07:51  Geoff Keating  <geoffk@ozemail.com.au>

* sysdeps/powerpc/atomicity.h: New file.
* sysdeps/mach/powerpc/machine-lock.h: New file.

* Rules: Use -fpic to build anything that might end up in a users'
shared library.

* sysdeps/powerpc/s_fdim.c: New file.
* sysdeps/powerpc/s_fdimf.c: New file.
* sysdeps/powerpc/s_fmax.S: New file.
* sysdeps/powerpc/s_fmaxf.S: New file.
* sysdeps/powerpc/s_fmin.S: New file.
* sysdeps/powerpc/s_fminf.S: New file.
* sysdeps/powerpc/s_llrint.c: Now is for double.
* sysdeps/powerpc/s_llrintf.c: New file.
* sysdeps/powerpc/s_llround.c: Now is for double.
* sysdeps/powerpc/s_llroundf.c: New file.
* sysdeps/powerpc/s_lrint.c: Now is for double.
* sysdeps/powerpc/s_lrintf.S: New file.
* sysdeps/powerpc/s_lround.c: Now is for double.
* sysdeps/powerpc/s_lroundf.c: New file.
* sysdeps/powerpc/bits/mathinlines.h: Add inline versions of lrint,
lrintf, fdim, fdimf.

* sysdeps/unix/sysv/linux/powerpc/kernel_termios.h: Don't use bits/
file directly, use its parent.

* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Re-instate '++'
(for the third time).

1997-12-20 13:50  Richard Henderson  <rth@cygnus.com>

* posix/sched.h: timespec is in <time.h>.

* sysdeps/unix/sysv/linux/sys/kd.h: Don't redefine _LINUX_TYPES_H.

81 files changed:
ChangeLog
FAQ.in
Make-dist
Makefile
PROJECTS
README
README.template
Rules
bits/environments.h [new file with mode: 0644]
configure
configure.in
db2/mutex/tsl_parisc.s [new file with mode: 0644]
iconvdata/Makefile
include/limits.h
io/fcntl.h
libc.map
manual/arith.texi
manual/math.texi
misc/Makefile
nis/nss_nis/nis-hosts.c
nis/rpcsvc/nis_tags.h
posix/sched.h
posix/unistd.h
stdlib/Makefile
sysdeps/generic/bits/environments.h [new file with mode: 0644]
sysdeps/generic/inttypes.h [new file with mode: 0644]
sysdeps/generic/mmap64.c [new file with mode: 0644]
sysdeps/generic/setrlimit64.c
sysdeps/generic/strtoimax.c [new file with mode: 0644]
sysdeps/generic/strtoumax.c [new file with mode: 0644]
sysdeps/generic/sys/mman.h
sysdeps/generic/wcstoimax.c [new file with mode: 0644]
sysdeps/generic/wcstoumax.c [new file with mode: 0644]
sysdeps/mach/powerpc/machine-lock.h [new file with mode: 0644]
sysdeps/posix/mk-stdiolim.c
sysdeps/powerpc/__longjmp.S
sysdeps/powerpc/atomicity.h [new file with mode: 0644]
sysdeps/powerpc/bits/mathinline.h
sysdeps/powerpc/s_fdim.c [new file with mode: 0644]
sysdeps/powerpc/s_fdimf.c [new file with mode: 0644]
sysdeps/powerpc/s_fmax.S [new file with mode: 0644]
sysdeps/powerpc/s_fmaxf.S [new file with mode: 0644]
sysdeps/powerpc/s_fmin.S [new file with mode: 0644]
sysdeps/powerpc/s_fminf.S [new file with mode: 0644]
sysdeps/powerpc/s_llrint.c
sysdeps/powerpc/s_llrintf.c [new file with mode: 0644]
sysdeps/powerpc/s_llround.c
sysdeps/powerpc/s_llroundf.c [new file with mode: 0644]
sysdeps/powerpc/s_lrint.c
sysdeps/powerpc/s_lrintf.S [new file with mode: 0644]
sysdeps/powerpc/s_lround.c
sysdeps/powerpc/s_lroundf.c [new file with mode: 0644]
sysdeps/powerpc/setjmp.S
sysdeps/unix/sysv/linux/Dist
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
sysdeps/unix/sysv/linux/alpha/mmap64.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/alpha/net/route.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/alpha/syscalls.list
sysdeps/unix/sysv/linux/bits/socket.h
sysdeps/unix/sysv/linux/i386/Dist
sysdeps/unix/sysv/linux/i386/sigaction.c
sysdeps/unix/sysv/linux/net/route.h
sysdeps/unix/sysv/linux/netatalk/at.h
sysdeps/unix/sysv/linux/netax25/ax25.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/netrom/netrom.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
sysdeps/unix/sysv/linux/powerpc/kernel_termios.h
sysdeps/unix/sysv/linux/sigaction.c
sysdeps/unix/sysv/linux/sigpending.c
sysdeps/unix/sysv/linux/sigprocmask.c
sysdeps/unix/sysv/linux/sigsuspend.c
sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
sysdeps/unix/sysv/linux/stdio_lim.h.in
sysdeps/unix/sysv/linux/sys/kd.h
sysdeps/unix/sysv/linux/sys/mman.h
sysdeps/wordsize-32/Dist [deleted file]
sysdeps/wordsize-32/Makefile [deleted file]
sysdeps/wordsize-64/Dist [deleted file]
sysdeps/wordsize-64/Makefile [deleted file]

index 00185bf..db94809 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,137 @@
+1997-12-28 15:08  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/powerpc/__longjmp.S: Define _SETJMP_H before including
+       <bits/setjmp.h>.
+       * sysdeps/powerpc/setjmp.S: Likewise.
+       Patches by Matt McLean <keys@keys.got.net>.
+
+       * Make-dist (sysdep_dirs): Ignore bits dirs while searching.
+
+       * Makefile: Undo last patch.
+       (distribute): Add test-installation.pl.
+
+       * configure.in: Correct handling of --enable-add-ons without parameter.
+       Correct address of WWW pages.
+
+       * libc.map: Add _nl_domain_bindings.
+
+       * db2/mutex/tsl_parisc.s: New file.
+
+       * iconvdata/Makefile (distribute): Add jis0201.c, jis0208.c, jis0212.c,
+       and extra-module.mk.
+
+       * localedata/Makefile (distribute): New.  Add all the files.
+
+       * stdlib/Makefile (headers): Add inttypes.h.
+       (routines): Add strtoimax, strtoumax, wcstoimax, and wcstoumax.
+       * sysdeps/generic/inttypes.h: New file.
+       * sysdeps/generic/strtoimax.c: New file.
+       * sysdeps/generic/strtoumax.c: New file.
+       * sysdeps/generic/wcstoimax.c: New file.
+       * sysdeps/generic/wcstoumax.c: New file.
+       * sysdeps/wordsize-32/Dist: Removed.
+       * sysdeps/wordsize-32/Makefile: Removed.
+       * sysdeps/wordsize-64/Dist: Removed.
+       * sysdeps/wordsize-64/Makefile: Removed.
+       * sysdeps/generic/bits/environments.h: New file.
+
+       * include/limits.h: Define MB_LEN_MAX in any case to 6.  The gcc
+       header is still not correct.
+
+       * io/fcntl.h [__USE_FILE_OFFSET64]: We have to use the __*64 types.
+       * posix/unistd.h: Likewise.
+       * sysdeps/generic/sys/mman.h: Likewise.
+       * sysdeps/unix/sysv/linux/sys/mman.h: Likewise.
+
+       * manual/arith.texi: Change definition of mul macro.
+       * manual/math.texi: Likewise.
+
+       * misc/Makefile (routines): Add mmap64.
+       * sysdeps/generic/mmap64.c: New file.
+       * sysdeps/unix/sysv/linux/alpha/mmap64.c: New file.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c: New file.
+       * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __mmap64 and mmap64
+       aliases to mmap.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+
+       * sysdeps/generic/setrlimit64.c: Don't mark as stub.
+
+       * nis/nss_nis/nis-hosts.c (internal_nis_gethostent_r): Pretty print.
+
+       * nis(rpcsvc/nis_tags.h: Prevent warning by unknown pragma.
+
+       * sysdeps/posix/mk-stdiolim.c: Generate correct file which defines
+       FOPEN_MAX also when included by limits.h.
+       * sysdeps/unix/sysv/linux/stdio_lim.h.in: Likewise.
+
+       * sysdeps/unix/sysv/linux/Dist: Add oldsiglist.c, netax25/ax25.h,
+       and netrom/netrom.h.
+       * sysdeps/unix/sysv/linux/Makefile [$(subdir)=stdio-common]: Add
+       oldsiglist to sysdep_routines, not aux.
+       [$(subdir)=inet] (sysdep_headers): Add netax25/ax25.h, netrom/netrom.h.
+
+       * sysdeps/unix/sysv/linux/bits/socket.h: Remove SOL_AX25, SOL_ATALK,
+       and SOL_NETROM definition.
+
+       * sysdeps/unix/sysv/linux/i386/Dist: Add s_pwrite64.S and s_pread64.S.
+
+       * sysdeps/unix/sysv/linux/net/route.h: Pretty print.
+       * sysdeps/unix/sysv/linux/netatalk/at.h: Pretty print.
+
+1997-12-25  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/unix/sysv/linux/alpha/net/route.h: New file.
+
+       * sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h: Replace
+       sa_handler with k_sa_handler.
+       * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add __getrlimit as
+       strong alias.
+       Reported by a sun.
+
+       * sysdeps/unix/sysv/linux/sigsuspend.c: Don't define
+       __libc_have_rt_sigs here.
+       * sysdeps/unix/sysv/linux/sigaction.c: Do it instead here.
+       * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
+       * sysdeps/unix/sysv/linux/sigpending.c: Correct comment.
+       * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
+
+1997-12-11 07:51  Geoff Keating  <geoffk@ozemail.com.au>
+
+       * sysdeps/powerpc/atomicity.h: New file.
+       * sysdeps/mach/powerpc/machine-lock.h: New file.
+
+       * Rules: Use -fpic to build anything that might end up in a users'
+       shared library.
+
+       * sysdeps/powerpc/s_fdim.c: New file.
+       * sysdeps/powerpc/s_fdimf.c: New file.
+       * sysdeps/powerpc/s_fmax.S: New file.
+       * sysdeps/powerpc/s_fmaxf.S: New file.
+       * sysdeps/powerpc/s_fmin.S: New file.
+       * sysdeps/powerpc/s_fminf.S: New file.
+       * sysdeps/powerpc/s_llrint.c: Now is for double.
+       * sysdeps/powerpc/s_llrintf.c: New file.
+       * sysdeps/powerpc/s_llround.c: Now is for double.
+       * sysdeps/powerpc/s_llroundf.c: New file.
+       * sysdeps/powerpc/s_lrint.c: Now is for double.
+       * sysdeps/powerpc/s_lrintf.S: New file.
+       * sysdeps/powerpc/s_lround.c: Now is for double.
+       * sysdeps/powerpc/s_lroundf.c: New file.
+       * sysdeps/powerpc/bits/mathinlines.h: Add inline versions of lrint,
+       lrintf, fdim, fdimf.
+
+       * sysdeps/unix/sysv/linux/powerpc/kernel_termios.h: Don't use bits/
+       file directly, use its parent.
+
+       * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Re-instate '++'
+       (for the third time).
+
+1997-12-20 13:50  Richard Henderson  <rth@cygnus.com>
+
+       * posix/sched.h: timespec is in <time.h>.
+
+       * sysdeps/unix/sysv/linux/sys/kd.h: Don't redefine _LINUX_TYPES_H.
+
 1997-12-22 18:10  Ulrich Drepper  <drepper@cygnus.com>
 
        * configure.in: Stop with error if --disable-static is used when
diff --git a/FAQ.in b/FAQ.in
index 62c943b..1d8918a 100644 (file)
--- a/FAQ.in
+++ b/FAQ.in
@@ -42,7 +42,7 @@ few people have expressed interest.
 If you have a system not listed above (or in the `README' file) and
 you are really interested in porting it, contact
 
-       <bug-glibc@prep.ai.mit.edu>
+       <bug-glibc@gnu.org>
 
 ??     What compiler do I need to build GNU libc?
 
@@ -103,7 +103,7 @@ has not been ported to them.
   You should not need these tools unless you change the source files.
 
 * Some scripts need perl5 - but at the moment those scripts are not
-  vital for building and installing GNU libc (some data files will not 
+  vital for building and installing GNU libc (some data files will not
   be created).
 
 * When compiling for Linux, the header files of the Linux kernel must
index 981d5e6..f77eb35 100644 (file)
--- a/Make-dist
+++ b/Make-dist
@@ -34,7 +34,7 @@ foo:=$(shell echo 'foobar=$(filter %.c %.S %.s %.h,$(distribute))'>&2)
 
 ifndef sysdep_dirs
 # Find all sysdep directories.
-export sysdep_dirs := $(shell find $(..)sysdeps -type d \
+export sysdep_dirs := $(shell find $(..)sysdeps -type d ! -name bits \
                                   ! -name CVS ! -name RCS -print)
 else
 # Defined by the parent.
index 9e7679b..ed8d327 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -188,19 +188,20 @@ $(version.c-objects): $(objpfx)version-info.h
 
 subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)stub-$(dir))
 
-$(common-objpfx)stub-%: subdir_install
-
 # Since stubs.h is never needed when building the library, we simplify the
 # hairy installation process by producing it in place only as the last part
-# of the top-level `make install'.
-$(inst_includedir)/gnu/stubs.h: $(subdir-stubs)
+# of the top-level `make install'.  It depends on subdir_install, which
+# iterates over all the subdirs; subdir_install in each subdir depends on
+# the subdir's stubs file.  Having more direct dependencies would result in
+# extra iterations over the list for subdirs and many recursive makes.
+$(inst_includedir)/gnu/stubs.h: subdir_install
        $(make-target-directory)
        @rm -f $(objpfx)stubs.h
        (echo '/* This file is automatically generated.';\
         echo '   It defines a symbol `__stub_FUNCTION'\'' for each function';\
         echo '   in the C library which is a stub, meaning it will fail';\
         echo '   every time called, usually setting errno to ENOSYS.  */';\
-        sort $^) > $(objpfx)stubs.h
+        sort $(subdir-stubs)) > $(objpfx)stubs.h
        if test -r $@ && cmp -s $(objpfx)stubs.h $@; \
        then echo 'stubs.h unchanged'; \
        else $(INSTALL_DATA) $(objpfx)stubs.h $@; fi
@@ -315,7 +316,7 @@ distribute  := README INSTALL FAQ NOTES NEWS PROJECTS BUGS          \
               autolock.sh rellns-sh munch-tmpl.c munch.awk interp.c    \
               sysdep.h set-hooks.h libc-symbols.h version.h shlib-versions \
               rpm/Makefile rpm/template rpm/rpmrc glibcbug.in abi-tags \
-              stub-tag.h
+              stub-tag.h test-installation.pl
 
 distribute := $(strip $(distribute))
 generated := $(generated) stubs.h version-info.h
index d7291b8..c8a1963 100644 (file)
--- a/PROJECTS
+++ b/PROJECTS
@@ -86,7 +86,6 @@ contact <bug-glibc@prep.ai.mit.edu>
 
 [13] Several more or less small functions have to be written:
 
-     + tcgetid() and waitid()                  from XPG4.2
      + grantpt(), ptsname(), unlockpt()                from XPG4.2
 
      More information is available on request.
@@ -97,6 +96,8 @@ contact <bug-glibc@prep.ai.mit.edu>
      This is needed in several places in the GNU libc and I already have
      rather concrete plans but so far no possibility to start this.
 
+***  The library is available, no it remains to be used in the streams.
+
 
 [15] Cleaning up the header files.  Ideally, each header style should
      follow the "good examples".  Each variable and function should have
diff --git a/README b/README
index 755d4ec..4594cc5 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This directory contains the version 2.0.90 test release of the GNU C Library.
+This directory contains the version 2.0.91 test release of the GNU C Library.
 Many bugs have been fixed since the last release.
 Some bugs surely remain.
 
@@ -47,7 +47,7 @@ provides the Unix `crypt' function, plus some other entry points.
 Because of the United States export restriction on DES implementations,
 we are distributing this code separately from the rest of the C
 library.  There is an extra distribution tar file just for crypt; it is
-called `glibc-crypt-2.0.90.tar.gz'.  You can just unpack the crypt
+called `glibc-crypt-2.0.91.tar.gz'.  You can just unpack the crypt
 distribution along with the rest of the C library and build; you can
 also build the library without getting crypt.  Users outside the USA
 can get the crypt distribution via anonymous FTP from ftp.ifi.uio.no
@@ -80,7 +80,7 @@ in the GNU C library, explaining how you can tell the library what
 facilities you want it to make available.
 
 We prefer to get bug reports sent using the `glibcbug' shell script which
-is install together with the rest of the GNU libc to <bugs@gnu.org>.
+is installed together with the rest of the GNU libc to <bugs@gnu.org>.
 Simply run this shell script and fill in the information.  Nevertheless
 you can still send bug reports to <bug-glibc@prep.ai.mit.edu> as normal
 electronic mails.
index 600a3e6..fbea883 100644 (file)
@@ -40,7 +40,7 @@ Since no one has volunteered to test and fix the above configurations,
 these are not supported at the moment.  It's expected that these don't
 work anymore.  Porting the library is not hard.  If you are interested
 in doing a port, please contact the glibc maintainers by sending
-electronic mail to <bug-glibc@prep.ai.mit.edu>.
+electronic mail to <bug-glibc@gnu.org>.
 
 The GNU C library now includes Michael Glad's Ultra Fast Crypt, which
 provides the Unix `crypt' function, plus some other entry points.
@@ -82,8 +82,8 @@ facilities you want it to make available.
 We prefer to get bug reports sent using the `glibcbug' shell script which
 is installed together with the rest of the GNU libc to <bugs@gnu.org>.
 Simply run this shell script and fill in the information.  Nevertheless
-you can still send bug reports to <bug-glibc@prep.ai.mit.edu> as normal
-electronic mails.
+you can still send bug reports to <bug-glibc@gnu.irg> as normal electronic
+mails.
 
 The GNU C Library is free software.  See the file COPYING.LIB for copying
 conditions.
diff --git a/Rules b/Rules
index c36e2c3..029f81b 100644 (file)
--- a/Rules
+++ b/Rules
@@ -171,6 +171,12 @@ ifdef static-only-routines
 $(static-only-routines:%=$(objpfx)%.os): %.os: $(common-objpfx)empty.os
        rm -f $@
        ln $< $@
+
+# Must build the routines as PIC, though, because they can end up in (users')
+# shared objects.  We don't want to use CFLAGS-os because users may, for
+# example, make that processor-specific.
+$(static-only-routines:%=$(objpfx)%.o): $(objpfx)%.o: %.c $(before-compile)
+       $(compile.c) $(pic-ccflag) $(OUTPUT_OPTION)
 endif
 
 ifdef shared-only-routines
diff --git a/bits/environments.h b/bits/environments.h
new file mode 100644 (file)
index 0000000..8ed1990
--- /dev/null
@@ -0,0 +1,35 @@
+/* Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _UNISTD_H
+# error "Never include this file directly.  Use <unistd.h> instead"
+#endif
+
+/* 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.
+
+   _XBS5_ILP32_OFF32   32bit int, long, pointers, and off_t type
+   _XBS5_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type
+
+   _XBS5_LP64_OFF32    64bit long and pointers and 32bit off_t type
+   _XBS5_LPBIG_OFFBIG  64bit long and pointers and large off_t type
+*/
+
+#endif /* environments.h */
index 625d2f7..1e64894 100755 (executable)
--- a/configure
+++ b/configure
@@ -694,8 +694,12 @@ fi
 if test "${enable_add_ons+set}" = set; then
   enableval="$enable_add_ons"
   case "$enableval" in
-    yes) add_ons=`echo $srcdir/*/configure | \
-                 sed -e "s!$srcdir/!!g" -e 's!/configure!!g'`;;
+    yes) if test "$srcdir" = "."; then
+          add_ons=`echo */configure | sed -e 's!/configure!!g'`
+        else
+          add_ons=`echo $srcdir/*/configure | \
+                   sed -e "s!^$srcdir/!!g" -e 's!/configure!!g'`
+        fi;;
     *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
    esac
 else
@@ -758,7 +762,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:762: checking host system type" >&5
+echo "configure:766: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -809,7 +813,7 @@ if test -z "$enable_hacker_mode"; then
     echo "*** So far nobody cared to port it and if there is no volunteer it"
     echo "*** might never happen.  So, if you have interest to see glibc on"
     echo "*** this platform visit"
-    echo "***  http://www.gnu.ai.mit.edu/software/libc/porting.html"
+    echo "***  http://www.gnu.org/software/libc/porting.html"
     echo "*** and join the group of porters"
     exit 1
     ;;
@@ -877,7 +881,7 @@ fi
 # This can take a while to compute.
 sysdep_dir=$srcdir/sysdeps
 echo $ac_n "checking sysdep dirs""... $ac_c" 1>&6
-echo "configure:881: checking sysdep dirs" >&5
+echo "configure:885: checking sysdep dirs" >&5
 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
 
@@ -1078,7 +1082,7 @@ echo "$ac_t""sysdeps/generic" 1>&6
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1082: checking for a BSD compatible install" >&5
+echo "configure:1086: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1132,7 +1136,7 @@ if test "$INSTALL" = "${srcdir}/install-sh -c"; then
   INSTALL='\$(..)./install-sh -c'
 fi
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1136: checking whether ln -s works" >&5
+echo "configure:1140: checking whether ln -s works" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1157,7 +1161,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1161: checking for $ac_word" >&5
+echo "configure:1165: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1189,7 +1193,7 @@ test -n "$MSGFMT" || MSGFMT=":"
 # Extract the first word of "makeinfo", so it can be a program name with args.
 set dummy makeinfo; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1193: checking for $ac_word" >&5
+echo "configure:1197: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1229,7 +1233,7 @@ fi
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1233: checking for $ac_word" >&5
+echo "configure:1237: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1258,7 +1262,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1262: checking for $ac_word" >&5
+echo "configure:1266: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1306,7 +1310,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1310: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1314: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1316,11 +1320,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
 cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext <<EOF
-#line 1320 "configure"
+#line 1324 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1343,13 +1347,13 @@ else
  cross_linkable=yes
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1347: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1351: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1353: checking whether we are using GNU C" >&5
+echo "configure:1357: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1358,7 +1362,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1362: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1366: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1375,7 +1379,7 @@ if test $ac_cv_prog_gcc = yes; then
   yes;
 #endif
 EOF
-  if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1379: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1383: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
     if test -z "$CFLAGS"; then
       CFLAGS="-g -O2"
     fi
@@ -1387,7 +1391,7 @@ else
 fi
 
 echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1391: checking build system type" >&5
+echo "configure:1395: checking build system type" >&5
 
 build_alias=$build
 case "$build_alias" in
@@ -1410,7 +1414,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1414: checking for $ac_word" >&5
+echo "configure:1418: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BUILD_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1441,7 +1445,7 @@ done
 fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1445: checking how to run the C preprocessor" >&5
+echo "configure:1449: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1456,13 +1460,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1460 "configure"
+#line 1464 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1466: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -1473,13 +1477,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1477 "configure"
+#line 1481 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1483: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1487: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -1512,7 +1516,7 @@ LD=`$CC -print-file-name=ld`
 
 # Determine whether we are using GNU binutils.
 echo $ac_n "checking whether $AS is GNU as""... $ac_c" 1>&6
-echo "configure:1516: checking whether $AS is GNU as" >&5
+echo "configure:1520: checking whether $AS is GNU as" >&5
 if eval "test \"`echo '$''{'libc_cv_prog_as_gnu'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1530,7 +1534,7 @@ rm -f a.out
 gnu_as=$libc_cv_prog_as_gnu
 
 echo $ac_n "checking whether $LD is GNU ld""... $ac_c" 1>&6
-echo "configure:1534: checking whether $LD is GNU ld" >&5
+echo "configure:1538: checking whether $LD is GNU ld" >&5
 if eval "test \"`echo '$''{'libc_cv_prog_ld_gnu'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1554,7 +1558,7 @@ fi
 # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1558: checking for $ac_word" >&5
+echo "configure:1562: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1585,7 +1589,7 @@ fi
 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1589: checking for $ac_word" >&5
+echo "configure:1593: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1616,7 +1620,7 @@ if test -n "$ac_tool_prefix"; then
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1620: checking for $ac_word" >&5
+echo "configure:1624: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1651,7 +1655,7 @@ fi
 # Extract the first word of "bash", so it can be a program name with args.
 set dummy bash; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1655: checking for $ac_word" >&5
+echo "configure:1659: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1693,7 +1697,7 @@ if test "$BASH" = no; then
   # Extract the first word of "ksh", so it can be a program name with args.
 set dummy ksh; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1697: checking for $ac_word" >&5
+echo "configure:1701: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1739,7 +1743,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1743: checking for $ac_word" >&5
+echo "configure:1747: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1774,7 +1778,7 @@ test -n "$PERL" || PERL="no"
 
 
 echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6
-echo "configure:1778: checking for signed size_t type" >&5
+echo "configure:1782: checking for signed size_t type" >&5
 if eval "test \"`echo '$''{'libc_cv_signed_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1798,12 +1802,12 @@ EOF
 fi
 
 echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6
-echo "configure:1802: checking for libc-friendly stddef.h" >&5
+echo "configure:1806: checking for libc-friendly stddef.h" >&5
 if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1807 "configure"
+#line 1811 "configure"
 #include "confdefs.h"
 #define __need_size_t
 #define __need_wchar_t
@@ -1818,7 +1822,7 @@ size_t size; wchar_t wchar;
 if (&size == NULL || &wchar == NULL) abort ();
 ; return 0; }
 EOF
-if { (eval echo configure:1822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1826: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   libc_cv_friendly_stddef=yes
 else
@@ -1837,7 +1841,7 @@ override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
 fi
 
 echo $ac_n "checking whether we need to use -P to assemble .S files""... $ac_c" 1>&6
-echo "configure:1841: checking whether we need to use -P to assemble .S files" >&5
+echo "configure:1845: checking whether we need to use -P to assemble .S files" >&5
 if eval "test \"`echo '$''{'libc_cv_need_minus_P'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1868,7 +1872,7 @@ if test $ac_cv_prog_gcc = yes; then
   # We must check this even if -pipe is not given here, because the user
   # might do `make CFLAGS=-pipe'.
   echo $ac_n "checking for gcc 2.7.x -pipe bug""... $ac_c" 1>&6
-echo "configure:1872: checking for gcc 2.7.x -pipe bug" >&5
+echo "configure:1876: checking for gcc 2.7.x -pipe bug" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_pipe_bug'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1897,7 +1901,7 @@ else
 fi
 
 echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6
-echo "configure:1901: checking for assembler global-symbol directive" >&5
+echo "configure:1905: checking for assembler global-symbol directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_global_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1927,7 +1931,7 @@ EOF
 fi
 
 echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6
-echo "configure:1931: checking for .set assembler directive" >&5
+echo "configure:1935: checking for .set assembler directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_set_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1961,7 +1965,7 @@ EOF
 fi
 
 echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6
-echo "configure:1965: checking for .symver assembler directive" >&5
+echo "configure:1969: checking for .symver assembler directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_symver_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1980,7 +1984,7 @@ fi
 
 echo "$ac_t""$libc_cv_asm_symver_directive" 1>&6
 echo $ac_n "checking for ld --version-script""... $ac_c" 1>&6
-echo "configure:1984: checking for ld --version-script" >&5
+echo "configure:1988: checking for ld --version-script" >&5
 if eval "test \"`echo '$''{'libc_cv_ld_version_script_option'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2003,7 +2007,7 @@ EOF
     if { ac_try='${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
                                        -nostartfiles -nostdlib
                                        -Wl,--version-script,conftest.map
-                      1>&5'; { (eval echo configure:2007: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
+                      1>&5'; { (eval echo configure:2011: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
     then
       libc_cv_ld_version_script_option=yes
     else
@@ -2041,7 +2045,7 @@ if test $VERSIONING = no; then
 fi
 if test $elf = yes; then
   echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6
-echo "configure:2045: checking for .previous assembler directive" >&5
+echo "configure:2049: checking for .previous assembler directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_previous_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2049,7 +2053,7 @@ else
 .section foo_section
 .previous
 EOF
-  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2057: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
     libc_cv_asm_previous_directive=yes
   else
     libc_cv_asm_previous_directive=no
@@ -2065,7 +2069,7 @@ EOF
 
   else
     echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6
-echo "configure:2069: checking for .popsection assembler directive" >&5
+echo "configure:2073: checking for .popsection assembler directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_popsection_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2073,7 +2077,7 @@ else
 .pushsection foo_section
 .popsection
 EOF
-    if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2077: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+    if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2081: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
       libc_cv_asm_popsection_directive=yes
     else
       libc_cv_asm_popsection_directive=no
@@ -2093,12 +2097,12 @@ fi
 
 if test $elf != yes; then
   echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
-echo "configure:2097: checking for .init and .fini sections" >&5
+echo "configure:2101: checking for .init and .fini sections" >&5
 if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2102 "configure"
+#line 2106 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2107,7 +2111,7 @@ asm (".section .init");
                                    asm (".text");
 ; return 0; }
 EOF
-if { (eval echo configure:2111: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   libc_cv_have_initfini=yes
 else
@@ -2135,19 +2139,19 @@ if test $elf = yes; then
 else
   if test $ac_cv_prog_cc_works = yes; then
     echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
-echo "configure:2139: checking for _ prefix on C symbol names" >&5
+echo "configure:2143: checking for _ prefix on C symbol names" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2144 "configure"
+#line 2148 "configure"
 #include "confdefs.h"
 asm ("_glibc_foobar:");
 int main() {
 glibc_foobar ();
 ; return 0; }
 EOF
-if { (eval echo configure:2151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   libc_cv_asm_underscores=yes
 else
@@ -2162,17 +2166,17 @@ fi
 echo "$ac_t""$libc_cv_asm_underscores" 1>&6
   else
     echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
-echo "configure:2166: checking for _ prefix on C symbol names" >&5
+echo "configure:2170: checking for _ prefix on C symbol names" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2171 "configure"
+#line 2175 "configure"
 #include "confdefs.h"
 void underscore_test(void) {
 return; }
 EOF
-if { (eval echo configure:2176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   if grep _underscore_test conftest* >/dev/null; then
     rm -f conftest*
     libc_cv_asm_underscores=yes
@@ -2205,7 +2209,7 @@ if test $elf = yes; then
   libc_cv_asm_weakext_directive=no
 else
   echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6
-echo "configure:2209: checking for assembler .weak directive" >&5
+echo "configure:2213: checking for assembler .weak directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2228,7 +2232,7 @@ echo "$ac_t""$libc_cv_asm_weak_directive" 1>&6
 
 if test $libc_cv_asm_weak_directive = no; then
   echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6
-echo "configure:2232: checking for assembler .weakext directive" >&5
+echo "configure:2236: checking for assembler .weakext directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2265,7 +2269,7 @@ EOF
 fi
 
 echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
-echo "configure:2269: checking for ld --no-whole-archive" >&5
+echo "configure:2273: checking for ld --no-whole-archive" >&5
 if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2276,7 +2280,7 @@ __throw () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS
                            -nostdlib -nostartfiles -Wl,--no-whole-archive
-                           -o conftest conftest.c 1>&5'; { (eval echo configure:2280: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+                           -o conftest conftest.c 1>&5'; { (eval echo configure:2284: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_ld_no_whole_archive=yes
 else
   libc_cv_ld_no_whole_archive=no
@@ -2287,7 +2291,7 @@ fi
 echo "$ac_t""$libc_cv_ld_no_whole_archive" 1>&6
 
 echo $ac_n "checking for gcc -fno-exceptions""... $ac_c" 1>&6
-echo "configure:2291: checking for gcc -fno-exceptions" >&5
+echo "configure:2295: checking for gcc -fno-exceptions" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_no_exceptions'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2298,7 +2302,7 @@ __throw () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS
                            -nostdlib -nostartfiles -fno-exceptions
-                           -o conftest conftest.c 1>&5'; { (eval echo configure:2302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+                           -o conftest conftest.c 1>&5'; { (eval echo configure:2306: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_no_exceptions=yes
 else
   libc_cv_gcc_no_exceptions=no
@@ -2310,14 +2314,14 @@ echo "$ac_t""$libc_cv_gcc_no_exceptions" 1>&6
 
 if test "$base_machine" = alpha ; then
 echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6
-echo "configure:2314: checking for function ..ng prefix" >&5
+echo "configure:2318: checking for function ..ng prefix" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<\EOF
 foo () { }
 EOF
-if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2321: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
+if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2325: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
 then
   libc_cv_gcc_alpha_ng_prefix=yes
 else
@@ -2341,12 +2345,12 @@ fi
 fi
 
 echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6
-echo "configure:2345: checking for DWARF2 unwind info support" >&5
+echo "configure:2349: checking for DWARF2 unwind info support" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<EOF
-#line 2350 "configure"
+#line 2354 "configure"
 static char __EH_FRAME_BEGIN__;
 _start ()
 {
@@ -2373,7 +2377,7 @@ __bzero () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info
                            -nostdlib -nostartfiles
-                           -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+                           -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2381: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_dwarf2_unwind_info=static
 else
   libc_cv_gcc_dwarf2_unwind_info=no
@@ -2381,7 +2385,7 @@ fi
 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
   if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame
                              -nostdlib -nostartfiles
-                             -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+                             -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
     libc_cv_gcc_dwarf2_unwind_info=yes
   else
     libc_cv_gcc_dwarf2_unwind_info=no
@@ -2452,7 +2456,7 @@ if test "$uname" = "sysdeps/generic"; then
   fi
 
   echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
-echo "configure:2456: checking OS release for uname" >&5
+echo "configure:2460: checking OS release for uname" >&5
 if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2474,7 +2478,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6
   uname_release="$libc_cv_uname_release"
 
   echo $ac_n "checking OS version for uname""... $ac_c" 1>&6
-echo "configure:2478: checking OS version for uname" >&5
+echo "configure:2482: checking OS version for uname" >&5
 if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2496,7 +2500,7 @@ else
 fi
 
 echo $ac_n "checking stdio selection""... $ac_c" 1>&6
-echo "configure:2500: checking stdio selection" >&5
+echo "configure:2504: checking stdio selection" >&5
 
 case $stdio in
 libio) cat >> confdefs.h <<\EOF
@@ -2508,7 +2512,7 @@ esac
 echo "$ac_t""$stdio" 1>&6
 
 echo $ac_n "checking ldap selection""... $ac_c" 1>&6
-echo "configure:2512: checking ldap selection" >&5
+echo "configure:2516: checking ldap selection" >&5
 
 case $add_ons in
 *ldap*)
@@ -2570,7 +2574,7 @@ if test $static = no && test $shared = yes; then
 fi
 
 echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6
-echo "configure:2574: checking whether -fPIC is default" >&5
+echo "configure:2578: checking whether -fPIC is default" >&5
 if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
index 4aeeae0..5f6dae1 100644 (file)
@@ -84,8 +84,12 @@ AC_ARG_ENABLE(add-ons, dnl
 [  --enable-add-ons[=DIR1,DIR2]... configure and build add-ons in DIR1,DIR2,...
                                   search for add-ons if no parameter given],
   [case "$enableval" in
-    yes) add_ons=`echo $srcdir/*/configure | \
-                 sed -e "s!$srcdir/!!g" -e 's!/configure!!g'`;;
+    yes) if test "$srcdir" = "."; then
+          add_ons=`echo */configure | sed -e 's!/configure!!g'`
+        else
+          add_ons=`echo $srcdir/*/configure | \
+                   sed -e "s!^$srcdir/!!g" -e 's!/configure!!g'`
+        fi;;
     *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
    esac],
   [add_ons=])
@@ -144,7 +148,7 @@ if test -z "$enable_hacker_mode"; then
     echo "*** So far nobody cared to port it and if there is no volunteer it"
     echo "*** might never happen.  So, if you have interest to see glibc on"
     echo "*** this platform visit"
-    echo "***  http://www.gnu.ai.mit.edu/software/libc/porting.html"
+    echo "***  http://www.gnu.org/software/libc/porting.html"
     echo "*** and join the group of porters"
     exit 1
     ;;
diff --git a/db2/mutex/tsl_parisc.s b/db2/mutex/tsl_parisc.s
new file mode 100644 (file)
index 0000000..e605494
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 1996-1997 The University of Utah and the Computer Systems
+ * Laboratory at the University of Utah (CSL).  All rights reserved.
+ *
+ * Permission to use, copy, modify and distribute this software is hereby
+ * granted provided that (1) source code retains these copyright, permission,
+ * and disclaimer notices, and (2) redistributions including binaries
+ * reproduce the notices in supporting documentation, and (3) all advertising
+ * materials mentioning features or use of this software display the following
+ * acknowledgement: ``This product includes software developed by the Computer
+ * Systems Laboratory at the University of Utah.''
+ *
+ * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
+ * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
+ * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * CSL requests users of this software to return to csl-dist@cs.utah.edu any
+ * improvements that they make and grant CSL redistribution rights.
+ *
+ *     @(#)tsl_parisc.s        8.4 (Sleepycat) 1/18/97
+ */
+
+/*
+ * Spin locks for the PA-RISC.  Based on Bob Wheeler's Mach implementation.
+ */
+       .SPACE  $TEXT$
+       .SUBSPA $CODE$
+
+/*
+ * int tsl_set(tsl_t *tsl)
+ *
+ * Try to acquire a lock, return 1 if successful, 0 if not.
+ */
+       .EXPORT tsl_set,ENTRY
+tsl_set
+       .PROC
+       .CALLINFO FRAME=0,NO_CALLS
+       .ENTRY
+       ldo     15(%r26),%r26
+       depi    0,31,4,%r26
+       ldcws   0(%r26),%r28
+       subi,=  0,%r28,%r0
+       ldi     1,%r28
+       bv,n    0(%r2)
+       .EXIT
+       .PROCEND
+
+
+/*
+ * void tsl_unset(tsl_t *tsl)
+ *
+ * Release a lock.
+ */
+       .EXPORT tsl_unset,ENTRY
+tsl_unset
+       .PROC
+       .CALLINFO FRAME=0,NO_CALLS
+       .ENTRY
+       ldo     15(%r26),%r26
+       ldi     -1,%r19
+       depi    0,31,4,%r26
+       bv      0(%r2)
+       stw     %r19,0(%r26)
+       .EXIT
+       .PROCEND
index 0b64ba4..e5bfb7a 100644 (file)
@@ -55,13 +55,14 @@ EBCDIC-AT-DE-A-routines := ebcdic-at-de-a
 EBCDIC-CA-FR-routines := ebcdic-ca-fr
 libJIS-routines := jis0201 jis0208 jis0212
 
-distribute := 8bit-generic.c 8bit-gap.c gap.pl gaptab.pl \
-             iso8859-1.c iso8859-2.c iso8859-3.c iso8859-4.c iso8859-5.c \
-             iso8859-6.c iso8859-7.c iso8859-8.c iso8859-9.c iso8859-10.c\
-             t61.c iso6937.c sjis.c jis0201.h jis0208.h jis0212.h        \
-             koi-8.c koi8-r.c koi8-r.h hp-roman8.c latin-greek.c         \
-             latin-greek.h latin-greek-1.c latin-greek-1.h ebcdic-at-de.c\
-             ebcdic-at-de-a.c ebcdic-ca-fr.c
+distribute := 8bit-generic.c 8bit-gap.c gap.pl gaptab.pl gconv-modules     \
+             iso8859-1.c iso8859-2.c iso8859-3.c iso8859-4.c iso8859-5.c   \
+             iso8859-6.c iso8859-7.c iso8859-8.c iso8859-9.c iso8859-10.c  \
+             t61.c iso6937.c sjis.c jis0201.h jis0208.h jis0212.h          \
+             koi-8.c koi8-r.c koi8-r.h hp-roman8.c latin-greek.c           \
+             latin-greek.h latin-greek-1.c latin-greek-1.h ebcdic-at-de.c  \
+             ebcdic-at-de-a.c ebcdic-ca-fr.c jis0201.c jis0208.c jis0212.c \
+             extra-module.mk
 
 # We build the transformation modules only when we build shared libs.
 ifeq (yes,$(build-shared))
index ab51f48..b149ba1 100644 (file)
 #endif
 
 
+/* Maximum length of any multibyte character in any locale.
+   We define this value here since the gcc header does not define
+   the correct value.  */
+#define MB_LEN_MAX     6
+
+
 #if __GNUC__ >= 2
 
  /* Get the compiler's limits.h, which defines all the ANSI constants.  */
@@ -63,9 +69,6 @@
 /* Number of bits in a `char'. */
 #  define CHAR_BIT     8
 
-/* Maximum length of any multibyte character in any locale.  */
-#  define MB_LEN_MAX   6
-
 /* Minimum and maximum values a `signed char' can hold.  */
 #  define SCHAR_MIN    (-128)
 #  define SCHAR_MAX    127
index 14a1655..17120fa 100644 (file)
@@ -99,7 +99,7 @@ extern int creat64 __P ((__const char *__file, __mode_t __mode));
 # ifndef __USE_FILE_OFFSET64
 extern int lockf __P ((int __fd, int __cmd, __off_t __len));
 # else
-extern int lockf __P ((int __fd, int __cmd, __off_t __len))
+extern int lockf __P ((int __fd, int __cmd, __off64_t __len))
      __asm__ ("lockf64");
 # endif
 # ifdef __USE_LARGEFILE64
index 902d8f8..4bc3a4e 100644 (file)
--- a/libc.map
+++ b/libc.map
@@ -6,7 +6,7 @@ GLIBC_2.0 {
     _nl_msg_cat_cntr; __environ; _environ; _res;
     ___brk_addr; __curbrk; _nl_current_LC_CTYPE; _libc_intl_domainname;
     _sys_errlist; _sys_siglist; __progname; _nl_default_dirname;
-    __timezone; __daylight; __tzname;
+    _nl_domain_bindings; __timezone; __daylight; __tzname;
     _nl_current_LC_COLLATE; __collate_element_hash;
     __collate_element_strings; __collate_symbol_classes;
     __collate_symbol_hash; __collate_symbol_strings;
index 3a6bb43..563d985 100644 (file)
@@ -2,17 +2,23 @@
 @ifclear cdot
 @ifhtml
 @set cdot Â·
+@macro mul
+·
+@end macro
 @end ifhtml
 @iftex
-@set cdot @cdot
+@set cdot Â·
+@macro mul
+@cdot
+@end macro
 @end iftex
 @ifclear cdot
 @set cdot x
-@end ifclear
 @macro mul
-@value{cdot}
+x
 @end macro
 @end ifclear
+@end ifclear
 
 @node Arithmetic, Date and Time, Mathematics, Top
 @chapter Low-Level Arithmetic Functions
@@ -211,6 +217,13 @@ This function returns @code{-1} if @var{x} represents negative infinity,
 This function returns a nonzero value if @var{x} is a ``not a number''
 value, and zero otherwise.  (You can just as well use @code{@var{x} !=
 @var{x}} to get the same result).
+
+However, @code{isnan} will not raise an invalid exception if @var{x} is
+a signalling NaN, while @code{@var{x} != @var{x}} will.  This makes
+@code{isnan} much slower than the alternative; in code where performance
+matters and signalling NaNs are unimportant, it's usually better to use
+@code{@var{x} != @var{x}}, even though this is harder to understand.
+
 @end deftypefun
 
 @comment math.h
index d6206eb..b784afe 100644 (file)
@@ -2,17 +2,23 @@
 @ifclear cdot
 @ifhtml
 @set cdot Â·
+@macro mul
+·
+@end macro
 @end ifhtml
 @iftex
-@set cdot @cdot
+@set cdot Â·
+@macro mul
+@cdot
+@end macro
 @end iftex
 @ifclear cdot
 @set cdot x
-@end ifclear
 @macro mul
-@value{cdot}
+x
 @end macro
 @end ifclear
+@end ifclear
 @iftex
 @set infty @infty
 @end iftex
index 842f983..1dfde43 100644 (file)
@@ -52,7 +52,7 @@ routines := brk sbrk sstk ioctl \
            chflags fchflags \
            insremque getttyent getusershell getpass ttyslot \
            syslog syscall daemon \
-           mmap munmap mprotect msync madvise \
+           mmap munmap mprotect msync madvise mmap64 \
            efgcvt efgcvt_r qefgcvt qefgcvt_r \
            hsearch hsearch_r tsearch lsearch \
            err error ustat \
index f08a624..e627d24 100644 (file)
@@ -199,7 +199,8 @@ internal_nis_gethostent_r (struct hostent *host, char *buffer,
        ++p;
       free (result);
 
-      if ((parse_res = parse_line (p, host, data, buflen, errnop)) == -1)
+      parse_res = parse_line (p, host, data, buflen, errnop);
+      if (parse_res == -1)
        {
          free (outkey);
          *h_errnop = NETDB_INTERNAL;
index 19a5bca..9a24188 100644 (file)
@@ -12,7 +12,9 @@
 #ifndef        _RPCSVC_NIS_TAGS_H
 #define        _RPCSVC_NIS_TAGS_H
 
+#if 0
 #pragma ident  "@(#)nis_tags.h 1.16    96/10/25 SMI"
+#endif
 /* from file: zns_tags.h       1.7 Copyright (c) 1990 Sun Microsystems */
 
 #ifdef __cplusplus
index ae0f634..b5c4499 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
-   Copyright (C) 1996 Free Software Foundation, Inc.
+   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
@@ -24,7 +24,9 @@
 
 /* Get type definitions.  */
 #include <bits/types.h>
-#include <sys/time.h>          /* for struct timespec */
+
+#define __need_timespec
+#include <time.h>
 
 /* Get system specific constant and data structure definitions.  */
 #include <bits/sched.h>
index 0147594..9e1cc8e 100644 (file)
@@ -273,7 +273,7 @@ extern __off_t __lseek __P ((int __fd, __off_t __offset, int __whence));
 #ifndef __USE_FILE_OFFSET64
 extern __off_t lseek __P ((int __fd, __off_t __offset, int __whence));
 #else
-extern __off_t lseek __P ((int __fd, __off_t __offset, int __whence))
+extern __off_t lseek __P ((int __fd, __off64_t __offset, int __whence))
      __asm__ ("lseek64");
 #endif
 #ifdef __USE_LARGEFILE64
@@ -304,7 +304,7 @@ extern ssize_t pread __P ((int __fd, __ptr_t __buf, size_t __nbytes,
                           __off_t __offset));
 # else
 extern ssize_t pread __P ((int __fd, __ptr_t __buf, size_t __nbytes,
-                          __off_t __offset)) __asm__ ("pread64");
+                          __off64_t __offset)) __asm__ ("pread64");
 # endif
 extern ssize_t __pread64 __P ((int __fd, __ptr_t __buf, size_t __nbytes,
                               __off64_t __offset));
@@ -322,7 +322,7 @@ extern ssize_t pwrite __P ((int __fd, __const __ptr_t __buf, size_t __n,
                            __off_t __offset));
 # else
 extern ssize_t pwrite __P ((int __fd, __const __ptr_t __buf, size_t __n,
-                           __off_t __offset)) __asm__ ("pwrite64");
+                           __off64_t __offset)) __asm__ ("pwrite64");
 # endif
 extern ssize_t __pwrite64 __P ((int __fd, __const __ptr_t __buf, size_t __n,
                                __off64_t __offset));
@@ -878,7 +878,7 @@ extern int getpagesize __P ((void));
 #ifndef __USE_FILE_OFFSET64
 extern int truncate __P ((__const char *__file, __off_t __length));
 #else
-extern int truncate __P ((__const char *__file, __off_t __length))
+extern int truncate __P ((__const char *__file, __off64_t __length))
      __asm__ ("truncate64");
 #endif
 #ifdef __USE_LARGEFILE64
@@ -889,7 +889,7 @@ extern int truncate64 __P ((__const char *__file, __off64_t __length));
 #ifndef __USE_FILE_OFFSET64
 extern int ftruncate __P ((int __fd, __off_t __length));
 #else
-extern int ftruncate __P ((int __fd, __off_t __length))
+extern int ftruncate __P ((int __fd, __off64_t __length))
      __asm__ ("ftruncate64");
 #endif
 #ifdef __USE_LARGEFILE64
@@ -957,7 +957,7 @@ extern long int syscall __P ((long int __sysno, ...));
 # ifndef __USE_FILE_OFFSET64
 extern int lockf __P ((int __fd, int __cmd, __off_t __len));
 # else
-extern int lockf __P ((int __fd, int __cmd, __off_t __len))
+extern int lockf __P ((int __fd, int __cmd, __off64_t __len))
      __asm__ ("lockf64");
 # endif
 # ifdef __USE_LARGEFILE64
index 0076ad4..2d297e5 100644 (file)
@@ -21,7 +21,8 @@
 #
 subdir := stdlib
 
-headers        := stdlib.h alloca.h monetary.h fmtmsg.h ucontext.h sys/ucontext.h
+headers        := stdlib.h alloca.h monetary.h fmtmsg.h ucontext.h sys/ucontext.h    \
+          inttypes.h
 
 routines       :=                                                            \
        atof atoi atol atoll                                                  \
@@ -44,7 +45,8 @@ routines      :=                                                            \
        strtof_l strtod_l strtold_l                                           \
        system canonicalize                                                   \
        a64l l64a                                                             \
-       rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg
+       rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg               \
+       strtoimax strtoumax wcstoimax wcstoumax
 
 distribute     := exit.h grouping.h abort-instr.h
 tests          := tst-strtol tst-strtod testmb testrand testsort testdiv \
diff --git a/sysdeps/generic/bits/environments.h b/sysdeps/generic/bits/environments.h
new file mode 100644 (file)
index 0000000..8ed1990
--- /dev/null
@@ -0,0 +1,35 @@
+/* Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _UNISTD_H
+# error "Never include this file directly.  Use <unistd.h> instead"
+#endif
+
+/* 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.
+
+   _XBS5_ILP32_OFF32   32bit int, long, pointers, and off_t type
+   _XBS5_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type
+
+   _XBS5_LP64_OFF32    64bit long and pointers and 32bit off_t type
+   _XBS5_LPBIG_OFFBIG  64bit long and pointers and large off_t type
+*/
+
+#endif /* environments.h */
diff --git a/sysdeps/generic/inttypes.h b/sysdeps/generic/inttypes.h
new file mode 100644 (file)
index 0000000..c5a74b8
--- /dev/null
@@ -0,0 +1 @@
+#error "This file must be written based on the data typs sizes of the target"
diff --git a/sysdeps/generic/mmap64.c b/sysdeps/generic/mmap64.c
new file mode 100644 (file)
index 0000000..c0e8868
--- /dev/null
@@ -0,0 +1,48 @@
+/* Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+
+/* Map addresses starting near ADDR and extending for LEN bytes.  From
+   OFFSET into the file FD describes according to PROT and FLAGS.  If ADDR
+   is nonzero, it is the desired mapping address.  If the MAP_FIXED bit is
+   set in FLAGS, the mapping will be at ADDR exactly (which must be
+   page-aligned); otherwise the system chooses a convenient nearby address.
+   The return value is the actual mapping address chosen or MAP_FAILED
+   for errors (in which case `errno' is set).  A successful `mmap' call
+   deallocates any previous mapping for the affected region.  */
+
+__ptr_t
+__mmap64 (__ptr_t addr, size_t len, int prot, int flags, int fd,
+         __off64_t offset)
+{
+  off_t small_offset = (off_t) offset;
+
+  if (small_offset != offset)
+    {
+      /* We cannot do this since the offset is too large.  */
+      __set_errno (EOVERFLOW);
+      return MAP_FAILED;
+    }
+
+  return __mmap (addr, len, prot, flags, fd, small_offset);
+}
+
+weak_alias (__mmap64, mmap64)
index 97329c5..57c5da4 100644 (file)
@@ -43,4 +43,3 @@ setrlimit64 (resource, rlimits)
 }
 
 stub_warning (setrlimit64)
-#include <stub-tag.h>
diff --git a/sysdeps/generic/strtoimax.c b/sysdeps/generic/strtoimax.c
new file mode 100644 (file)
index 0000000..f1de70f
--- /dev/null
@@ -0,0 +1 @@
+#error "The correct implementation must be chosen based on the `intmax_t' type"
diff --git a/sysdeps/generic/strtoumax.c b/sysdeps/generic/strtoumax.c
new file mode 100644 (file)
index 0000000..508cb19
--- /dev/null
@@ -0,0 +1 @@
+#error "The correct implementation must be chosen based on the `uintmax_t' type"
index f8ca3f0..f6e0196 100644 (file)
@@ -100,6 +100,8 @@ extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
      __asm__ ("mmap64");
 #endif
 #ifdef __USE_LARGEFILE64
+extern __ptr_t __mmap64 __P ((__ptr_t __addr, size_t __len, int __prot,
+                             int __flags, int __fd, __off64_t __offset));
 extern __ptr_t mmap64 __P ((__ptr_t __addr, size_t __len, int __prot,
                          int __flags, int __fd, __off64_t __offset));
 #endif
diff --git a/sysdeps/generic/wcstoimax.c b/sysdeps/generic/wcstoimax.c
new file mode 100644 (file)
index 0000000..f1de70f
--- /dev/null
@@ -0,0 +1 @@
+#error "The correct implementation must be chosen based on the `intmax_t' type"
diff --git a/sysdeps/generic/wcstoumax.c b/sysdeps/generic/wcstoumax.c
new file mode 100644 (file)
index 0000000..508cb19
--- /dev/null
@@ -0,0 +1 @@
+#error "The correct implementation must be chosen based on the `uintmax_t' type"
diff --git a/sysdeps/mach/powerpc/machine-lock.h b/sysdeps/mach/powerpc/machine-lock.h
new file mode 100644 (file)
index 0000000..543927d
--- /dev/null
@@ -0,0 +1,75 @@
+/* Machine-specific definition for spin locks.  PowerPC version.
+   Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _MACHINE_LOCK_H
+#define        _MACHINE_LOCK_H
+
+/* The type of a spin lock variable.  */
+
+typedef __volatile long int __spin_lock_t;
+
+/* Value to initialize `__spin_lock_t' variables to.  */
+
+#define        __SPIN_LOCK_INITIALIZER 0L
+
+
+#ifndef _EXTERN_INLINE
+#define _EXTERN_INLINE extern __inline
+#endif
+
+/* Unlock LOCK.  */
+
+_EXTERN_INLINE void
+__spin_unlock (__spin_lock_t *__lock)
+{
+  __asm__ __volatile__ ("sync ; stwcx. %1,0,%0"
+                       : : "r" (__lock), "r" (0) : "cr0");
+}
+
+/* Try to lock LOCK; return nonzero if we locked it, zero if another has.  */
+
+_EXTERN_INLINE int
+__spin_try_lock (register __spin_lock_t *__lock)
+{
+  long int __rtn;
+
+  __asm__ __volatile__ ("\
+0:     lwarx   %0,0,%1
+       stwcx.  %2,0,%1
+       bne-    0b
+" : "=&r"(__rtn) : "r"(__lock), "r"(1) : "cr0");
+  return ~__rtn;
+}
+
+/* Return nonzero if LOCK is locked.  */
+
+_EXTERN_INLINE int
+__spin_lock_locked (__spin_lock_t *__lock)
+{
+  long int __rtn;
+  __asm__ __volatile__ ("\
+0:     lwarx   %0,0,%1
+       stwcx.  %0,0,%1
+       bne-    0b
+" : "=&r"(__rtn) : "r"(__lock) : "cr0");
+  return __rtn;
+}
+
+
+#endif /* machine-lock.h */
index 8858ebe..ec482de 100644 (file)
@@ -49,7 +49,7 @@ main()
 
   /* These values correspond to the code in sysdeps/posix/tempname.c.
      Change the values here if you change that code.  */
-  puts ("#ifndef __need_FOPEN_MAX");
+  puts ("#ifdef _STDIO_H");
   printf ("# define L_tmpnam %u\n", sizeof ("/usr/tmp/") + 9);
   printf ("# define TMP_MAX %u\n", 62 * 62 * 62);
 
@@ -74,6 +74,8 @@ main()
 #endif
          );
 
+  puts ("# undef __need_FOPEN_MAX");
+  puts ("# define __need_FOPEN_MAX     1");
   puts ("#endif\n");
 
   /* POSIX does not require that OPEN_MAX and PATH_MAX be defined, so
index 4a22fb8..5d6422c 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <sysdep.h>
 #define _ASM
+#define _SETJMP_H
 #include <bits/setjmp.h>
 
 ENTRY (__longjmp)
diff --git a/sysdeps/powerpc/atomicity.h b/sysdeps/powerpc/atomicity.h
new file mode 100644 (file)
index 0000000..dba0965
--- /dev/null
@@ -0,0 +1,99 @@
+/* Low-level functions for atomic operations.  PowerPC version.
+   Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _ATOMICITY_H
+#define _ATOMICITY_H   1
+
+#include <inttypes.h>
+
+static inline int
+__attribute__ ((unused))
+exchange_and_add (volatile uint32_t *mem, int val)
+{
+  int tmp, result;
+  __asm__ __volatile__ ("\
+0:     lwarx   %0,0,%2
+       add     %1,%3,%0
+       stwcx.  %1,0,%2
+       bne-    0b
+" : "=&r"(result), "=&r"(tmp) : "r" (mem), "r"(val) : "cr0");
+  return result;
+}
+
+static inline void
+__attribute__ ((unused))
+atomic_add (volatile uint32_t *mem, int val)
+{
+  int tmp;
+  __asm__ __volatile__("\
+0:     lwarx   %0,0,%1
+       add     %0,%2,%0
+       stwcx.  %0,0,%1
+       bne-    0b
+" : "=&r"(tmp) : "r" (mem), "r"(val) : "cr0");
+}
+
+static inline int
+__attribute__ ((unused))
+compare_and_swap (volatile long int *p, long int oldval, long int newval)
+{
+  int result;
+  __asm__ __volatile__ ("\
+0:     lwarx   %0,0,%1
+       xor.    %0,%0,%2
+       cntlzw  %0,%0
+       bne-    1f
+       stwcx.  %3,0,%1
+       bne-    0b
+1:     srwi    %0,%0,5
+" : "=&r"(result) : "r"(p), "r"(oldval), "r"(newval) : "cr0");
+  return result;
+}
+
+static inline long int
+__attribute__ ((unused))
+always_swap (volatile long int *p, long int newval)
+{
+  long int result;
+  __asm__ __volatile__ ("\
+0:     lwarx   %0,0,%1
+       stwcx.  %2,0,%1
+       bne-    0b
+" : "=&r"(result) : "r"(p), "r"(newval) : "cr0");
+  return result;
+}
+
+static inline int
+__attribute__ ((unused))
+test_and_set (volatile long int *p, long int oldval, long int newval)
+{
+  int result;
+  __asm__ __volatile__ ("\
+0:     lwarx   %0,0,%1
+       xor.    %0,%0,%2
+       cntlzw  %0,%0
+       bne-    1f
+       stwcx.  %3,0,%1
+       bne-    0b
+1:     srwi    %0,%0,5
+" : "=&r"(result) : "r"(p), "r"(oldval), "r"(newval) : "cr0");
+  return result;
+}
+
+#endif /* atomicity.h */
index 24f186a..fff1d64 100644 (file)
    Boston, MA 02111-1307, USA.  */
 
 #ifdef __GNUC__
-#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
-
-#ifdef __cplusplus
-# define __MATH_INLINE __inline
-#else
-# define __MATH_INLINE extern __inline
-#endif
-
-__MATH_INLINE double __sgn1 (double __x);
-__MATH_INLINE double
-__sgn1 (double __x)
-{
-  return __x >= 0.0 ? 1.0 : -1.0;
-}
-#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
 
 #if __USE_ISOC9X && !defined _SOFT_FLOAT
 # define __unordered_cmp(x, y) \
   (__extension__                                                             \
    ({ __typeof__(x) __x = (x); __typeof__(y) __y = (y);                              \
       unsigned __r;                                                          \
-      __asm__("fcmpu 7,%1,%2 ; mfcr %0" : "=r" (__r) : "f" (__x), "f"(__y));  \
+      __asm__("fcmpu 7,%1,%2 ; mfcr %0" : "=r" (__r) : "f" (__x), "f"(__y)    \
+              : "cr7");  \
       __r; }))
 
 # define isgreater(x, y) (__unordered_cmp (x, y) >> 2 & 1)
@@ -50,4 +36,53 @@ __sgn1 (double __x)
 # define isunordered(x, y) (__unordered_cmp (x, y) & 1)
 #endif /* __USE_ISOC9X && !_SOFT_FLOAT */
 
+#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
+
+#ifdef __cplusplus
+# define __MATH_INLINE __inline
+#else
+# define __MATH_INLINE extern __inline
+#endif  /* __cplusplus */
+
+#ifdef __USE_ISOC9X
+__MATH_INLINE long int lrint (double __x);
+__MATH_INLINE long int
+lrint (double __x)
+{
+  union {
+    double __d;
+    long int __ll[2];
+  } __u;
+  asm ("fctiw %0,%1" : "=f"(__u.__d) : "f"(__x));
+  return __u.__ll[1];
+}
+
+__MATH_INLINE long int lrintf (float __x);
+__MATH_INLINE long int
+lrintf (float __x)
+{
+  union {
+    double __d;
+    long int __ll[2];
+  } __u;
+  asm ("fctiw %0,%1" : "=f"(__u.__d) : "f"(__x));
+  return __u.__ll[1];
+}
+
+__MATH_INLINE double fdim (double __x, double __y);
+__MATH_INLINE double
+fdim (double __x, double __y)
+{
+  return __x < __y ? 0 : __x - __y;
+}
+
+__MATH_INLINE float fdimf (float __x, float __y);
+__MATH_INLINE float
+fdimf (float __x, float __y)
+{
+  return __x < __y ? 0 : __x - __y;
+}
+
+#endif /* __USE_ISOC9X */
+#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
 #endif /* __GNUC__  */
diff --git a/sysdeps/powerpc/s_fdim.c b/sysdeps/powerpc/s_fdim.c
new file mode 100644 (file)
index 0000000..da22f5c
--- /dev/null
@@ -0,0 +1,31 @@
+/* Return positive difference between arguments.
+   Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <math.h>
+
+double
+__fdim (double x, double y)
+{
+  return x < y ? 0 : x - y;
+}
+weak_alias (__fdim, fdim)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__fdim, __fdiml)
+weak_alias (__fdim, fdiml)
+#endif
diff --git a/sysdeps/powerpc/s_fdimf.c b/sysdeps/powerpc/s_fdimf.c
new file mode 100644 (file)
index 0000000..bebe7e5
--- /dev/null
@@ -0,0 +1,27 @@
+/* Return positive difference between arguments.
+   Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <math.h>
+
+float
+__fdimf (float x, float y)
+{
+  return x < y ? 0 : x - y;
+}
+weak_alias (__fdimf, fdimf)
diff --git a/sysdeps/powerpc/s_fmax.S b/sysdeps/powerpc/s_fmax.S
new file mode 100644 (file)
index 0000000..559769a
--- /dev/null
@@ -0,0 +1,43 @@
+/* Floating-point maximum.  PowerPC version.
+   Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <sysdep.h>
+
+ENTRY(__fmax)
+/* double [f1] fmax (double [f1] x, double [f2] y); */
+       fcmpu   %cr0,%f1,%f2
+       blt     %cr0,0f         /* if x < y, neither x nor y can be NaN... */
+       bnulr+  %cr0
+/* x and y are unordered, so one of x or y must be a NaN... */
+       fcmpu   %cr1,%f2,%f2
+       bunlr   %cr1
+0:     fmr     %f1,%f2
+       blr
+END(__fmax)
+
+weak_alias(__fmax,fmax)
+
+/* It turns out that it's safe to use this code even for single-precision.  */
+strong_alias(__fmax,__fmaxf)
+weak_alias(__fmax,fmaxf)
+
+#ifdef NO_LONG_DOUBLE
+weak_alias(__fmax,__fmaxl)
+weak_alias(__fmax,fmaxl)
+#endif
diff --git a/sysdeps/powerpc/s_fmaxf.S b/sysdeps/powerpc/s_fmaxf.S
new file mode 100644 (file)
index 0000000..3c2d62b
--- /dev/null
@@ -0,0 +1 @@
+/* __fmaxf is in s_fmax.c  */
diff --git a/sysdeps/powerpc/s_fmin.S b/sysdeps/powerpc/s_fmin.S
new file mode 100644 (file)
index 0000000..72516c2
--- /dev/null
@@ -0,0 +1,43 @@
+/* Floating-point minimum.  PowerPC version.
+   Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <sysdep.h>
+
+ENTRY(__fmin)
+/* double [f1] fmin (double [f1] x, double [f2] y); */
+       fcmpu   %cr0,%f1,%f2
+       bgt     %cr0,0f         /* if x > y, neither x nor y can be NaN... */
+       bnulr+  %cr0
+/* x and y are unordered, so one of x or y must be a NaN... */
+       fcmpu   %cr1,%f2,%f2
+       bunlr   %cr1
+0:     fmr     %f1,%f2
+       blr
+END(__fmin)
+
+weak_alias(__fmin,fmin)
+
+/* It turns out that it's safe to use this code even for single-precision.  */
+strong_alias(__fmin,__fminf)
+weak_alias(__fmin,fminf)
+
+#ifdef NO_LONG_DOUBLE
+weak_alias(__fmin,__fminl)
+weak_alias(__fmin,fminl)
+#endif
diff --git a/sysdeps/powerpc/s_fminf.S b/sysdeps/powerpc/s_fminf.S
new file mode 100644 (file)
index 0000000..10ab7fe
--- /dev/null
@@ -0,0 +1 @@
+/* __fminf is in s_fmin.c  */
index 7ca48c0..1789e79 100644 (file)
@@ -1,5 +1,4 @@
-/* Round a long long floating point value to an integer in the current
-   rounding mode.
+/* Round a double value to a long long in the current rounding mode.
    Copyright (C) 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
 #include "math.h"
 
 long long int
-__llrint (long double x)
+__llrint (double x)
 {
-  return (long long int) __rintl (x);
+  return (long long int) __rint (x);
 }
 weak_alias (__llrint, llrint)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__llrint, __llrintl)
+weak_alias (__llrint, llrintl)
+#endif
diff --git a/sysdeps/powerpc/s_llrintf.c b/sysdeps/powerpc/s_llrintf.c
new file mode 100644 (file)
index 0000000..2068a02
--- /dev/null
@@ -0,0 +1,27 @@
+/* Round a float value to a long long in the current rounding mode.
+   Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include "math.h"
+
+long long int
+__llrintf (float x)
+{
+  return (long long int) __rintf (x);
+}
+weak_alias (__llrintf, llrintf)
index fbe3a32..6b49dbf 100644 (file)
@@ -1,4 +1,4 @@
-/* Round long double value to long int.
+/* Round double value to long long int.
    Copyright (C) 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    clipping to MAX_LLONG or MIN_LLONG.  */
 
 long long int
-__llround (long double x)
+__llround (double x)
 {
-  long double xrf;
+  double xrf;
   long long int xr;
   xr = (long long int) x;
-  xrf = (long double) xr;
+  xrf = (double) xr;
   if (x >= 0.0)
     if (x - xrf >= 0.5 && x - xrf < 1.0 && x+1 > 0)
       return x+1;
@@ -44,3 +44,7 @@ __llround (long double x)
       return x;
 }
 weak_alias (__llround, llround)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__llround, __llroundl)
+weak_alias (__llround, llroundl)
+#endif
diff --git a/sysdeps/powerpc/s_llroundf.c b/sysdeps/powerpc/s_llroundf.c
new file mode 100644 (file)
index 0000000..23f1c28
--- /dev/null
@@ -0,0 +1,46 @@
+/* Round float value to long long int.
+   Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <math.h>
+
+/* I think that what this routine is supposed to do is round a value
+   to the nearest integer, with values exactly on the boundary rounded
+   away from zero.  */
+/* This routine relies on (long long)x, when x is out of range of a long long,
+   clipping to MAX_LLONG or MIN_LLONG.  */
+
+long long int
+__llroundf (float x)
+{
+  float xrf;
+  long long int xr;
+  xr = (long long int) x;
+  xrf = (float) xr;
+  if (x >= 0.0)
+    if (x - xrf >= 0.5 && x - xrf < 1.0 && x+1 > 0)
+      return x+1;
+    else
+      return x;
+  else
+    if (xrf - x >= 0.5 && xrf - x < 1.0 && x-1 < 0)
+      return x-1;
+    else
+      return x;
+}
+weak_alias (__llroundf, llroundf)
index 647cf30..a060598 100644 (file)
 
 #include "math.h"
 
-#ifdef NO_LONG_DOUBLE
-
 long int
-__lrint (long double x)
-{
-  return (long int) __rintl(x);
-}
-
-#else
-
-long int
-__lrint (long double x)
+__lrint (double x)
 {
   union {
     double d;
     long int ll[2];
   } u;
   asm ("fctiw %0,%1" : "=f"(u.d) : "f"(x));
-  return d.ll[1];
+  return u.ll[1];
 }
+weak_alias (__lrint, lrint)
+
+/* This code will also work for a 'float' argument.  */
+asm ("\
+        .globl __lrintf
+        .globl lrintf
+        .weak lrintf
+       .set __lrintf,__lrint
+       .set lrintf,__lrint
+");
 
+#ifdef NO_LONG_DOUBLE
+strong_alias (__lrint, __lrintl)
+weak_alias (__lrint, lrintl)
 #endif
-weak_alias (__lrint, lrint)
diff --git a/sysdeps/powerpc/s_lrintf.S b/sysdeps/powerpc/s_lrintf.S
new file mode 100644 (file)
index 0000000..e247665
--- /dev/null
@@ -0,0 +1 @@
+/* __lrintf is in s_lrint.c  */
index a6cb6c9..c52c038 100644 (file)
@@ -1,4 +1,4 @@
-/* Round long double value to long int.
+/* Round double value to long int.
    Copyright (C) 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    clipping to MAX_LONG or MIN_LONG.  */
 
 long int
-__lround (long double x)
+__lround (double x)
 {
-  long double xrf;
+  double xrf;
   long int xr;
   xr = (long int) x;
-  xrf = (long double) xr;
+  xrf = (double) xr;
   if (x >= 0.0)
     if (x - xrf >= 0.5 && x - xrf < 1.0 && x+1 > 0)
       return x+1;
@@ -44,3 +44,7 @@ __lround (long double x)
       return x;
 }
 weak_alias (__lround, lround)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__lround, __lroundl)
+weak_alias (__lround, lroundl)
+#endif
diff --git a/sysdeps/powerpc/s_lroundf.c b/sysdeps/powerpc/s_lroundf.c
new file mode 100644 (file)
index 0000000..ce1c3cf
--- /dev/null
@@ -0,0 +1,46 @@
+/* Round float value to long int.
+   Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <math.h>
+
+/* I think that what this routine is supposed to do is round a value
+   to the nearest integer, with values exactly on the boundary rounded
+   away from zero.  */
+/* This routine relies on (long int)x, when x is out of range of a long int,
+   clipping to MAX_LONG or MIN_LONG.  */
+
+long int
+__lroundf (float x)
+{
+  float xrf;
+  long int xr;
+  xr = (long int) x;
+  xrf = (float) xr;
+  if (x >= 0.0)
+    if (x - xrf >= 0.5 && x - xrf < 1.0 && x+1 > 0)
+      return x+1;
+    else
+      return x;
+  else
+    if (xrf - x >= 0.5 && xrf - x < 1.0 && x-1 < 0)
+      return x-1;
+    else
+      return x;
+}
+weak_alias (__lroundf, lroundf)
index 8fa863f..dc9d923 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <sysdep.h>
 #define _ASM
+#define _SETJMP_H
 #include <bits/setjmp.h>
 
 ENTRY (__sigsetjmp)
index e22cec7..6743794 100644 (file)
@@ -5,6 +5,7 @@ kernel_sigaction.h
 kernel_stat.h
 kernel_termios.h
 llseek.c
+oldsiglist.c
 s_pread64.c
 s_pwrite64.c
 siglist.h
@@ -21,6 +22,7 @@ net/ppp-comp.h
 net/ppp_defs.h
 net/route.h
 netatalk/at.h
+netax25/ax25.h
 netinet/if_fddi.h
 netinet/if_tr.h
 netinet/igmp.h
@@ -30,6 +32,7 @@ netinet/ip_icmp.h
 netinet/tcp.h
 netinet/udp.h
 netipx/ipx.h
+netrom/netrom.h
 nfs/nfs.h
 rt_sigaction.c
 rt_sigpending.c
index 152c798..29f1566 100644 (file)
@@ -69,7 +69,7 @@ ifeq ($(subdir),stdio-common)
 inhibit-siglist := yes
 
 ifeq ($(versioning),yes)
-aux += oldsiglist
+sysdep_routines += oldsiglist
 endif
 
 shared-only-routines += oldsiglist
@@ -79,7 +79,7 @@ ifeq ($(subdir),inet)
 sysdep_headers += netinet/in_systm.h netinet/udp.h \
                  netinet/if_fddi.h netinet/if_tr.h netinet/igmp.h \
                  netinet/ip_fw.h  netinet/ip_icmp.h netipx/ipx.h \
-                 sys/socketvar.h
+                 sys/socketvar.h netax25/ax25.h netrom/netrom.h
 endif
 
 ifeq ($(subdir),posix)
index 6f8bc9b..f8c42e0 100644 (file)
@@ -1,7 +1,7 @@
 /* This is the sigaction struction from the Linux 2.1.20 kernel.  */
 
 struct old_kernel_sigaction {
-       __sighandler_t sa_handler;
+       __sighandler_t k_sa_handler;
        unsigned long sa_mask;
        unsigned int sa_flags;
 };
diff --git a/sysdeps/unix/sysv/linux/alpha/mmap64.c b/sysdeps/unix/sysv/linux/alpha/mmap64.c
new file mode 100644 (file)
index 0000000..0dbd384
--- /dev/null
@@ -0,0 +1 @@
+/* mmap64 is the same as mmap. */
diff --git a/sysdeps/unix/sysv/linux/alpha/net/route.h b/sysdeps/unix/sysv/linux/alpha/net/route.h
new file mode 100644 (file)
index 0000000..6c7d8dd
--- /dev/null
@@ -0,0 +1,140 @@
+/* Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Based on the 4.4BSD and Linux version of this file.  */
+
+#ifndef _NET_ROUTE_H
+#define _NET_ROUTE_H   1
+
+#include <features.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+
+
+/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */
+struct rtentry
+  {
+    unsigned long int rt_pad1;
+    struct sockaddr rt_dst;            /* Target address.  */
+    struct sockaddr rt_gateway;                /* Gateway addr (RTF_GATEWAY).  */
+    struct sockaddr rt_genmask;                /* Target network mask (IP).  */
+    unsigned short int rt_flags;
+    short int rt_pad2;
+    unsigned long int rt_pad3;
+    unsigned char rt_tos;
+    unsigned char rt_class;
+    short int rt_pad4[3];
+    short int rt_metric;               /* +1 for binary compatibility!  */
+    char *rt_dev;                      /* Forcing the device at add.  */
+    unsigned long int rt_mtu;          /* Per route MTU/Window.  */
+    unsigned long int rt_window;       /* Window clamping.  */
+    unsigned short int rt_irtt;                /* Initial RTT.  */
+  };
+/* Compatibility hack.  */
+#define rt_mss rt_mtu
+
+
+struct in6_rtmsg
+  {
+    struct in6_addr rtmsg_dst;
+    struct in6_addr rtmsg_src;
+    struct in6_addr rtmsg_gateway;
+    u_int32_t rtmsg_type;
+    u_int16_t rtmsg_dst_len;
+    u_int16_t rtmsg_src_len;
+    u_int32_t rtmsg_metric;
+    unsigned long int rtmsg_info;
+    u_int32_t rtmsg_flags;
+    int rtmsg_ifindex;
+  };
+
+
+#define        RTF_UP          0x0001          /* Route usable.  */
+#define        RTF_GATEWAY     0x0002          /* Destination is a gateway.  */
+
+#define        RTF_HOST        0x0004          /* Host entry (net otherwise).  */
+#define RTF_REINSTATE  0x0008          /* Reinstate route after timeout.  */
+#define        RTF_DYNAMIC     0x0010          /* Created dyn. (by redirect).  */
+#define        RTF_MODIFIED    0x0020          /* Modified dyn. (by redirect).  */
+#define RTF_MTU                0x0040          /* Specific MTU for this route.  */
+#define RTF_MSS                RTF_MTU         /* Compatibility.  */
+#define RTF_WINDOW     0x0080          /* Per route window clamping.  */
+#define RTF_IRTT       0x0100          /* Initial round trip time.  */
+#define RTF_REJECT     0x0200          /* Reject route.  */
+#define        RTF_STATIC      0x0400          /* Manually injected route.  */
+#define        RTF_XRESOLVE    0x0800          /* External resolver.  */
+#define RTF_NOFORWARD   0x1000         /* Forwarding inhibited.  */
+#define RTF_THROW      0x2000          /* Go to next class.  */
+#define RTF_NOPMTUDISC  0x4000         /* Do not send packets with DF.  */
+
+/* for IPv6 */
+#define RTF_DEFAULT    0x00010000      /* default - learned via ND     */
+#define RTF_ALLONLINK  0x00020000      /* fallback, no routers on link */
+#define RTF_ADDRCONF   0x00040000      /* addrconf route - RA          */
+
+#define RTF_LINKRT     0x00100000      /* link specific - device match */
+#define RTF_NONEXTHOP  0x00200000      /* route with no nexthop        */
+
+#define RTF_CACHE      0x01000000      /* cache entry                  */
+#define RTF_FLOW       0x02000000      /* flow significant route       */
+#define RTF_POLICY     0x04000000      /* policy route                 */
+
+#define RTCF_VALVE     0x00200000
+#define RTCF_MASQ      0x00400000
+#define RTCF_NAT       0x00800000
+#define RTCF_DOREDIRECT 0x01000000
+#define RTCF_LOG       0x02000000
+#define RTCF_DIRECTSRC 0x04000000
+
+#define RTF_LOCAL      0x80000000
+#define RTF_INTERFACE  0x40000000
+#define RTF_MULTICAST  0x20000000
+#define RTF_BROADCAST  0x10000000
+#define RTF_NAT                0x08000000
+
+#define RTF_ADDRCLASSMASK      0xF8000000
+#define RT_ADDRCLASS(flags)    ((__u_int32_t) flags >> 23)
+
+#define RT_TOS(tos)            ((tos) & IPTOS_TOS_MASK)
+
+#define RT_LOCALADDR(flags)    ((flags & RTF_ADDRCLASSMASK) \
+                                == (RTF_LOCAL|RTF_INTERFACE))
+
+#define RT_CLASS_UNSPEC                0
+#define RT_CLASS_DEFAULT       253
+
+#define RT_CLASS_MAIN          254
+#define RT_CLASS_LOCAL         255
+#define RT_CLASS_MAX           255
+
+
+#define RTMSG_ACK              NLMSG_ACK
+#define RTMSG_OVERRUN          NLMSG_OVERRUN
+
+#define RTMSG_NEWDEVICE                0x11
+#define RTMSG_DELDEVICE                0x12
+#define RTMSG_NEWROUTE         0x21
+#define RTMSG_DELROUTE         0x22
+#define RTMSG_NEWRULE          0x31
+#define RTMSG_DELRULE          0x32
+#define RTMSG_CONTROL          0x40
+
+#define RTMSG_AR_FAILED                0x51    /* Address Resolution failed.  */
+
+#endif /* net/route.h */
index af96471..9406892 100644 (file)
@@ -19,13 +19,13 @@ osf_sigprocmask     -       osf_sigprocmask 2       __osf_sigprocmask
 
 getpeername    -       getpeername     3       __getpeername   getpeername
 getpriority    -       getpriority     2       __getpriority   getpriority
-mmap           -       mmap            6       __mmap          mmap
+mmap           -       mmap            6       __mmap          mmap __mmap64 mmap64
 llseek         EXTRA   lseek           3       __llseek        llseek lseek64
 pread          EXTRA   pread           4       __pread         pread __pread64 pread64
 pwrite         EXTRA   pwrite          4       __pwrite        pwrite __pwrite64 pwrite64
 fstatfs                -       fstatfs         2       __fstatfs       fstatfs fstatfs64
 statfs         -       statfs          2       __statfs        statfs statfs64
-getrlimit      -       getrlimit       2       getrlimit       getrlimit64
+getrlimit      -       getrlimit       2       __getrlimit     getrlimit getrlimit64
 setrlimit      -       setrlimit       2       setrlimit       setrlimit64
 ftruncate      -       ftruncate       2       ftruncate       ftruncate64
 truncate       -       truncate        2       truncate        truncate64
index 42a4f8b..34c2be4 100644 (file)
@@ -107,9 +107,6 @@ enum __socket_type
 #define SOL_IPV6        41
 #define SOL_ICMPV6      58
 #define SOL_RAW                255
-#define SOL_AX25        257
-#define SOL_ATALK       258
-#define SOL_NETROM      259
 #define SOL_ROSE        260
 #define SOL_DECNET      261
 #define SOL_X25         262
index d762dc9..75955fc 100644 (file)
@@ -1,4 +1,6 @@
 bits/mman.h
 clone.S
+s_pwrite64.S
+s_pread64.S
 sys/perm.h
 sys/vm86.h
index 05d187c..90818c1 100644 (file)
@@ -32,8 +32,8 @@ extern int __syscall_rt_sigaction (int, const struct sigaction *,
                                   struct sigaction *, size_t);
 
 /* The variable is shared between all wrappers around signal handling
-   functions which have RT equivalents.  It is defined in sigsuspend.c.  */
-extern int __libc_have_rt_sigs;
+   functions which have RT equivalents.  */
+int __libc_have_rt_sigs = -1;
 
 
 /* If ACT is not NULL, change the action for SIG to *ACT.
index 2450d51..6cccbee 100644 (file)
 /* Based on the 4.4BSD and Linux version of this file.  */
 
 #ifndef _NET_ROUTE_H
-
 #define _NET_ROUTE_H   1
-#include <features.h>
 
+#include <features.h>
 #include <sys/socket.h>
 #include <sys/types.h>
 #include <netinet/in.h>
index e0ccff8..4c58610 100644 (file)
@@ -16,8 +16,8 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef __NETATALK_ATALK_H
-#define __NETATALK_ATALK_H 1
+#ifndef _NETATALK_AT_H
+#define _NETATALK_AT_H 1
 
 #include <asm/types.h>
 #include <sys/socket.h>
@@ -25,4 +25,4 @@
 
 #define SOL_ATALK       258     /* sockopt level for atalk */
 
-#endif
+#endif /* netatalk/at.h */
diff --git a/sysdeps/unix/sysv/linux/netax25/ax25.h b/sysdeps/unix/sysv/linux/netax25/ax25.h
new file mode 100644 (file)
index 0000000..1bec592
--- /dev/null
@@ -0,0 +1,147 @@
+/* Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _NETAX25_AX25_H
+#define _NETAX25_AX25_H        1
+
+#include <features.h>
+#include <bits/sockaddr.h>
+
+/* Setsockoptions(2) level.  Thanks to BSD these must match IPPROTO_xxx.  */
+#define SOL_AX25       257
+
+/* AX.25 flags: */
+#define AX25_WINDOW    1
+#define AX25_T1                2
+#define AX25_T2                5
+#define AX25_T3                4
+#define AX25_N2                3
+#define AX25_BACKOFF   6
+#define AX25_EXTSEQ    7
+#define AX25_IDLE      9
+#define        AX25_PACLEN     10
+#define AX25_IPMAXQUEUE 11
+#define AX25_KILL      99
+
+/* AX.25 socket ioctls: */
+#define SIOCAX25GETUID         (SIOCPROTOPRIVATE)
+#define SIOCAX25ADDUID         (SIOCPROTOPRIVATE+1)
+#define SIOCAX25DELUID         (SIOCPROTOPRIVATE+2)
+#define SIOCAX25NOUID          (SIOCPROTOPRIVATE+3)
+#define SIOCAX25BPQADDR                (SIOCPROTOPRIVATE+4)
+#define SIOCAX25GETPARMS       (SIOCPROTOPRIVATE+5)
+#define SIOCAX25SETPARMS       (SIOCPROTOPRIVATE+6)
+#define SIOCAX25OPTRT          (SIOCPROTOPRIVATE+7)
+#define SIOCAX25CTLCON         (SIOCPROTOPRIVATE+8)
+
+/* unknown: */
+#define AX25_NOUID_DEFAULT     0
+#define AX25_NOUID_BLOCK       1
+#define AX25_SET_RT_IPMODE     2
+
+/* Digipeating flags: */
+#define AX25_DIGI_INBAND       0x01    /* Allow digipeating within port */
+#define AX25_DIGI_XBAND                0x02    /* Allow digipeating across ports */
+
+/* Maximim number of digipeaters: */
+#define AX25_MAX_DIGIS 8
+
+
+typedef struct
+  {
+    char ax25_call[7];         /* 6 call + SSID (shifted ascii) */
+  }
+ax25_address;
+
+struct sockaddr_ax25
+  {
+    sa_family_t sax25_family;
+    ax25_address sax25_call;
+    int sax25_ndigis;
+  };
+
+/*
+ * The sockaddr struct with the digipeater adresses:
+ */
+struct full_sockaddr_ax25
+  {
+    struct sockaddr_ax25 fsa_ax25;
+    ax25_address fsa_digipeater[AX25_MAX_DIGIS];
+  };
+#define sax25_uid      sax25_ndigis
+
+struct ax25_routes_struct
+  {
+    ax25_address port_addr;
+    ax25_address dest_addr;
+    unsigned char digi_count;
+    ax25_address digi_addr[AX25_MAX_DIGIS];
+  };
+
+/* The AX.25 ioctl structure: */
+struct ax25_ctl_struct
+  {
+    ax25_address port_addr;
+    ax25_address source_addr;
+    ax25_address dest_addr;
+    unsigned int cmd;
+    unsigned long arg;
+  };
+
+/* AX.25 route structure: */
+struct ax25_route_opt_struct
+  {
+    ax25_address port_addr;
+    ax25_address dest_addr;
+    int cmd;
+    int arg;
+  };
+
+/* AX.25 BPQ stuff: */
+struct ax25_bpqaddr_struct
+  {
+    char dev[16];
+    ax25_address addr;
+  };
+
+/* Definitions for the AX.25 `values' fields: */
+#define        AX25_VALUES_IPDEFMODE   0       /* 'D'=DG 'V'=VC */
+#define        AX25_VALUES_AXDEFMODE   1       /* 8=Normal 128=Extended Seq Nos */
+#define        AX25_VALUES_NETROM      2       /* Allow NET/ROM  - 0=No 1=Yes */
+#define        AX25_VALUES_TEXT        3       /* Allow PID=Text - 0=No 1=Yes */
+#define        AX25_VALUES_BACKOFF     4       /* 'E'=Exponential 'L'=Linear */
+#define        AX25_VALUES_CONMODE     5       /* Allow connected modes - 0=No 1=Yes */
+#define        AX25_VALUES_WINDOW      6       /* Default window size for standard AX.25 */
+#define        AX25_VALUES_EWINDOW     7       /* Default window size for extended AX.25 */
+#define        AX25_VALUES_T1          8       /* Default T1 timeout value */
+#define        AX25_VALUES_T2          9       /* Default T2 timeout value */
+#define        AX25_VALUES_T3          10      /* Default T3 timeout value */
+#define        AX25_VALUES_N2          11      /* Default N2 value */
+#define        AX25_VALUES_DIGI        12      /* Digipeat mode */
+#define AX25_VALUES_IDLE       13      /* mode vc idle timer */
+#define AX25_VALUES_PACLEN     14      /* AX.25 MTU */
+#define AX25_VALUES_IPMAXQUEUE  15     /* Maximum number of buffers enqueued */
+#define        AX25_MAX_VALUES         20
+
+struct ax25_parms_struct
+  {
+    ax25_address port_addr;
+    unsigned short values[AX25_MAX_VALUES];
+  };
+
+#endif /* netax25/ax25.h */
diff --git a/sysdeps/unix/sysv/linux/netrom/netrom.h b/sysdeps/unix/sysv/linux/netrom/netrom.h
new file mode 100644 (file)
index 0000000..b8c2af0
--- /dev/null
@@ -0,0 +1,80 @@
+/* Copyright (C) 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifndef _NETROM_NETROM_H
+#define _NETROM_NETROM_H       1
+
+#include <netax25/ax25.h>
+
+/* Setsockoptions(2) level.  Thanks to BSD these must match IPPROTO_xxx.  */
+#define SOL_NETROM     259
+
+/* NetRom control values: */
+#define NETROM_T1      1
+#define NETROM_T2      2
+#define NETROM_N2      3
+#define NETROM_PACLEN  5
+
+#define NETROM_KILL    99
+
+/* Type of route: */
+#define NETROM_NEIGH    0
+#define NETROM_NODE     1
+
+struct nr_route_struct
+  {
+    int type;
+    ax25_address callsign;
+    char device[16];
+    unsigned int quality;
+    char mnemonic[7];
+    ax25_address neighbour;
+    unsigned int obs_count;
+  };
+
+/* NetRom socket ioctls: */
+#define        SIOCNRGETPARMS          (SIOCPROTOPRIVATE+0)
+#define        SIOCNRSETPARMS          (SIOCPROTOPRIVATE+1)
+#define        SIOCNRDECOBS            (SIOCPROTOPRIVATE+2)
+#define        SIOCNRRTCTL             (SIOCPROTOPRIVATE+3)
+#define        SIOCNRCTLCON            (SIOCPROTOPRIVATE+4)
+
+/* NetRom parameter structure: */
+struct nr_parms_struct
+  {
+    unsigned int quality;
+    unsigned int obs_count;
+    unsigned int ttl;
+    unsigned int timeout;
+    unsigned int ack_delay;
+    unsigned int busy_delay;
+    unsigned int tries;
+    unsigned int window;
+    unsigned int paclen;
+  };
+
+/* NetRom control structure: */
+struct nr_ctl_struct
+  {
+    unsigned char index;
+    unsigned char id;
+    unsigned int cmd;
+    unsigned long arg;
+  };
+
+#endif /* netrom/netrom.h */
index 6b4373d..211a56b 100644 (file)
     (envp) = (argv) + (argc) + 1;                              \
     for (_tmp = (void **) (envp); *_tmp; ++_tmp)               \
       continue;                                                        \
-    if (*_tmp == 0 && ((size_t)_tmp & 0xf) != 0)               \
+    /* The following '++' is important!  */                    \
+    ++_tmp;                                                    \
+    if (*_tmp == 0)                                            \
       {                                                                \
        size_t _test = (size_t)_tmp;                            \
        _test = _test + 0xf & ~0xf;                             \
-       if (*(long *)_test == AT_PHDR)                          \
-         _tmp = (void **)_test;                                \
+       _tmp = (void **)_test;                                  \
       }                                                                \
     (auxp) = (void *) _tmp;                                    \
   } while (0)
index c3908d7..a40b3c1 100644 (file)
@@ -20,7 +20,7 @@
 #define _KERNEL_TERMIOS_H 1
 
 /* We need the definition of tcflag_t, cc_t, and speed_t.  */
-#include <bits/termios.h>
+#include <termios.h>
 
 #define __KERNEL_NCCS 19
 
index 3eb7214..6b3d69d 100644 (file)
@@ -30,8 +30,8 @@ extern int __syscall_rt_sigaction (int, const struct sigaction *,
                                   struct sigaction *, size_t);
 
 /* The variable is shared between all wrappers around signal handling
-   functions which have RT equivalents.  It is defined in sigsuspend.c.  */
-extern int __libc_have_rt_sigs;
+   functions which have RT equivalents.  */
+int __libc_have_rt_sigs = -1;
 
 
 /* If ACT is not NULL, change the action for SIG to *ACT.
index 4cecb8d..fade020 100644 (file)
@@ -25,7 +25,7 @@ extern int __syscall_rt_sigpending (sigset_t *, size_t);
 
 
 /* The variable is shared between all wrappers around signal handling
-   functions which have RT equivalents.  It is defined in sigsuspend.c.  */
+   functions which have RT equivalents.  It is defined in sigaction.c.  */
 extern int __libc_have_rt_sigs;
 
 
index dc262c8..63889a6 100644 (file)
@@ -25,7 +25,7 @@ extern int __syscall_rt_sigprocmask (int, const sigset_t *, sigset_t *,
                                     size_t);
 
 /* The variable is shared between all wrappers around signal handling
-   functions which have RT equivalents.  It is defined in sigsuspend.c.  */
+   functions which have RT equivalents.  It is defined in sigaction.c.  */
 extern int __libc_have_rt_sigs;
 
 
index 2cf34eb..8d8fa8e 100644 (file)
@@ -25,8 +25,8 @@ extern int __syscall_rt_sigsuspend (const sigset_t *, size_t);
 
 
 /* The variable is shared between all wrappers around signal handling
-   functions which have RT equivalents.  */
-int __libc_have_rt_sigs = 1;
+   functions which have RT equivalents.  It is defined in sigaction.c.  */
+extern int __libc_have_rt_sigs;
 
 
 /* Change the set of blocked signals to SET,
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/mmap64.c
new file mode 100644 (file)
index 0000000..0dbd384
--- /dev/null
@@ -0,0 +1 @@
+/* mmap64 is the same as mmap. */
index 7e64daf..ca142da 100644 (file)
@@ -10,6 +10,7 @@ getrlimit     -       getrlimit       2       getrlimit       getrlimit64
 setrlimit      -       setrlimit       2       setrlimit       setrlimit64
 ftruncate      -       ftruncate       2       ftruncate       ftruncate64
 truncate       -       truncate        2       truncate        truncate64
+mmap           -       mmap            6       __mmap          mmap __mmap64 mmap64
 
 # Override select.S in parent directory:
 select         -       select          5       __select        select
index 0728095..bded904 100644 (file)
@@ -21,7 +21,7 @@
 # error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
 #endif
 
-#ifndef __need_FOPEN_MAX
+#ifdef _STDIO_H
 # define L_tmpnam 19
 # define TMP_MAX 238328
 
@@ -31,6 +31,9 @@
 # endif
 
 # define FILENAME_MAX  DEFAULT_FILENAME_MAX
+
+# undef __need_FOPEN_MAX
+# define __need_FOPEN_MAX
 #endif
 
 #if defined __need_FOPEN_MAX && !defined __defined_FOPEN_MAX
index 0ff5220..b37586a 100644 (file)
@@ -20,7 +20,9 @@
 #define _SYS_KD_H      1
 
 /* Make sure the <linux/types.h> header is not loaded.  */
-#define _LINUX_TYPES_H 1
+#ifndef _LINUX_TYPES_H
+# define _LINUX_TYPES_H        1
+#endif
 
 #include <linux/kd.h>
 
index e2434f1..70f95d0 100644 (file)
@@ -42,18 +42,20 @@ __BEGIN_DECLS
    deallocates any previous mapping for the affected region.  */
 
 extern __ptr_t __mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-                         int __flags, int __fd, __off_t __offset));
+                           int __flags, int __fd, __off_t __offset));
 #ifndef __USE_FILE_OFFSET64
 extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-                       int __flags, int __fd, __off_t __offset));
+                         int __flags, int __fd, __off_t __offset));
 #else
 extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot,
-                       int __flags, int __fd, __off_t __offset))
+                         int __flags, int __fd, __off64_t __offset))
      __asm__ ("mmap64");
 #endif
 #ifdef __USE_LARGEFILE64
+extern __ptr_t __mmap64 __P ((__ptr_t __addr, size_t __len, int __prot,
+                             int __flags, int __fd, __off64_t __offset));
 extern __ptr_t mmap64 __P ((__ptr_t __addr, size_t __len, int __prot,
-                         int __flags, int __fd, __off64_t __offset));
+                           int __flags, int __fd, __off64_t __offset));
 #endif
 
 /* Deallocate any mapping for the region starting at ADDR and extending LEN
diff --git a/sysdeps/wordsize-32/Dist b/sysdeps/wordsize-32/Dist
deleted file mode 100644 (file)
index 36bfb62..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-inttypes.h
-strtoimax.c
-strtoumax.c
-wcstoimax.c
-wcstoumax.c
diff --git a/sysdeps/wordsize-32/Makefile b/sysdeps/wordsize-32/Makefile
deleted file mode 100644 (file)
index b22eaee..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-ifeq ($(subdir),stdlib)
-sysdep_headers += inttypes.h
-
-sysdep_routines += strtoimax strtoumax wcstoimax wcstoumax
-endif
diff --git a/sysdeps/wordsize-64/Dist b/sysdeps/wordsize-64/Dist
deleted file mode 100644 (file)
index 36bfb62..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-inttypes.h
-strtoimax.c
-strtoumax.c
-wcstoimax.c
-wcstoumax.c
diff --git a/sysdeps/wordsize-64/Makefile b/sysdeps/wordsize-64/Makefile
deleted file mode 100644 (file)
index b22eaee..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-ifeq ($(subdir),stdlib)
-sysdep_headers += inttypes.h
-
-sysdep_routines += strtoimax strtoumax wcstoimax wcstoumax
-endif