cddlib/0001-build-extend-extern-C-block-in-header-files.patch

71 lines
2.0 KiB
Diff

From 1412ca0120841c7f8a83633c5dc857add060445f Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: Sat, 19 Sep 2020 13:03:18 +0200
Subject: [PATCH] build: extend "extern C" block in header files
Upstream: https://github.com/cddlib/cddlib/pull/46
I am getting compile errors in sympol when I try to remove
their extern "C" hack:
extern "C" {
#include <cddlib/cdd.h>
}
Turns out this is because cdd's own extern C are not broad enough.
---
lib-src/cdd.h | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/lib-src/cdd.h b/lib-src/cdd.h
index ebc52cc..d78d5d1 100644
--- a/lib-src/cdd.h
+++ b/lib-src/cdd.h
@@ -35,6 +35,10 @@ extern mytype dd_purezero;
extern mytype dd_minuszero;
extern mytype dd_minusone;
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
extern time_t dd_statStartTime; /* cddlib starting time */
extern long dd_statBApivots; /* basis finding pivots */
extern long dd_statCCpivots; /* criss-cross pivots */
@@ -53,10 +57,6 @@ extern dd_boolean dd_choiceLexicoPivotQ; /* whether to use the lexicographic
/* ---------- FUNCTIONS MEANT TO BE PUBLIC ---------- */
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
/* basic matrix manipulations */
void dd_InitializeArow(dd_colrange,dd_Arow *);
void dd_InitializeAmatrix(dd_rowrange,dd_colrange,dd_Amatrix *);
@@ -211,10 +211,6 @@ void dd_WriteLPMode(FILE *f);
dd_MatrixPtr dd_FourierElimination(dd_MatrixPtr,dd_ErrorType *);
dd_MatrixPtr dd_BlockElimination(dd_MatrixPtr, dd_colset, dd_ErrorType *);
-#if defined(__cplusplus)
-}
-#endif
-
/* ---------- FUNCTIONS MEANT TO BE NON-PUBLIC ---------- */
void dd_QuickSort(dd_rowindex, long, long, dd_Amatrix, long);
void dd_RandomPermutation(dd_rowindex, long, unsigned int seed);
@@ -285,8 +281,8 @@ dd_PolyhedraPtr dd_CreatePolyhedraData(dd_rowrange, dd_colrange);
dd_boolean dd_InitializeConeData(dd_rowrange, dd_colrange, dd_ConePtr*);
dd_boolean dd_AppendMatrix2Poly(dd_PolyhedraPtr*, dd_MatrixPtr);
-
-
-
+#if defined(__cplusplus)
+}
+#endif
/* end of cddlib.h */
--
2.28.0