* While most of SBCL is derived from the CMU CL system, many
* utilities for the build process (like this one) were written from
* scratch after the fork from CMU CL.
- *
+ *
* This software is in the public domain and is provided with
* absolutely no warranty. See the COPYING and CREDITS files for
* more information.
#include <fcntl.h>
#include <unistd.h>
#include <signal.h>
+#include <errno.h>
+#ifdef __APPLE_CC__
+ #include "../src/runtime/ppc-darwin-dlshim.h"
+ #include "../src/runtime/ppc-darwin-langinfo.h"
+#else
+ #include <dlfcn.h>
+ #include <langinfo.h>
+#endif
#include "genesis/config.h"
defconstant(char* lisp_name, long unix_number)
{
printf("(defconstant %s %ld) ; #x%lx\n",
- lisp_name, unix_number, unix_number);
+ lisp_name, unix_number, unix_number);
+}
+
+void deferrno(char* lisp_name, long unix_number)
+{
+ defconstant(lisp_name, unix_number);
}
-#define DEFSIGNAL(name) defconstant(#name, name)
+void defsignal(char* lisp_name, long unix_number)
+{
+ defconstant(lisp_name, unix_number);
+}
int
main(int argc, char *argv[])
{
/* don't need no steenking command line arguments */
if (1 != argc) {
- fprintf(stderr, "argh! command line argument(s)\n");
- exit(1);
+ fprintf(stderr, "argh! command line argument(s)\n");
+ exit(1);
}
/* don't need no steenking hand-editing */
printf(
";;;; This is an automatically generated file, please do not hand-edit it.\n\
-;;;; See the program \"grovel_headers.c\".\n\
+;;;; See the program \"grovel-headers.c\".\n\
\n\
");
+ printf("(in-package \"SB!ALIEN\")\n\n");
+
+ printf (";;;flags for dlopen()\n");
+
+ defconstant ("rtld-lazy", RTLD_LAZY);
+ defconstant ("rtld-now", RTLD_NOW);
+ defconstant ("rtld-global", RTLD_GLOBAL);
+
printf("(in-package \"SB!UNIX\")\n\n");
+ printf(";;; langinfo\n");
+ defconstant("codeset", CODESET);
+
printf(";;; types, types, types\n");
DEFTYPE("clock-t", clock_t);
DEFTYPE("dev-t", dev_t);
DEFTYPE("uid-t", uid_t);
printf("\n");
- printf(";;; fcntl.h (or unistd.h on OpenBSD)\n");
+ printf(";;; fcntl.h (or unistd.h on OpenBSD and NetBSD)\n");
defconstant("r_ok", R_OK);
defconstant("w_ok", W_OK);
defconstant("x_ok", X_OK);
defconstant("s-ifblk", S_IFBLK);
defconstant("s-ifreg", S_IFREG);
printf("\n");
-
+
defconstant("s-iflnk", S_IFLNK);
defconstant("s-ifsock", S_IFSOCK);
printf("\n");
+ printf(";;; error numbers\n");
+ deferrno("enoent", ENOENT);
+ deferrno("eintr", EINTR);
+ deferrno("eio", EIO);
+ deferrno("eexist", EEXIST);
+ deferrno("espipe", ESPIPE);
+ deferrno("ewouldblock", EWOULDBLOCK);
+ printf("\n");
+
printf(";;; for wait3(2) in run-program.lisp\n");
defconstant("wnohang", WNOHANG);
defconstant("wuntraced", WUNTRACED);
printf("\n");
printf(";;; signals\n");
- DEFSIGNAL(SIGALRM);
- DEFSIGNAL(SIGBUS);
- DEFSIGNAL(SIGCHLD);
- DEFSIGNAL(SIGCONT);
-/* FIXME: Maybe #ifdef SIGEMT would be a smarter conditional? */
-#if (!(defined LISP_FEATURE_LINUX) || !((defined LISP_FEATURE_PPC) || (defined LISP_FEATURE_X86)))
- DEFSIGNAL(SIGEMT);
+ defsignal("sigalrm", SIGALRM);
+ defsignal("sigbus", SIGBUS);
+ defsignal("sigchld", SIGCHLD);
+ defsignal("sigcont", SIGCONT);
+#ifdef SIGEMT
+ defsignal("sigemt", SIGEMT);
#endif
- DEFSIGNAL(SIGFPE);
- DEFSIGNAL(SIGHUP);
- DEFSIGNAL(SIGILL);
- DEFSIGNAL(SIGINT);
- DEFSIGNAL(SIGIO);
- DEFSIGNAL(SIGIOT);
- DEFSIGNAL(SIGKILL);
- DEFSIGNAL(SIGPIPE);
- DEFSIGNAL(SIGPROF);
- DEFSIGNAL(SIGQUIT);
- DEFSIGNAL(SIGSEGV);
+ defsignal("sigfpe", SIGFPE);
+ defsignal("sighup", SIGHUP);
+ defsignal("sigill", SIGILL);
+ defsignal("sigint", SIGINT);
+ defsignal("sigio", SIGIO);
+ defsignal("sigiot", SIGIOT);
+ defsignal("sigkill", SIGKILL);
+ defsignal("sigpipe", SIGPIPE);
+ defsignal("sigprof", SIGPROF);
+ defsignal("sigquit", SIGQUIT);
+ defsignal("sigsegv", SIGSEGV);
#if ((defined LISP_FEATURE_LINUX) && (defined LISP_FEATURE_X86))
- DEFSIGNAL(SIGSTKFLT);
+ defsignal("sigstkflt", SIGSTKFLT);
#endif
- DEFSIGNAL(SIGSTOP);
-#if (!((defined LISP_FEATURE_LINUX) && (defined LISP_FEATURE_X86)))
- DEFSIGNAL(SIGSYS);
+ defsignal("sigstop", SIGSTOP);
+#if (!((defined LISP_FEATURE_LINUX) && (defined LISP_FEATURE_X86)))
+ defsignal("sigsys", SIGSYS);
#endif
- DEFSIGNAL(SIGTERM);
- DEFSIGNAL(SIGTRAP);
- DEFSIGNAL(SIGTSTP);
- DEFSIGNAL(SIGTTIN);
- DEFSIGNAL(SIGTTOU);
- DEFSIGNAL(SIGURG);
- DEFSIGNAL(SIGUSR1);
- DEFSIGNAL(SIGUSR2);
- DEFSIGNAL(SIGVTALRM);
+ defsignal("sigterm", SIGTERM);
+ defsignal("sigtrap", SIGTRAP);
+ defsignal("sigtstp", SIGTSTP);
+ defsignal("sigttin", SIGTTIN);
+ defsignal("sigttou", SIGTTOU);
+ defsignal("sigurg", SIGURG);
+ defsignal("sigusr1", SIGUSR1);
+ defsignal("sigusr2", SIGUSR2);
+ defsignal("sigvtalrm", SIGVTALRM);
#ifdef LISP_FEATURE_SUNOS
- DEFSIGNAL(SIGWAITING);
+ defsignal("sigwaiting", SIGWAITING);
#endif
- DEFSIGNAL(SIGWINCH);
+ defsignal("sigwinch", SIGWINCH);
#ifndef LISP_FEATURE_HPUX
- DEFSIGNAL(SIGXCPU);
- DEFSIGNAL(SIGXFSZ);
-#endif
-#ifdef LISP_FEATURE_SB_THREAD
- /* FIXME OAOOM alert: this information is duplicated in linux-os.h */
- defconstant("sig-dequeue",SIGRTMIN+2);
+ defsignal("sigxcpu", SIGXCPU);
+ defsignal("sigxfsz", SIGXFSZ);
#endif
return 0;
}