2019-05-15 19:51:12

by Laura Abbott

[permalink] [raw]
Subject: [PATCH] arm64: vdso: Explicitly add build-id option

Commit 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to
link VDSO") switched to using LD explicitly. The --build-id option
needs to be passed explicitly, similar to x86. Add this option.

Fixes: 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to link VDSO")
Signed-off-by: Laura Abbott <[email protected]>
---
arch/arm64/kernel/vdso/Makefile | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
index 744b9dbaba03..ca209103cd06 100644
--- a/arch/arm64/kernel/vdso/Makefile
+++ b/arch/arm64/kernel/vdso/Makefile
@@ -13,6 +13,7 @@ targets := $(obj-vdso) vdso.so vdso.so.dbg
obj-vdso := $(addprefix $(obj)/, $(obj-vdso))

ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 \
+ $(call ld-option, --build-id) \
$(call ld-option, --hash-style=sysv) -n -T

# Disable gcov profiling for VDSO code
--
2.21.0


2019-05-16 05:01:44

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] arm64: vdso: Explicitly add build-id option

On Thu, May 16, 2019 at 4:51 AM Laura Abbott <[email protected]> wrote:
>
> Commit 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to
> link VDSO") switched to using LD explicitly. The --build-id option
> needs to be passed explicitly, similar to x86. Add this option.
>
> Fixes: 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to link VDSO")
> Signed-off-by: Laura Abbott <[email protected]>
> ---
> arch/arm64/kernel/vdso/Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
> index 744b9dbaba03..ca209103cd06 100644
> --- a/arch/arm64/kernel/vdso/Makefile
> +++ b/arch/arm64/kernel/vdso/Makefile
> @@ -13,6 +13,7 @@ targets := $(obj-vdso) vdso.so vdso.so.dbg
> obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
>
> ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 \
> + $(call ld-option, --build-id) \
> $(call ld-option, --hash-style=sysv) -n -T
>
> # Disable gcov profiling for VDSO code


I missed that. Sorry.

You can add --build-id without $(call ld-option,...)
because it is supported by our minimal version of toolchain.

See commit log of 1e0221374e for example.


Otherwise, looks good to me.

Reviewed-by: Masahiro Yamada <[email protected]>


--
Best Regards

Masahiro Yamada

2019-05-16 10:49:01

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH] arm64: vdso: Explicitly add build-id option

On Thu, May 16, 2019 at 01:58:56PM +0900, Masahiro Yamada wrote:
> On Thu, May 16, 2019 at 4:51 AM Laura Abbott <[email protected]> wrote:
> >
> > Commit 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to
> > link VDSO") switched to using LD explicitly. The --build-id option
> > needs to be passed explicitly, similar to x86. Add this option.
> >
> > Fixes: 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to link VDSO")
> > Signed-off-by: Laura Abbott <[email protected]>
> > ---
> > arch/arm64/kernel/vdso/Makefile | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
> > index 744b9dbaba03..ca209103cd06 100644
> > --- a/arch/arm64/kernel/vdso/Makefile
> > +++ b/arch/arm64/kernel/vdso/Makefile
> > @@ -13,6 +13,7 @@ targets := $(obj-vdso) vdso.so vdso.so.dbg
> > obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
> >
> > ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 \
> > + $(call ld-option, --build-id) \
> > $(call ld-option, --hash-style=sysv) -n -T
> >
> > # Disable gcov profiling for VDSO code
>
>
> I missed that. Sorry.
>
> You can add --build-id without $(call ld-option,...)
> because it is supported by our minimal version of toolchain.
>
> See commit log of 1e0221374e for example.

Ok, so I'm ok folding in the diff below on top?

Will

--->8

diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
index ca209103cd06..fa230ff09aa1 100644
--- a/arch/arm64/kernel/vdso/Makefile
+++ b/arch/arm64/kernel/vdso/Makefile
@@ -12,9 +12,8 @@ obj-vdso := gettimeofday.o note.o sigreturn.o
targets := $(obj-vdso) vdso.so vdso.so.dbg
obj-vdso := $(addprefix $(obj)/, $(obj-vdso))

-ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 \
- $(call ld-option, --build-id) \
- $(call ld-option, --hash-style=sysv) -n -T
+ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv \
+ --build-id -n -T

# Disable gcov profiling for VDSO code
GCOV_PROFILE := n

2019-05-16 13:18:23

by Laura Abbott

[permalink] [raw]
Subject: Re: [PATCH] arm64: vdso: Explicitly add build-id option

On 5/16/19 3:46 AM, Will Deacon wrote:
> On Thu, May 16, 2019 at 01:58:56PM +0900, Masahiro Yamada wrote:
>> On Thu, May 16, 2019 at 4:51 AM Laura Abbott <[email protected]> wrote:
>>>
>>> Commit 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to
>>> link VDSO") switched to using LD explicitly. The --build-id option
>>> needs to be passed explicitly, similar to x86. Add this option.
>>>
>>> Fixes: 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to link VDSO")
>>> Signed-off-by: Laura Abbott <[email protected]>
>>> ---
>>> arch/arm64/kernel/vdso/Makefile | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
>>> index 744b9dbaba03..ca209103cd06 100644
>>> --- a/arch/arm64/kernel/vdso/Makefile
>>> +++ b/arch/arm64/kernel/vdso/Makefile
>>> @@ -13,6 +13,7 @@ targets := $(obj-vdso) vdso.so vdso.so.dbg
>>> obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
>>>
>>> ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 \
>>> + $(call ld-option, --build-id) \
>>> $(call ld-option, --hash-style=sysv) -n -T
>>>
>>> # Disable gcov profiling for VDSO code
>>
>>
>> I missed that. Sorry.
>>
>> You can add --build-id without $(call ld-option,...)
>> because it is supported by our minimal version of toolchain.
>>
>> See commit log of 1e0221374e for example.
>
> Ok, so I'm ok folding in the diff below on top?
>
> Will
>
> --->8
>
> diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
> index ca209103cd06..fa230ff09aa1 100644
> --- a/arch/arm64/kernel/vdso/Makefile
> +++ b/arch/arm64/kernel/vdso/Makefile
> @@ -12,9 +12,8 @@ obj-vdso := gettimeofday.o note.o sigreturn.o
> targets := $(obj-vdso) vdso.so vdso.so.dbg
> obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
>
> -ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 \
> - $(call ld-option, --build-id) \
> - $(call ld-option, --hash-style=sysv) -n -T
> +ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv \
> + --build-id -n -T
>
> # Disable gcov profiling for VDSO code
> GCOV_PROFILE := n
>

Looks good to me.

Thanks,
Laura

2019-05-16 13:50:18

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] arm64: vdso: Explicitly add build-id option

On Thu, May 16, 2019 at 7:48 PM Will Deacon <[email protected]> wrote:
>
> On Thu, May 16, 2019 at 01:58:56PM +0900, Masahiro Yamada wrote:
> > On Thu, May 16, 2019 at 4:51 AM Laura Abbott <[email protected]> wrote:
> > >
> > > Commit 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to
> > > link VDSO") switched to using LD explicitly. The --build-id option
> > > needs to be passed explicitly, similar to x86. Add this option.
> > >
> > > Fixes: 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to link VDSO")
> > > Signed-off-by: Laura Abbott <[email protected]>
> > > ---
> > > arch/arm64/kernel/vdso/Makefile | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
> > > index 744b9dbaba03..ca209103cd06 100644
> > > --- a/arch/arm64/kernel/vdso/Makefile
> > > +++ b/arch/arm64/kernel/vdso/Makefile
> > > @@ -13,6 +13,7 @@ targets := $(obj-vdso) vdso.so vdso.so.dbg
> > > obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
> > >
> > > ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 \
> > > + $(call ld-option, --build-id) \
> > > $(call ld-option, --hash-style=sysv) -n -T
> > >
> > > # Disable gcov profiling for VDSO code
> >
> >
> > I missed that. Sorry.
> >
> > You can add --build-id without $(call ld-option,...)
> > because it is supported by our minimal version of toolchain.
> >
> > See commit log of 1e0221374e for example.
>
> Ok, so I'm ok folding in the diff below on top?


Looks good to me too.

Thanks.


> Will
>
> --->8
>
> diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
> index ca209103cd06..fa230ff09aa1 100644
> --- a/arch/arm64/kernel/vdso/Makefile
> +++ b/arch/arm64/kernel/vdso/Makefile
> @@ -12,9 +12,8 @@ obj-vdso := gettimeofday.o note.o sigreturn.o
> targets := $(obj-vdso) vdso.so vdso.so.dbg
> obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
>
> -ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 \
> - $(call ld-option, --build-id) \
> - $(call ld-option, --hash-style=sysv) -n -T
> +ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv \
> + --build-id -n -T
>
> # Disable gcov profiling for VDSO code
> GCOV_PROFILE := n



--
Best Regards
Masahiro Yamada