This avoids the %n usage, switches HOMEPAGE and MASTER_SITES to https
and adds a proper fix for -fno-common, as all common variables come
from iface.[ch], so we can simply extern them in the header.
Index: Makefile
===================================================================
RCS file: /cvs/ports/math/mcl/Makefile,v
retrieving revision 1.14
diff -u -p -r1.14 Makefile
--- Makefile 14 Feb 2021 03:19:26 -0000 1.14
+++ Makefile 14 Sep 2021 03:07:01 -0000
@@ -5,14 +5,16 @@ COMMENT= clustering algorithm for graphs
V= 14-137
DISTNAME= mcl-${V}
PKGNAME= mcl-${V:S,-,_,}
+REVISION= 0
+
CATEGORIES= math
-HOMEPAGE= http://micans.org/mcl/
+HOMEPAGE= https://micans.org/mcl/
# GPLv2
PERMIT_PACKAGE= Yes
-MASTER_SITES= http://micans.org/mcl/src/
+MASTER_SITES= https://micans.org/mcl/src/
WANTLIB= c m pthread
@@ -20,8 +22,5 @@ CONFIGURE_STYLE=gnu
USE_GROFF = Yes
FAKE_FLAGS= exampledir=${PREFIX}/share/examples/mcl/
-
-# 20+ duplicate symbols
-CFLAGS+= -fcommon
.include <bsd.port.mk>
Index: patches/patch-src_impala_iface_h
===================================================================
RCS file: patches/patch-src_impala_iface_h
diff -N patches/patch-src_impala_iface_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_impala_iface_h 14 Sep 2021 03:13:55 -0000
@@ -0,0 +1,31 @@
+$OpenBSD$
+
+Fix for -fno-common
+
+Index: src/impala/iface.h
+--- src/impala/iface.h.orig
++++ src/impala/iface.h
+@@ -16,15 +16,15 @@
+
+ /* This file currently provides nothing */
+
+-dim nu_meet_can ;
+-dim nu_meet_sl ;
+-dim nu_meet_zip ;
+-dim nu_diff_can ;
+-dim nu_diff_sl ;
+-dim nu_diff_zip ;
+-double nu_magic ;
++extern dim nu_meet_can ;
++extern dim nu_meet_sl ;
++extern dim nu_meet_zip ;
++extern dim nu_diff_can ;
++extern dim nu_diff_sl ;
++extern dim nu_diff_zip ;
++extern double nu_magic ;
+
+-dim mclx_n_thread_g ;
++extern dim mclx_n_thread_g ;
+
+ #endif
+
Index: patches/patch-src_impala_io_c
===================================================================
RCS file: patches/patch-src_impala_io_c
diff -N patches/patch-src_impala_io_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_impala_io_c 14 Sep 2021 03:13:55 -0000
@@ -0,0 +1,42 @@
+$OpenBSD$
+
+Avoid printf %n
+
+Index: src/impala/io.c
+--- src/impala/io.c.orig
++++ src/impala/io.c
+@@ -1413,10 +1413,10 @@ static void mclva_dump
+ ; }
+
+ if (vid>=0)
+- { fprintf(fp, "%ld%n", (long) vid, &n_converted)
++ { n_converted = fprintf(fp, "%ld", (long) vid)
+ ; nr_chars += n_converted
+ ; if (vec->val != 0.0)
+- fprintf(fp, ":%.*g%n", valdigits, (double) vec->val, &n_converted)
++ n_converted = fprintf(fp, ":%.*g", valdigits, (double) vec->val)
+ , nr_chars += n_converted
+ ; while (nr_chars+1 < leadwidth) /* we get one below */
+ { fputs(" ", fp)
+@@ -1426,18 +1426,17 @@ static void mclva_dump
+
+ for (d=0; d<vec->n_ivps;d++)
+ { if (valdigits > -1)
+- { fprintf
++ { n_converted = fprintf
+ ( fp
+- , " %ld:%.*g%n"
++ , " %ld:%.*g"
+ , (long) (vec->ivps+d)->idx
+ , (int) valdigits
+ , (double) (vec->ivps+d)->val
+- , &n_converted
+ )
+ ; nr_chars += n_converted
+ ; }
+ else if (valdigits == MCLXIO_VALUE_NONE)
+- { fprintf(fp, " %ld%n", (long) (vec->ivps+d)->idx, &n_converted)
++ { n_converted = fprintf(fp, " %ld", (long) (vec->ivps+d)->idx)
+ ; nr_chars += n_converted
+ ; }
+