autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

autoconf, -rpath-link, and CC_FOR_BUILD


From: David Wuertele
Subject: autoconf, -rpath-link, and CC_FOR_BUILD
Date: Thu, 19 Mar 2009 19:28:53 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

I'm working on some generalized make rules for cross-compiling autoconf
packages.  I've got a pretty slick system, but I'm running into a catch-22 when
it comes to recursively linked libraries.  I'm looking for advice on how to
drive autoconf better.

I first ran into a problem when cross-compiling the x.org server.  The
xorg-server binary dynamically links against libXfont.  libXfont in turn
dynamically links against freetype.  Both libXfont.so and libfreetype.so are
already "installed" in the target root's lib dir, which is at (let's say)
/path/to/target-root/lib.  But the cross compiler's ld doesn't have
/path/to/target-root/lib in its search path, so I tried invoking xorg-server's
makefile like this:

PATH=/path/too/cross-toolchain/bin:$(PATH) make -C /path/to/xorg-server-source \
  LDFLAGS=-L/path/to/target-root/lib

This allows the linker to find libXfont.so, but for some reason it doesn't look
for libfreetype.so in the same directory!  The only way I could get ld to find
recursively-linked libraries was by using -rpath-link, thusly:

PATH=/path/too/cross-toolchain/bin:$(PATH) make -C /path/to/xorg-server-source \
  LDFLAGS="-L/path/to/target-root/lib -Wl,-rpath-link=/path/to/target-root/lib"

Once I made that my standard make invocation, everything worked really well. 
Until today.  When I tried this on libX11, I ran into CC_FOR_BUILD.

CC_FOR_BUILD is the variable formerly known as "HOST_CC".  This is not the cross
compiler, it is the host's compiler, and it MUST NOT search in
/path/to/target-root/lib.  So sending -L/path/to/target-root/lib is wrong, and
-rpath-link=/path/to/target-root/lib is worse.  What I want is a way to send
just the cross-ld the target path, and not send the host ld the target path.

Is there a way to call autoconf/make such that I can associate the proper paths
with the proper linkers?

Thanks,
Dave







reply via email to

[Prev in Thread] Current Thread [Next in Thread]