lkml.org 
[lkml]   [2020]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v2 4/5] efi/x86: Remove extra headroom for setup block
    On Mon, May 11, 2020 at 11:13:00PM +0200, Ard Biesheuvel wrote:
    > On Mon, 11 May 2020 at 20:36, Arvind Sankar <nivedita@alum.mit.edu> wrote:
    > >
    > > On Mon, May 11, 2020 at 06:01:49PM +0100, Mike Lothian wrote:
    > > > Hi
    > > >
    > > > This patch has been causing issues for me since switching to GCC 10.1:
    > > >
    > > > CALL scripts/checksyscalls.sh
    > > > CALL scripts/atomic/check-atomics.sh
    > > > DESCEND objtool
    > > > CHK include/generated/compile.h
    > > > HOSTCC arch/x86/boot/tools/build
    > > > /usr/lib/gcc/x86_64-pc-linux-gnu/10.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: linker defined: multiple definition of '_end'
    > > > /usr/lib/gcc/x86_64-pc-linux-gnu/10.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/ccEkW0jM.o: previous definition here
    > > > collect2: error: ld returned 1 exit status
    > > > make[1]: *** [scripts/Makefile.host:103: arch/x86/boot/tools/build] Error 1
    > > > make: *** [arch/x86/Makefile:303: bzImage] Error 2
    > > >
    > > > Cheers
    > > >
    > > > Mike
    > >
    > > I'm not getting an error even with gcc 10 for some reason, but I can see
    > > that it is busted. It's using the linker-defined _end symbol which is
    > > just pass the end of the .bss.
    > >
    > > Does adding "static" to the declaration of _end fix your error?
    >
    > This is in a host tool, so it depends on the builtin linker script the
    > toolchain decides to use. This is risky, though, as it may be using
    > PROVIDE() for _end, which means that in cases where it doesn't break,
    > other references to _end that may exist will be linked to the wrong
    > symbol. I don't think 'build' should be expected to do anything
    > interesting with its own representation in memory, but better fix it
    > nonetheless.

    Right, _end _is_ getting redefined in my system linker script too: I can
    see with objdump that the final _end symbol in my version of build is
    actually pointing beyond the .bss. But my toolchain doesn't report an
    error for some reason.

    >
    > Arvind: mind sending a fix for this, please?

    Yeah, I have one ready -- was just waiting to hear back if "static" did
    fix it, but I can send it out now.

    \
     
     \ /
      Last update: 2020-05-12 00:54    [W:8.670 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site