Commit 30b87886 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

debian: disable -flto for binaries

This work around what appears to be an exception handling bug, causing
binaries to not always catch excepting thrown by the library.

* debian/rules: Here.
parent 483212d2
......@@ -41,18 +41,31 @@ PRO2SETUP = \
CXXFLAGS='-flto -fprofile-use'
PYSETUP = PYTHON=/usr/bin/python3
# There seem to be a problem with unwinding of exception handling when
# the binaries are compiled with -flto. For instance in autfilt,
# argp_parse() calls the locally defined parse_opt() that calls
# remove_ap::add_ap() (in libspot). The latter may throw an
# exception, which should be caught in main(). However If autfilt is
# compiled with -flto, the exception never traverses argp. Moving
# the try/catch block inside parse_opt() also fixes this praticular
# problem, but who knows about other exceptions? So as a workaround,
# we simply disable -flto in src/bin/.
FLTOWORKAROUND = perl -pi -e s/-flto// src/bin/Makefile
# We want to build Spot twice: once to get profile data, and a second
# time to use it.
override_dh_auto_configure:
dh_auto_configure -- $(PRO1SETUP) $(LTOSETUP) \
--disable-devel --enable-optimizations \
--disable-static $(PYSETUP)
$(FLTOWORKAROUND)
dh_auto_build
dh_auto_test
make clean
dh_auto_configure -- $(PRO2SETUP) $(LTOSETUP) \
--disable-devel --enable-optimizations \
--disable-static $(PYSETUP)
$(FLTOWORKAROUND)
override_dh_auto_install:
dh_auto_install --destdir=$(CURDIR)/debian/tmp
find debian/tmp -name '*.la' -exec rm -rv {} ';'
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment