X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tools-for-build%2Fgrovel-headers.c;h=18af7882b23dbe635d9c881682842747523c029e;hb=04d819bb1a2e64de4e997203b9516229bb73c686;hp=e76237d020bb8c0b6d9e4d85ec1c829b9f6f792a;hpb=7646aefa188758e2892fea2ad02be4f29b3938f2;p=sbcl.git diff --git a/tools-for-build/grovel-headers.c b/tools-for-build/grovel-headers.c index e76237d..18af788 100644 --- a/tools-for-build/grovel-headers.c +++ b/tools-for-build/grovel-headers.c @@ -12,7 +12,7 @@ * 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. @@ -20,11 +20,23 @@ #include #include -#include +#ifdef _WIN32 + #include +#else + #include + #include + #include + #include + #ifdef __APPLE_CC__ + #include "../src/runtime/ppc-darwin-dlshim.h" + #include "../src/runtime/ppc-darwin-langinfo.h" + #else + #include + #include + #endif +#endif + #include -#include -#include -#include #include #include #include @@ -39,19 +51,26 @@ void 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 DEFERRNO(name) defconstant(#name, name) -#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 */ @@ -60,9 +79,22 @@ main(int argc, char *argv[]) ;;;; See the program \"grovel-headers.c\".\n\ \n\ "); +#ifdef _WIN32 + printf (";;; This file is presently unused for the Windows version of sbcl.\n"); +#else + 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); @@ -76,7 +108,7 @@ main(int argc, char *argv[]) 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); @@ -101,18 +133,18 @@ main(int argc, char *argv[]) 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); - DEFERRNO(EINTR); - DEFERRNO(EIO); - DEFERRNO(EEXIST); - DEFERRNO(ESPIPE); - DEFERRNO(EWOULDBLOCK); + 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"); @@ -156,47 +188,48 @@ main(int argc, char *argv[]) printf("\n"); printf(";;; signals\n"); - DEFSIGNAL(SIGALRM); - DEFSIGNAL(SIGBUS); - DEFSIGNAL(SIGCHLD); - DEFSIGNAL(SIGCONT); + defsignal("sigalrm", SIGALRM); + defsignal("sigbus", SIGBUS); + defsignal("sigchld", SIGCHLD); + defsignal("sigcont", SIGCONT); #ifdef SIGEMT - DEFSIGNAL(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); + defsignal("sigxcpu", SIGXCPU); + defsignal("sigxfsz", SIGXFSZ); #endif +#endif // _WIN32 return 0; }