Skip to content

dev-libs/libwacom-1.0 fails to link with LTO #414

Description

@bitthief

Hi,

Ever since libwacom got bumped to version 1.0 about 1 week ago, I am seeing a link failure with the default flags:

* CFLAGS='-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu'
* CXXFLAGS='-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu'
* FFLAGS='-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu'
* FCFLAGS='-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu'
* F77FLAGS='-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu'
* LDFLAGS='-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe -falign-functions=32'
* MAKEOPTS='-j12 -l16'

The following build log shows the problem:

libtool: link: x86_64-pc-linux-gnu-gcc -I/usr/include/gudev-1.0 -I/usr/lib64/libffi-3.3_rc0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe -falign-functions=32 -Wl,-O1 -Wl,--hash-style=gnu -Wl,-O1 -Wl,--hash-style=gnu -march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe -falign-functions=32 -o test-tablet-validity test_tablet_validity-test-tablet-validity.o  -Wl,--as-needed ../libwacom/.libs/libwacom.so -lgudev-1.0 -lgobject-2.0 -lglib-2.0 -ldl -Wl,-rpath -Wl,/var/tmp/portage/dev-libs/libwacom-1.0/work/libwacom-1.0/libwacom/.libs
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/dev-libs/libwacom-1.0/temp/test-deprecated.ajTaKa.ltrans0.ltrans.o: in function `main':
<artificial>:(.text.startup+0x9d): undefined reference to `libwacom_match_destroy@LIBWACOM_0.33'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: <artificial>:(.text.startup+0xaa): undefined reference to `libwacom_match_new@LIBWACOM_0.33'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: <artificial>:(.text.startup+0xb7): undefined reference to `libwacom_error_set@LIBWACOM_0.33'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: <artificial>:(.text.startup+0xbe): undefined reference to `libwacom_stylus_destroy@LIBWACOM_0.33'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: <artificial>:(.text.startup+0xc7): undefined reference to `libwacom_update_match@LIBWACOM_0.33'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:665: test-deprecated] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/var/tmp/portage/dev-libs/libwacom-1.0/work/libwacom-1.0/test'
make[1]: *** [Makefile:462: all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/dev-libs/libwacom-1.0/work/libwacom-1.0'

This has also been reported upstream, but no solution is provided:
linuxwacom/libwacom#152

I think it'd be wise to disable LTO for the package for now?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions