This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
mipsel-linux and --export-dynamic
- From: Thomas Lopatic <thomas at lopatic dot de>
- To: binutils at sources dot redhat dot com
- Date: Thu, 04 Nov 2004 12:51:02 +0100
- Subject: mipsel-linux and --export-dynamic
Hi there,
I've compiled binutils 2.15 on an Intel Linux platform with a target of
mipsel-linux ("./configure --target=mipsel-linux"). I am using this
build to link objects generated by a cross-plattform GCC. My problem is
that all external symbols end up in the dynamic symbol table (verified
with "objdump --dynamic-syms"), although I do not pass
"--export-dynamic" to the linker.
The problem with this is that I have an executable and shared objects
loaded by this executable that have conflicting symbols, i.e. some
symbols appear in the executable as well as in the shared objects. So,
if an external variable "x" appears in the executable and in a shared
object, both access the same memory location. I would, however, prefer
everyone to have his own copy of "x". (Because otherwise the program
crashes. :-D)
Working around the problem by renaming the symbols in the shared objects
or the executable to remove the overlaps or making the affected
variables static would be possible in my case. However, I'd prefer the
linker to behave as expected. Or is there something that I am missing?
If this is not a known issue, I'll be happy to try to reproduce this
with the latest binutils CVS version.
Would it also make sense to try to reproduce this with the latest CVS
version of GCC? I don't know much about ELF, but a symbol is a symbol is
a symbol, isn't it? So the GCC version shouldn't have any impact on this
problem, should it?
Thanks for your time
-Thomas