All of lore.kernel.org
 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 related	[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 related	[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 related	[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 related	[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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.