From efdc6db355ea52656faded3e4408d9a89d527379 Mon Sep 17 00:00:00 2001 From: David Seifert Date: Sun, 5 Jun 2016 13:29:57 +0200 Subject: [PATCH] sci-libs/shogun: Remove extern "C", fix USE="doc" generation Gentoo-Bug: 582464 Package-Manager: portage-2.3.0_rc1 --- .../files/shogun-4.1.0-remove-C-linkage.patch | 24 +++++++++++++++++++ sci-libs/shogun/shogun-4.1.0.ebuild | 3 ++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 sci-libs/shogun/files/shogun-4.1.0-remove-C-linkage.patch diff --git a/sci-libs/shogun/files/shogun-4.1.0-remove-C-linkage.patch b/sci-libs/shogun/files/shogun-4.1.0-remove-C-linkage.patch new file mode 100644 index 000000000000..08edcfac97a2 --- /dev/null +++ b/sci-libs/shogun/files/shogun-4.1.0-remove-C-linkage.patch @@ -0,0 +1,24 @@ +Prevent C linkage errors due to templates in extern "C" blocks: +* /usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/include/g++-v5/bits/cpp_type_traits.h:85:3: error: template with C linkage +* template +* ^ +* /usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/include/g++-v5/bits/cpp_type_traits.h:89:3: error: template specialization with C linkage +* template<> +* ^ +extern "C" blocks can be removed in shogun, as R internally correctly protects C symbols + +--- shogun-4.1.0/src/interfaces/r_modular/sg_print_functions.cpp ++++ shogun-4.1.0/src/interfaces/r_modular/sg_print_functions.cpp +@@ -1,4 +1,3 @@ +-extern "C" { + #include + #include + #include +@@ -7,7 +6,6 @@ + #include + #include + #include +-} + + #include + #include diff --git a/sci-libs/shogun/shogun-4.1.0.ebuild b/sci-libs/shogun/shogun-4.1.0.ebuild index 651f7bbc8652..3258b84c830b 100644 --- a/sci-libs/shogun/shogun-4.1.0.ebuild +++ b/sci-libs/shogun/shogun-4.1.0.ebuild @@ -78,6 +78,7 @@ DEPEND="${RDEPEND} PATCHES=( "${FILESDIR}"/${P}-fix-buildsystem.patch + "${FILESDIR}"/${P}-remove-C-linkage.patch ) pkg_setup() { @@ -123,5 +124,5 @@ src_configure() { src_compile() { cmake-utils_src_compile - use doc && emake -C doc + use doc && emake -C "${BUILD_DIR}"/doc } -- 2.26.2