[openbeosnetteam] Re: Fix for resolving host names

  • From: "Philippe Houdoin" <philippe.houdoin@xxxxxxx>
  • To: openbeosnetteam@xxxxxxxxxxxxx
  • Date: Tue, 03 Feb 2004 16:51:21 GMT

Axel asked:
> First of all, thanks for finding out about it. But then, why do we 
> not 
> want [1]? Why is -nostdlib used for a library that should be used in 
> BeOS R5?

Because in default libs there'ss R5 libnet.so.
And linking a replacment libnet.so against R5 one don't sounds a good 
idea, does it!?

More specificly, under vanilla R5, Be's libnet.so export a _res data 
symbol with a different size than ours (mostly because since ISC 
modified the _res_state struct concent), and gcc linker in this case, 
by default, choose the biggest, which is Be's.
But in fact it don't, and make our _res symbol imported from Be's 
libnet.so.

So, we make our libnet.so (and only this library) build with -nostdlib 
to explicitly tell the linker to link against only libroot.so.
But, I overlooked at gcc link options, and choose the incorrect flag, 
removing startfiles at same time.
 
> > Anyway, so I got curious about these magic files.  So I went 
> > looking.
> 
> Just look at our repository under src/kernel/glue and find all of 
> them 
> there :)
> As you can easily see, init_term_dyn.o must be part of the object to 
> have the initialize_before/after() mechanism working.

Which changing the -nostdlib flag to -nodefaultlibs in libnet.so 
Jamfile fix, as starfiles are linked again now.

- Philippe

--
Fortune Cookie Says:

Left to themselves, things tend to go from bad to worse.

Other related posts: