[gnu.utils.bug] sun386 fixes to make

pml@SUN.COM (PM Lashley) (12/21/88)

I have just upgraded from make version 3.05 to 3.27.  When checking to see
what had been changed, I noticed the sun386 fixes involving the non-definition
of SARMAG and ARFMAG.  The ar.h on my system (release BL8H.5) defines them
within conditional compilation based upon the values of PORTAR and PORT5AR.
If PORTAR is TRUE, ar.h defines the AT&T Common Archive Format.  If PORT5AR
it defines the System V Release 1 format.  I have included a patch which
seems to work without the explicit SARMAG and ARFMAG testing.

It should also be noted that gcc (1.31) complained of a syntax error before
`int' in the following line in arscan.c (line 189 of the 3.27 distribution)

    #ifdef SARMAG
	register long int member_offset = SARMAG;
    #else
-->	register long int member_offset = sizeof int;
    #endif

I am also getting a coredump when I attempt to use the -p option on either
the sun386i or on a Sun3 under SunOS 3.5.  It doesn't seem to make much
difference whether I have environment variables; or what I use for a makefile.
The following output was from `./make -p -r -f /dev/null' with no environment
variables.

-------------------------------------------------------------------------------
GNU Make version 3.27, by Richard Stallman and Roland McGrath.
Copyright (C) 1988 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.


Variables

MAKE (environment) := /files/home/wizards/netware/make-3.27/./make
$ (automatic) := 
% (automatic) := 
* (automatic) := 
< (automatic) := 
? (automatic) := 
@ (automatic) := 
^ (automatic) := 
%D (automatic) := 
%F (automatic) := 
*D (automatic) := 
*F (automatic) := 
SHELL (makefile) := /bin/sh
<D (automatic) := 
<F (automatic) := 
@D (automatic) := 
@F (automatic) := 
MAKEFLAGS (environment) := -j1 -r -S
Abort (core dumped)

-------------------------------------------------------------------------------

The sun386i patch:

*** arscan.c.dist	Tue Dec 20 09:48:39 1988
--- arscan.c	Tue Dec 20 10:07:28 1988
***************
*** 92,102 ****
   You are forbidden to forbid anyone else to use, share and improve
   what you give them.   Help stamp out software-hoarding!  */
  
! /* There are conditionals that test whether the macros SARMAG and ARFMAG
!    exist.  These are supposed to be defined in ar.h on ordinary BSD.
!    Supposedly on the sun386i these macros are missing
!    and there are other format differences as well.  */
  
  #include <ar.h>
  #include <stdio.h>
  #include <sys/types.h>
--- 92,107 ----
   You are forbidden to forbid anyone else to use, share and improve
   what you give them.   Help stamp out software-hoarding!  */
  
! /* On the sun386i, ar.h defines two different archive formats depending upon
!    whether you have defined PORTAR (normal) or PORT5AR (System V Release 1).
!    There is no default, one or the other must be defined to have a TRUE value
!    (simple definition is not enough).
!  */
  
+ #if defined(sun386) && !defined(PORTAR) && !defined(PORT5AR)
+ #define PORTAR 1
+ #endif
+ 
  #include <ar.h>
  #include <stdio.h>
  #include <sys/types.h>


Thanks for the great work,
-Pat

PMLashley	sun!cohesive!kla!pat		cohesive!kla!pat@sun.com
KLA Instruments	POBox 5016, 3901 Burton Drive
		Santa Clara, CA 95052
		408/988-6100


P.S.  You may not be able to reach me via `reply'.  I think that Sun is still
	bashing envelope return addresses during uucp-to-internet mail
	transitions.  Direct mail to address above.