summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario Haustein <mario.haustein@hrz.tu-chemnitz.de>2024-11-30 17:08:04 +0100
committerSam James <sam@gentoo.org>2024-12-01 08:36:33 +0000
commit3ca573c730559e095047180c04dc4f45dcaf758f (patch)
treee8164fb48ae970aa32b5cfb74732b0d3b70907f9 /sci-geosciences
parentdev-util/ROPgadget: Stabilize 7.5 x86, #945498 (diff)
downloadgentoo-3ca573c730559e095047180c04dc4f45dcaf758f.tar.gz
gentoo-3ca573c730559e095047180c04dc4f45dcaf758f.tar.bz2
gentoo-3ca573c730559e095047180c04dc4f45dcaf758f.zip
sci-geosciences/gmt: fix implicit function declaration
[sam: Revbump for modern C fix.] Closes: https://bugs.gentoo.org/945480 Signed-off-by: Mario Haustein <mario.haustein@hrz.tu-chemnitz.de> Closes: https://github.com/gentoo/gentoo/pull/39531 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sci-geosciences')
-rw-r--r--sci-geosciences/gmt/files/gmt-6.4.0-mergesort.patch57
-rw-r--r--sci-geosciences/gmt/gmt-6.4.0-r1.ebuild (renamed from sci-geosciences/gmt/gmt-6.4.0.ebuild)6
2 files changed, 62 insertions, 1 deletions
diff --git a/sci-geosciences/gmt/files/gmt-6.4.0-mergesort.patch b/sci-geosciences/gmt/files/gmt-6.4.0-mergesort.patch
new file mode 100644
index 000000000000..55a31f29e44b
--- /dev/null
+++ b/sci-geosciences/gmt/files/gmt-6.4.0-mergesort.patch
@@ -0,0 +1,57 @@
+From a898ed6598541a70976a44ece58f5f358a80e1bc Mon Sep 17 00:00:00 2001
+From: Paul Wessel <pwessel@hawaii.edu>
+Date: Mon, 24 Apr 2023 14:41:35 +0200
+Subject: [PATCH] Ensure mergesort is declared if needed
+Upstream: https://github.com/GenericMappingTools/gmt/pull/7411
+Bug: https://bugs.gentoo.org/945480
+
+See #7410 for background. Here I implement it a bit differently. The mergesort function is used both in a module (gmtspatial) as well as by some gmt_*.c libraries, hence if it is not part of the standard libraries we declare it in gmt_prototypes.h so it is set for both modules and libs.
+--- a/src/gmt_init.c
++++ b/src/gmt_init.c
+@@ -167,6 +167,10 @@
+ # include <mex.h>
+ #endif
+
++#ifndef HAVE_MERGESORT
++#include "mergesort.c"
++#endif
++
+ /* These are used in gmtinit_init_custom_annot and gmtinit_decode_tinfo only */
+ #define GMT_ITEM_ANNOT 0
+ #define GMT_ITEM_INTVAL 1
+--- a/src/gmt_prototypes.h
++++ b/src/gmt_prototypes.h
+@@ -39,6 +39,15 @@ EXTERN_MSC void gmt_grd_dump (struct GMT_GRID_HEADER *header, gmt_grdfloat *grid
+ EXTERN_MSC char * gmt_strdup (struct GMT_CTRL *GMT, const char *s);
+ #endif
+
++#ifdef __APPLE__
++/* macOX has it built in, so ensure we define this flag */
++#define HAVE_MERGESORT
++#endif
++
++#ifndef HAVE_MERGESORT
++EXTERN_MSC int mergesort (void *base, size_t nmemb, size_t size, int (*cmp)(const void *, const void *));
++#endif
++
+ /* gmt_nc.c: */
+
+ EXTERN_MSC bool gmt_nc_is_cube (struct GMTAPI_CTRL *API, char *file);
+--- a/src/gmtspatial.c
++++ b/src/gmtspatial.c
+@@ -165,15 +165,6 @@ struct GMTSPATIAL_PAIR {
+ uint64_t pos;
+ };
+
+-#ifdef __APPLE__
+-/* macOX has it built in, so ensure we define this flag */
+-#define HAVE_MERGESORT
+-#endif
+-
+-#ifndef HAVE_MERGESORT
+-#include "mergesort.c"
+-#endif
+-
+ static void *New_Ctrl (struct GMT_CTRL *GMT) { /* Allocate and initialize a new control structure */
+ struct GMTSPATIAL_CTRL *C;
+
diff --git a/sci-geosciences/gmt/gmt-6.4.0.ebuild b/sci-geosciences/gmt/gmt-6.4.0-r1.ebuild
index ab7b61b5eb63..7f7d94e82835 100644
--- a/sci-geosciences/gmt/gmt-6.4.0.ebuild
+++ b/sci-geosciences/gmt/gmt-6.4.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -34,6 +34,10 @@ RDEPEND="${DEPEND}
sci-geosciences/gshhg-gmt
"
+PATCHES=(
+ "${FILESDIR}/${P}-mergesort.patch"
+)
+
src_prepare() {
cmake_src_prepare
# Rename man pages to avoid a name conflict with gmt5