From: Nathan_Lynch@mentor.com (Nathan Lynch)
To: linux-arm-kernel@lists.infradead.org
Subject: Bulid regression with VDSO enabled
Date: Fri, 8 May 2015 16:15:25 -0500 [thread overview]
Message-ID: <554D276D.9040205@mentor.com> (raw)
In-Reply-To: <983cc33a8e5704f4281a7d30bbc9d1d2@agner.ch>
On 05/08/2015 11:08 AM, Stefan Agner wrote:
> On 2015-05-08 17:27, Nathan Lynch wrote:
>> On 05/08/2015 06:13 AM, Stefan Agner wrote:
>>> Also, I used the BFD linker by adding LD=${CROSS_COMPILE}ld.bfd to the
>>> build command. Interestingly thought, I had the same issue when using
>>> gold linker...
>>
>> When I try this, ld.gold is used regardless.
>>
>> You can tell by doing and checking for a NT_GNU_GOLD_VERSION note:
>>
>> $ readelf -n arch/arm/vdso/vdso.so.raw
>>
>> Displaying notes found at file offset 0x000001bc with length 0x00000040:
>> Owner Data size Description
>> GNU 0x00000009 NT_GNU_GOLD_VERSION (gold version)
>> GNU 0x00000014 NT_GNU_BUILD_ID (unique build
>> ID bitstring)
>> Build ID: f025409550acb7f955c61d95691291da078e6688
>
> Hm, you are right. When deleting moving ld.bfd to ld, which makes the
> BFD linker as default, compiling works flawless.
>
> However, so far LD=${CROSS_COMPILE}ld.bfc seems to work for other build
> objects, at least those do not have this note. For instance time.o does
> not return anything:
>
> $ readelf -n arch/arm/kernel/time.o
This is just an object file that hasn't been linked, but your general
point stands -- LD is honored by other parts of the build.
> So it seems to be a vdso.so.raw specific problem not using the specified
> linker...?
Yes, since it's produced by an invocation of $(CC) which is expected
to call the linker implicitly, and this is how the toolchain's default
linker ends up getting used even when you set LD on the command line.
If I'm not mistaken, implicitly performing a link through the compiler
seems to be 1) conventional for all VDSOs, not just ARM's, but 2) unusual
for other parts of the kernel build.
I suppose it's possible to make arch/arm/vdso/Makefile honor LD, but it
would basically entail a rewrite. In the meantime, using -fuse-ld=bfd
may suffice:
diff --git a/arch/arm/vdso/Makefile b/arch/arm/vdso/Makefile
index 8aa791051029..da0ce897edde 100644
--- a/arch/arm/vdso/Makefile
+++ b/arch/arm/vdso/Makefile
@@ -43,6 +43,7 @@ quiet_cmd_vdsold = VDSO $@
cmd_vdsold = $(CC) $(c_flags) -Wl,-T $(filter %.lds,$^) $(filter %.o,$^) \
$(call cc-ldoption, -Wl$(comma)--build-id) \
-Wl,-Bsymbolic -Wl,-z,max-page-size=4096 \
+ $(call cc-option, -fuse-ld=bfd) \
-Wl,-z,common-page-size=4096 -o $@
quiet_cmd_vdsomunge = MUNGE $@
next prev parent reply other threads:[~2015-05-08 21:15 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <391d6fc127b78ef4cbc5443557f0665a@agner.ch>
2015-05-08 11:28 ` Bulid regression with VDSO enabled Russell King - ARM Linux
2015-05-08 12:23 ` Stefan Agner
2015-05-08 15:27 ` Nathan Lynch
2015-05-08 16:08 ` Stefan Agner
2015-05-08 21:15 ` Nathan Lynch [this message]
2015-05-09 8:31 ` Ard Biesheuvel
2015-05-11 14:18 ` Nathan Lynch
2015-05-09 9:26 ` Russell King - ARM Linux
2015-05-15 17:01 ` Nathan Lynch
2015-05-09 12:41 ` Stefan Agner
2015-05-09 13:25 ` Stefan Agner
2015-05-11 14:27 ` Nathan Lynch
2015-05-09 9:32 ` Russell King - ARM Linux
2015-04-30 11:44 Stefan Agner
2015-04-30 14:38 ` Nathan Lynch
2015-04-30 15:20 ` Stefan Agner
2015-04-30 15:48 ` Nathan Lynch
2015-04-30 15:58 ` Stefan Agner
2015-05-01 15:22 ` Nathan Lynch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=554D276D.9040205@mentor.com \
--to=nathan_lynch@mentor.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).