On Fri, Nov 14, 2014 at 2:19 AM, Richard Biener
<richard.guent...@gmail.com> wrote:
> On Fri, Nov 14, 2014 at 12:15 AM, H.J. Lu <hjl.to...@gmail.com> wrote:
>> On Tue, Nov 11, 2014 at 8:02 AM, H.J. Lu <hjl.to...@gmail.com> wrote:
>>> On Mon, Nov 10, 2014 at 11:42 AM, H.J. Lu <hjl.to...@gmail.com> wrote:
>>>> On Mon, Nov 10, 2014 at 5:44 AM, Richard Biener
>>>> <richard.guent...@gmail.com> wrote:
>>>>> On Mon, Nov 10, 2014 at 2:43 PM, Jakub Jelinek <ja...@redhat.com> wrote:
>>>>>> On Mon, Nov 10, 2014 at 05:32:32AM -0800, H.J. Lu wrote:
>>>>>>> On Mon, Nov 10, 2014 at 4:05 AM, Jakub Jelinek <ja...@redhat.com> wrote:
>>>>>>> > On Mon, Nov 10, 2014 at 12:50:44PM +0100, Richard Biener wrote:
>>>>>>> >> On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu...@intel.com> wrote:
>>>>>>> >> > Hi,
>>>>>>> >> >
>>>>>>> >> > r216964 disables bootstrap for libcc1 which exposed 2 things:
>>>>>>> >> >
>>>>>>> >> > 1. libcc1 isn't compiled with LTO even when GCC is configured with
>>>>>>> >> > "--with-build-config=bootstrap-lto".  It may be intentional since
>>>>>>> >> > libcc1 is disabled for bootstrap.
>>>>>>> >> > 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
>>>>>>> >> > compiled with LTO which remembers PIC option.
>>>>>>> >>
>>>>>>> >> Why is this any special to LTO?  If it is then it looks like a LTO
>>>>>>> >> (driver) issue to me?  Why are we linking the pic libibterty into
>>>>>>> >> a non-pic libcc1?
>>>>>>> >
>>>>>>> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
>>>>>>> > libcc1 is built normally using libtool using -fPIC only, and linked 
>>>>>>> > into
>>>>>>> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
>>>>>>> > pic/libiberty.a, because we need PIC code in the shared libraries.
>>>>>>> > So, I don't understand the change at all.
>>>>>>> >
>>>>>>> >         Jakub
>>>>>>>
>>>>>>> This is the command line to build libcc1.la:
>>>>>>
>>>>>> Sure, but there was -fPIC used to compile all the *.o files that are 
>>>>>> being
>>>>>> linked into libcc1.so, so LTO should know that.
>>>>>
>>>>> And it does.  If not please file a bug with a smaller testcase than libcc1
>>>>> and libiberty.
>>>>>
>>>>
>>>> There is nothing wrong with linker.  It is a slm-lto bug in libtool.  I 
>>>> uploaded
>>>> a testcase at
>>>>
>>>> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33931
>>>>
>>>
>>> My patch is a backport of libtool LTO support:
>>>
>>> commit b81fd4ef009c24a86a7e64727ea09efb410ea149
>>> Author: Ralf Wildenhues <ralf.wildenh...@gmx.de>
>>> Date:   Sun Aug 29 17:31:29 2010 +0200
>>>
>>>     Support GCC LTO on GNU/Linux.
>>>
>>>     * libltdl/config/ltmain.m4sh (func_mode_link): Allow through
>>>     flags matching -O*, -flto*, -fwhopr, -fuse-linker-plugin.
>>>     * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Drop symbols
>>>     starting with __gnu_lto.
>>>     (_LT_LINKER_SHLIBS) [linux] <archive_cmds, archive_expsyms_cmds>:
>>>     Add $pic_flag for GCC.
>>>     (_LT_LANG_CXX_CONFIG) [linux] <archive_cmds, archive_expsyms_cmds>:
>>>     Likewise.
>>>     (_LT_SYS_HIDDEN_LIBDEPS): Ignore files matching *.lto.o.
>>>     * NEWS: Update.
>>>
>>>     Signed-off-by: Ralf Wildenhues <ralf.wildenh...@gmx.de>
>>>
>>> OK to install?
>>>
>>
>> Ping.
>>
>> Stage 1 will be closed tomorrow.  I'd like to restore LTO bootstrap.
>
> Bugfixing is still possible after that date.  I suppose you don't call
> LTO bootstrap a new feature ;)
>

New LTO bugs have been introduced since LTO bootstrap was broken
a few weeks ago.  I'd like to check in this one so that we have a chance
to prevent further damage.  Any objects to backport this from libtool
upstream?

-- 
H.J.

Reply via email to