Bo-Ying Lu wrote: > The Cu provides more info about this error: >> >> One more thing ? we see the following warnings while building the >> acroread binary on Solaris x86 (These come only with the Sun native >> linker. GNU?s linker does not give these warnings). >> >> ld: warning: global symbol `_GLOBAL_OFFSET_TABLE_' has non-global binding: >> >> (file libBIB.so value=LOCL); >> >> >> >> This happens for a few of the libraries (which as the error indicates >> have the GLOBAL_OFFSET_TABLE as a local symbol. Do you think these >> warnings could have anything to do with the GDB issue? > > Bo-Ying Lu wrote: >> Ali,
Yes, it does seem odd that the GOT symbol for these objects has a non-global binding. The Solaris linker validates symbols for input objects, and this message comes from that loop. The interesting link, in terms of answering this question, is the one that produced libBIB.so, rather than this one (which is using it). I don't think you can conclude that libBIB is OK based on the fact that the GNU ld doesn't complain. More likely, this is just something it doesn't report. Here are some questions for you to explore: - Are these problems 64-bit only, or do they occur with 32-bit X86 code too? - Is this C++ code (rather than pure C), and if so, are they setting any problematic flags like -Bsymbolic? - Is there any assembly language involved? - Any "non-standard" object post-processing happening? Object dumping, purify-like tools, or anything like that? - Does the program run at all when not under a debugger? As to the question about gdb specifically, there's not enough information here to know. It seems that this object is odd in multiple ways, so there might be any number of reasons why it fails. All of which boils down to needing more information. Ideally, that would be compiler/linker options used, answers to the questions above, and access to the objects involved. - Ali