Messages in this thread | | | From | Nick Desaulniers <> | Date | Wed, 10 Nov 2021 11:54:19 -0800 | Subject | Re: [PATCH 2/2] x86/purgatory: remove -nostdlib compiler flag |
| |
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
| |