FS#45897 - [qt5-declarative] Cannot Build with Link Time Optimization Specified in 'makepkg.conf'

Attached to Project: Arch Linux
Opened by Justin Zane Chudgar (justinzane) - Tuesday, 04 August 2015, 19:36 GMT
Last edited by Doug Newgard (Scimmia) - Tuesday, 04 August 2015, 23:24 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
The PKGBUILD for qt5-declarative currently specifies '-no-use-gold-linker' amidst its configuration options. Even removing this line is not sufficient to allow building with:

C(XX)FLAGS="$C(XX)FLAGS -flto"
LD="/usr/bin/ld.gold -plugin=/usr/lib/bfd-plugins/liblto_plugin.so"

What happens is that the compile command line looks like:

ccache g++ -c <makepkg-conf_CXXFLAGS> \
-O2 \
<makepkg-conf_CXXFLAGS> \ #AGAIN!
-std=c++0x -fno-exceptions -Wall -W -D<...> -I<...> file.o file.cpp

The link flags look like:

/usr/bin/ld.gold -plugin=/usr/lib/bfd-plugins/liblto_plugin.so \
<makepkg-conf_LDFLAGS> \
-Wl,--gc-sections \
<makepkg-conf_LDFLAGS> \ #AGAIN
-fuse-ld=gold -Wl,--enable-new-dtags \
-o ...

As far as I can tell, the inappropriate use of '-fuse-ld-gold' is an upstream bug. Guidance as to how to remove this flag would be excellent.

I'm unclear on why the CFLAGS/CXXFLAGS/LDFLAGS end up getting duplicated in the final commands.

NOTE: This is the same with the qt5-base package.
This task depends upon

Closed by  Doug Newgard (Scimmia)
Tuesday, 04 August 2015, 23:24 GMT
Reason for closing:  Duplicate
Additional comments about closing:   FS#45747 
Comment by Justin Zane Chudgar (justinzane) - Tuesday, 04 August 2015, 19:39 GMT
According to this: https://wiki.qt.io/Performance_Tip_Startup_Time it should be possible to use LTO to build QT5.

Loading...