From: simonm@dcs.glasgow.ac.uk (Simon Marlow) Newsgroups: alt.os.linux Subject: Re: Various Problems.. Message-ID: <1992Mar24.120332.14976@dcs.glasgow.ac.uk> Date: 24 Mar 92 12:03:32 GMT References: Organization: Glasgow University Computing Science Dept. Lines: 301 ijw11@phx.cam.ac.uk (Ian Wells) writes: >I have problems with make too. Mine reports >(null): situid: not owner >or something similar, if I'm not root. I've tried u+s on the binary to no >effect, so what's the problem? >Ian. Here are the diffs I made when I compiled gmake-3.62 (as far as I know there are none of the common bugs ascociated with these diffs - eg setuid problems, Ctrl-C not working etc.) Unfortunately I compiled with gcc2 & shared libs so I can't really upload the binary, although I could upload the .o file ready for linking. Mail me if this would be useful. Simon. diff -cr gmake-3.62//Makefile gmake-linux//Makefile *** gmake-3.62//Makefile Thu Nov 21 15:58:00 1991 --- gmake-linux//Makefile Mon Mar 23 20:27:39 1992 *************** *** 22,30 **** #CC line is new (WDP) CC=gcc # CFLAGS = $(defines) -g ! CFLAGS = $(defines) -O # LDFLAGS = -g ! LDFLAGS = # Define these for your system as follows: # -DUSG System V --- 22,30 ---- #CC line is new (WDP) CC=gcc # CFLAGS = $(defines) -g ! CFLAGS = $(defines) -O2 # LDFLAGS = -g ! LDFLAGS = -s # Define these for your system as follows: # -DUSG System V *************** *** 42,48 **** # without complaint but produce losing code, # so beware. # NeXT 1.0a uses an old version of GCC, which required -D__inline=inline. ! defines = # Define these for your system as follows: # -DUMAX Encore UMAX --- 42,48 ---- # without complaint but produce losing code, # so beware. # NeXT 1.0a uses an old version of GCC, which required -D__inline=inline. ! defines = -DPOSIX -DLINUX -DHAVE_DUP2 # Define these for your system as follows: # -DUMAX Encore UMAX *************** *** 56,62 **** # Define: # -DNLIST_NAME_UNION If `struct nlist' has a n_un member. # -DNLIST_NAME_ARRAY If `n_name' is an array. ! LOAD_AVG = # If you don't want archive support, comment these out. ARCHIVES = arscan.o ar.o --- 56,62 ---- # Define: # -DNLIST_NAME_UNION If `struct nlist' has a n_un member. # -DNLIST_NAME_ARRAY If `n_name' is an array. ! LOAD_AVG = -DNO_LDAV # If you don't want archive support, comment these out. ARCHIVES = arscan.o ar.o *************** *** 84,102 **** # Comment this out if POSIX.2 glob is installed on your system # (it's in the GNU C Library, so if you're using that, this is # not needed at all.) ! globdep = glob/libglob.a # Library containing POSIX.2 `glob' function. # Comment this line out if it's in the C library (which is the case if you # are using the GNU C Library), or change it to the appropriate file name # or -l switch. ! globlib = $(globdep) # Name under which to install GNU make. instname = make # WDP: ! prefix = /usr/local/gnu ! ARCH:sh = /bin/arch # Directory to install `make' in. bindir = $(prefix)/bin/$(ARCH) --- 84,102 ---- # Comment this out if POSIX.2 glob is installed on your system # (it's in the GNU C Library, so if you're using that, this is # not needed at all.) ! #globdep = glob/libglob.a # Library containing POSIX.2 `glob' function. # Comment this line out if it's in the C library (which is the case if you # are using the GNU C Library), or change it to the appropriate file name # or -l switch. ! #globlib = $(globdep) # Name under which to install GNU make. instname = make # WDP: ! prefix = /usr/local ! #ARCH:sh = /bin/arch # Directory to install `make' in. bindir = $(prefix)/bin/$(ARCH) diff -cr gmake-3.62//commands.c gmake-linux//commands.c *** gmake-3.62//commands.c Tue Oct 8 20:20:30 1991 --- gmake-linux//commands.c Mon Mar 23 20:22:12 1992 *************** *** 342,348 **** int sig; { signal (sig, SIG_DFL); ! #ifndef USG (void) sigsetmask (0); #endif --- 342,348 ---- int sig; { signal (sig, SIG_DFL); ! #if !defined(USG) && !defined(LINUX) (void) sigsetmask (0); #endif diff -cr gmake-3.62//job.c gmake-linux//job.c *** gmake-3.62//job.c Thu Oct 24 21:58:34 1991 --- gmake-linux//job.c Mon Mar 23 20:10:34 1992 *************** *** 117,122 **** --- 117,123 ---- extern int setgid (), getgid (); #endif /* GNU C library. */ + #ifndef LINUX #ifndef USG extern int getdtablesize (); #else *************** *** 123,128 **** --- 124,130 ---- #include #define getdtablesize() NOFILE #endif + #endif extern void wait_to_start_job (); extern int start_remote_job_p (); *************** *** 180,186 **** extern int fatal_signal_mask; ! #ifdef USG /* Set nonzero in the interval when it's possible that we may see a dead child that's not in the `children' chain. */ static int unknown_children_possible = 0; --- 182,188 ---- extern int fatal_signal_mask; ! #if defined(USG) || defined(LINUX) /* Set nonzero in the interval when it's possible that we may see a dead child that's not in the `children' chain. */ static int unknown_children_possible = 0; *************** *** 192,198 **** static void block_signals () { ! #ifdef USG /* Tell child_handler that it might see children that aren't yet in the `children' chain. */ --- 194,200 ---- static void block_signals () { ! #if defined(USG) || defined(LINUX) /* Tell child_handler that it might see children that aren't yet in the `children' chain. */ *************** *** 216,222 **** static void unblock_signals () { ! #ifdef USG (void) SIGNAL (SIGCLD, child_handler); --- 218,224 ---- static void unblock_signals () { ! #if defined(USG) || defined(LINUX) (void) SIGNAL (SIGCLD, child_handler); *************** *** 396,402 **** if (c == 0) { /* An unknown child died. */ ! #ifdef USG if (!unknown_children_possible) { #endif --- 398,404 ---- if (c == 0) { /* An unknown child died. */ ! #if defined(USG) || defined(LINUX) if (!unknown_children_possible) { #endif *************** *** 407,413 **** ignore_errors_flag); else error ("%s finished.", buf); ! #ifdef USG } #endif } --- 409,415 ---- ignore_errors_flag); else error ("%s finished.", buf); ! #if defined(USG) || defined(LINUX) } #endif } diff -cr gmake-3.62//main.c gmake-linux//main.c *** gmake-3.62//main.c Mon Sep 9 23:36:15 1991 --- gmake-linux//main.c Mon Mar 23 19:50:35 1992 *************** *** 321,329 **** --- 321,333 ---- FATAL_SIG (SIGDANGER); #endif FATAL_SIG (SIGFPE); + #ifdef SIGBUS FATAL_SIG (SIGBUS); + #endif FATAL_SIG (SIGSEGV); + #ifdef SIGSYS FATAL_SIG (SIGSYS); + #endif FATAL_SIG (SIGTERM); #ifdef SIGXCPU FATAL_SIG (SIGXCPU); diff -cr gmake-3.62//make.h gmake-linux//make.h *** gmake-3.62//make.h Sat Oct 26 21:19:59 1991 --- gmake-linux//make.h Mon Mar 23 20:18:30 1992 *************** *** 205,211 **** extern void user_access (), make_access (), child_access (); ! #if defined(USG) && !defined(HAVE_VFORK) #define vfork fork #define VFORK_NAME "fork" #else /* Have vfork or not USG. */ --- 205,211 ---- extern void user_access (), make_access (), child_access (); ! #if (defined(USG) || defined(LINUX)) && !defined(HAVE_VFORK) #define vfork fork #define VFORK_NAME "fork" #else /* Have vfork or not USG. */ *************** *** 232,238 **** extern char *ctime (); #endif /* GNU C library or POSIX. */ ! #if defined(USG) || defined(POSIX) && !defined(__GNU_LIBRARY__) extern char *getcwd (); #ifdef PATH_MAX #define getwd(buf) getcwd (buf, PATH_MAX - 2) --- 232,238 ---- extern char *ctime (); #endif /* GNU C library or POSIX. */ ! #if defined(USG) || defined(LINUX) || defined(POSIX) && !defined(__GNU_LIBRARY__) extern char *getcwd (); #ifdef PATH_MAX #define getwd(buf) getcwd (buf, PATH_MAX - 2)