This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: binutils and BSD/OS 4.1


   Date: Mon, 31 Jul 2000 14:22:05 -0500 (CDT)
   From: "Edward S. Marshall" <emarshall@mercantec.com>

   Hi,

   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
   /usr/include/machine/vmlayout.h:

   #ifndef KERNEL
   /*
    * 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.

Mark

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]