gcc-final: hard link TARGET-cc -> TARGET-gcc
authorSteven Noonan <steven@uplinklabs.net>
Wed, 4 Nov 2015 07:34:27 +0000 (23:34 -0800)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 8 Nov 2015 14:00:35 +0000 (15:00 +0100)
Doing a symlink results in incorrect behavior:

    $ x86_64-buildroot-linux-gnux32-cc
    --version
    ccache: error: execv of [...]/x86_64-buildroot-linux-gnux32-cc.br_real.br_real failed: No such file or directory

    $ x86_64-buildroot-linux-gnux32-gcc --version
    x86_64-buildroot-linux-gnux32-gcc.br_real (Buildroot 2015.11-git-00965-g8d89653-dirty) 5.2.0
    Copyright (C) 2015 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Note the double .br_real on the invocation by toolchain-wrapper.

[Thomas: use 'ln -f' instead of 'cp -l', as suggested by Arnout.]

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/gcc/gcc-final/gcc-final.mk

index 0467ac293493f8f72bc097bb6a3cdd5ec2f64e32..7802855f898ad2bc1b7498cefeb71ef3aca092e2 100644 (file)
@@ -91,7 +91,7 @@ HOST_GCC_FINAL_MAKE_OPTS += $(HOST_GCC_COMMON_MAKE_OPTS)
 # Make sure we have 'cc'
 define HOST_GCC_FINAL_CREATE_CC_SYMLINKS
        if [ ! -e $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc ]; then \
-               ln -snf $(GNU_TARGET_NAME)-gcc \
+               ln -f $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc \
                        $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc; \
        fi
 endef