[gnu.utils.bug] GNU Make 3.55 on NeXT

korz@CS.COLUMBIA.EDU (Frederick Korz) (09/09/89)

Sources:
  GNU Make 3.55 w/ patches from gnu.utils.bug up through
05-Sep-89 including the corrections needed for systems having a
union in the name field of their nlist structures.

Environment:
 NeXT running release 0.9
 Compiled with '-bsd' Berkeley compatibility flag (removes function
prototypes from system header files which otherwise cause massive
conflicts).

Problem:
 In load.c, after KERNEL_FILE has been defined, there is a conflict
with internal use of KERNEL_FILE in <sys/file.h>.  This conflict
probably extends to any MACH implementation since 25-Nov-85 according
to the comments in /usr/include/sys/file.h.
 Even if your particular version (patchlevel) of GNU Make doesn't
suffer from this problem, it is lurking - ready to bite.

Patch: (trivial)
*** load.c~	Fri Sep  8 21:53:30 1989
--- load.c	Fri Sep  8 22:09:19 1989
***************
*** 113,120 ****
  
  #define LDAV_BASED
  
! #ifndef	KERNEL_FILE
! #define KERNEL_FILE "/vmunix"
  #endif
  #ifndef	LDAV_SYMBOL
  #define LDAV_SYMBOL "_avenrun"
--- 113,120 ----
  
  #define LDAV_BASED
  
! #ifndef	KERNEL_FILE_NAME
! #define KERNEL_FILE_NAME "/vmunix"
  #endif
  #ifndef	LDAV_SYMBOL
  #define LDAV_SYMBOL "_avenrun"
***************
*** 173,183 ****
        nl[1].n_name = "";
  #endif	/* NLIST_NAME_ARRAY.  */
  
!       if (nlist (KERNEL_FILE, nl) < 0 || nl[0].n_type == 0)
          {
  	  if (warned == 0)
  	    {
! 	      perror_with_name ("nlist: ", KERNEL_FILE);
  	      warned = 1;
  	    }
  	  return 0.0;
--- 173,183 ----
        nl[1].n_name = "";
  #endif	/* NLIST_NAME_ARRAY.  */
  
!       if (nlist (KERNEL_FILE_NAME, nl) < 0 || nl[0].n_type == 0)
          {
  	  if (warned == 0)
  	    {
! 	      perror_with_name ("nlist: ", KERNEL_FILE_NAME);
  	      warned = 1;
  	    }
  	  return 0.0;