From gufalet.let.rug.nl!sun4nl!mcsun!uknet!glasgow!simonm Wed Mar 25 13:44:35 MET 1992
Article: 1730 of alt.os.linux
Path: gufalet.let.rug.nl!sun4nl!mcsun!uknet!glasgow!simonm
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: <gdmXwmq00VB5I6v0QZ@andrew.cmu.edu> <IJW11.92Mar23191240@manea.cl.cam.ac.uk>
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 make-3.62/Makefile
*** gmake-3.62/Makefile	Thu Nov 21 15:58:00 1991
--- make-3.62/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 make-3.62/commands.c
*** gmake-3.62/commands.c	Tue Oct  8 20:20:30 1991
--- make-3.62/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 make-3.62/job.c
*** gmake-3.62/job.c	Thu Oct 24 21:58:34 1991
--- make-3.62/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 <sys/param.h>
  #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 make-3.62/main.c
*** gmake-3.62/main.c	Mon Sep  9 23:36:15 1991
--- make-3.62/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 make-3.62/make.h
*** gmake-3.62/make.h	Sat Oct 26 21:19:59 1991
--- make-3.62/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)


