> > Do you by any chance use an outdated version of Jam? IIRC the original > > port of Jam did for any reason link everything against libnet.so. > > > > BTW, you can pass `-d2' to jam to make it print the invoked commands, > > which should help to solve the problem. > > While the rename of the _res symbol might fix this issue, I would > prefere to know why this is necessary. That would be nice. > The BeOS R5 libnet.so has a "D" type (don't know what "D" means, but "T" > is export, and "U" is import) > symbol called _res, while our libnet.so only has a "U", that's why the > symbol is missing when applications > are run (type should be "T"). According to the nm documentation, a D means that the symbol is in the initialised data section. Our _res in res_init (where it's declared) had a C in front of it: C The symbol is common. Common symbols are uninitialized data. When linking, multiple common symbols may appear with the same name. If the symbol is defined anywhere, the common symbols are treated as undefined references. Hmmmm. I need to wake up before I can think about this. > I don't know why the ld decides to make the symbol "U" instead of "T". I believe that's explained above. Niels