Send linaro-toolchain mailing list submissions to
linaro-toolchain@lists.linaro.org
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.linaro.org/mailman/listinfo/linaro-toolchain
or, via email, send a message with subject or body 'help' to
linaro-toolchain-request@lists.linaro.org
You can reach the person managing the list at
linaro-toolchain-owner@lists.linaro.org
When replying, please edit your Subject line so it is more specific
than "Re: Contents of linaro-toolchain digest..."
Today's Topics:
1. RE: Enabling back linker plugin for Linaro Android toolchain
(Jongsung Kim)
2. Re: Enabling back linker plugin for Linaro Android toolchain
(Will Newton)
----------------------------------------------------------------------
Message: 1
Date: Wed, 29 Oct 2014 11:26:30 +0900
From: "Jongsung Kim" <neidhard.kim@lge.com>
To: '???' <qkrwngud825@gmail.com>, <linaro-android@lists.linaro.org>,
<linaro-toolchain@lists.linaro.org>
Subject: RE: Enabling back linker plugin for Linaro Android toolchain
Message-ID: <012f01cff31f$c01cea90$4056bfb0$@lge.com>
Content-Type: text/plain; charset="UTF-8"
The version-string from binutils-linaro looks to be blamed. It once was:
GNU ld (crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 2.23.1
and the linker plugin works with this version of Linaro prebuilt toolchain. Now it is:
GNU ld (crosstool-NG linaro-1.13.1-4.8-2014.04 - Linaro GCC 4.8-2014.04) 2.24.0.20140311 Linaro 2014.03
GNU ld (crosstool-NG linaro-1.13.1-4.9-2014.08 - Linaro GCC 4.9-2014.08) 2.24.0.20140801 Linaro 2014.08
and the linker plugin is not supported:
$ arm-linux-gnueabihf-gcc -flto -fuse-linker-plugin -o hello hello.c
arm-linux-gnueabihf-gcc: error: -fuse-linker-plugin is not supported in this configuration
Look into gcc/configure script. It uses the version of ld to determine whether ld supports linker plugin. It extracts the version by doing something like:
$ arm-linux-gnueabihf-ld --version | sed 1q | sed -n -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'
and it will extract the last 2014.03 or 2014.08. By using proper substitution expression like 's,^GNU ld (.*) \([0-9][.0-9]*\).*$,\1,p', the script may enable linker plugin.
However, patching the script looks like a bad idea, because it doesn?t help handling the version of gold:
GNU gold (GNU Binutils for Ubuntu 2.24) 1.11
GNU gold (crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04 2.23.1) 1.11
GNU gold (crosstool-NG linaro-1.13.1-4.8-2014.04 - Linaro GCC 4.8-2014.04 2.24.0.20140311 Linaro 2014.03) 1.11
GNU gold (crosstool-NG linaro-1.13.1-4.9-2014.08 - Linaro GCC 4.9-2014.08 2.24.0.20140801 Linaro 2014.08) 1.11
I couldn?t find a reasonable general expression to extract the version.
From: linaro-toolchain-bounces@lists.linaro.org [mailto:linaro-toolchain-bounces@lists.linaro.org] On Behalf Of ???
Sent: Monday, October 27, 2014 10:15 PM
To: linaro-android@lists.linaro.org; linaro-toolchain@lists.linaro.org
Subject: Enabling back linker plugin for Linaro Android toolchain
I'm using Linaro Android toolchain's arm-eabi- for compiling my Android Linux kernel with LTO.
The main benefits of my kernel is that it uses LTO(Link-Time-Optimizations).
(Patches found here: https://github.com/andikleen/linux-misc)
But now, it's broken with Linaro Android toolchains from 2014.09~
Building Linux kernel with LTO requires Linker plugin with the toolchain.
But for some reason, linker plugin is disabled with 2014.09 and 2014.10
(Which I used from here : https://android-build.linaro.org/builds/~linaro-android/toolchain-4.9-2014.09 https://android-build.linaro.org/builds/~linaro-android/toolchain-4.9-2014.10 )
LTO build works flawlessly with 2014.08.
With 2014.09 and 2014.10, I get the following error :
cc1: error: -fno-fat-lto-objects are supported only with linker plugin
If I explicitly remove " -fno-fat-lto-objects " from the Makefile, the linker fails to link all of the object files.
I would like to ask Linaro to enable back the Linker plugin support :)
Thanks in advance..
------------------------------
Message: 2
Date: Wed, 29 Oct 2014 09:12:53 +0000
From: Will Newton <will.newton@linaro.org>
To: Jongsung Kim <neidhard.kim@lge.com>
Cc: ??? <qkrwngud825@gmail.com>, linaro-android@lists.linaro.org,
Linaro Toolchain <linaro-toolchain@lists.linaro.org>
Subject: Re: Enabling back linker plugin for Linaro Android toolchain
Message-ID:
<CANu=DmhPdCGYw0=hCs9tmkbCU6hMLLMJnYS-u_JGz=p17Bgonw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
On 29 October 2014 02:26, Jongsung Kim <neidhard.kim@lge.com> wrote:
> The version-string from binutils-linaro looks to be blamed. It once was:
>
> GNU ld (crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 2.23.1
>
> and the linker plugin works with this version of Linaro prebuilt toolchain. Now it is:
>
> GNU ld (crosstool-NG linaro-1.13.1-4.8-2014.04 - Linaro GCC 4.8-2014.04) 2.24.0.20140311 Linaro 2014.03
> GNU ld (crosstool-NG linaro-1.13.1-4.9-2014.08 - Linaro GCC 4.9-2014.08) 2.24.0.20140801 Linaro 2014.08
>
> and the linker plugin is not supported:
>
> $ arm-linux-gnueabihf-gcc -flto -fuse-linker-plugin -o hello hello.c
> arm-linux-gnueabihf-gcc: error: -fuse-linker-plugin is not supported in this configuration
>
> Look into gcc/configure script. It uses the version of ld to determine whether ld supports linker plugin. It extracts the version by doing something like:
>
> $ arm-linux-gnueabihf-ld --version | sed 1q | sed -n -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'
>
> and it will extract the last 2014.03 or 2014.08. By using proper substitution expression like 's,^GNU ld (.*) \([0-9][.0-9]*\).*$,\1,p', the script may enable linker plugin.
>
> However, patching the script looks like a bad idea, because it doesn?t help handling the version of gold:
>
> GNU gold (GNU Binutils for Ubuntu 2.24) 1.11
> GNU gold (crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04 2.23.1) 1.11
> GNU gold (crosstool-NG linaro-1.13.1-4.8-2014.04 - Linaro GCC 4.8-2014.04 2.24.0.20140311 Linaro 2014.03) 1.11
> GNU gold (crosstool-NG linaro-1.13.1-4.9-2014.08 - Linaro GCC 4.9-2014.08 2.24.0.20140801 Linaro 2014.08) 1.11
>
> I couldn?t find a reasonable general expression to extract the version.
This should be fixed in binutils-linaro-2.24-2014.11.
> From: linaro-toolchain-bounces@lists.linaro.org [mailto:linaro-toolchain-bounces@lists.linaro.org] On Behalf Of ???
> Sent: Monday, October 27, 2014 10:15 PM
> To: linaro-android@lists.linaro.org; linaro-toolchain@lists.linaro.org
> Subject: Enabling back linker plugin for Linaro Android toolchain
>
> I'm using Linaro Android toolchain's arm-eabi- for compiling my Android Linux kernel with LTO.
>
> The main benefits of my kernel is that it uses LTO(Link-Time-Optimizations).
> (Patches found here: https://github.com/andikleen/linux-misc)
>
> But now, it's broken with Linaro Android toolchains from 2014.09~
>
> Building Linux kernel with LTO requires Linker plugin with the toolchain.
>
>
> But for some reason, linker plugin is disabled with 2014.09 and 2014.10
> (Which I used from here : https://android-build.linaro.org/builds/~linaro-android/toolchain-4.9-2014.09 https://android-build.linaro.org/builds/~linaro-android/toolchain-4.9-2014.10 )
>
> LTO build works flawlessly with 2014.08.
>
> With 2014.09 and 2014.10, I get the following error :
> cc1: error: -fno-fat-lto-objects are supported only with linker plugin
>
> If I explicitly remove " -fno-fat-lto-objects " from the Makefile, the linker fails to link all of the object files.
>
>
> I would like to ask Linaro to enable back the Linker plugin support :)
>
> Thanks in advance..
>
>
> _______________________________________________
> linaro-toolchain mailing list
> linaro-toolchain@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-toolchain
--
Will Newton
Toolchain Working Group, Linaro
------------------------------
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain
End of linaro-toolchain Digest, Vol 52, Issue 16
************************************************