This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
Re: [jluu@mainsoft.com: Re: Possible linker problem]
- To: hjl at lucon dot org
- Subject: Re: [jluu@mainsoft.com: Re: Possible linker problem]
- From: Ian Lance Taylor <ian at zembu dot com>
- Date: 14 Mar 2000 10:02:04 -0800
- CC: binutils at sourceware dot cygnus dot com, jluu at mainsoft dot com
- References: <20000314095509.A29544@lucon.org>
Date: Tue, 14 Mar 2000 09:55:09 -0800
From: "H . J . Lu" <hjl@lucon.org>
I know the problem. As I said, it is a combination of C++, -Bsymbolic
and ia32 ABI. We cannot change ia32 ABI. It will be hard to change
C++. The only feasible thing is -Bsymbolic. Ian, we can change
ld such that
1. Don't apply -Bsymbolic to any data objects which are generated
by compiler, like any symbols started with "__". Or
2. Use can provided a list of symbols which we don't do -Bsymbolic on.
I like #1 and we can have a switch to turn it on and off.
I don't know the actual bug, so I don't see how I can comment.
I can't imagine any way that I would think that choice number 1 was
correct. -Bsymbolic is clearly defined. I don't think we should
change it.
-Bsymbolic does not prevent you from referring to symbols which are
not defined in the shared library. I assume you have a case where a
symbol is defined in a shared library, but you want to permit it to be
overridden. You should not be using -Bsymbolic in such a case. You
need the more precise control over symbol visibility that you can get
by using a version script. In other words, choice 2 is already
available.
Ian