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;