summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2018-05-24 17:29:51 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2018-05-24 17:31:21 +0200
commit041cd55b5dc192e9e6b1133a08e4279ea3674476 (patch)
treef3ada0f3dd9ef4328f22f8fa98dd6958c2fc8ae7 /kde-apps
parentsys-cluster/openmpi: bump 3.1.0 (diff)
downloadgentoo-041cd55b5dc192e9e6b1133a08e4279ea3674476.tar.gz
gentoo-041cd55b5dc192e9e6b1133a08e4279ea3674476.tar.bz2
gentoo-041cd55b5dc192e9e6b1133a08e4279ea3674476.zip
kde-apps/dolphin: Fix build with -flto
Thanks-to: Alexander Miller <alex.miller@gmx.de> Closes: https://bugs.gentoo.org/655710 Package-Manager: Portage-2.3.38, Repoman-2.3.9
Diffstat (limited to 'kde-apps')
-rw-r--r--kde-apps/dolphin/dolphin-18.04.1.ebuild2
-rw-r--r--kde-apps/dolphin/files/dolphin-18.04.1-flto.patch96
2 files changed, 98 insertions, 0 deletions
diff --git a/kde-apps/dolphin/dolphin-18.04.1.ebuild b/kde-apps/dolphin/dolphin-18.04.1.ebuild
index 256cdd947622..6814ee4e99cb 100644
--- a/kde-apps/dolphin/dolphin-18.04.1.ebuild
+++ b/kde-apps/dolphin/dolphin-18.04.1.ebuild
@@ -62,6 +62,8 @@ RDEPEND="${DEPEND}
RESTRICT+=" test"
+PATCHES=( "${FILESDIR}/${P}-flto.patch" )
+
src_configure() {
local mycmakeargs=(
$(cmake-utils_use_find_package semantic-desktop KF5Baloo)
diff --git a/kde-apps/dolphin/files/dolphin-18.04.1-flto.patch b/kde-apps/dolphin/files/dolphin-18.04.1-flto.patch
new file mode 100644
index 000000000000..8edef6b36013
--- /dev/null
+++ b/kde-apps/dolphin/files/dolphin-18.04.1-flto.patch
@@ -0,0 +1,96 @@
+From b607091c3982f6b84732fcf0c23c1c3f0054f203 Mon Sep 17 00:00:00 2001
+From: Alexander Miller <alex.miller@gmx.de>
+Date: Fri, 18 May 2018 22:43:25 +0200
+Subject: [PATCH 1/2] Remove main.cpp from dolphinstatic_SRCS
+
+Summary:
+The file main.cpp is already in dolphin_SRCS and doesn't
+belong in dolphinstatic_SRCS.
+
+Normally the duplicate object is simply ignored, but with
+link time optimization (LTO), linking dolphin can fail.
+Apparently, the compiler tries to inline inline kdemain()
+in this case. That is undesirable anyway and it ultimately
+fails because the DBusInterface definition is not available:
+
+.../ccHEv6cl.ltrans0.ltrans.o: In function `DBusInterface::~DBusInterface()':
+<artificial>:(.text+0x2583): undefined reference to `vtable for DBusInterface'
+.../ccHEv6cl.ltrans0.ltrans.o: In function `DBusInterface::~DBusInterface()':
+<artificial>:(.text+0x5aa3): undefined reference to `vtable for DBusInterface'
+.../ccHEv6cl.ltrans0.ltrans.o: In function `kdemain':
+<artificial>:(.text+0x7686): undefined reference to `DBusInterface::DBusInterface()'
+<artificial>:(.text+0x7b64): undefined reference to `vtable for DBusInterface'
+collect2: error: ld returned 1 exit status
+
+See also <https://bugs.gentoo.org/655710>.
+
+Reviewers: #dolphin, elvisangelaccio
+
+Reviewed By: elvisangelaccio
+
+Subscribers: elvisangelaccio, asturmlechner, kfm-devel
+
+Tags: #dolphin
+
+Differential Revision: https://phabricator.kde.org/D12929
+---
+ src/CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 263b3ff0c..e8fe719a4 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -207,7 +207,6 @@ set(dolphinstatic_SRCS
+ dolphintabwidget.cpp
+ trash/dolphintrash.cpp
+ filterbar/filterbar.cpp
+- main.cpp
+ panels/information/filemetadataconfigurationdialog.cpp
+ panels/information/informationpanel.cpp
+ panels/information/informationpanelcontent.cpp
+--
+2.17.0
+
+
+From 8e6f4eecd318041d2e4e6386d1660742dd4ddd89 Mon Sep 17 00:00:00 2001
+From: Alexander Miller <alex.miller@gmx.de>
+Date: Fri, 18 May 2018 22:44:52 +0200
+Subject: [PATCH 2/2] Make target_link_libraries for kdeinit_dolphin PRIVATE
+
+Summary:
+There is no need to add all of kdeinit_dolphin's
+dependencies (including the static archive) when
+linking dolphin; kdemain is the only needed symbol.
+Mark the link libraries PRIVATE to simplify the
+link command for dolphin.
+
+Reviewers: #dolphin, elvisangelaccio
+
+Reviewed By: elvisangelaccio
+
+Subscribers: asturmlechner, kfm-devel
+
+Tags: #dolphin
+
+Differential Revision: https://phabricator.kde.org/D12931
+---
+ src/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index e8fe719a4..beaa0ec50 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -299,7 +299,7 @@ ecm_add_app_icon(dolphin_SRCS ICONS ${ICONS_SRCS})
+ kf5_add_kdeinit_executable(dolphin ${dolphin_SRCS})
+
+
+-target_link_libraries(kdeinit_dolphin
++target_link_libraries(kdeinit_dolphin PRIVATE
+ dolphinstatic
+ dolphinprivate
+ )
+--
+2.17.0
+