This is the mail archive of the
mailing list for the binutils project.
Re: binutils and BSD/OS 4.1
Date: Mon, 31 Jul 2000 14:22:05 -0500 (CDT)
From: "Edward S. Marshall" <firstname.lastname@example.org>
I think I have a workaround that is permitting binutils 2.10 and the
latest CVS snap to build; on BSD/OS 4.1, you see the following in
* The only symbols we export to user space are the nlist names of the
* exported symbols.
#define NL_USRSTACK "_USRSTACK"
#define NL_KERNBASE "_KERNBASE"
#define NL_SYSTEM "SYSTEM"
#define NL_VM_MIN_ADDRESS "_VM_MIN_ADDRESS"
#define NL_VM_MAXUSER_ADDRESS "_VM_MAXUSER_ADDRESS"
#endif /* KERNEL */
Which tells me that they're no longer exporting "USRSTACK", but instead
expect you to make use of "NL_USRSTACK". I modifed bfd/hosts/i386bsd.h
accordingly, and the build completed successfully, both on BSD/OS 3.0
(which was working fine) and 4.1 (the problem platform). I have no idea if
3.1 through 4.0 is affected by this as well.
Can anyone confirm that this is the "correct" fix?
That will almost certainly *not* work. HOST_STACK_END_ADDR is
supposed to be the VM address of the user stack. With your patch it
becomes the address of the string "_USRSTACK" wherever it ends up in
the final binary.
If the BSD/OS 4.1 include files really don't define USRSTACK anymore,
and NL_USRSTACK is indeed all that's available, they probably want you
to use the nlist() interface (or whatever BSDi provides) to poke
around in the kernel to get the stack address.