Re: [PATCH] riscv: Explicitly specify the build id style in vDSO Makefile again

From: Nick Desaulniers
Date: Thu Nov 12 2020 - 20:05:39 EST


On Thu, Nov 12, 2020 at 5:03 PM Bill Wendling <morbo@xxxxxxxxxx> wrote:
>
> On Thu, Nov 12, 2020 at 4:53 PM Nick Desaulniers
> <ndesaulniers@xxxxxxxxxx> wrote:
> >
> > On Sun, Nov 8, 2020 at 12:37 PM Nathan Chancellor
> > <natechancellor@xxxxxxxxx> wrote:
> > >
> > > Commit a96843372331 ("kbuild: explicitly specify the build id style")
> > > explicitly set the build ID style to SHA1. Commit c2c81bb2f691 ("RISC-V:
> > > Fix the VDSO symbol generaton for binutils-2.35+") undid this change,
> > > likely unintentionally.
> > >
> > > Restore it so that the build ID style stays consistent across the tree
> > > regardless of linker.
> > >
> > > Fixes: c2c81bb2f691 ("RISC-V: Fix the VDSO symbol generaton for binutils-2.35+")
> > > Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx>
> >
> > Thanks for the fixup!
> >
> > Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> >
> > (I'm curious what --build-id linker flag does, and what kind of spooky
> > bugs that led to a96843372331?)
> >
> --build-id generates a unique "build id" for the build. It can use
> several different algorithms to do this. The BFD linker uses sha1 by
> default while LLD uses a "fast" algorithm. The difference is that the
> fast algorithm generates a shorter build id. This shouldn't matter in
> general, but there are some tools out there that expect the build id
> to be of a certain length, i.e. the BFD style's length, because BFD is
> more prevalent. The obvious response "well, why don't they just change
> the expected length?" is difficult in all situations. (Once an
> assumption is made, it's hard to backtrack.)
>
> You can add this if you like:
>
> Reviewed-by: Bill Wendling <morbo@xxxxxxxxxx>

Cool, thanks for the context, and the review!

>
> > > ---
> > > arch/riscv/kernel/vdso/Makefile | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/arch/riscv/kernel/vdso/Makefile b/arch/riscv/kernel/vdso/Makefile
> > > index cb8f9e4cfcbf..0cfd6da784f8 100644
> > > --- a/arch/riscv/kernel/vdso/Makefile
> > > +++ b/arch/riscv/kernel/vdso/Makefile
> > > @@ -44,7 +44,7 @@ SYSCFLAGS_vdso.so.dbg = $(c_flags)
> > > $(obj)/vdso.so.dbg: $(src)/vdso.lds $(obj-vdso) FORCE
> > > $(call if_changed,vdsold)
> > > SYSCFLAGS_vdso.so.dbg = -shared -s -Wl,-soname=linux-vdso.so.1 \
> > > - -Wl,--build-id -Wl,--hash-style=both
> > > + -Wl,--build-id=sha1 -Wl,--hash-style=both
> > >
> > > # We also create a special relocatable object that should mirror the symbol
> > > # table and layout of the linked DSO. With ld --just-symbols we can then
> > >
> > > base-commit: c2c81bb2f69138f902e1a58d3bef6ad97fb8a92c
> > > --
> > > 2.29.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@xxxxxxxxxxxxxxxx.
> > > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20201108203737.94270-1-natechancellor%40gmail.com.
> >
> >
> >
> > --
> > Thanks,
> > ~Nick Desaulniers



--
Thanks,
~Nick Desaulniers