toolchain-external: fix support of uClibc-ng toolchains
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 13 Jul 2015 10:56:14 +0000 (12:56 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 14 Jul 2015 08:07:55 +0000 (10:07 +0200)
The uClibc-ng dynamic loader is called ld-uClibc.so.1, but gcc is not
patched specifically for uClibc-ng, so it continues to generate
binaries that expect the dynamic loader to be named ld-uClibc.so.0,
like with the original uClibc.

Therefore, when a uClibc-ng toolchain is used as an external
toolchain, we need to create an additional symbolic link to make
uClibc-ng systems work properly.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
toolchain/toolchain-external/toolchain-external.mk

index c8dd98f64dda0d7fcb57f04f276338d9b3f9361c..fcb033ca2ebfa082c4c9a891f49502835a904a14 100644 (file)
@@ -721,6 +721,17 @@ define TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT
        fi
 endef
 
+# uClibc-ng dynamic loader is called ld-uClibc.so.1, but gcc is not
+# patched specifically for uClibc-ng, so it continues to generate
+# binaries that expect the dynamic loader to be named ld-uClibc.so.0,
+# like with the original uClibc. Therefore, we create an additional
+# symbolic link to make uClibc-ng systems work properly.
+define TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO
+       if test -e $(TARGET_DIR)/lib/ld-uClibc.so.1; then \
+               ln -sf ld-uClibc.so.1 $(TARGET_DIR)/lib/ld-uClibc.so.0 ; \
+       fi
+endef
+
 define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS
        $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS)
        $(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER)
@@ -734,6 +745,7 @@ define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_CMDS
        $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS)
        $(TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC)
        $(TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT)
+       $(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO)
 endef
 
 $(eval $(generic-package))