toolchain-external: fix rebuild/reinstall for Linaro toolchains
PATCH 1/1 toolchain-external: fix rebuild/reinstall for Linaro toolchains
For Linaro toolchains, a special post install staging hook is used to create two symlinks needed for the dynamic loader to find the libraries. However, the way the link is created prevents a 'make toolchain-external-reinstall' from succeeding, because the symlink already exists and points to a directory:
ln -sf . /home/thomas/projets/outputs/training/target/lib/arm-linux-gnueabihf
ln: '/home/thomas/projets/outputs/training/target/lib/arm-linux-gnueabihf/.': cannot overwrite directory
This commit adjust the hook to pass the '-n' option so that the link name is treated as a normal file if it is a symbolic link to a directory.
--- toolchain/toolchain-external/toolchain-external.mk | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
toolchain/toolchain-external/toolchain-external.mk +6 -6
@@ -239,18 +239,18 @@ endif # {/usr,}/lib/arm-linux-gnueabihf, but Buildroot copies them to # {/usr,}/lib, so we need to create a symbolic link. define TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK - ln -sf . $(TARGET_DIR)/lib/arm-linux-gnueabihf - ln -sf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf + ln -snf . $(TARGET_DIR)/lib/arm-linux-gnueabihf + ln -snf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf endef define TOOLCHAIN_EXTERNAL_LINARO_ARMEBHF_SYMLINK - ln -sf . $(TARGET_DIR)/lib/armeb-linux-gnueabihf - ln -sf . $(TARGET_DIR)/usr/lib/armeb-linux-gnueabihf + ln -snf . $(TARGET_DIR)/lib/armeb-linux-gnueabihf + ln -snf . $(TARGET_DIR)/usr/lib/armeb-linux-gnueabihf endef define TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK - ln -sf . $(TARGET_DIR)/lib/aarch64-linux-gnu - ln -sf . $(TARGET_DIR)/usr/lib/aarch64-linux-gnu + ln -snf . $(TARGET_DIR)/lib/aarch64-linux-gnu + ln -snf . $(TARGET_DIR)/usr/lib/aarch64-linux-gnu endef ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201305),y)
Signature · 1 line
2.1.0
PATCH 1/1 toolchain-external: fix rebuild/reinstall for Linaro toolchains
Quoted 6 lines · Thomas Petazzoni
For Linaro toolchains, a special post install staging hook is used to create two symlinks needed for the dynamic loader to find the libraries. However, the way the link is created prevents a 'make toolchain-external-reinstall' from succeeding, because the symlink already exists and points to a directory:
Quoted 8 lines
ln -sf .
/home/thomas/projets/outputs/training/target/lib/arm-linux-gnueabihf
ln: '/home/thomas/projets/outputs/training/target/lib/arm-linux-gnueabihf/.': cannot overwrite directoryThis commit adjust the hook to pass the '-n' option so that the link name is treated as a normal file if it is a symbolic link to a directory.
Signed-off-by Thomas Petazzoni <[email protected]>
Quoted 34 lines
--- toolchain/toolchain-external/toolchain-external.mk | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)toolchain/toolchain-external/toolchain-external.mk +6
-6@@ -239,18 +239,18 @@ endif # {/usr,}/lib/arm-linux-gnueabihf, but Buildroot copies them to # {/usr,}/lib, so we need to create a symbolic link. define TOOLCHAIN_EXTERNAL_LINARO_ARMHF_SYMLINK - ln -sf . $(TARGET_DIR)/lib/arm-linux-gnueabihf - ln -sf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf + ln -snf . $(TARGET_DIR)/lib/arm-linux-gnueabihf + ln -snf . $(TARGET_DIR)/usr/lib/arm-linux-gnueabihf endef define TOOLCHAIN_EXTERNAL_LINARO_ARMEBHF_SYMLINK - ln -sf . $(TARGET_DIR)/lib/armeb-linux-gnueabihf - ln -sf . $(TARGET_DIR)/usr/lib/armeb-linux-gnueabihf + ln -snf . $(TARGET_DIR)/lib/armeb-linux-gnueabihf + ln -snf . $(TARGET_DIR)/usr/lib/armeb-linux-gnueabihf endef define TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK - ln -sf . $(TARGET_DIR)/lib/aarch64-linux-gnu - ln -sf . $(TARGET_DIR)/usr/lib/aarch64-linux-gnu + ln -snf . $(TARGET_DIR)/lib/aarch64-linux-gnu + ln -snf . $(TARGET_DIR)/usr/lib/aarch64-linux-gnu endef ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201305),y)
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
Thomas Petazzoni
AppliedPATCH 1/1 toolchain-external: fix rebuild/reinstall for Linaro toolchains
In reply to Thomas PetazzoniHello,
Quoted 9 lines · Thomas Petazzoni
For Linaro toolchains, a special post install staging hook is used to create two symlinks needed for the dynamic loader to find the libraries. However, the way the link is created prevents a 'make toolchain-external-reinstall' from succeeding, because the symlink already exists and points to a directory:
ln -sf .
/home/thomas/projets/outputs/training/target/lib/arm-linux-gnueabihf
ln: '/home/thomas/projets/outputs/training/target/lib/arm-linux-gnueabihf/.': cannot overwrite directory
Quoted 8 lines
This commit adjust the hook to pass the '-n' option so that the link name is treated as a normal file if it is a symbolic link to a directory.
Signed-off-by Thomas Petazzoni <[email protected]>--- toolchain/toolchain-external/toolchain-external.mk | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
Applied, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com