config: Always use GNU ld
authorKhem Raj <raj.khem@gmail.com>
Thu, 2 Aug 2012 06:19:34 +0000 (06:19 +0000)
committerAnatolij Gustschin <agust@denx.de>
Fri, 10 Aug 2012 21:26:10 +0000 (23:26 +0200)
This patch makes sure that we always use the GNU ld. U-Boot uses certain
construct e.g. OVERLAY which are not implemented in gold therefore it
always needs GNU ld for linking.

It works well if default linker in toolchain is GNU ld but in some
cases we can have gold to be the default linker and also ship GNU ld
but not as default in such cases its called $(PREFIX)ld.bfd, with this
patch we make sure that if $(PREFIX)ld.bfd exists than we use that for
our ld.

This way it does not matter what the default ld is.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
config.mk

index 3dcea6a8f99a8b3bc4e22f6c981a7e43839cf6f8..c3822a25c255100f6730549820fe32dadce8dba7 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -133,7 +133,11 @@ cc-version = $(shell $(SHELL) $(SRCTREE)/tools/gcc-version.sh $(CC))
 # Include the make variables (CC, etc...)
 #
 AS     = $(CROSS_COMPILE)as
-LD     = $(CROSS_COMPILE)ld
+
+# Always use GNU ld
+LD     = $(shell if $(CROSS_COMPILE)ld.bfd -v > /dev/null 2>&1; \
+               then echo "$(CROSS_COMPILE)ld.bfd"; else echo "$(CROSS_COMPILE)ld"; fi;)
+
 CC     = $(CROSS_COMPILE)gcc
 CPP    = $(CC) -E
 AR     = $(CROSS_COMPILE)ar