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.
This commit is contained in:
Ulrich Drepper 1998-02-12 18:22:41 +00:00
parent 241b119df7
commit e15867921d
25 changed files with 347 additions and 82 deletions

View File

@ -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> 1998-02-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/memory.texi (Using the Memory Debugger): Fix typo. * manual/memory.texi (Using the Memory Debugger): Fix typo.

View File

@ -380,6 +380,18 @@ ifndef +link
$(common-objpfx)libc% $(+postinit),$^) \ $(common-objpfx)libc% $(+postinit),$^) \
$(link-extra-libs) $(link-libc) $(+postctor) $(+postinit) $(link-extra-libs) $(link-libc) $(+postctor) $(+postinit)
endif 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 ifndef config-LDFLAGS
ifeq (yes,$(build-shared)) ifeq (yes,$(build-shared))
config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name) 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) link-extra-libs = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).a)
endif endif
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 ifndef gnulib
gnulib := -lgcc gnulib := -lgcc
endif endif

24
Rules
View File

@ -94,19 +94,27 @@ tests: $(tests:%=$(objpfx)%.out)
endif endif
ifeq ($(build-programs),yes) ifeq ($(build-programs),yes)
ifneq "$(strip $(others) $(tests) $(test-srcs))" "" binaries-all = $(others) $(tests) $(test-srcs)
$(addprefix $(objpfx),$(others) $(tests) $(test-srcs)): %: %.o \ binaries-static = $(others-static) $(tests-static) $(test-srcs-static)
$(sort $(filter $(common-objpfx)libc%,$(link-libc))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
$(+link)
endif
else else
ifneq "$(strip $(tests) $(test-srcs))" "" binaries-all = $(tests) $(test-srcs)
$(addprefix $(objpfx),$(tests) $(test-srcs)): %: %.o \ 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))) \ $(sort $(filter $(common-objpfx)libc%,$(link-libc))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit) $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
$(+link) $(+link)
endif 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 endif
ifneq "$(strip $(tests) $(test-srcs))" "" ifneq "$(strip $(tests) $(test-srcs))" ""

View 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 # ld.so uses those routines, plus some special stuff for being the program
# interpreter and operating independent of libc. # interpreter and operating independent of libc.
rtld-routines := rtld $(dl-routines) dl-sysdep dl-minimal 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 \ 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 \ dl-hash.h soinit.c sofini.c ldd.sh.in ldd.bash.in eval.c \
genrtldtbl.awk atomicity.h dl-procinfo.h genrtldtbl.awk atomicity.h dl-procinfo.h
@ -61,15 +60,9 @@ generated += ldd
endif endif
ifeq (yes,$(has-ldconfig)) ifeq (yes,$(has-ldconfig))
others-static += ldconfig
others += ldconfig others += ldconfig
install-rootsbin = 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 endif
include ../Rules include ../Rules
@ -114,7 +107,7 @@ define rtld-link
$(LINK.o) -nostdlib -nostartfiles -shared -o $@ \ $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
-Wl,-rpath=$(default-rpath) $(LDFLAGS-rtld) \ -Wl,-rpath=$(default-rpath) $(LDFLAGS-rtld) \
$(filter-out $(objpfx)rtld-ldscript,$^) \ $(filter-out $(objpfx)rtld-ldscript,$^) \
-Wl,--version-script=$(rtld-map) -Wl,--version-script=$(libc-map)
endef endef
else else
$(objpfx)ld.so: $(objpfx)librtld.os $(objpfx)ld.so: $(objpfx)librtld.os
@ -123,7 +116,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os
define rtld-link define rtld-link
$(LINK.o) -nostdlib -nostartfiles -shared -o $@ \ $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
-Wl,-rpath=$(default-rpath) $^ \ -Wl,-rpath=$(default-rpath) $^ \
-Wl,--version-script=$(rtld-map) -Wl,--version-script=$(libc-map)
endef endef
endif endif

View File

@ -1,12 +0,0 @@
GLIBC_2.0 {
global:
# Not right, but I'll figure it out.
*;
# local:
# *;
};
GLIBC_2.1 {
} GLIBC_2.0;

View File

@ -31,7 +31,7 @@ tests := testgrp
include ../Rules include ../Rules
# We can later add the names of other thread packages here. # 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-getgrgid_r.c = -DUSE_NSCD=1
CFLAGS-getgrnam_r.c = -DUSE_NSCD=1 CFLAGS-getgrnam_r.c = -DUSE_NSCD=1

View File

@ -426,6 +426,14 @@ GLIBC_2.0 {
xdrrec_endofrecord; xdrrec_eof; xdrrec_skiprecord; xdrstdio_create; xdrrec_endofrecord; xdrrec_eof; xdrrec_skiprecord; xdrstdio_create;
xencrypt; xprt_register; xprt_unregister; 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: local:
*; *;
}; };
@ -454,4 +462,6 @@ GLIBC_2.1 {
getrusage; getrusage;
wait4; wait4;
# New errlist.
_sys_errlist; sys_errlist; sys_nerr;
} GLIBC_2.0; } GLIBC_2.0;

View 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 file is part of the GNU IO Library.
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
@ -53,7 +53,7 @@ _IO_new_fclose (fp)
return status; return status;
} }
#ifdef DO_VERSIONING #if defined PIC && DO_VERSIONING
strong_alias (_IO_new_fclose, __new_fclose) strong_alias (_IO_new_fclose, __new_fclose)
default_symbol_version (_IO_new_fclose, _IO_fclose, GLIBC_2.1); default_symbol_version (_IO_new_fclose, _IO_fclose, GLIBC_2.1);
default_symbol_version (__new_fclose, fclose, GLIBC_2.1); default_symbol_version (__new_fclose, fclose, GLIBC_2.1);

View 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 file is part of the GNU IO Library.
This library is free software; you can redistribute it and/or 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; return (_IO_FILE *) &new_f->fp;
} }
#ifdef DO_VERSIONING #if defined PIC && DO_VERSIONING
strong_alias (_IO_new_fdopen, __new_fdopen) strong_alias (_IO_new_fdopen, __new_fdopen)
default_symbol_version (_IO_new_fdopen, _IO_fdopen, GLIBC_2.1); default_symbol_version (_IO_new_fdopen, _IO_fdopen, GLIBC_2.1);
default_symbol_version (__new_fdopen, fdopen, GLIBC_2.1); default_symbol_version (__new_fdopen, fdopen, GLIBC_2.1);

View 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 file is part of the GNU IO Library.
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
@ -59,7 +59,7 @@ _IO_new_fopen (filename, mode)
return NULL; return NULL;
} }
#ifdef DO_VERSIONING #if defined PIC && DO_VERSIONING
strong_alias (_IO_new_fopen, __new_fopen) strong_alias (_IO_new_fopen, __new_fopen)
default_symbol_version (_IO_new_fopen, _IO_fopen, GLIBC_2.1); default_symbol_version (_IO_new_fopen, _IO_fopen, GLIBC_2.1);
default_symbol_version (__new_fopen, fopen, GLIBC_2.1); default_symbol_version (__new_fopen, fopen, GLIBC_2.1);

View 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 file is part of the GNU IO Library.
Written by Per Bothner <bothner@cygnus.com>. Written by Per Bothner <bothner@cygnus.com>.
@ -26,7 +26,7 @@
/* This is a compatibility file. If we don't build the libc with /* This is a compatibility file. If we don't build the libc with
versioning don't compile this file. */ versioning don't compile this file. */
#if DO_VERSIONING #if defined PIC && DO_VERSIONING
#ifndef _POSIX_SOURCE #ifndef _POSIX_SOURCE
@ -719,4 +719,4 @@ struct _IO_jump_t _IO_old_file_jumps =
}; };
#endif /* DO_VERSIONING */ #endif /* PIC && DO_VERSIONING */

View File

@ -29,7 +29,7 @@ routines := fgetpwent getpw putpwent \
include ../Rules include ../Rules
# We can later add the names of other thread packages here. # 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-getpwuid_r.c = -DUSE_NSCD=1
CFLAGS-getpwnam_r.c = -DUSE_NSCD=1 CFLAGS-getpwnam_r.c = -DUSE_NSCD=1

View 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. # This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or # The GNU C Library is free software; you can redistribute it and/or
@ -32,7 +32,14 @@ BEGIN {
print ""; print "";
print "#include <errno.h>"; print "#include <errno.h>";
print ""; 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 " {";
print " [0] = N_(\"Success\")," print " [0] = N_(\"Success\"),"
} }
@ -77,7 +84,9 @@ errnoh == 4 \
END { END {
print " };"; print " };";
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_errlist, sys_errlist)";
print "weak_alias (_sys_nerr, sys_nerr)"; print "weak_alias (_sys_nerr, sys_nerr)";
print "#endif";
} }

View File

@ -2,7 +2,14 @@
#include <errno.h> #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"), [0] = N_("Success"),
#ifdef EPERM #ifdef EPERM
@ -807,6 +814,8 @@ TRANS This error code has no purpose. */
#endif #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_errlist, sys_errlist)
weak_alias (_sys_nerr, sys_nerr) weak_alias (_sys_nerr, sys_nerr)
#endif

View File

@ -1,14 +1,15 @@
stdio_lim.h.in stdio_lim.h.in
cmsg_nxthdr.c cmsg_nxthdr.c
errlist.h
init-first.h init-first.h
kernel_sigaction.h kernel_sigaction.h
kernel_stat.h kernel_stat.h
kernel_termios.h kernel_termios.h
llseek.c llseek.c
oldsiglist.c
s_pread64.c s_pread64.c
s_pwrite64.c s_pwrite64.c
siglist.h siglist.h
sizes.h
socketcall.h socketcall.h
sysctl.c sysctl.c
termio.h termio.h

View File

@ -67,12 +67,6 @@ endif
ifeq ($(subdir),stdio-common) ifeq ($(subdir),stdio-common)
# Just disable the auto generation in sysdeps/generic # Just disable the auto generation in sysdeps/generic
inhibit-siglist := yes inhibit-siglist := yes
ifeq ($(versioning),yes)
sysdep_routines += oldsiglist
endif
shared-only-routines += oldsiglist
endif endif
ifeq ($(subdir),inet) ifeq ($(subdir),inet)

View File

@ -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 */

View File

@ -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

View File

@ -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 */

View File

@ -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);

View File

@ -18,28 +18,58 @@
#include <stddef.h> #include <stddef.h>
#include <signal.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, #define init_sig(sig, abbrev, desc) [sig] desc,
#include "siglist.h" #include "siglist.h"
#undef init_sig #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, #define init_sig(sig, abbrev, desc) [sig] abbrev,
#include "siglist.h" #include "siglist.h"
#undef init_sig #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) 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_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); default_symbol_version (__new_sys_sigabbrev, sys_sigabbrev, GLIBC_2.1);
#else #else
weak_alias(__new_sys_siglist, _sys_siglist) weak_alias (_sys_siglist, sys_siglist)
weak_alias(__new_sys_siglist, sys_siglist) weak_alias (_sys_sigabbrev, sys_sigabbrev)
weak_alias(__new_sys_sigabbrev, sys_sigabbrev)
#endif #endif

View 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -63,3 +63,5 @@
#elif defined(SIGPWR) #elif defined(SIGPWR)
init_sig (SIGPWR, "PWR", N_("Power failure")) init_sig (SIGPWR, "PWR", N_("Power failure"))
#endif #endif
#define OLD_SIGLIST_SIZE_STR "32"

View File

@ -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 */

View File

@ -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 */

View File

@ -19,7 +19,7 @@ ioperm - ioperm 3 ioperm
iopl - iopl 1 iopl iopl - iopl 1 iopl
ipc msgget ipc 5 __ipc ipc msgget ipc 5 __ipc
klogctl EXTRA syslog 3 klogctl klogctl EXTRA syslog 3 klogctl
lchown EXTRA lchown 3 __lchown lchown lchown - lchown 3 __lchown lchown
mlock EXTRA mlock 2 __mlock mlock mlock EXTRA mlock 2 __mlock mlock
mlockall EXTRA mlockall 1 __mlockall mlockall mlockall EXTRA mlockall 1 __mlockall mlockall
mount EXTRA mount 5 __mount mount mount EXTRA mount 5 __mount mount