*BSD News Article 7041


Return to BSD News archive

Path: sserve!manuel.anu.edu.au!munnari.oz.au!uunet!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!cis.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!ljo
From: ljo@r2d2.eeap.cwru.edu (L. Jonas Olsson)
Newsgroups: comp.unix.bsd
Subject: [386BSD] make-3.62 patches
Date: 25 Oct 1992 23:04:27 GMT
Organization: Case Western Reserve Univ. Cleveland, Ohio (USA)
Lines: 233
Message-ID: <1cf95rINN9gd@usenet.INS.CWRU.Edu>
References: <1992Oct25.112332.25964@fcom.cc.utah.edu> <1992Oct25.183912@eklektix.com> <1cf4v8INNidl@terminator.rs.itd.umich.edu>
NNTP-Posting-Host: johnny5.eeap.cwru.edu

I'm here posting some patches for make-3.62 that I have used to
successfully compile libg++. The patches are derived from patches
to bsdi that are available at bsdi.com. The resulting make works
fine, but there is a hidden problem with setgid. The fix to this
is to install make without any setguid bit and not use any load
average.
Hopefully other people that have ported make-3.62 will correct
the errors I've made/overlooked.
These patches would not have been done without the ref machine
that Julian Elischer has so kindly provided.

        Jonas Olsson
        ljo@po.cwru.edu

Procedure:
==========

get make-3.62 from a favorite site
zcat make-3.62.tar.Z|tar xvf -
patch -p0 < make-3.62.diffs
cd make-3.62
make
make install

Diff File:
==========

<start of make-3.62.diffs>
diff -rc make-3.62.orig/Makefile make-3.62/Makefile
*** make-3.62.orig/Makefile	Tue Oct 29 18:04:26 1991
--- make-3.62/Makefile	Sun Oct 25 14:52:47 1992
***************
*** 38,45 ****
  #				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
  #	-DUMAX_43	Encore UMAX 4.3 (also define UMAX)
--- 38,44 ----
  #				without complaint but produce losing code,
  #				so beware.
  # NeXT 1.0a uses an old version of GCC, which required -D__inline=inline.
! defines =-UPOSIX
  # Define these for your system as follows:
  #	-DUMAX		Encore UMAX
  #	-DUMAX_43	Encore UMAX 4.3 (also define UMAX)
***************
*** 52,58 ****
  # 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
--- 51,57 ----
  # 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
***************
*** 80,92 ****
  # 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
--- 79,91 ----
  # 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
***************
*** 160,167 ****
  $(bindir)/$(instname): make
  	cp make $@.new
  # These are necessary for load-average checking to work on most Unix machines.
! 	chgrp $(group) $@.new
! 	chmod g+s $@.new
  	mv $@.new $@
  
  $(mandir)/$(instname).$(manext): make.man
--- 159,166 ----
  $(bindir)/$(instname): make
  	cp make $@.new
  # These are necessary for load-average checking to work on most Unix machines.
! #	chgrp $(group) $@.new
! #	chmod g+s $@.new
  	mv $@.new $@
  
  $(mandir)/$(instname).$(manext): make.man
Only in make-3.62: Makefile~
diff -rc make-3.62.orig/arscan.c make-3.62/arscan.c
*** make-3.62.orig/arscan.c	Tue Oct 22 18:30:25 1991
--- make-3.62/arscan.c	Sat Oct 24 19:16:27 1992
***************
*** 95,101 ****
--- 95,105 ----
  #if	defined(__GNU_LIBRARY__) || defined(POSIX) || defined(_IBMR2)
  #include <unistd.h>
  #else
+ #ifndef __386BSD__
  extern int read (), open (), close (), write (), fstat ();
+ #else
+ extern int read (), close (), write (), fstat ();
+ #endif
  extern long int lseek (), atol ();
  extern int atoi ();
  #endif
diff -rc make-3.62.orig/job.c make-3.62/job.c
*** make-3.62.orig/job.c	Thu Oct 24 14:58:33 1991
--- make-3.62/job.c	Sat Oct 24 19:03:10 1992
***************
*** 38,44 ****
--- 38,46 ----
  #else	/* Not POSIX.  */
  #ifndef	USG
  #include <sys/param.h>
+ #ifndef __386BSD__
  #define	NGROUPS_MAX	NGROUPS
+ #endif
  #endif	/* Not USG.  */
  #endif	/* POSIX.  */
  
***************
*** 55,67 ****
--- 57,73 ----
  #include <sys/resource.h>
  
  #ifndef	wait3
+ #ifndef __386BSD__
  extern int wait3 ();
  #endif
+ #endif
  #define	WAIT_NOHANG(status) \
    wait3((union wait *) (status), WNOHANG, (struct rusage *) 0)
  
  #if	!defined (wait) && !defined (POSIX)
+ #ifndef __386BSD__
  extern int wait ();
+ #endif
  #endif
  #endif	/* HAVE_SYS_WAIT || !USG */
  #endif	/* POSIX.  */
diff -rc make-3.62.orig/make.h make-3.62/make.h
*** make-3.62.orig/make.h	Sat Oct 26 14:19:58 1991
--- make-3.62/make.h	Sat Oct 24 19:13:12 1992
***************
*** 222,233 ****
  extern int sigsetmask ();
  extern int sigblock ();
  #endif
  extern int kill ();
  extern void abort (), exit ();
  extern int unlink (), stat ();
  extern void qsort ();
  extern int atoi ();
! extern int pipe (), close (), read (), write (), open ();
  extern long int lseek ();
  extern char *ctime ();
  #endif	/* GNU C library or POSIX.  */
--- 222,238 ----
  extern int sigsetmask ();
  extern int sigblock ();
  #endif
+ #ifndef __386BSD__
  extern int kill ();
+ #endif
  extern void abort (), exit ();
  extern int unlink (), stat ();
  extern void qsort ();
  extern int atoi ();
! extern int pipe (), close (), read (), write ();
! #ifndef __386BSD__
! extern int open ();
! #endif
  extern long int lseek ();
  extern char *ctime ();
  #endif	/* GNU C library or POSIX.  */
***************
*** 245,251 ****
--- 250,258 ----
  
  #if !defined(__GNU_LIBRARY__) && (!defined(vfork) || !defined(POSIX))
  #ifdef	POSIX
+ #ifndef __386BSD__
  extern pid_t vfork ();
+ #endif
  #else
  extern int vfork ();
  #endif
diff -rc make-3.62.orig/read.c make-3.62/read.c
*** make-3.62.orig/read.c	Thu Oct 10 13:20:54 1991
--- make-3.62/read.c	Sat Oct 24 18:50:10 1992
***************
*** 25,31 ****
--- 25,35 ----
  #ifdef	__GNU_LIBRARY__
  #include <glob.h>
  #else
+ #ifndef __386BSD__
  #include "glob/glob.h"
+ #else
+ #include <glob.h>
+ #endif /*__386BSD__*/
  #endif
  
  #include <pwd.h>

<end of make-3.62.diffs>