Thanks for the reply, Will Newton.

Then can we expect the fix to be included for the official Android toolchain 2014.11?



And, thanks for explaining the culprit of this bug, Jongsung Kim! :)

On Wed, Oct 29, 2014 at 9:00 PM, <linaro-toolchain-request@lists.linaro.org> wrote:
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
************************************************