Choose host/target ldconfig based on availability
authorMalte Starostik <m-starostik@versanet.de>
Sun, 18 Jul 2010 20:16:49 +0000 (22:16 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Sun, 18 Jul 2010 20:46:06 +0000 (22:46 +0200)
Decide whether to use the host or target ldconfig based on an
availability check instead of internal/external toolchain selection.  An
external toolchain may very well provide an ldconfig while the host's
one may fail.
External toolchain generated by Gentoo crossdev:

$ LC_ALL=C i686-pc-linux-uclibc-ldconfig -r output/target/; echo $?
i686-pc-linux-uclibc-ldconfig: skipping /usr/lib: No such file or directory
0

vs. the host (x86_64-pc-linux-gnu) version:

$ LC_ALL=C /sbin/ldconfig -r output/target/; echo $?
/sbin/ldconfig: Can't open configuration file
output/target/etc/ld.so.conf: No such file or directory
/sbin/ldconfig: Can't open cache file /var/cache/ldconfig/aux-cache
: No such file or directory
1

Signed-off-by: Malte Starostik <m-starostik@versanet.de>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/Makefile.in

index 189806d7ba89bbf71fc83af1a4e3aa540909c7a8..1962466e2f1345105f026615bdef478eaf6cc2af 100644 (file)
@@ -127,10 +127,10 @@ TARGET_RANLIB   = $(TARGET_CROSS)ranlib
 TARGET_OBJCOPY  = $(TARGET_CROSS)objcopy
 TARGET_OBJDUMP  = $(TARGET_CROSS)objdump
 
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-TARGET_LDCONFIG = $(TARGET_CROSS)ldconfig
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+ifeq ($(shell $(SHELL) -c "command -v $(TARGET_CROSS)ldconfig"),)
 TARGET_LDCONFIG = /sbin/ldconfig
+else
+TARGET_LDCONFIG = $(TARGET_CROSS)ldconfig
 endif
 
 ifeq ($(BR2_STRIP_strip),y)