commit:     6fb468f93e623f98f94d4c7585b8228133876187
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu May 24 15:30:12 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu May 24 15:30:12 2018 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=6fb468f9

kde-apps/dolphin: Fix build with -flto

Package-Manager: Portage-2.3.38, Repoman-2.3.9

 kde-apps/dolphin/dolphin-18.04.49.9999.ebuild     |  2 +
 kde-apps/dolphin/files/dolphin-18.04.1-flto.patch | 96 +++++++++++++++++++++++
 2 files changed, 98 insertions(+)

diff --git a/kde-apps/dolphin/dolphin-18.04.49.9999.ebuild 
b/kde-apps/dolphin/dolphin-18.04.49.9999.ebuild
index 71ed7edb10..4c25caa413 100644
--- a/kde-apps/dolphin/dolphin-18.04.49.9999.ebuild
+++ b/kde-apps/dolphin/dolphin-18.04.49.9999.ebuild
@@ -62,6 +62,8 @@ RDEPEND="${DEPEND}
 
 RESTRICT+=" test"
 
+PATCHES=( "${FILESDIR}/${PN}-18.04.1-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 0000000000..8edef6b360
--- /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.mil...@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.mil...@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
+

Reply via email to