This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: ld -lgen -ladm causes assert failure in gnu ld 2.12.1 and 2.13 under Solaris 2.7 or 2.8
- From: Andrew Koenig <ark at research dot att dot com>
- To: nickc at redhat dot com
- Cc: jakub at redhat dot com, bug-binutils at gnu dot org,binutils at sources dot redhat dot com
- Date: Sun, 22 Sep 2002 12:23:19 -0400 (EDT)
- Subject: Re: ld -lgen -ladm causes assert failure in gnu ld 2.12.1 and 2.13 under Solaris 2.7 or 2.8
- References: <200208292039.g7TKdoH13441@europa.research.att.com><m3ptvaxcyd.fsf@north-pole.nickc.cambridge.redhat.com><200209191439.g8JEdEL08064@europa.research.att.com><m3bs6uvt0y.fsf@north-pole.nickc.cambridge.redhat.com><200209191923.g8JJNTV01948@europa.research.att.com><m3znudslk4.fsf@north-pole.nickc.cambridge.redhat.com><20020919234936.A5743@sunsite.ms.mff.cuni.cz> <m3heglrvex.fsf@north-pole.nickc.cambridge.redhat.com>
It looks like the -znocombreloc fix isn't good enough.
Here's a summary of what I tried. I started with binutils 2.12.1,
gcc 3.2, and python 2.1.1
1) Install binutils 2.13.
2) Rebuild python. The build fails.
3) Change the python build procedure to say -Wl,-znocombreloc
where it says -fPIC. Python now builds and seems to work.
4) Rebuild gcc 3.2 from scratch. The python executable now
crashes -- which means that rebuilding gcc 3.2 changed something
that python dynamically loads. I am guessing that it builds a
library somwhere with -zcombreloc, which then causes the dynamic
loader to fail when the python executable tries to use it.
5) Rebuild python with -Wl,-znocombreloc. The build fails,
not too surprisingly.
6) Reinstall binutils 2.12.1. The little test program I sent you
earlier *still fails*, even with -znocombreloc.
So apparently building gcc 3.2 with binutils 2.13 does something
that renders the -znocombreloc workaround ineffective, at least
for the purpose of building python.
I think we need a more effective fix to the problem -- either finding
out why -zcombreloc doesn't work under Solaris 2.8 or disabling it.