mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [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

* 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/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

* [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®