[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAKwvOdnM4UHFy1jrnfoKPG_S6CQpWMTCpuxTkbN+_AGe2Ov0SQ@mail.gmail.com>
Date: Tue, 13 Oct 2020 15:56:08 -0700
From: Nick Desaulniers <ndesaulniers@...gle.com>
To: Nathan Chancellor <natechancellor@...il.com>
Cc: Kees Cook <keescook@...omium.org>,
Fāng-ruì Sòng <maskray@...gle.com>,
Ingo Molnar <mingo@...nel.org>,
Russell King <linux@...linux.org.uk>,
Linux ARM <linux-arm-kernel@...ts.infradead.org>,
LKML <linux-kernel@...r.kernel.org>,
clang-built-linux <clang-built-linux@...glegroups.com>,
kernel test robot <lkp@...el.com>
Subject: Re: [PATCH] arm/build: Always handle .ARM.exidx and .ARM.extab sections
On Mon, Oct 12, 2020 at 8:26 PM Nathan Chancellor
<natechancellor@...il.com> wrote:
>
> On Mon, Oct 12, 2020 at 02:26:52PM -0700, Kees Cook wrote:
> > On Mon, Oct 12, 2020 at 02:22:03PM -0700, Fāng-ruì Sòng wrote:
> > > On Mon, Oct 12, 2020 at 2:11 PM 'Nick Desaulniers' via Clang Built
> > > Linux <clang-built-linux@...glegroups.com> wrote:
> > > >
> > > > Please submit to:
> > > > https://www.arm.linux.org.uk/developer/patches/add.php
>
> This should go through the tip tree (hence sending it straight to Ingo)
> since the patch that this fixes was there. I guess it does not
> necessarily matter now that the breakage is in mainline but basing a
> set of patches on a non -rc tag is a little taboo I thought so not sure
> it is appropriate to go through Russell for now. It is up to the
> maintainers though, I will submit it wherever it needs to go.
Ah got it, yeah I don't really care which tree this goes up in.
>
> > > > >
> > > > > Fixes: 5a17850e251a ("arm/build: Warn on orphan section placement")
> > > > > Link: https://github.com/ClangBuiltLinux/linux/issues/1152
> > > > > Reported-by: kernel test robot <lkp@...el.com>
> > > > > Signed-off-by: Nathan Chancellor <natechancellor@...il.com>
> > > > > ---
> > > > > arch/arm/kernel/vmlinux.lds.S | 4 ++++
> > > > > 1 file changed, 4 insertions(+)
> > > > >
> > > > > diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
> > > > > index 5f4922e858d0..a2c0d96b0580 100644
> > > > > --- a/arch/arm/kernel/vmlinux.lds.S
> > > > > +++ b/arch/arm/kernel/vmlinux.lds.S
> > > > > @@ -40,6 +40,10 @@ SECTIONS
> > > > > ARM_DISCARD
> > > > > #ifndef CONFIG_SMP_ON_UP
> > > > > *(.alt.smp.init)
> > > > > +#endif
> > > > > +#ifndef CONFIG_ARM_UNWIND
> > > > > + *(.ARM.exidx*)
> > > >
> > > > I don't think we need the wildcard, as without this line, I see:
> > > >
> > > > ld.lld: warning: <internal>:(.ARM.exidx) is being placed in '.ARM.exidx'
> > >
> > > We may need the wildcard if there are -ffunction-sections builds.
> > > In clang, .ARM.exidx* cannot be removed even with -fno-unwind-tables
> > > -fno-exceptions.
> >
> > Does it need to be:
> >
> > *(.ARM.exidx) *(.ARM.exidx.*)
> > *(.ARM.extab) *(.ARM.extab.*)
> >
> > ?
>
> I tested the patch and saw no warnings with what I sent. I can change it
> to that if it is more proper though!
We don't have LTO working on 32b ARM yet, so I'm not worried about
-ffunction-sections for this (yet). The ld.bfd linker scripts didn't
seem to use the non-wildcard and wildcard suggestion; just the
wildcarded. (Maybe they have the same "bug?") I'm happy to revisit
though if we plan to get LTO up and running on 32b ARM.
--
Thanks,
~Nick Desaulniers
Powered by blists - more mailing lists