This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] 3.2: Fixup symbol versioning mistake on powerpc-linux-gnu


On Sun, Aug 04, 2002 at 09:02:02PM +0200, Franz Sirl wrote:
> Hi,
> 
> this turned out to be more difficult than I thought, but finally I had the 
> right idea on how to tackle that.
> 
> The patch changes the symbol versions in the shared libgcc for these sysmbols:
> 
> 	__divdi3	
> 	__udivdi3
> 	__moddi3
> 	__umoddi3
> 
> The change is to move the link-time reference from GLIBC_2.0 to GCC_3.0:
> 
> 	3.0, 3.1:		run+linktime @@GLIBC_2.0, runtime @GCC_3.0
> 	3.2+:		run+linktime @@GCC_3.0, runtime @GLIBC_2.0

First of all, can you explain why that is needed?
As glibc on PPC AFAIK was never exporting these symbols, they were added there
just to cope with binaries/libraries taking those symbols from various
shared libraries unintentionally exporting them. But all those
were unversioned references, ie. it really doesn't matter what
symbol version is glibc using for them.
Newly built libraries/programs will either link against libgcc_s, in which
case they will whatever symbol version libgcc_s exports (and
it doesn't matter if it is different from glibc's version, since they have
either direct or indirect DT_NEEDED on libgcc_s), or they'll use the .hidden
routine from libgcc.a.

Yes, some months ago I thought it would be a good idea to use the same
symbol version, but IA-64 in the final version uses different versions and
it doesn't cause any problems. Why is PPC any different here?

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]