toolchain-external: download: add <CROSS>-cc symlink if not present
PATCH 1/1 toolchain-external: download: add <CROSS>-cc symlink if not present
Fixes:
http://autobuild.buildroot.net/results/dbb/dbb3c4634d5fc726ca0b27c2dac0befbbab70912
http://autobuild.buildroot.net/results/dbb/dbb69acadc20b4bb559311348eca276c1e6343f7
Some external toolchains do not have a <CROSS>-cc binary/symlink, which is used by some packages. As a workaround, add a symlink to <CROSS>-gcc.
Notice that we can only do this for external toolchains we download ourselves, and not pre-installed ones as we might not have write access to them.
--- toolchain/toolchain-external/pkg-toolchain-external.mk | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)
toolchain/toolchain-external/pkg-toolchain-external.mk +12 -1
@@ -106,6 +106,16 @@ define TOOLCHAIN_EXTERNAL_MOVE mkdir -p $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR) mv $(@D)/* $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)/ endef + +# Some external toolchains do not have a <CROSS>-cc binary/symlink, +# which is used by some packages. As a workaround, add a (relative) +# symlink to <CROSS>-gcc +define TOOLCHAIN_EXTERNAL_ADD_CC_SYMLINK + if [ ! -e $(TOOLCHAIN_EXTERNAL_CROSS)cc ]; then \ + ln -s $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc $(TOOLCHAIN_EXTERNAL_CROSS)cc; \ + fi +endef + endif #
@@ -515,7 +525,8 @@ ifeq ($$(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y) $(2)_EXCLUDES = usr/lib/locale/* $(2)_POST_EXTRACT_HOOKS += \ - TOOLCHAIN_EXTERNAL_MOVE + TOOLCHAIN_EXTERNAL_MOVE \ + TOOLCHAIN_EXTERNAL_ADD_CC_SYMLINK endif # Checks for an already installed toolchain: check the toolchain
Signature · 1 line
2.11.0
PATCH 1/1 toolchain-external: download: add <CROSS>-cc symlink if not present
Hello,
Quoted 10 lines · Peter Korsgaard
Fixes:
http://autobuild.buildroot.net/results/dbb/dbb3c4634d5fc726ca0b27c2dac0befbbab70912
http://autobuild.buildroot.net/results/dbb/dbb69acadc20b4bb559311348eca276c1e6343f7Some external toolchains do not have a <CROSS>-cc binary/symlink, which is used by some packages. As a workaround, add a symlink to <CROSS>-gcc.
Notice that we can only do this for external toolchains we download ourselves, and not pre-installed ones as we might not have write access to them.
This is not great, as it doesn't fix the problem in all cases.
What about doing this *after* the toolchain has been installed in $(HOST_DIR), where we have write access ?
I.E:
output/host/bin (master)$ ls -l
total 108
lrwxrwxrwx 1 thomas thomas 104 Dec 17 10:09 arm-linux-gnueabihf-addr2line -> /home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-addr2line
lrwxrwxrwx 1 thomas thomas 97 Dec 17 10:09 arm-linux-gnueabihf-ar -> /home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-ar lrwxrwxrwx 1 thomas thomas 97 Dec 17 10:09 arm-linux-gnueabihf-as -> /home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-as lrwxrwxrwx 1 thomas thomas 17 Dec 17 10:09 arm-linux-gnueabihf-c++ -> toolchain-wrapper lrwxrwxrwx 1 thomas thomas 102 Dec 17 10:09 arm-linux-gnueabihf-c++filt -> /home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-c++filt lrwxrwxrwx 1 thomas thomas 17 Dec 17 10:09 arm-linux-gnueabihf-cpp -> toolchain-wrapper lrwxrwxrwx 1 thomas thomas 102 Dec 17 10:09 arm-linux-gnueabihf-elfedit -> /home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-elfedit lrwxrwxrwx 1 thomas thomas 17 Dec 17 10:09 arm-linux-gnueabihf-g++ -> toolchain-wrapper lrwxrwxrwx 1 thomas thomas 17 Dec 17 10:09 arm-linux-gnueabihf-gcc -> toolchain-wrapper lrwxrwxrwx 1 thomas thomas 17 Dec 17 10:09 arm-linux-gnueabihf-gcc-8.2.1 -> toolchain-wrapper
lrwxrwxrwx 1 thomas thomas 101 Dec 17 10:09 arm-linux-gnueabihf-gcc-ar -> /home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-gcc-ar
Add a -cc -> toolchain-wrapper symlink ?
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
PATCH 1/1 toolchain-external: download: add <CROSS>-cc symlink if not present
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Thomas" == Thomas Petazzoni <[email protected]> writes:
Hi,
Quoted 6 lines
Hello,
Quoted 8 lines
Quoted 6 lines
Some external toolchains do not have a <CROSS>-cc binary/symlink, which is used by some packages. As a workaround, add a symlink to <CROSS>-gcc.
Notice that we can only do this for external toolchains we download ourselves, and not pre-installed ones as we might not have write access to them.
This is not great, as it doesn't fix the problem in all cases.
Correct, but I don't really see how?
Quoted 2 lines
What about doing this *after* the toolchain has been installed in $(HOST_DIR), where we have write access ?
But we do not copy a pre-installed toolchain? We only setup symlinks.
Quoted 19 lines
I.E:
output/host/bin (master)$ ls -l
total 108
lrwxrwxrwx 1 thomas thomas 104 Dec 17 10:09
arm-linux-gnueabihf-addr2line ->/home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-addr2linelrwxrwxrwx 1 thomas thomas 97 Dec 17 10:09 arm-linux-gnueabihf-ar ->/home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-arlrwxrwxrwx 1 thomas thomas 97 Dec 17 10:09 arm-linux-gnueabihf-as ->/home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-as
lrwxrwxrwx 1 thomas thomas 17 Dec 17 10:09 arm-linux-gnueabihf-c++ -> toolchain-wrapper
lrwxrwxrwx 1 thomas thomas 102 Dec 17 10:09
arm-linux-gnueabihf-c++filt ->/home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-c++filt
lrwxrwxrwx 1 thomas thomas 17 Dec 17 10:09 arm-linux-gnueabihf-cpp -> toolchain-wrapper
lrwxrwxrwx 1 thomas thomas 102 Dec 17 10:09
arm-linux-gnueabihf-elfedit ->/home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-elfedit
Quoted 4 lines
lrwxrwxrwx 1 thomas thomas 17 Dec 17 10:09 arm-linux-gnueabihf-g++ -> toolchain-wrapper lrwxrwxrwx 1 thomas thomas 17 Dec 17 10:09 arm-linux-gnueabihf-gcc -> toolchain-wrapper lrwxrwxrwx 1 thomas thomas 17 Dec 17 10:09 arm-linux-gnueabihf-gcc-8.2.1 -> toolchain-wrapperlrwxrwxrwx 1 thomas thomas 101 Dec 17 10:09 arm-linux-gnueabihf-gcc-ar
->
Quoted 3 lines
/home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-gcc-arAdd a -cc -> toolchain-wrapper symlink ?
That will not work, as it will then try to execute /home/thomas/Downloads/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf//bin/arm-linux-gnueabihf-cc (which does not exist)
Signature · 1 line
Bye, Peter Korsgaard