* [PATCH 1/2] x86/vdso: remove -nostdlib compiler flag
@ 2021-11-07 16:26 Masahiro Yamada
2021-11-07 16:26 ` [PATCH 2/2] x86/purgatory: " Masahiro Yamada
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Masahiro Yamada @ 2021-11-07 16:26 UTC (permalink / raw)
To: x86, Thomas Gleixner, Ingo Molnar, Borislav Petkov
Cc: H . Peter Anvin, clang-built-linux, Masahiro Yamada,
Andy Lutomirski, Dave Hansen, linux-kernel
The -nostdlib option requests the compiler to not use the standard
system startup files or libraries when linking. It is effective only
when $(CC) is used as a linker driver.
Since
379d98ddf413 ("x86: vdso: Use $LD instead of $CC to link")
$(LD) is directly used, hence -nostdlib is unneeded.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---
arch/x86/entry/vdso/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile
index a2dddcc189f6..693f8b9031fb 100644
--- a/arch/x86/entry/vdso/Makefile
+++ b/arch/x86/entry/vdso/Makefile
@@ -172,7 +172,7 @@ $(obj)/vdso32.so.dbg: $(obj)/vdso32/vdso32.lds $(vobjs32) FORCE
# The DSO images are built using a special linker script.
#
quiet_cmd_vdso = VDSO $@
- cmd_vdso = $(LD) -nostdlib -o $@ \
+ cmd_vdso = $(LD) -o $@ \
$(VDSO_LDFLAGS) $(VDSO_LDFLAGS_$(filter %.lds,$(^F))) \
-T $(filter %.lds,$^) $(filter %.o,$^) && \
sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
--
2.30.2
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 2/2] x86/purgatory: remove -nostdlib compiler flag 2021-11-07 16:26 [PATCH 1/2] x86/vdso: remove -nostdlib compiler flag Masahiro Yamada @ 2021-11-07 16:26 ` Masahiro Yamada 2021-11-08 23:52 ` Nick Desaulniers 2021-12-30 18:21 ` [tip: x86/vdso] x86/purgatory: Remove " tip-bot2 for Masahiro Yamada 2021-11-10 20:01 ` [PATCH 1/2] x86/vdso: remove " Nick Desaulniers 2021-12-30 18:21 ` [tip: x86/vdso] x86/vdso: Remove " tip-bot2 for Masahiro Yamada 2 siblings, 2 replies; 8+ messages in thread From: Masahiro Yamada @ 2021-11-07 16:26 UTC (permalink / raw) To: x86, Thomas Gleixner, Ingo Molnar, Borislav Petkov Cc: H . Peter Anvin, clang-built-linux, Masahiro Yamada, Dave Hansen, linux-kernel The -nostdlib option requests the compiler to not use the standard system startup files or libraries when linking. It is effective only when $(CC) is used as a linker driver. $(LD) is directly used for linking purgatory.{ro,chk} here, hence -nostdlib is unneeded. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> --- arch/x86/purgatory/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile index 95ea17a9d20c..ae53d54d7959 100644 --- a/arch/x86/purgatory/Makefile +++ b/arch/x86/purgatory/Makefile @@ -16,7 +16,7 @@ CFLAGS_sha256.o := -D__DISABLE_EXPORTS # When linking purgatory.ro with -r unresolved symbols are not checked, # also link a purgatory.chk binary without -r to check for unresolved symbols. -PURGATORY_LDFLAGS := -e purgatory_start -nostdlib -z nodefaultlib +PURGATORY_LDFLAGS := -e purgatory_start -z nodefaultlib LDFLAGS_purgatory.ro := -r $(PURGATORY_LDFLAGS) LDFLAGS_purgatory.chk := $(PURGATORY_LDFLAGS) targets += purgatory.ro purgatory.chk -- 2.30.2 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] x86/purgatory: remove -nostdlib compiler flag 2021-11-07 16:26 ` [PATCH 2/2] x86/purgatory: " Masahiro Yamada @ 2021-11-08 23:52 ` Nick Desaulniers 2021-11-09 0:05 ` Fangrui Song 2021-12-30 18:21 ` [tip: x86/vdso] x86/purgatory: Remove " tip-bot2 for Masahiro Yamada 1 sibling, 1 reply; 8+ messages in thread From: Nick Desaulniers @ 2021-11-08 23:52 UTC (permalink / raw) To: Masahiro Yamada, Fangrui Song Cc: x86, Thomas Gleixner, Ingo Molnar, Borislav Petkov, H . Peter Anvin, clang-built-linux, Dave Hansen, linux-kernel, llvm On Sun, Nov 7, 2021 at 8:27 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > The -nostdlib option requests the compiler to not use the standard > system startup files or libraries when linking. It is effective only > when $(CC) is used as a linker driver. Is that right? ld.lld recognizes --nostdlib and has --help text for it. > > $(LD) is directly used for linking purgatory.{ro,chk} here, hence > -nostdlib is unneeded. > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > --- > > arch/x86/purgatory/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile > index 95ea17a9d20c..ae53d54d7959 100644 > --- a/arch/x86/purgatory/Makefile > +++ b/arch/x86/purgatory/Makefile > @@ -16,7 +16,7 @@ CFLAGS_sha256.o := -D__DISABLE_EXPORTS > > # When linking purgatory.ro with -r unresolved symbols are not checked, > # also link a purgatory.chk binary without -r to check for unresolved symbols. > -PURGATORY_LDFLAGS := -e purgatory_start -nostdlib -z nodefaultlib > +PURGATORY_LDFLAGS := -e purgatory_start -z nodefaultlib > LDFLAGS_purgatory.ro := -r $(PURGATORY_LDFLAGS) > LDFLAGS_purgatory.chk := $(PURGATORY_LDFLAGS) > targets += purgatory.ro purgatory.chk > -- > 2.30.2 -- Thanks, ~Nick Desaulniers ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] x86/purgatory: remove -nostdlib compiler flag 2021-11-08 23:52 ` Nick Desaulniers @ 2021-11-09 0:05 ` Fangrui Song 2021-11-10 19:54 ` Nick Desaulniers 0 siblings, 1 reply; 8+ messages in thread From: Fangrui Song @ 2021-11-09 0:05 UTC (permalink / raw) To: Nick Desaulniers Cc: Masahiro Yamada, x86, Thomas Gleixner, Ingo Molnar, Borislav Petkov, H . Peter Anvin, clang-built-linux, Dave Hansen, linux-kernel, llvm On 2021-11-08, Nick Desaulniers wrote: >On Sun, Nov 7, 2021 at 8:27 AM Masahiro Yamada <masahiroy@kernel.org> wrote: >> >> The -nostdlib option requests the compiler to not use the standard >> system startup files or libraries when linking. It is effective only >> when $(CC) is used as a linker driver. > >Is that right? ld.lld recognizes --nostdlib and has --help text for it. GCC/Clang driver -nostdlib != ld.bfd/ld.lld -nostdlib. ld.lld -nostdlib just ignores SEARCH_DIR in a linker script. I think ld.bfd's -nostdlib is more complex than that which also has something to do with its internal linker script location. Anyway, getting of the obscure ld -nostdlib is a good idea. >> >> $(LD) is directly used for linking purgatory.{ro,chk} here, hence >> -nostdlib is unneeded. >> >> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> >> --- >> >> arch/x86/purgatory/Makefile | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile >> index 95ea17a9d20c..ae53d54d7959 100644 >> --- a/arch/x86/purgatory/Makefile >> +++ b/arch/x86/purgatory/Makefile >> @@ -16,7 +16,7 @@ CFLAGS_sha256.o := -D__DISABLE_EXPORTS >> >> # When linking purgatory.ro with -r unresolved symbols are not checked, >> # also link a purgatory.chk binary without -r to check for unresolved symbols. >> -PURGATORY_LDFLAGS := -e purgatory_start -nostdlib -z nodefaultlib >> +PURGATORY_LDFLAGS := -e purgatory_start -z nodefaultlib >> LDFLAGS_purgatory.ro := -r $(PURGATORY_LDFLAGS) >> LDFLAGS_purgatory.chk := $(PURGATORY_LDFLAGS) >> targets += purgatory.ro purgatory.chk >> -- >> 2.30.2 > >-- >Thanks, >~Nick Desaulniers ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] x86/purgatory: remove -nostdlib compiler flag 2021-11-09 0:05 ` Fangrui Song @ 2021-11-10 19:54 ` Nick Desaulniers 0 siblings, 0 replies; 8+ messages in thread From: Nick Desaulniers @ 2021-11-10 19:54 UTC (permalink / raw) To: Fangrui Song, Masahiro Yamada Cc: x86, Thomas Gleixner, Ingo Molnar, Borislav Petkov, H . Peter Anvin, clang-built-linux, Dave Hansen, linux-kernel, llvm On Mon, Nov 8, 2021 at 4:05 PM 'Fangrui Song' via Clang Built Linux <clang-built-linux@googlegroups.com> wrote: > > On 2021-11-08, Nick Desaulniers wrote: > >On Sun, Nov 7, 2021 at 8:27 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > >> > >> The -nostdlib option requests the compiler to not use the standard > >> system startup files or libraries when linking. It is effective only > >> when $(CC) is used as a linker driver. > > > >Is that right? ld.lld recognizes --nostdlib and has --help text for it. > > GCC/Clang driver -nostdlib != ld.bfd/ld.lld -nostdlib. > > ld.lld -nostdlib just ignores SEARCH_DIR in a linker script. > I think ld.bfd's -nostdlib is more complex than that which also has > something to do with its internal linker script location. > Anyway, getting of the obscure ld -nostdlib is a good idea. Ok, I verified that the size of arch/x86/purgatory/purgatory.ro, arch/x86/entry/vdso/vdso64.so, and arch/x86/entry/vdso/vdso32.so don't change with this series. (ldd is not happy with the .so's regardless). I also suspect that the linker when invoked directly can't assuming it's linking object files created from C sources (ie. could have been assembler sources), so there's no reason to assume that the libc, C runtime, or compiler runtime would need to be linked against. Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > > >> > >> $(LD) is directly used for linking purgatory.{ro,chk} here, hence > >> -nostdlib is unneeded. > >> > >> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > >> --- > >> > >> arch/x86/purgatory/Makefile | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile > >> index 95ea17a9d20c..ae53d54d7959 100644 > >> --- a/arch/x86/purgatory/Makefile > >> +++ b/arch/x86/purgatory/Makefile > >> @@ -16,7 +16,7 @@ CFLAGS_sha256.o := -D__DISABLE_EXPORTS > >> > >> # When linking purgatory.ro with -r unresolved symbols are not checked, > >> # also link a purgatory.chk binary without -r to check for unresolved symbols. > >> -PURGATORY_LDFLAGS := -e purgatory_start -nostdlib -z nodefaultlib > >> +PURGATORY_LDFLAGS := -e purgatory_start -z nodefaultlib > >> LDFLAGS_purgatory.ro := -r $(PURGATORY_LDFLAGS) > >> LDFLAGS_purgatory.chk := $(PURGATORY_LDFLAGS) > >> targets += purgatory.ro purgatory.chk > >> -- > >> 2.30.2 > > > >-- > >Thanks, > >~Nick Desaulniers > > -- > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20211109000531.k23mgrfjn5tomevv%40google.com. -- Thanks, ~Nick Desaulniers ^ permalink raw reply [flat|nested] 8+ messages in thread
* [tip: x86/vdso] x86/purgatory: Remove -nostdlib compiler flag 2021-11-07 16:26 ` [PATCH 2/2] x86/purgatory: " Masahiro Yamada 2021-11-08 23:52 ` Nick Desaulniers @ 2021-12-30 18:21 ` tip-bot2 for Masahiro Yamada 1 sibling, 0 replies; 8+ messages in thread From: tip-bot2 for Masahiro Yamada @ 2021-12-30 18:21 UTC (permalink / raw) To: linux-tip-commits Cc: Masahiro Yamada, Borislav Petkov, Nick Desaulniers, x86, linux-kernel The following commit has been merged into the x86/vdso branch of tip: Commit-ID: 9102fa34604159642625f42d7f801f1e04d9ca12 Gitweb: https://git.kernel.org/tip/9102fa34604159642625f42d7f801f1e04d9ca12 Author: Masahiro Yamada <masahiroy@kernel.org> AuthorDate: Mon, 08 Nov 2021 01:26:41 +09:00 Committer: Borislav Petkov <bp@suse.de> CommitterDate: Thu, 30 Dec 2021 14:13:06 +01:00 x86/purgatory: Remove -nostdlib compiler flag The -nostdlib option requests the compiler to not use the standard system startup files or libraries when linking. It is effective only when $(CC) is used as a linker driver. $(LD) is directly used for linking purgatory.{ro,chk} here, hence -nostdlib is unneeded. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Link: https://lore.kernel.org/r/20211107162641.324688-2-masahiroy@kernel.org --- arch/x86/purgatory/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile index 95ea17a..ae53d54 100644 --- a/arch/x86/purgatory/Makefile +++ b/arch/x86/purgatory/Makefile @@ -16,7 +16,7 @@ CFLAGS_sha256.o := -D__DISABLE_EXPORTS # When linking purgatory.ro with -r unresolved symbols are not checked, # also link a purgatory.chk binary without -r to check for unresolved symbols. -PURGATORY_LDFLAGS := -e purgatory_start -nostdlib -z nodefaultlib +PURGATORY_LDFLAGS := -e purgatory_start -z nodefaultlib LDFLAGS_purgatory.ro := -r $(PURGATORY_LDFLAGS) LDFLAGS_purgatory.chk := $(PURGATORY_LDFLAGS) targets += purgatory.ro purgatory.chk ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] x86/vdso: remove -nostdlib compiler flag 2021-11-07 16:26 [PATCH 1/2] x86/vdso: remove -nostdlib compiler flag Masahiro Yamada 2021-11-07 16:26 ` [PATCH 2/2] x86/purgatory: " Masahiro Yamada @ 2021-11-10 20:01 ` Nick Desaulniers 2021-12-30 18:21 ` [tip: x86/vdso] x86/vdso: Remove " tip-bot2 for Masahiro Yamada 2 siblings, 0 replies; 8+ messages in thread From: Nick Desaulniers @ 2021-11-10 20:01 UTC (permalink / raw) To: Masahiro Yamada Cc: x86, Thomas Gleixner, Ingo Molnar, Borislav Petkov, H . Peter Anvin, clang-built-linux, Andy Lutomirski, Dave Hansen, linux-kernel On Sun, Nov 7, 2021 at 8:27 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > The -nostdlib option requests the compiler to not use the standard > system startup files or libraries when linking. It is effective only > when $(CC) is used as a linker driver. > > Since > > 379d98ddf413 ("x86: vdso: Use $LD instead of $CC to link") > > $(LD) is directly used, hence -nostdlib is unneeded. > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Thanks for the patch! Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > --- > > arch/x86/entry/vdso/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile > index a2dddcc189f6..693f8b9031fb 100644 > --- a/arch/x86/entry/vdso/Makefile > +++ b/arch/x86/entry/vdso/Makefile > @@ -172,7 +172,7 @@ $(obj)/vdso32.so.dbg: $(obj)/vdso32/vdso32.lds $(vobjs32) FORCE > # The DSO images are built using a special linker script. > # > quiet_cmd_vdso = VDSO $@ > - cmd_vdso = $(LD) -nostdlib -o $@ \ > + cmd_vdso = $(LD) -o $@ \ > $(VDSO_LDFLAGS) $(VDSO_LDFLAGS_$(filter %.lds,$(^F))) \ > -T $(filter %.lds,$^) $(filter %.o,$^) && \ > sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@' > -- > 2.30.2 > > -- > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20211107162641.324688-1-masahiroy%40kernel.org. -- Thanks, ~Nick Desaulniers ^ permalink raw reply [flat|nested] 8+ messages in thread
* [tip: x86/vdso] x86/vdso: Remove -nostdlib compiler flag 2021-11-07 16:26 [PATCH 1/2] x86/vdso: remove -nostdlib compiler flag Masahiro Yamada 2021-11-07 16:26 ` [PATCH 2/2] x86/purgatory: " Masahiro Yamada 2021-11-10 20:01 ` [PATCH 1/2] x86/vdso: remove " Nick Desaulniers @ 2021-12-30 18:21 ` tip-bot2 for Masahiro Yamada 2 siblings, 0 replies; 8+ messages in thread From: tip-bot2 for Masahiro Yamada @ 2021-12-30 18:21 UTC (permalink / raw) To: linux-tip-commits Cc: Masahiro Yamada, Borislav Petkov, Nick Desaulniers, x86, linux-kernel The following commit has been merged into the x86/vdso branch of tip: Commit-ID: a41f5b78ac5ba65986b31ddc6325a0b8cc8b8864 Gitweb: https://git.kernel.org/tip/a41f5b78ac5ba65986b31ddc6325a0b8cc8b8864 Author: Masahiro Yamada <masahiroy@kernel.org> AuthorDate: Mon, 08 Nov 2021 01:26:40 +09:00 Committer: Borislav Petkov <bp@suse.de> CommitterDate: Thu, 30 Dec 2021 14:08:20 +01:00 x86/vdso: Remove -nostdlib compiler flag The -nostdlib option requests the compiler to not use the standard system startup files or libraries when linking. It is effective only when $(CC) is used as a linker driver. Since 379d98ddf413 ("x86: vdso: Use $LD instead of $CC to link") $(LD) is directly used, hence -nostdlib is unneeded. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Link: https://lore.kernel.org/r/20211107162641.324688-1-masahiroy@kernel.org --- arch/x86/entry/vdso/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile index a2dddcc..693f8b9 100644 --- a/arch/x86/entry/vdso/Makefile +++ b/arch/x86/entry/vdso/Makefile @@ -172,7 +172,7 @@ $(obj)/vdso32.so.dbg: $(obj)/vdso32/vdso32.lds $(vobjs32) FORCE # The DSO images are built using a special linker script. # quiet_cmd_vdso = VDSO $@ - cmd_vdso = $(LD) -nostdlib -o $@ \ + cmd_vdso = $(LD) -o $@ \ $(VDSO_LDFLAGS) $(VDSO_LDFLAGS_$(filter %.lds,$(^F))) \ -T $(filter %.lds,$^) $(filter %.o,$^) && \ sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@' ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-12-30 18:22 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-11-07 16:26 [PATCH 1/2] x86/vdso: remove -nostdlib compiler flag Masahiro Yamada 2021-11-07 16:26 ` [PATCH 2/2] x86/purgatory: " Masahiro Yamada 2021-11-08 23:52 ` Nick Desaulniers 2021-11-09 0:05 ` Fangrui Song 2021-11-10 19:54 ` Nick Desaulniers 2021-12-30 18:21 ` [tip: x86/vdso] x86/purgatory: Remove " tip-bot2 for Masahiro Yamada 2021-11-10 20:01 ` [PATCH 1/2] x86/vdso: remove " Nick Desaulniers 2021-12-30 18:21 ` [tip: x86/vdso] x86/vdso: Remove " tip-bot2 for Masahiro Yamada
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®