commit:     efdc6db355ea52656faded3e4408d9a89d527379
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Jun  5 11:29:57 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Jun  5 11:35:06 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=efdc6db3

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(-)

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 0000000..08edcfa
--- /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<bool>
+*    ^
+* 
/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 <R.h>
+ #include <Rinternals.h>
+ #include <Rdefines.h>
+@@ -7,7 +6,6 @@
+ #include <Rinterface.h>
+ #include <R_ext/RS.h>
+ #include <R_ext/Error.h>
+-}
+ 
+ #include <shogun/base/SGObject.h>
+ #include <stdio.h>

diff --git a/sci-libs/shogun/shogun-4.1.0.ebuild 
b/sci-libs/shogun/shogun-4.1.0.ebuild
index 651f7bb..3258b84 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
 }

Reply via email to