https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68626

            Bug ID: 68626
           Summary: Compiling with "-flto -fuse-linker-plugin" gives
                    libtool error
           Product: gcc
           Version: lto
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: john.frankish at outlook dot com
  Target Milestone: ---

Compiling some packages with "-flto -fuse-linker-plugin" gives a libtool error
during "make". Compiling the same package without "-flto -fuse-linker-plugin"
allows "make" to complete without errors. 

Using gcc-4.9.1/binutils-2.24.51 or gcc-5.2.0/binutils-2.25.1 

The problem seems to occur with a few 10's of packages (eg cogl-1.20.0), but
not with others (eg gnome-music-3.16.2). 

Using cogl-1.20.0 as an example: 

CC="gcc -flto -fuse-linker-plugin -mtune=generic -Os -pipe" CXX="g++ -flto
-fuse-linker-plugin -mtune=generic -Os -pipe -fno-exceptions -fno-rtti" 
./configure --prefix=/usr/local --disable-static --localstatedir=/var
--enable-gles1 --enable-gles2 --enable-cogl-gst=yes 

find . -name Makefile -type f -exec sed -i 's/-g -O2//g' {} \; 

make
... 
CC cogl-enum-types.lo
CCLD libcogl.la
../libtool: eval: line 1: syntax error: unexpected "|" 
Makefile:1507: recipe for target 'libcogl.la' failed
make[4]: *** [libcogl.la] Error 2 

This can be fixed by using NM="gcc-nm", but as binutils was compiled with lto
enabled, it shouldn't be required?

Reply via email to