[U-Boot] [PATCH] config: Always use GNU ld

From: Khem Raj raj.khem@gmail.com
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 --- config.mk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/config.mk b/config.mk index 3dcea6a..c3822a2 100644 --- 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

On Thursday 02 August 2012 12:19:34 Otavio Salvador wrote:
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.
Acked-by: Mike Frysinger vapier@gentoo.org -mike

On Thu, Aug 2, 2012 at 2:49 PM, Mike Frysinger vapier@gentoo.org wrote:
On Thursday 02 August 2012 12:19:34 Otavio Salvador wrote:
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.
Acked-by: Mike Frysinger vapier@gentoo.org -mike
Wolfgang, I ended not putting you on CC but I think you're the one who would take this patch, aren't you?

On Sat, Aug 4, 2012 at 7:31 PM, Otavio Salvador otavio@ossystems.com.br wrote:
On Thu, Aug 2, 2012 at 2:49 PM, Mike Frysinger vapier@gentoo.org wrote:
On Thursday 02 August 2012 12:19:34 Otavio Salvador wrote:
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.
Acked-by: Mike Frysinger vapier@gentoo.org -mike
Wolfgang, I ended not putting you on CC but I think you're the one who would take this patch, aren't you?
Ping?

Hi,
On Thu, 2 Aug 2012 13:19:34 -0300 Otavio Salvador otavio@ossystems.com.br wrote:
From: Khem Raj raj.khem@gmail.com
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
config.mk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
applied to my staging branch, thanks!
Anatolij
participants (3)
-
Anatolij Gustschin
-
Mike Frysinger
-
Otavio Salvador