lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Sun, 16 Feb 2014 04:35:04 +0100
From:	Andi Kleen <andi@...stfloor.org>
To:	Sam Ravnborg <sam@...nborg.org>
Cc:	Andi Kleen <andi@...stfloor.org>,
	Markus Trippelsdorf <markus@...ppelsdorf.de>,
	linux-kernel@...r.kernel.org, x86@...nel.org,
	linux-kbuild@...r.kernel.org, mmarek@...e.cz, hjl.tools@...il.com
Subject: Re: Updated Link-Time-Optimization patchkit

On Sat, Feb 15, 2014 at 10:24:43PM +0100, Sam Ravnborg wrote:
> Hi Andi.
> 
> On Sat, Feb 15, 2014 at 06:44:24PM +0100, Andi Kleen wrote:
> > On Sat, Feb 15, 2014 at 02:38:14PM +0100, Markus Trippelsdorf wrote:
> > > On 2014.02.14 at 22:21 +0100, Andi Kleen wrote:
> > > > This is the updated LTO patchkit for 3.14-rc2.  LTO allows
> > > > the compiler to do global optimization over the whole kernel.
> > > 
> > > It is mildly annoying that one couldn't use vanilla binutils. Have you
> > > already opened bugs on sourceware.org/bugzilla/ to get this fixed for
> > > gold and ld.bfd?
> > 
> > The problem is supporting "pass through" of both pure (.S) assembler code and
> > LTO through ld -r, because the kernel makefiles use ld -r heavily.
> > Standard binutils would throw all the assembler away when in plugin LTO
> > mode.
> 
> Long time ago I looked at eliminating the use of -r in the kernel build.
> I lost the patch - but the attached patch managed to build
> a "make defconfig; make" kernel.
> 
> I have not event tried boot with this - it only managed to build!
> 
> What the patch does is for each directory visited a built-in.link file is created
> which is really a linker script.
> It uses INPUT (file file file) to specify all the object files.
> And in the final link the files are all read and the link is performed.
> 
> This limit the depth to 10 levels due to a restriction in ld.
> The binutils people have suggested some other methods that I did not look into.
> 
> Half of the patch is fixes to the security makefiles which I
> will submit anyway as this needs to be cleaned up indendent on
> this patch.
> 
> The patch drops $(cmd_secanalysis) because I did not look into this.
> 
> If this could make it easier to enable LTO then this would be
> a nice win.

I gave it a quick try and it failed like below with LTO

Right now using the Linux binutils is ok for me.

-Andi


+ ld -m elf_x86_64 -r -o vmlinux.o arch/x86/kernel/head_64.o
arch/x86/kernel/head64.o arch/x86/kernel/head.o init/built-in.link
--start-group usr/built-in.link arch/x86/built-in.link
kernel/built-in.link mm/built-in.link fs/built-in.link ipc/built-in.link
security/built-in.link crypto/built-in.link block/built-in.link
lib/lib.a arch/x86/lib/lib.a lib/built-in.link
arch/x86/lib/built-in.link drivers/built-in.link sound/built-in.link
firmware/built-in.link arch/x86/pci/built-in.link
arch/x86/oprofile/built-in.link arch/x86/power/built-in.link
arch/x86/video/built-in.link net/built-in.link --end-group
lib/lib.a: could not read symbols: Bad value

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ