* [PATCH] arm64/vdso: Remove --hash-style=sysv
@ 2024-07-18 17:34 Fangrui Song
2024-07-23 15:46 ` Will Deacon
2024-08-14 19:55 ` Xi Ruoyao
0 siblings, 2 replies; 5+ messages in thread
From: Fangrui Song @ 2024-07-18 17:34 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, linux-arm-kernel; +Cc: linux-kernel, Fangrui Song
glibc added support for .gnu.hash in 2006 and .hash has been obsoleted
for more than one decade in many Linux distributions. Using
--hash-style=sysv might imply unaddressed issues and confuse readers.
Just drop the option and rely on the linker default, which is likely
"both", or "gnu" when the distribution really wants to eliminate sysv
hash overhead.
Similar to commit 6b7e26547fad ("x86/vdso: Emit a GNU hash").
Signed-off-by: Fangrui Song <maskray@google.com>
---
arch/arm64/kernel/vdso/Makefile | 2 +-
arch/arm64/kernel/vdso32/Makefile | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
index d63930c82839..d11da6461278 100644
--- a/arch/arm64/kernel/vdso/Makefile
+++ b/arch/arm64/kernel/vdso/Makefile
@@ -21,7 +21,7 @@ btildflags-$(CONFIG_ARM64_BTI_KERNEL) += -z force-bti
# potential future proofing if we end up with internal calls to the exported
# routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so
# preparation in build-time C")).
-ldflags-y := -shared -soname=linux-vdso.so.1 --hash-style=sysv \
+ldflags-y := -shared -soname=linux-vdso.so.1 \
-Bsymbolic --build-id=sha1 -n $(btildflags-y)
ifdef CONFIG_LD_ORPHAN_WARN
diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
index cc4508c604b2..25a2cb6317f3 100644
--- a/arch/arm64/kernel/vdso32/Makefile
+++ b/arch/arm64/kernel/vdso32/Makefile
@@ -98,7 +98,7 @@ VDSO_AFLAGS += -D__ASSEMBLY__
# From arm vDSO Makefile
VDSO_LDFLAGS += -Bsymbolic --no-undefined -soname=linux-vdso.so.1
VDSO_LDFLAGS += -z max-page-size=4096 -z common-page-size=4096
-VDSO_LDFLAGS += -shared --hash-style=sysv --build-id=sha1
+VDSO_LDFLAGS += -shared --build-id=sha1
VDSO_LDFLAGS += --orphan-handling=$(CONFIG_LD_ORPHAN_WARN_LEVEL)
--
2.45.2.1089.g2a221341d9-goog
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] arm64/vdso: Remove --hash-style=sysv
2024-07-18 17:34 [PATCH] arm64/vdso: Remove --hash-style=sysv Fangrui Song
@ 2024-07-23 15:46 ` Will Deacon
2024-08-14 19:55 ` Xi Ruoyao
1 sibling, 0 replies; 5+ messages in thread
From: Will Deacon @ 2024-07-23 15:46 UTC (permalink / raw)
To: Catalin Marinas, linux-arm-kernel, Fangrui Song
Cc: kernel-team, Will Deacon, linux-kernel
On Thu, 18 Jul 2024 10:34:23 -0700, Fangrui Song wrote:
> glibc added support for .gnu.hash in 2006 and .hash has been obsoleted
> for more than one decade in many Linux distributions. Using
> --hash-style=sysv might imply unaddressed issues and confuse readers.
>
> Just drop the option and rely on the linker default, which is likely
> "both", or "gnu" when the distribution really wants to eliminate sysv
> hash overhead.
>
> [...]
Applied to arm64 (for-next/core), thanks!
[1/1] arm64/vdso: Remove --hash-style=sysv
https://git.kernel.org/arm64/c/48f6430505c0
Cheers,
--
Will
https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] arm64/vdso: Remove --hash-style=sysv
2024-07-18 17:34 [PATCH] arm64/vdso: Remove --hash-style=sysv Fangrui Song
2024-07-23 15:46 ` Will Deacon
@ 2024-08-14 19:55 ` Xi Ruoyao
2024-08-15 1:23 ` Fangrui Song
1 sibling, 1 reply; 5+ messages in thread
From: Xi Ruoyao @ 2024-08-14 19:55 UTC (permalink / raw)
To: Fangrui Song, Catalin Marinas, Will Deacon, linux-arm-kernel
Cc: linux-kernel, linux-kselftest
On Thu, 2024-07-18 at 10:34 -0700, Fangrui Song wrote:
> glibc added support for .gnu.hash in 2006 and .hash has been obsoleted
> for more than one decade in many Linux distributions. Using
> --hash-style=sysv might imply unaddressed issues and confuse readers.
>
> Just drop the option and rely on the linker default, which is likely
> "both", or "gnu" when the distribution really wants to eliminate sysv
> hash overhead.
>
> Similar to commit 6b7e26547fad ("x86/vdso: Emit a GNU hash").
>
> Signed-off-by: Fangrui Song <maskray@google.com>
Hi Fangrui,
If I read tools/testing/selftests/vDSO/parse_vdso.c correctly, it does
know DT_GNU_HASH as at now. Thus after this change the vDSO selftests
are skipped with "Couldn't find __vdso_gettimeofday" etc if the distro
enables --hash-style=gnu by default.
So it seems we need to add DT_GNU_HASH support for parse_vdso.c to keep
test coverage.
> ---
> arch/arm64/kernel/vdso/Makefile | 2 +-
> arch/arm64/kernel/vdso32/Makefile | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
> index d63930c82839..d11da6461278 100644
> --- a/arch/arm64/kernel/vdso/Makefile
> +++ b/arch/arm64/kernel/vdso/Makefile
> @@ -21,7 +21,7 @@ btildflags-$(CONFIG_ARM64_BTI_KERNEL) += -z force-bti
> # potential future proofing if we end up with internal calls to the exported
> # routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so
> # preparation in build-time C")).
> -ldflags-y := -shared -soname=linux-vdso.so.1 --hash-style=sysv \
> +ldflags-y := -shared -soname=linux-vdso.so.1 \
> -Bsymbolic --build-id=sha1 -n $(btildflags-y)
>
> ifdef CONFIG_LD_ORPHAN_WARN
> diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
> index cc4508c604b2..25a2cb6317f3 100644
> --- a/arch/arm64/kernel/vdso32/Makefile
> +++ b/arch/arm64/kernel/vdso32/Makefile
> @@ -98,7 +98,7 @@ VDSO_AFLAGS += -D__ASSEMBLY__
> # From arm vDSO Makefile
> VDSO_LDFLAGS += -Bsymbolic --no-undefined -soname=linux-vdso.so.1
> VDSO_LDFLAGS += -z max-page-size=4096 -z common-page-size=4096
> -VDSO_LDFLAGS += -shared --hash-style=sysv --build-id=sha1
> +VDSO_LDFLAGS += -shared --build-id=sha1
> VDSO_LDFLAGS += --orphan-handling=$(CONFIG_LD_ORPHAN_WARN_LEVEL)
>
>
--
Xi Ruoyao <xry111@xry111.site>
School of Aerospace Science and Technology, Xidian University
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] arm64/vdso: Remove --hash-style=sysv
2024-08-14 19:55 ` Xi Ruoyao
@ 2024-08-15 1:23 ` Fangrui Song
2024-08-15 3:28 ` Fangrui Song
0 siblings, 1 reply; 5+ messages in thread
From: Fangrui Song @ 2024-08-15 1:23 UTC (permalink / raw)
To: Xi Ruoyao
Cc: Catalin Marinas, Will Deacon, linux-arm-kernel, linux-kernel,
linux-kselftest
On Wed, Aug 14, 2024 at 12:56 PM Xi Ruoyao <xry111@xry111.site> wrote:
>
> On Thu, 2024-07-18 at 10:34 -0700, Fangrui Song wrote:
> > glibc added support for .gnu.hash in 2006 and .hash has been obsoleted
> > for more than one decade in many Linux distributions. Using
> > --hash-style=sysv might imply unaddressed issues and confuse readers.
> >
> > Just drop the option and rely on the linker default, which is likely
> > "both", or "gnu" when the distribution really wants to eliminate sysv
> > hash overhead.
> >
> > Similar to commit 6b7e26547fad ("x86/vdso: Emit a GNU hash").
> >
> > Signed-off-by: Fangrui Song <maskray@google.com>
>
> Hi Fangrui,
>
> If I read tools/testing/selftests/vDSO/parse_vdso.c correctly, it does
> know DT_GNU_HASH as at now. Thus after this change the vDSO selftests
> are skipped with "Couldn't find __vdso_gettimeofday" etc if the distro
> enables --hash-style=gnu by default.
>
> So it seems we need to add DT_GNU_HASH support for parse_vdso.c to keep
> test coverage.
Hi Xi,
Perhaps the selftests file needs DT_GNU_HASH support like
https://github.com/abseil/abseil-cpp/commit/1278ee9bd9bd4916181521fac96d6fa1100e38e6
> > ---
> > arch/arm64/kernel/vdso/Makefile | 2 +-
> > arch/arm64/kernel/vdso32/Makefile | 2 +-
> > 2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
> > index d63930c82839..d11da6461278 100644
> > --- a/arch/arm64/kernel/vdso/Makefile
> > +++ b/arch/arm64/kernel/vdso/Makefile
> > @@ -21,7 +21,7 @@ btildflags-$(CONFIG_ARM64_BTI_KERNEL) += -z force-bti
> > # potential future proofing if we end up with internal calls to the exported
> > # routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so
> > # preparation in build-time C")).
> > -ldflags-y := -shared -soname=linux-vdso.so.1 --hash-style=sysv \
> > +ldflags-y := -shared -soname=linux-vdso.so.1 \
> > -Bsymbolic --build-id=sha1 -n $(btildflags-y)
> >
> > ifdef CONFIG_LD_ORPHAN_WARN
> > diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
> > index cc4508c604b2..25a2cb6317f3 100644
> > --- a/arch/arm64/kernel/vdso32/Makefile
> > +++ b/arch/arm64/kernel/vdso32/Makefile
> > @@ -98,7 +98,7 @@ VDSO_AFLAGS += -D__ASSEMBLY__
> > # From arm vDSO Makefile
> > VDSO_LDFLAGS += -Bsymbolic --no-undefined -soname=linux-vdso.so.1
> > VDSO_LDFLAGS += -z max-page-size=4096 -z common-page-size=4096
> > -VDSO_LDFLAGS += -shared --hash-style=sysv --build-id=sha1
> > +VDSO_LDFLAGS += -shared --build-id=sha1
> > VDSO_LDFLAGS += --orphan-handling=$(CONFIG_LD_ORPHAN_WARN_LEVEL)
> >
> >
>
> --
> Xi Ruoyao <xry111@xry111.site>
> School of Aerospace Science and Technology, Xidian University
--
宋方睿
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] arm64/vdso: Remove --hash-style=sysv
2024-08-15 1:23 ` Fangrui Song
@ 2024-08-15 3:28 ` Fangrui Song
0 siblings, 0 replies; 5+ messages in thread
From: Fangrui Song @ 2024-08-15 3:28 UTC (permalink / raw)
To: Xi Ruoyao
Cc: Catalin Marinas, Will Deacon, linux-arm-kernel, linux-kernel,
linux-kselftest
On Wed, Aug 14, 2024 at 6:23 PM Fangrui Song <maskray@google.com> wrote:
>
> On Wed, Aug 14, 2024 at 12:56 PM Xi Ruoyao <xry111@xry111.site> wrote:
> >
> > On Thu, 2024-07-18 at 10:34 -0700, Fangrui Song wrote:
> > > glibc added support for .gnu.hash in 2006 and .hash has been obsoleted
> > > for more than one decade in many Linux distributions. Using
> > > --hash-style=sysv might imply unaddressed issues and confuse readers.
> > >
> > > Just drop the option and rely on the linker default, which is likely
> > > "both", or "gnu" when the distribution really wants to eliminate sysv
> > > hash overhead.
> > >
> > > Similar to commit 6b7e26547fad ("x86/vdso: Emit a GNU hash").
> > >
> > > Signed-off-by: Fangrui Song <maskray@google.com>
> >
> > Hi Fangrui,
> >
> > If I read tools/testing/selftests/vDSO/parse_vdso.c correctly, it does
> > know DT_GNU_HASH as at now. Thus after this change the vDSO selftests
> > are skipped with "Couldn't find __vdso_gettimeofday" etc if the distro
> > enables --hash-style=gnu by default.
> >
> > So it seems we need to add DT_GNU_HASH support for parse_vdso.c to keep
> > test coverage.
>
> Hi Xi,
>
> Perhaps the selftests file needs DT_GNU_HASH support like
> https://github.com/abseil/abseil-cpp/commit/1278ee9bd9bd4916181521fac96d6fa1100e38e6
Created https://lore.kernel.org/linux-kselftest/20240815032614.2747224-1-maskray@google.com/T/#u
([PATCH] selftests/vDSO: support DT_GNU_HASH)
>
> > > ---
> > > arch/arm64/kernel/vdso/Makefile | 2 +-
> > > arch/arm64/kernel/vdso32/Makefile | 2 +-
> > > 2 files changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
> > > index d63930c82839..d11da6461278 100644
> > > --- a/arch/arm64/kernel/vdso/Makefile
> > > +++ b/arch/arm64/kernel/vdso/Makefile
> > > @@ -21,7 +21,7 @@ btildflags-$(CONFIG_ARM64_BTI_KERNEL) += -z force-bti
> > > # potential future proofing if we end up with internal calls to the exported
> > > # routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so
> > > # preparation in build-time C")).
> > > -ldflags-y := -shared -soname=linux-vdso.so.1 --hash-style=sysv \
> > > +ldflags-y := -shared -soname=linux-vdso.so.1 \
> > > -Bsymbolic --build-id=sha1 -n $(btildflags-y)
> > >
> > > ifdef CONFIG_LD_ORPHAN_WARN
> > > diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
> > > index cc4508c604b2..25a2cb6317f3 100644
> > > --- a/arch/arm64/kernel/vdso32/Makefile
> > > +++ b/arch/arm64/kernel/vdso32/Makefile
> > > @@ -98,7 +98,7 @@ VDSO_AFLAGS += -D__ASSEMBLY__
> > > # From arm vDSO Makefile
> > > VDSO_LDFLAGS += -Bsymbolic --no-undefined -soname=linux-vdso.so.1
> > > VDSO_LDFLAGS += -z max-page-size=4096 -z common-page-size=4096
> > > -VDSO_LDFLAGS += -shared --hash-style=sysv --build-id=sha1
> > > +VDSO_LDFLAGS += -shared --build-id=sha1
> > > VDSO_LDFLAGS += --orphan-handling=$(CONFIG_LD_ORPHAN_WARN_LEVEL)
> > >
> > >
> >
> > --
> > Xi Ruoyao <xry111@xry111.site>
> > School of Aerospace Science and Technology, Xidian University
>
>
>
> --
> 宋方睿
--
宋方睿
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-08-15 3:28 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-07-18 17:34 [PATCH] arm64/vdso: Remove --hash-style=sysv Fangrui Song
2024-07-23 15:46 ` Will Deacon
2024-08-14 19:55 ` Xi Ruoyao
2024-08-15 1:23 ` Fangrui Song
2024-08-15 3:28 ` Fangrui Song
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®