313 lines
8.3 KiB
Plaintext
313 lines
8.3 KiB
Plaintext
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 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 <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 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)
|
|
|