Subject: Re: LTO build errors (Re: linux-next: clean up the kbuild tree?)

From: Andi Kleen <[email-masked]>
Date: Mon, 30 Nov 2015 09:46:45 -0800

> > > /tmp/ccUCMU7n.ltrans21.ltrans.o: In function `do_exit':
> > > <artificial>:(.text+0xfc0): undefined reference to `sys_futex'
> > > /tmp/ccUCMU7n.ltrans22.ltrans.o: In function `_do_fork':
> > > <artificial>:(.text+0x39f7): undefined reference to `ret_from_fork'
> > > <artificial>:(.text+0x4428): undefined reference to `ret_from_kernel_thread'
> > 
> > 
> > That's new, but can be fixed by adding __visible or asmlinkage to these symbols
> > I guess it's from the recent entry* restructuring.
> > 
> > I'll do an updated tree later.
> > 
> > Everything that's called from assembler in C needs to be marked like this. It's
> > fairly mechanic.
> 
> OK, thanks for the information!

I uploaded lto-4.1/4.2/4.3 trees to my git tree. It only needed some minor changes.

However I think the problems with the assembler labels you had are due to toolchain
misconfiguration. I had the same issue when the compiler was using the non Linux binutils
as plugin ld. Unfortunately there is no way to ask the compiler to use a different
plugin ld, other than:
- rebuilding and specifying it at build time (see "Documentation/lto-build")
- or replacing the linker binary (/usr/bin/ld in a standard hosted compiler)

-Andi

-- 
[email-masked] -- Speaking for myself only