diff --git a/ChangeLog b/ChangeLog index 1829670edc..1ebe486af8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ 1999-06-19 Roland McGrath + * sysdeps/gnu/siglist.h: File moved to ... + * sysdeps/generic/siglist.h: ... here. This file should be usable for + any platform, since it just associates the SIG* macros with text names + and descriptions. For any signal macros do not exist on every + platform, we can use #ifdef tests here and still use this single + common file for all platforms. + * sysdeps/generic/siglist.c: Rewrite using . This file + should be usable for all platforms after the binary compatibility + stuff in the current sysdeps/gnu version is no longer required. + * sysdeps/generic/Makefile: Remove rules for generating siglist.c. + * sysdeps/generic/make_siglist.c: File removed. + +1999-06-16 Roland McGrath + * sysdeps/unix/sysv/linux/siglist.c: Moved to ... * sysdeps/gnu/siglist.c: ... here. Use instead of "siglist.h", to ensure sysdeps-search. diff --git a/sysdeps/generic/Makefile b/sysdeps/generic/Makefile index 4d6c60447a..fbf2f49f02 100644 --- a/sysdeps/generic/Makefile +++ b/sysdeps/generic/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1992, 93, 94, 95, 96, 97 Free Software Foundation, Inc. +# Copyright (C) 1992,93,94,95,96,97,99 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 @@ -31,27 +31,6 @@ common-generated := $(common-generated) bits/endian.h det_endian endif -ifeq ($(subdir),stdio-common) -ifneq ($(inhibit-siglist),yes) -ifneq ($(cross-compiling),yes) -ifeq "$(filter %siglist.c,$(before-compile))" "" -before-compile := $(before-compile) $(objpfx)siglist.c -$(objpfx)siglist.c: $(objpfx)make_siglist - @rm -f $@ - $(dir $<)$(notdir $<) > $@-tmp - mv $@-tmp $@ - -make_siglist-CFLAGS = -DSIGNUM_H=\"$(shell pwd)/$(firstword $(wildcard \ - $(+sysdep_dirs:%=%/bits/signum.h)))\" -$(objpfx)make_siglist: $(sysdep_dir)/generic/make_siglist.c - $(native-compile) - -generated := $(generated) make_siglist siglist.c -endif -endif -endif -endif - ifeq ($(subdir),string) CFLAGS-wordcopy.c += -Wno-uninitialized endif diff --git a/sysdeps/generic/make_siglist.c b/sysdeps/generic/make_siglist.c deleted file mode 100644 index 2cfd4988dd..0000000000 --- a/sysdeps/generic/make_siglist.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright (C) 1991, 92, 93, 94, 95, 97 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 - -/* Include signal.h now so that we can safely reinclude it again in - signame.c later on. We completely override the definitions, we - just have to be sure that the include guard in signal.h keeps it - from redefining the signal values. */ -#include - -/* Get this configuration's defns of the signal numbers. */ -#undef _SIGNAL_H -#define _SIGNAL_H 1 -#include SIGNUM_H - -/* Make a definition for sys_siglist. */ - - -#undef HAVE_SYS_SIGLIST -#define HAVE_STRSIGNAL -#define HAVE_PSIGNAL -#define sys_siglist my_siglist /* Avoid clash with signal.h. */ - -#undef NSIG -#define NSIG _NSIG /* make sure that the value from SIGNUM_H is used. */ - -#include "signame.c" - - -int -main() -{ - register int i; - - signame_init (); - - puts ("#include \n"); - - puts ("\n/* This is a list of all known signal numbers. */"); - - puts ("\nconst char *const _sys_siglist[] =\n {"); - - for (i = 0; i < NSIG; ++i) - printf (" \"%s\",\n", sys_siglist[i]); - - puts (" NULL\n };\n"); - - puts ("weak_alias (_sys_siglist, sys_siglist)"); - exit (0); -} diff --git a/sysdeps/generic/siglist.c b/sysdeps/generic/siglist.c index ae03b1f73c..7ee6d52030 100644 --- a/sysdeps/generic/siglist.c +++ b/sysdeps/generic/siglist.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1991, 1997 Free Software Foundation, Inc. +/* Define list of all signal numbers and their names. + Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -17,26 +18,20 @@ Boston, MA 02111-1307, USA. */ #include +#include +#include -const char *const _sys_siglist[] = - { - "Signal 0", - "Aborted", - "Erroneous arithmetic operation", - "Illegal instruction", - "Interrupt", - "Invalid access to storage", - "Terminated", - "Hangup", - "Quit", - "Broken pipe", - "Killed", - "Alarm clock", - "Stopped (signal)", - "Stopped", - "Continued", - "Child exited", - "Stopped (tty input)", - "Stopped (tty output)", - NULL - }; +const char *const _sys_siglist[NSIG] = +{ +#define init_sig(sig, abbrev, desc) [sig] desc, +#include +#undef init_sig +}; + + +const char *const _sys_sigabbrev[NSIG] = +{ +#define init_sig(sig, abbrev, desc) [sig] abbrev, +#include +#undef init_sig +}; diff --git a/sysdeps/gnu/siglist.h b/sysdeps/generic/siglist.h similarity index 89% rename from sysdeps/gnu/siglist.h rename to sysdeps/generic/siglist.h index 7fb41adf6d..c5867bccef 100644 --- a/sysdeps/gnu/siglist.h +++ b/sysdeps/generic/siglist.h @@ -17,6 +17,12 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* This file should be usable for any platform, since it just associates + the SIG* macros with text names and descriptions. The actual values + come from (via ). For any signal macros do not + exist on every platform, we can use #ifdef tests here and still use + this single common file for all platforms. */ + /* This file is included multiple times. */ /* Standard signals */