[libvirt] PATCH: configure.in should use 'ld' from $PATH for checking version-script syntax, not hardcode /usr/bin/ld

Daniel Veillard veillard at redhat.com
Mon Nov 16 14:01:49 UTC 2009


On Mon, Nov 16, 2009 at 01:38:12PM +0000, Daniel P. Berrange wrote:
> On Mon, Nov 16, 2009 at 02:31:39PM +0100, Daniel Veillard wrote:
> > On Sun, Nov 15, 2009 at 06:42:34PM -0800, Steve Yarmie wrote:
> > > Hi,
> > > I had a few minor patches which I had sent by using Bugzilla.
> > > I believe I should have sent them to this list instead...
> > > Here's the first (reference 531496  
> > > https://bugzilla.redhat.com/show_bug.cgi?id=531496)
> > >
> > > configure.in should use 'ld' from $PATH for checking version-script  
> > > syntax, not hard-coded in /usr/bin/ld
> > >
> > > -Steve
> > >
> > 
> > > --- libvirt/configure.in	2009-11-08 20:57:08.194911693 -0800
> > > +++ libvirt-ld/configure.in	2009-11-08 22:12:57.524840188 -0800
> > > @@ -66,7 +66,7 @@
> > >  AM_PROG_CC_C_O
> > >  
> > >  VERSION_SCRIPT_FLAGS=-Wl,--version-script=
> > > -`/usr/bin/ld --help 2>&1 | grep -- --version-script >/dev/null` || \
> > > +`ld --help 2>&1 | grep -- --version-script >/dev/null` || \
> > >      VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
> > >  AC_SUBST(VERSION_SCRIPT_FLAGS)
> > 
> >   I'm not so sure about this honnestly
> > The problem is that you don't know which linker gcc (or whatever CC is
> > being used) will call. That can be hardcoded inside the gcc spec file
> > for example if using a cross compiler.
> > I have hit the issue with libxml2 in different ways because I reused
> > that code in configure but I still don't know how to really address that
> > properly.
> > 
> >  Using ld from $PATH might be a bit better in some case but it's really
> > not garanteed to work in all cases, taht's painful.
> 
> I think this is incrementally better, because it means that if someone
> does   PATH=/opt/other/gcc/install:$PATH ./configure, then the ld
> check will probably work correctly, whereas current behaviour is 
> guarenteed wrong.

  The only thing I could gather is using -Wl,-debug option of gcc on a
compile + link simple test and then parse stderr to find 'ld '
But that's still completely gcc specific, so ACK for current patch,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list