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
On Sun, Sep 22, 2002 at 12:23:19PM -0400, Andrew Koenig wrote:
> 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.
Preferably the former. Could you try wrapping the linker in a shell
script which adds -z nocombreloc (at the end of arguments, I think..)
and rebuilding both GCC 3.2 and Python? That way libgcc_s, libstdc++,
etc. will be built without combreloc.
My current plan is to disable combreloc on Solaris targets for 2.13.1,
unless someone figures out where the problem lies.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer