about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rw-r--r--sysdeps/generic/Makefile23
-rw-r--r--sysdeps/generic/make_siglist.c66
-rw-r--r--sysdeps/generic/siglist.c41
-rw-r--r--sysdeps/generic/siglist.h (renamed from sysdeps/gnu/siglist.h)6
5 files changed, 39 insertions, 111 deletions
diff --git a/ChangeLog b/ChangeLog
index 1829670edc..1ebe486af8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 1999-06-19  Roland McGrath  <roland@baalperazim.frob.com>
 
+	* 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 <siglist.h>.  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  <roland@baalperazim.frob.com>
+
 	* sysdeps/unix/sysv/linux/siglist.c: Moved to ...
 	* sysdeps/gnu/siglist.c: ... here.
 	Use <siglist.h> 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 <stdio.h>
-
-/* 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 <signal.h>
-
-/* 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 <stddef.h>\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 <stddef.h>
+#include <signal.h>
+#include <libintl.h>
 
-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 <siglist.h>
+#undef init_sig
+};
+
+
+const char *const _sys_sigabbrev[NSIG] =
+{
+#define init_sig(sig, abbrev, desc)   [sig] abbrev,
+#include <siglist.h>
+#undef init_sig
+};
diff --git a/sysdeps/gnu/siglist.h b/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 <bits/signum.h> (via <signal.h>).  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  */