<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - gtkmm fails to compile with clang++"
   href="https://llvm.org/bugs/show_bug.cgi?id=26784">26784</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>gtkmm fails to compile with clang++
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>3.7
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>C++
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>john.frankish@outlook.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>dgregor@apple.com, llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Using clang-3.70 and gcc-5.2.0

[clang appears hardcoded to look for the loader in /lib64 rather than lib]
[ld.gold has to be renamed to ld]

This works (to show that clang works in some cicumstances):

$ clang++ -flto -mtune=generic -Os -pipe -std=c++11 -E
gtkmm-3.16.0/gtk/gtkmm/treeviewcolumn.cc -I/usr/local/include/glibmm-2.4 ... >
foo.ii

$ clang++ -v -flto -Os -fPIC -shared -nostdlib -std=c++11 foo.ii

but:

$ CC="clang" CXX="clang++ -flto -Os -std=c++11" ./configure --prefix=/usr/local
--disable-static --localstatedir=/var

$ make
..
libtool: link: clang++ -flto -Os -std=c++11 -Wall -o
extra_defs_gen/generate_defs_gdk extra_defs_gen/generate_defs_gdk.o 
-L/usr/local/lib /usr/local/lib/libatkmm-1.6.so /usr/local/lib/libgiomm-2.4.so
/usr/local/lib/libpangomm-1.4.so /usr/local/lib/libglibmm-2.4.so
/usr/local/lib/libcairomm-1.0.so /usr/local/lib/libsigc-2.0.so
/usr/local/lib/libgtk-3.so /usr/local/lib/libgdk-3.so
/usr/local/lib/libpangocairo-1.0.so /usr/local/lib/libpango-1.0.so
/usr/local/lib/libatk-1.0.so /usr/local/lib/libcairo-gobject.so
/usr/local/lib/libcairo.so /usr/local/lib/libgdk_pixbuf-2.0.so
/usr/local/lib/libgio-2.0.so /usr/local/lib/libgobject-2.0.so
/usr/local/lib/libglib-2.0.so
/usr/local/lib/libglibmm_generate_extra_defs-2.4.so -pthread
extra_defs_gen/generate_defs_gdk.o:extra_defs_gen/generate_defs_gdk.cc:function
main: error: undefined reference to 'get_defs(unsigned long, bool (*)(unsigned
long))'
extra_defs_gen/generate_defs_gdk.o:extra_defs_gen/generate_defs_gdk.cc:function
main: error: undefined reference to 'get_defs(unsigned long, bool (*)(unsigned
long))'
extra_defs_gen/generate_defs_gdk.o:extra_defs_gen/generate_defs_gdk.cc:function
main: error: undefined reference to 'get_defs(unsigned long, bool (*)(unsigned
long))'
extra_defs_gen/generate_defs_gdk.o:extra_defs_gen/generate_defs_gdk.cc:function
main: error: undefined reference to 'get_defs(unsigned long, bool (*)(unsigned
long))'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:454: recipe for target 'extra_defs_gen/generate_defs_gdk' failed
make[2]: *** [extra_defs_gen/generate_defs_gdk] Error 1
make[2]: Leaving directory '/usr/src/gtkmm-3.16.0/tools'
Makefile:753: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/usr/src/gtkmm-3.16.0'
Makefile:538: recipe for target 'all' failed

$ clang++ -v -flto -Os -std=c++11 -Wall -o extra_defs_gen/generate_defs_gdk
extra_defs_gen/generate_defs_gdk.o  -L/usr/local/lib
/usr/local/lib/libatkmm-1.6.so /usr/local/lib/libgiomm-2.4.so
/usr/local/lib/libpangomm-1.4.so /usr/l
ocal/lib/libglibmm-2.4.so /usr/local/lib/libcairomm-1.0.so
/usr/local/lib/libsigc-2.0.so /usr/local/lib/libgtk-3.so /usr/local/lib/lib
gdk-3.so /usr/local/lib/libpangocairo-1.0.so /usr/local/lib/libpango-1.0.so
/usr/local/lib/libatk-1.0.so /usr/local/lib/libcairo-gobject.so
/usr/local/lib/libcairo.so /usr/local/lib/libgdk_pixbuf-2.0.so
/usr/local/lib/libgio-2.0.so /usr/local/lib/libgobject-2.0.so
/usr/local/lib/libglib-2.0.so
/usr/local/lib/libglibmm_generate_extra_defs-2.4.so -pthread
clang version 3.7.0 (tags/RELEASE_370/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Found candidate GCC installation:
/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.2.0
Selected GCC installation:
/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.2.0
Candidate multilib: .;@m64
Selected multilib: .;@m64
 "/usr/local/bin/ld" --eh-frame-hdr -m elf_x86_64 -dynamic-linker
/lib64/ld-linux-x86-64.so.2 -o extra_defs_gen/generate_defs_gdk /usr/lib/crt1.o
/usr/lib/crti.o
/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.2.0/crtbegin.o
-L/usr/local/lib -L/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.2.0
-L/lib/../lib64
-L/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.2.0/../../..
-L/usr/local/bin/../lib -L/lib -L/usr/lib -plugin
/usr/local/bin/../lib/LLVMgold.so -plugin-opt=mcpu=x86-64
extra_defs_gen/generate_defs_gdk.o /usr/local/lib/libatkmm-1.6.so
/usr/local/lib/libgiomm-2.4.so /usr/local/lib/libpangomm-1.4.so
/usr/local/lib/libglibmm-2.4.so /usr/local/lib/libcairomm-1.0.so
/usr/local/lib/libsigc-2.0.so /usr/local/lib/libgtk-3.so
/usr/local/lib/libgdk-3.so /usr/local/lib/libpangocairo-1.0.so
/usr/local/lib/libpango-1.0.so /usr/local/lib/libatk-1.0.so
/usr/local/lib/libcairo-gobject.so /usr/local/lib/libcairo.so
/usr/local/lib/libgdk_pixbuf-2.0.so /usr/local/lib/libgio-2.0.so
/usr/local/lib/libgobject-2.0.so /usr/local/lib/libglib-2.0.so
/usr/local/lib/libglibmm_generate_extra_defs-2.4.so -lstdc++ -lm -lgcc_s -lgcc
-lpthread -lc -lgcc_s -lgcc
/usr/local/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.2.0/crtend.o
/usr/lib/crtn.o
extra_defs_gen/generate_defs_gdk.o:extra_defs_gen/generate_defs_gdk.cc:function
main: error: undefined reference to 'get_defs(unsigned long, bool (*)(unsigned
long))'
extra_defs_gen/generate_defs_gdk.o:extra_defs_gen/generate_defs_gdk.cc:function
main: error: undefined reference to 'get_defs(unsigned long, bool (*)(unsigned
long))'
extra_defs_gen/generate_defs_gdk.o:extra_defs_gen/generate_defs_gdk.cc:function
main: error: undefined reference to 'get_defs(unsigned long, bool (*)(unsigned
long))'
extra_defs_gen/generate_defs_gdk.o:extra_defs_gen/generate_defs_gdk.cc:function
main: error: undefined reference to 'get_defs(unsigned long, bool (*)(unsigned
long))'
clang: error: linker command failed with exit code 1 (use -v to see invocation)</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>