about summary refs log tree commit diff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1999-06-19 12:40:14 +0000
committerRoland McGrath <roland@gnu.org>1999-06-19 12:40:14 +0000
commita901ffa236a6170adc61e0b98f5a15f675ed9462 (patch)
treea6dde15fe88b37b2bc29ce2ed1f0357c423fd596 /sysdeps/generic
parent79ede0e6148c6a566bc8ab3479fd4264d1ad62ba (diff)
downloadglibc-a901ffa236a6170adc61e0b98f5a15f675ed9462.tar.gz
glibc-a901ffa236a6170adc61e0b98f5a15f675ed9462.tar.xz
glibc-a901ffa236a6170adc61e0b98f5a15f675ed9462.zip
* 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>
Diffstat (limited to 'sysdeps/generic')
-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.h75
4 files changed, 94 insertions, 111 deletions
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/generic/siglist.h b/sysdeps/generic/siglist.h
new file mode 100644
index 0000000000..c5867bccef
--- /dev/null
+++ b/sysdeps/generic/siglist.h
@@ -0,0 +1,75 @@
+/* Canonical list of all signal names.
+   Copyright (C) 1996,97,98,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
+   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.  */
+
+/* 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  */
+  init_sig (SIGHUP, "HUP", N_("Hangup"))
+  init_sig (SIGINT, "INT", N_("Interrupt"))
+  init_sig (SIGQUIT, "QUIT", N_("Quit"))
+  init_sig (SIGILL, "ILL", N_("Illegal instruction"))
+  init_sig (SIGTRAP, "TRAP", N_("Trace/breakpoint trap"))
+  init_sig (SIGABRT, "ABRT", N_("Aborted"))
+  init_sig (SIGFPE, "FPE", N_("Floating point exception"))
+  init_sig (SIGKILL, "KILL", N_("Killed"))
+  init_sig (SIGBUS, "BUS", N_("Bus error"))
+  init_sig (SIGSEGV, "SEGV", N_("Segmentation fault"))
+  init_sig (SIGPIPE, "PIPE", N_("Broken pipe"))
+  init_sig (SIGALRM, "ALRM", N_("Alarm clock"))
+  init_sig (SIGTERM, "TERM", N_("Terminated"))
+  init_sig (SIGURG, "URG", N_("Urgent I/O condition"))
+  init_sig (SIGSTOP, "STOP", N_("Stopped (signal)"))
+  init_sig (SIGTSTP, "TSTP", N_("Stopped"))
+  init_sig (SIGCONT, "CONT", N_("Continued"))
+  init_sig (SIGCHLD, "CHLD", N_("Child exited"))
+  init_sig (SIGTTIN, "TTIN", N_("Stopped (tty input)"))
+  init_sig (SIGTTOU, "TTOU", N_("Stopped (tty output)"))
+  init_sig (SIGIO, "IO", N_("I/O possible"))
+  init_sig (SIGXCPU, "XCPU", N_("CPU time limit exceeded"))
+  init_sig (SIGXFSZ, "XFSZ", N_("File size limit exceeded"))
+  init_sig (SIGVTALRM, "VTALRM", N_("Virtual timer expired"))
+  init_sig (SIGPROF, "PROF", N_("Profiling timer expired"))
+  init_sig (SIGWINCH, "WINCH", N_("Window changed"))
+  init_sig (SIGUSR1, "USR1", N_("User defined signal 1"))
+  init_sig (SIGUSR2, "USR2", N_("User defined signal 2"))
+
+/* Variations  */
+#ifdef SIGEMT
+  init_sig (SIGEMT, "EMT", N_("EMT trap"))
+#endif
+#ifdef SIGSYS
+  init_sig (SIGSYS, "SYS", N_("Bad system call"))
+#endif
+#ifdef SIGSTKFLT
+  init_sig (SIGSTKFLT, "STKFLT", N_("Stack fault"))
+#endif
+#ifdef SIGINFO
+  init_sig (SIGINFO, "INFO", N_("Information request"))
+#elif defined(SIGPWR)
+  init_sig (SIGPWR, "PWR", N_("Power failure"))
+#endif
+#ifdef SIGLOST
+  init_sig (SIGLOST, "LOST", N_("Resource lost"))
+#endif