diff mbox

[U-Boot] config: Always use GNU ld

Message ID 1343924374-17404-1-git-send-email-otavio@ossystems.com.br
State Accepted
Commit 7cb714a57837f1352d737ae07b56a5ce47c40431
Headers show

Commit Message

Otavio Salvador Aug. 2, 2012, 4:19 p.m. UTC
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(-)

Comments

Mike Frysinger Aug. 2, 2012, 5:49 p.m. UTC | #1
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
Otavio Salvador Aug. 4, 2012, 10:31 p.m. UTC | #2
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?
Otavio Salvador Aug. 9, 2012, 7:49 p.m. UTC | #3
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?
Anatolij Gustschin Aug. 10, 2012, 8:48 p.m. UTC | #4
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
diff mbox

Patch

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