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;