toolchain-external: don't create gdb symlink when building host-gdb
authorThomas De Schampheleire <patrickdepinguin+buildroot@gmail.com>
Tue, 30 Jul 2013 16:32:30 +0000 (18:32 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 10 Aug 2013 19:11:12 +0000 (21:11 +0200)
The external-toolchain infrastructure creates symbolic links for all
tools in the host directory. However, when buildroot builds its own
version of a cross debugger (BR2_PACKAGE_HOST_GDB), and the toolchain
also provides a cross debugger, there would be two symbolic links for
gdb in the host directory, which is confusing.
An example use case is where the external toolchain only provides a
64-bit gdbserver (e.g. Cavium Networks SDK) but the target is completely
32-bit (e.g. n32 ABI). In this case, using gdbserver on target requires
copying a bunch of 64-bit libraries to the target as well, just for gdb.
In this case, one can let buildroot build both gdbserver as cross-gdb
(both in 32-bit).

This patch modifies the symlink creation so that no gdb (or gdbtui)
symlink is created if buildroot is going to build a cross-gdb.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
toolchain/toolchain-external/ext-tool.mk

index a3c40c873bbb3bc33111a92b9cc4d9ce0c0b2c95..01be85c6729cc6f7d2d6702b045582791628890a 100644 (file)
@@ -531,8 +531,9 @@ ifeq ($(BR2_BFIN_INSTALL_FLAT_SHARED),y)
 TOOLCHAIN_EXTERNAL_INSTALL += $(STAMP_DIR)/ext-toolchain-bfin-shared-flat-installed
 endif
 
-# Build toolchain wrapper for preprocessor, C and C++ compiler, and setup
-# symlinks for everything else
+# Build toolchain wrapper for preprocessor, C and C++ compiler and setup
+# symlinks for everything else. Skip gdb symlink when we are building our
+# own gdb to prevent two gdb's in output/host/usr/bin.
 $(HOST_DIR)/usr/bin/ext-toolchain-wrapper: $(TOOLCHAIN_EXTERNAL_INSTALL)
        $(Q)$(call MESSAGE,"Building ext-toolchain wrapper")
        mkdir -p $(HOST_DIR)/usr/bin; cd $(HOST_DIR)/usr/bin; \
@@ -542,6 +543,11 @@ $(HOST_DIR)/usr/bin/ext-toolchain-wrapper: $(TOOLCHAIN_EXTERNAL_INSTALL)
                *cc|*cc-*|*++|*++-*|*cpp) \
                        ln -sf $(@F) $$base; \
                        ;; \
+               *gdb|*gdbtui) \
+                       if test "$(BR2_PACKAGE_HOST_GDB)" != "y"; then \
+                               ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
+                       fi \
+                       ;; \
                *) \
                        ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
                        ;; \