]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 12 Feb 1998 18:22:41 +0000 (18:22 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 12 Feb 1998 18:22:41 +0000 (18:22 +0000)
1998-02-09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* sysdeps/unix/sysv/linux/syscalls.list: Don't mark lchown as
extra syscall.

* grp/Makefile: Fix logic when checking for thread package.
* pwd/Makefile: Likewise.

1998-02-11 08:23  H.J. Lu  <hjl@gnu.org>

* elf/Makefile (rtld-map): Replaced by libc-map.

* elf/rtld.map: Removed.

* libc.map (__libc_enable_secure, _dl_catch_error,
_dl_check_all_versions, _dl_debug_initialize, _dl_debug_state,
_dl_default_scope, _dl_global_scope_end, _dl_init_next,
_dl_lookup_symbol, _dl_map_object, _dl_map_object_deps,
_dl_object_relocation_scope, _dl_relocate_object,
_dl_signal_error, _dl_starting_up, _dl_sysdep_start,
_r_debug): Added for ld.so.

1998-02-10 08:38  H.J. Lu  <hjl@gnu.org>

* libio/iofclose.c: Check PIC && DO_VERSIONING instead of
DO_VERSIONING.
* libio/iofdopen.c: Ditto.
* libio/iofopen.c: Ditto.
* libio/oldfileops.c: Ditto.

* libc.map (sys_nerr, _sys_errlist, sys_errlist): Added for
version GLIBC_2.1.

* sysdeps/unix/sysv/linux/Makefile (stdio-common): Removed
oldsiglist from sysdep_routines and shared-only-routines.

* sysdeps/unix/sysv/linux/errlist.c: New.
* sysdeps/unix/sysv/linux/errlist.h: New.
* sysdeps/unix/sysv/linux/sizes.h: New.
* sysdeps/unix/sysv/linux/alpha/sizes.h: New.
* sysdeps/unix/sysv/linux/sparc64/sizes.h: New.

* sysdeps/unix/sysv/linux/oldsiglist.c: Removed.

* sysdeps/unix/sysv/linux/siglist.c: Include <sizes.h>.
(__old_sys_siglist, __old_sys_sigabbrev): Use ELF .size
directive.

* sysdeps/unix/sysv/linux/siglist.h (OLD_SIGLIST_SIZE_STR): New.

* sysdeps/unix/sysv/linux/Dist (errlist.h, sizes.h.): Added.
(oldsiglist.c): Removed.

* sysdeps/gnu/errlist.awk (SYS_SIGLIST, SYS_NERR): New.
(_sys_siglist): Use SYS_SIGLIST instead.
(_sys_nerr): Use SYS_NERR instead.

* sysdeps/gnu/errlist.c: Rebuilt.

1998-02-11 08:35  H.J. Lu  <hjl@gnu.org>

* elf/Makefile (others-static): New, set to ldconfig.
($(objpfx)ldconfig): Removed.

* Rules (binaries-all, binaries-static, binaries-shared): New.
Create targets for $(binaries-static) and $(binaries-shared).

* Makeconfig (+link-static, link-libc-static,
link-extra-libs-static): New for static linking.

25 files changed:
ChangeLog
Makeconfig
Rules
elf/Makefile
elf/rtld.map [deleted file]
grp/Makefile
libc.map
libio/iofclose.c
libio/iofdopen.c
libio/iofopen.c
libio/oldfileops.c
pwd/Makefile
sysdeps/gnu/errlist.awk
sysdeps/gnu/errlist.c
sysdeps/unix/sysv/linux/Dist
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/alpha/sizes.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/errlist.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/errlist.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/oldsiglist.c [deleted file]
sysdeps/unix/sysv/linux/siglist.c
sysdeps/unix/sysv/linux/siglist.h
sysdeps/unix/sysv/linux/sizes.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/syscalls.list

index f8dc3046920487cc41e9abe1096c61d999f833cc..b96b848ece77c56419e8b17a696bd1d09da64f7f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,73 @@
+1998-02-09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * sysdeps/unix/sysv/linux/syscalls.list: Don't mark lchown as
+       extra syscall.
+
+       * grp/Makefile: Fix logic when checking for thread package.
+       * pwd/Makefile: Likewise.
+
+1998-02-11 08:23  H.J. Lu  <hjl@gnu.org>
+
+       * elf/Makefile (rtld-map): Replaced by libc-map.
+
+       * elf/rtld.map: Removed.
+
+       * libc.map (__libc_enable_secure, _dl_catch_error,
+       _dl_check_all_versions, _dl_debug_initialize, _dl_debug_state,
+       _dl_default_scope, _dl_global_scope_end, _dl_init_next,
+       _dl_lookup_symbol, _dl_map_object, _dl_map_object_deps,
+       _dl_object_relocation_scope, _dl_relocate_object,
+       _dl_signal_error, _dl_starting_up, _dl_sysdep_start,
+       _r_debug): Added for ld.so.
+
+1998-02-10 08:38  H.J. Lu  <hjl@gnu.org>
+
+       * libio/iofclose.c: Check PIC && DO_VERSIONING instead of
+       DO_VERSIONING.
+       * libio/iofdopen.c: Ditto.
+       * libio/iofopen.c: Ditto.
+       * libio/oldfileops.c: Ditto.
+
+       * libc.map (sys_nerr, _sys_errlist, sys_errlist): Added for
+       version GLIBC_2.1.
+
+       * sysdeps/unix/sysv/linux/Makefile (stdio-common): Removed
+       oldsiglist from sysdep_routines and shared-only-routines.
+
+       * sysdeps/unix/sysv/linux/errlist.c: New.
+       * sysdeps/unix/sysv/linux/errlist.h: New.
+       * sysdeps/unix/sysv/linux/sizes.h: New.
+       * sysdeps/unix/sysv/linux/alpha/sizes.h: New.
+       * sysdeps/unix/sysv/linux/sparc64/sizes.h: New.
+
+       * sysdeps/unix/sysv/linux/oldsiglist.c: Removed.
+
+       * sysdeps/unix/sysv/linux/siglist.c: Include <sizes.h>.
+       (__old_sys_siglist, __old_sys_sigabbrev): Use ELF .size
+       directive.
+
+       * sysdeps/unix/sysv/linux/siglist.h (OLD_SIGLIST_SIZE_STR): New.
+
+       * sysdeps/unix/sysv/linux/Dist (errlist.h, sizes.h.): Added.
+       (oldsiglist.c): Removed.
+
+       * sysdeps/gnu/errlist.awk (SYS_SIGLIST, SYS_NERR): New.
+       (_sys_siglist): Use SYS_SIGLIST instead.
+       (_sys_nerr): Use SYS_NERR instead.
+
+       * sysdeps/gnu/errlist.c: Rebuilt.
+
+1998-02-11 08:35  H.J. Lu  <hjl@gnu.org>
+
+       * elf/Makefile (others-static): New, set to ldconfig.
+       ($(objpfx)ldconfig): Removed.
+
+       * Rules (binaries-all, binaries-static, binaries-shared): New.
+       Create targets for $(binaries-static) and $(binaries-shared).
+
+       * Makeconfig (+link-static, link-libc-static,
+       link-extra-libs-static): New for static linking.
+
 1998-02-11  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
 
        * manual/memory.texi (Using the Memory Debugger): Fix typo.
index 86109fce0b2b7a73f2960c226e668355d2967ad7..ab01f95df8457d41553fa1f9ab57778747288f54 100644 (file)
@@ -380,6 +380,18 @@ ifndef +link
                           $(common-objpfx)libc% $(+postinit),$^) \
              $(link-extra-libs) $(link-libc) $(+postctor) $(+postinit)
 endif
+# Command for statically linking programs with the C library.
+ifndef +link-static
++link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \
+             $(sysdep-LDFLAGS) $(LDFLAGS)  \
+             $(addprefix $(csu-objpfx),$(start-installed-name)) \
+             $(+preinit) $(+prector) \
+             $(filter-out $(addprefix $(csu-objpfx),start.o \
+                                                    $(start-installed-name))\
+                          $(+preinit) $(link-extra-libs-static) \
+                          $(common-objpfx)libc% $(+postinit),$^) \
+             $(link-extra-libs-static) $(link-libc-static) $(+postctor) $(+postinit)
+endif
 ifndef config-LDFLAGS
 ifeq (yes,$(build-shared))
 config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name)
@@ -425,6 +437,11 @@ else
 link-extra-libs = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).a)
 endif
 endif
+
+# The static libraries.
+link-libc-static = $(common-objpfx)libc.a $(gnulib) $(common-objpfx)libc.a
+link-extra-libs-static = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).a)
+
 ifndef gnulib
 gnulib := -lgcc
 endif
diff --git a/Rules b/Rules
index 90a518f8668fd21f2065ec528af138b39f7ddb32..a0086350f670bb8189f06023cf5dc052a824119e 100644 (file)
--- a/Rules
+++ b/Rules
@@ -94,19 +94,27 @@ tests: $(tests:%=$(objpfx)%.out)
 endif
 
 ifeq ($(build-programs),yes)
-ifneq "$(strip $(others) $(tests) $(test-srcs))" ""
-$(addprefix $(objpfx),$(others) $(tests) $(test-srcs)): %: %.o \
-  $(sort $(filter $(common-objpfx)libc%,$(link-libc))) \
-  $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
-       $(+link)
-endif
+binaries-all = $(others) $(tests) $(test-srcs)
+binaries-static = $(others-static) $(tests-static) $(test-srcs-static)
 else
-ifneq "$(strip $(tests) $(test-srcs))" ""
-$(addprefix $(objpfx),$(tests) $(test-srcs)): %: %.o \
+binaries-all = $(tests) $(test-srcs)
+binaries-static = $(tests-static) $(test-srcs-static)
+endif
+
+binaries-shared = $(filter-out $(binaries-static), $(binaries-all))
+
+ifneq "$(strip $(binaries-shared))" ""
+$(addprefix $(objpfx),$(binaries-shared)): %: %.o \
   $(sort $(filter $(common-objpfx)libc%,$(link-libc))) \
   $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
        $(+link)
 endif
+
+ifneq "$(strip $(binaries-static))" ""
+$(addprefix $(objpfx),$(binaries-static)): %: %.o \
+  $(sort $(filter $(common-objpfx)libc%,$(link-libc-static))) \
+  $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
+       $(+link-static)
 endif
 
 ifneq "$(strip $(tests) $(test-srcs))" ""
index eb3ff48cafd8cc49aef3a7e63b552ffe87fb470c..85dba53f9946121edac07bef1a24712206418869 100644 (file)
@@ -35,7 +35,6 @@ elide-routines.os = $(dl-routines) dl-support enbl-secure
 # ld.so uses those routines, plus some special stuff for being the program
 # interpreter and operating independent of libc.
 rtld-routines  := rtld $(dl-routines) dl-sysdep dl-minimal
-rtld-map       := rtld.map
 distribute     = $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \
                  dl-hash.h soinit.c sofini.c ldd.sh.in ldd.bash.in eval.c \
                  genrtldtbl.awk atomicity.h dl-procinfo.h
@@ -61,15 +60,9 @@ generated      += ldd
 endif
 
 ifeq (yes,$(has-ldconfig))
+others-static  += ldconfig
 others         += ldconfig
 install-rootsbin = ldconfig
-
-$(objpfx)ldconfig: $(objpfx)ldconfig.o
-       $(CC) -nostdlib -nostartfiles -o $@ $(sysdep-LDFLAGS) -static         \
-             $(addprefix $(csu-objpfx),start.o) $(+preinit)                  \
-             $(filter-out $(addprefix $(csu-objpfx),start.o) $(+preinit)     \
-               $(link-extra-libs) $(common-objpfx)libc% $(+postinit),$^)     \
-             $(link-extra-libs) $(common-objpfx)libc.a $(gnulib) $(+postinit)
 endif
 
 include ../Rules
@@ -114,7 +107,7 @@ define rtld-link
 $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
          -Wl,-rpath=$(default-rpath) $(LDFLAGS-rtld) \
          $(filter-out $(objpfx)rtld-ldscript,$^) \
-         -Wl,--version-script=$(rtld-map)
+         -Wl,--version-script=$(libc-map)
 endef
 else
 $(objpfx)ld.so: $(objpfx)librtld.os
@@ -123,7 +116,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os
 define rtld-link
 $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
          -Wl,-rpath=$(default-rpath) $^ \
-         -Wl,--version-script=$(rtld-map)
+         -Wl,--version-script=$(libc-map)
 endef
 endif
 
diff --git a/elf/rtld.map b/elf/rtld.map
deleted file mode 100644 (file)
index 8daf2aa..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-GLIBC_2.0 {
-  global:
-    # Not right, but I'll figure it out.
-    *;
-
-#  local:
-#    *;
-};
-
-GLIBC_2.1 {
-
-} GLIBC_2.0;
index 7f2734e0346c1f0fc6f6b23eb7ec9d09b3d64a5d..ac889218c12986c9fc8b02154c7abc85ea7e6384 100644 (file)
@@ -31,7 +31,7 @@ tests := testgrp
 include ../Rules
 
 # We can later add the names of other thread packages here.
-ifeq (,$(findstring linuxthreads,$(add-ons)))
+ifneq (,$(findstring linuxthreads,$(add-ons)))
 
 CFLAGS-getgrgid_r.c = -DUSE_NSCD=1
 CFLAGS-getgrnam_r.c = -DUSE_NSCD=1
index 15f6e6220535bc571e5eab2ede07d7a2ff23a754..9cd9646b21bfb7d8760f92111ea0c549ec4db40b 100644 (file)
--- a/libc.map
+++ b/libc.map
@@ -426,6 +426,14 @@ GLIBC_2.0 {
     xdrrec_endofrecord; xdrrec_eof; xdrrec_skiprecord; xdrstdio_create;
     xencrypt; xprt_register; xprt_unregister;
 
+    # Those are in the dynamic linker, but used by libc.so.
+    __libc_enable_secure; _dl_catch_error; _dl_check_all_versions;
+    _dl_debug_initialize; _dl_debug_state; _dl_default_scope;
+    _dl_global_scope_end; _dl_init_next; _dl_lookup_symbol;
+    _dl_map_object; _dl_map_object_deps; _dl_object_relocation_scope;
+    _dl_relocate_object; _dl_signal_error; _dl_starting_up;
+    _dl_sysdep_start; _r_debug;
+
   local:
     *;
 };
@@ -454,4 +462,6 @@ GLIBC_2.1 {
     getrusage;
     wait4;
 
+    # New errlist.
+    _sys_errlist; sys_errlist; sys_nerr;
 } GLIBC_2.0;
index 35a23fa6ae790ab5668920874c85ac0a727491c7..710042555678f64e7cd80a9ac09305430dfd8acf 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU IO Library.
 
    This library is free software; you can redistribute it and/or
@@ -53,7 +53,7 @@ _IO_new_fclose (fp)
   return status;
 }
 
-#ifdef DO_VERSIONING
+#if defined PIC && DO_VERSIONING
 strong_alias (_IO_new_fclose, __new_fclose)
 default_symbol_version (_IO_new_fclose, _IO_fclose, GLIBC_2.1);
 default_symbol_version (__new_fclose, fclose, GLIBC_2.1);
index 2ecbce3ad00fd2cfed0ca2f075c807e2e2bda76c..a51bc3c49a1df065c19af3d6d068684d99aa77e8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1994, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1994, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU IO Library.
 
    This library is free software; you can redistribute it and/or
@@ -129,7 +129,7 @@ _IO_new_fdopen (fd, mode)
   return (_IO_FILE *) &new_f->fp;
 }
 
-#ifdef DO_VERSIONING
+#if defined PIC && DO_VERSIONING
 strong_alias (_IO_new_fdopen, __new_fdopen)
 default_symbol_version (_IO_new_fdopen, _IO_fdopen, GLIBC_2.1);
 default_symbol_version (__new_fdopen, fdopen, GLIBC_2.1);
index 41da8f172195b92f1b56e9e9c73a077d1eb4b99c..e8f39ae9ac9a7abaec68cd0da18ee7df773251f1 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU IO Library.
 
    This library is free software; you can redistribute it and/or
@@ -59,7 +59,7 @@ _IO_new_fopen (filename, mode)
   return NULL;
 }
 
-#ifdef DO_VERSIONING
+#if defined PIC && DO_VERSIONING
 strong_alias (_IO_new_fopen, __new_fopen)
 default_symbol_version (_IO_new_fopen, _IO_fopen, GLIBC_2.1);
 default_symbol_version (__new_fopen, fopen, GLIBC_2.1);
index a8237c6887907532b86b354cee5990d4fd34c5a3..41fbc692e8f5a48643618651e0591b12e435a941 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU IO Library.
    Written by Per Bothner <bothner@cygnus.com>.
 
@@ -26,7 +26,7 @@
 
 /* This is a compatibility file.  If we don't build the libc with
    versioning don't compile this file.  */
-#if DO_VERSIONING
+#if defined PIC && DO_VERSIONING
 
 
 #ifndef _POSIX_SOURCE
@@ -719,4 +719,4 @@ struct _IO_jump_t _IO_old_file_jumps =
 };
 
 
-#endif /* DO_VERSIONING */
+#endif /* PIC && DO_VERSIONING */
index a5d0d5c15b63caf28d49c068cc5a0cbbd9ae8a52..6bb5b660052d4871702f56598614323c46dc7bdf 100644 (file)
@@ -29,7 +29,7 @@ routines := fgetpwent getpw putpwent \
 include ../Rules
 
 # We can later add the names of other thread packages here.
-ifeq (,$(findstring linuxthreads,$(add-ons)))
+ifneq (,$(findstring linuxthreads,$(add-ons)))
 
 CFLAGS-getpwuid_r.c = -DUSE_NSCD=1
 CFLAGS-getpwnam_r.c = -DUSE_NSCD=1
index cf7058e29358aa8ee6c26ceb5499ce3e9927a56e..6e9ad4596682ba4539470423934b65c82ad7613e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+# Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,14 @@ BEGIN {
     print "";
     print "#include <errno.h>";
     print "";
-    print "const char *const _sys_errlist[] =";
+    print "#ifndef SYS_ERRLIST";
+    print "# define SYS_ERRLIST _sys_errlist";
+    print "#endif";
+    print "#ifndef SYS_NERR";
+    print "# define SYS_NERR _sys_nerr";
+    print "#endif";
+    print "";
+    print "const char *const SYS_ERRLIST[] =";
     print "  {";
     print "    [0] = N_(\"Success\"),"
   }
@@ -77,7 +84,9 @@ errnoh == 4 \
 END {
   print "  };";
   print "";
-  print "const int _sys_nerr = sizeof _sys_errlist / sizeof _sys_errlist[0];";
+  print "const int SYS_NERR = sizeof SYS_ERRLIST / sizeof SYS_ERRLIST [0];";
+  print "#ifndef PIC";
   print "weak_alias (_sys_errlist, sys_errlist)";
   print "weak_alias (_sys_nerr, sys_nerr)";
+  print "#endif";
   }
index 7c0e78abf029b75cd36d8cf2332c30a6650a073c..0d12cb32c99798498027ab7ec7987467c6278cac 100644 (file)
@@ -2,7 +2,14 @@
 
 #include <errno.h>
 
-const char *const _sys_errlist[] =
+#ifndef SYS_ERRLIST
+# define SYS_ERRLIST _sys_errlist
+#endif
+#ifndef SYS_NERR
+# define SYS_NERR _sys_nerr
+#endif
+
+const char *const SYS_ERRLIST[] =
   {
     [0] = N_("Success"),
 #ifdef EPERM
@@ -807,6 +814,8 @@ TRANS This error code has no purpose. */
 #endif
   };
 
-const int _sys_nerr = sizeof _sys_errlist / sizeof _sys_errlist[0];
+const int SYS_NERR = sizeof SYS_ERRLIST / sizeof SYS_ERRLIST [0];
+#ifndef PIC
 weak_alias (_sys_errlist, sys_errlist)
 weak_alias (_sys_nerr, sys_nerr)
+#endif
index c1b6ec91c2188caa566ce8815069ea446a9768fb..383f6170675d174b758a5eec148f927504e5f411 100644 (file)
@@ -1,14 +1,15 @@
 stdio_lim.h.in
 cmsg_nxthdr.c
+errlist.h
 init-first.h
 kernel_sigaction.h
 kernel_stat.h
 kernel_termios.h
 llseek.c
-oldsiglist.c
 s_pread64.c
 s_pwrite64.c
 siglist.h
+sizes.h
 socketcall.h
 sysctl.c
 termio.h
index 5173b2122d4e9d6248f677d9b37b0b9fff9e66b8..e08089e0223562672394ed22fd922a3ac866b5e2 100644 (file)
@@ -67,12 +67,6 @@ endif
 ifeq ($(subdir),stdio-common)
 # Just disable the auto generation in sysdeps/generic
 inhibit-siglist := yes
-
-ifeq ($(versioning),yes)
-sysdep_routines += oldsiglist
-endif
-
-shared-only-routines += oldsiglist
 endif
 
 ifeq ($(subdir),inet)
diff --git a/sysdeps/unix/sysv/linux/alpha/sizes.h b/sysdeps/unix/sysv/linux/alpha/sizes.h
new file mode 100644 (file)
index 0000000..a133586
--- /dev/null
@@ -0,0 +1,24 @@
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU 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 _SIZES_H
+#define _SIZES_H       1
+
+#define PTR_SIZE_STR "8"
+
+#endif /* sizes.h */
diff --git a/sysdeps/unix/sysv/linux/errlist.c b/sysdeps/unix/sysv/linux/errlist.c
new file mode 100644 (file)
index 0000000..7349d67
--- /dev/null
@@ -0,0 +1,58 @@
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU 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 <sizes.h>
+#include <errlist.h>
+
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+
+# define SYS_ERRLIST __new_sys_errlist
+# define SYS_NERR __new_sys_nerr
+
+asm (".data; .globl __old_sys_errlist;  __old_sys_errlist:");
+#endif
+
+#include <sysdeps/gnu/errlist.c>
+
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+asm (".type __old_sys_errlist,@object;.size __old_sys_errlist,"
+     OLD_ERRLIST_SIZE_STR "*" PTR_SIZE_STR);
+
+extern const char *const *__old_sys_errlist;
+
+const int __old_sys_nerr = OLD_ERRLIST_SIZE;
+
+strong_alias (__old_sys_nerr, _old_sys_nerr);
+symbol_version (__old_sys_nerr, _sys_nerr, GLIBC_2.0);
+symbol_version (_old_sys_nerr, sys_nerr, GLIBC_2.0);
+strong_alias (__old_sys_errlist, _old_sys_errlist);
+symbol_version (__old_sys_errlist, _sys_errlist, GLIBC_2.0);
+symbol_version (_old_sys_errlist, sys_errlist, GLIBC_2.0);
+
+strong_alias (__new_sys_nerr, _new_sys_nerr)
+#if 0
+default_symbol_version (__new_sys_nerr, _sys_nerr, GLIBC_2.1);
+#else
+strong_alias (__new_sys_nerr, _sys_nerr);
+#endif
+default_symbol_version (_new_sys_nerr, sys_nerr, GLIBC_2.1);
+strong_alias (__new_sys_errlist, _new_sys_errlist)
+default_symbol_version (__new_sys_errlist, _sys_errlist, GLIBC_2.1);
+default_symbol_version (_new_sys_errlist, sys_errlist, GLIBC_2.1);
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/errlist.h b/sysdeps/unix/sysv/linux/errlist.h
new file mode 100644 (file)
index 0000000..a58e9ea
--- /dev/null
@@ -0,0 +1,25 @@
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU 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 _ERRLIST_H
+#define _ERRLIST_H     1
+
+#define OLD_ERRLIST_SIZE_STR   "123"
+#define OLD_ERRLIST_SIZE       123
+
+#endif /* errlist.h */
diff --git a/sysdeps/unix/sysv/linux/oldsiglist.c b/sysdeps/unix/sysv/linux/oldsiglist.c
deleted file mode 100644 (file)
index e9c933f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <stddef.h>
-#include <signal.h>
-
-const char * const __old_sys_siglist[32] =
-{
-#define init_sig(sig, abbrev, desc)   [sig] desc,
-#include "siglist.h"
-#undef init_sig
-};
-
-const char * const __old_sys_sigabbrev[32] =
-{
-#define init_sig(sig, abbrev, desc)   [sig] abbrev,
-#include "siglist.h"
-#undef init_sig
-};
-
-strong_alias (__old_sys_siglist, _old_sys_siglist)
-symbol_version (__old_sys_siglist, _sys_siglist, GLIBC_2.0);
-symbol_version (_old_sys_siglist, sys_siglist, GLIBC_2.0);
-symbol_version (__old_sys_sigabbrev, sys_sigabbrev, GLIBC_2.0);
index a10b273db09170011af5f9c1e746e73c9342c7ad..d14a1b92f126809532439aff81e5c59dcd2c47f1 100644 (file)
 
 #include <stddef.h>
 #include <signal.h>
+#include <sizes.h>
 
-const char * const __new_sys_siglist[NSIG] =
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+# define SYS_SIGLIST   __new_sys_siglist
+# define SYS_SIGABBREV __new_sys_sigabbrev
+#else
+# define SYS_SIGLIST   _sys_siglist
+# define SYS_SIGABBREV _sys_sigabbrev
+#endif
+
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+asm (".data; .globl __old_sys_siglist;  __old_sys_siglist:");
+#endif
+
+const char *const SYS_SIGLIST[NSIG] =
 {
 #define init_sig(sig, abbrev, desc)   [sig] desc,
 #include "siglist.h"
 #undef init_sig
 };
 
-const char * const __new_sys_sigabbrev[NSIG] =
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+asm (".type __old_sys_siglist,@object;.size __old_sys_siglist,"
+        OLD_SIGLIST_SIZE_STR "*" PTR_SIZE_STR);
+
+asm (".data; .globl __old_sys_sigabbrev;  __old_sys_sigabbrev:");
+#endif
+
+const char *const SYS_SIGABBREV[NSIG] =
 {
 #define init_sig(sig, abbrev, desc)   [sig] abbrev,
 #include "siglist.h"
 #undef init_sig
 };
 
-#ifdef DO_VERSIONING
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+asm (".type __old_sys_sigabbrev,@object;.size __old_sys_sigabbrev,"
+        OLD_SIGLIST_SIZE_STR "*" PTR_SIZE_STR);
+
+extern const char *const *__old_sys_siglist;
+extern const char *const *__old_sys_sigabbrev;
+
+strong_alias (__old_sys_siglist, _old_sys_siglist)
+symbol_version (__old_sys_siglist, _sys_siglist, GLIBC_2.0);
+symbol_version (_old_sys_siglist, sys_siglist, GLIBC_2.0);
+symbol_version (__old_sys_sigabbrev, sys_sigabbrev, GLIBC_2.0);
+
 strong_alias (__new_sys_siglist, _new_sys_siglist)
 default_symbol_version (__new_sys_siglist, _sys_siglist, GLIBC_2.1);
 default_symbol_version (_new_sys_siglist, sys_siglist, GLIBC_2.1);
 default_symbol_version (__new_sys_sigabbrev, sys_sigabbrev, GLIBC_2.1);
 #else
-weak_alias(__new_sys_siglist, _sys_siglist)
-weak_alias(__new_sys_siglist, sys_siglist)
-weak_alias(__new_sys_sigabbrev, sys_sigabbrev)
+weak_alias (_sys_siglist, sys_siglist)
+weak_alias (_sys_sigabbrev, sys_sigabbrev)
 #endif
index c2bf2331d7af6e8bbc250ba0bbedc644fa396cbe..63c716cfcb32955a58bbfd377e8933e746ea7d0d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -63,3 +63,5 @@
 #elif defined(SIGPWR)
   init_sig (SIGPWR, "PWR", N_("Power failure"))
 #endif
+
+#define        OLD_SIGLIST_SIZE_STR    "32"
diff --git a/sysdeps/unix/sysv/linux/sizes.h b/sysdeps/unix/sysv/linux/sizes.h
new file mode 100644 (file)
index 0000000..81011eb
--- /dev/null
@@ -0,0 +1,24 @@
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU 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 _SIZES_H
+#define _SIZES_H       1
+
+#define PTR_SIZE_STR "4"
+
+#endif /* sizes.h */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
new file mode 100644 (file)
index 0000000..a133586
--- /dev/null
@@ -0,0 +1,24 @@
+/* Copyright (C) 1998 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU 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 _SIZES_H
+#define _SIZES_H       1
+
+#define PTR_SIZE_STR "8"
+
+#endif /* sizes.h */
index 6bcd6dab1886b623e7f31a500cf2bb6a8a864b37..f55c3f6fffa707c7904ce6a6c18672033fa8eee7 100644 (file)
@@ -19,7 +19,7 @@ ioperm                -       ioperm          3       ioperm
 iopl           -       iopl            1       iopl
 ipc            msgget  ipc             5       __ipc
 klogctl                EXTRA   syslog          3       klogctl
-lchown         EXTRA   lchown          3       __lchown        lchown
+lchown         -       lchown          3       __lchown        lchown
 mlock          EXTRA   mlock           2       __mlock mlock
 mlockall       EXTRA   mlockall        1       __mlockall      mlockall
 mount          EXTRA   mount           5       __mount mount