--- orig/s/freebsd.h Mon Oct 13 13:47:36 1997 +++ src/s/freebsd.h Tue Sep 29 12:08:15 1998 @@ -45,6 +45,20 @@ #define LIBS_TERMCAP "-ltermcap" +#ifdef __ELF__ /* since from 3.0-CURRENT(maybe 19980831 or later) */ +#ifndef NOT_C_CODE +#include +#endif +#define LD_SWITCH_SYSTEM +#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o +#define UNEXEC unexelf.o +#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o +#define LINKER "$(CC) -nostdlib" +#undef LIB_GCC +#define LIB_GCC + +#else /* not __ELF__ */ + #ifndef NO_SHARED_LIBS #if 0 /* mrb */ #define LIB_GCC "-lgcc" @@ -74,6 +88,8 @@ #define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr)) #endif /* __FreeBSD__ */ #endif /* NO_SHARED_LIBS */ + +#endif /* not __ELF__ */ #define HAVE_GETLOADAVG /* #define NO_TERMIO */ /* detected in configure */ --- orig/unexelf.c Fri Feb 13 08:28:06 1998 +++ src/unexelf.c Tue Sep 29 12:08:15 1998 @@ -846,7 +846,9 @@ for (; symp < symendp; symp ++) if (strcmp ((char *) (symnames + symp->st_name), "_end") == 0 - || strcmp ((char *) (symnames + symp->st_name), "_edata") == 0) + || strcmp ((char *) (symnames + symp->st_name), "end") == 0 + || strcmp ((char *) (symnames + symp->st_name), "_edata") == 0 + || strcmp ((char *) (symnames + symp->st_name), "edata") == 0) memcpy (&symp->st_value, &new_bss_addr, sizeof (new_bss_addr)); }