Fix building problem under Linux ELF systems; no nlist.h

This commit is contained in:
hag 1996-10-29 23:22:20 +00:00
parent 47fe4b82ae
commit 3d90d39924
4 changed files with 14 additions and 11 deletions

2
configure vendored
View File

@ -1620,7 +1620,7 @@ else
fi
echo "$ac_t""$CPP" 1>&6
for ac_hdr in libgen.h sys/timeb.h posix/time.h sys/select.h
for ac_hdr in libgen.h sys/timeb.h posix/time.h sys/select.h nlist.h
do
ac_safe=`echo "$ac_hdr" | tr './\055' '___'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6

View File

@ -328,7 +328,7 @@ AC_CHECK_LIB(dld, shl_findsym)
dnl AC_CHECK_LIB(mld, main)
AC_RETSIGTYPE
AC_HAVE_HEADERS(libgen.h sys/timeb.h posix/time.h sys/select.h)
AC_HAVE_HEADERS(libgen.h sys/timeb.h posix/time.h sys/select.h nlist.h)
AC_HAVE_FUNCS(strerror)
AC_HAVE_FUNCS(dlopen gettimeofday ftime nlist select setitimer sigaction)
AC_HAVE_FUNCS(socket chroot)

View File

@ -44,6 +44,10 @@
not-very-portable way of looking up external symbols. */
#undef HAVE_NLIST
/* Define if you have the nlist.h header file. Some systems (linux)
have nlist, but not nlist.h */
#undef HAVE_NLIST_H
/* Define if struct nlist, defined in <nlist.h>, has an n_name component.
If it doesn't then we expect it to have an n_un component. */
#undef NLIST_HAS_N_NAME

17
unix.c
View File

@ -90,7 +90,7 @@
# include <sys/timeb.h> /* for ftime() */
#endif
#if defined(HAVE_NLIST)
#if defined(HAVE_NLIST_H)
# include <nlist.h> /* conforms to "SVID2", whatever that is */
#endif
@ -105,7 +105,7 @@ extern long Spending_interruptsS;
static RETSIGTYPE
when_keyboard_interrupt(sig, code, scp)
int sig, code;
int sig, code;
struct sigcontext *scp;
{
Spending_interruptsS |= (1 << INTERRUPT_KEYBOARD);
@ -117,7 +117,7 @@ when_keyboard_interrupt(sig, code, scp)
static RETSIGTYPE
when_alarm_interrupt(sig, code, scp)
int sig, code;
int sig, code;
struct sigcontext *scp;
{
Spending_interruptsS |= (1 << INTERRUPT_ALARM);
@ -148,7 +148,7 @@ sysdep_init()
sa.sa_handler = SIG_IGN;
sigemptyset(&sa.sa_mask);
sa.sa_flags = 0;
sigaction(SIGPIPE, &sa, NULL);
sigaction(SIGPIPE, &sa, NULL);
}
}
@ -479,7 +479,7 @@ fill_the_table(void)
fprintf(stderr, "Error during external name lookup\n");
return;
}
if ((f = ldopen(reloc_info_file, NULL)) == NULL) {
fprintf(stderr, "Error during external name lookup\n");
return;
@ -522,7 +522,7 @@ fill_the_table(void)
if (cur_entry)
cur_entry->next = NULL;
ldclose(f);
}
@ -538,7 +538,7 @@ really_lookup_external_name(char *name)
}
return(0);
}
long
lookup_external_name(char *name, long *location)
{
@ -632,7 +632,7 @@ lookup_external_name(char *name, long *location)
name_list[0].n_name = nm;
name_list[1].n_name = 0;
status = nlist(reloc_info_file, name_list);
if (status != 0 || (name_list[0].n_value == 0
@ -665,4 +665,3 @@ get_reloc_file()
return(NULL);
}
}