commit:     d9f8ce4f700de0ba53c26148762d4dbdd7240c63
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 19 01:23:10 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Oct 19 01:23:17 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d9f8ce4f

dev-libs/libtompoly: fix build w/ Clang 16, fix LICENSE

Closes: https://bugs.gentoo.org/875527
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...y-0.04-Fix-Wimplicit-function-declaration.patch | 117 +++++++++++++++++++++
 dev-libs/libtompoly/libtompoly-0.04-r1.ebuild      |   8 +-
 2 files changed, 123 insertions(+), 2 deletions(-)

diff --git 
a/dev-libs/libtompoly/files/libtompoly-0.04-Fix-Wimplicit-function-declaration.patch
 
b/dev-libs/libtompoly/files/libtompoly-0.04-Fix-Wimplicit-function-declaration.patch
new file mode 100644
index 000000000000..49a005d44b1e
--- /dev/null
+++ 
b/dev-libs/libtompoly/files/libtompoly-0.04-Fix-Wimplicit-function-declaration.patch
@@ -0,0 +1,117 @@
+https://github.com/libtom/libtompoly/pull/4
+
+From 62f0b57e577cb3ec371042e60eb82ffcd0ae6bd0 Mon Sep 17 00:00:00 2001
+From: Sam James <[email protected]>
+Date: Wed, 19 Oct 2022 02:21:00 +0100
+Subject: [PATCH] Fix -Wimplicit-function-declaration
+
+Causes build failures with Clang 16.
+
+Bug: https://bugs.gentoo.org/875527
+--- a/pb_add.c
++++ b/pb_add.c
+@@ -10,6 +10,7 @@
+  * Tom St Denis, [email protected], http://poly.libtomcrypt.org
+  */
+ #include <tompoly.h>
++#include <math.h>
+ 
+ int pb_add(pb_poly *a, pb_poly *b, pb_poly *c)
+ {
+@@ -17,7 +18,7 @@ int pb_add(pb_poly *a, pb_poly *b, pb_poly *c)
+    pb_poly *tmp;
+ 
+    /* grow c to be the max size */
+-   y = MAX(a->used, b->used);
++   y = fmax(a->used, b->used);
+    if (c->alloc < y) {
+       if ((err = pb_grow(c, y)) != MP_OKAY) {
+          return err;
+@@ -28,7 +29,7 @@ int pb_add(pb_poly *a, pb_poly *b, pb_poly *c)
+    characteristic = mp_iszero(&(c->characteristic));
+ 
+    /* add the terms */
+-   z = MIN(a->used, b->used);
++   z = fmin(a->used, b->used);
+    for (x = 0; x < z; x++) {
+        if ((err = mp_add(&(a->terms[x]), &(b->terms[x]), &(c->terms[x]))) != 
MP_OKAY) {
+           return err;
+--- a/pb_clear.c
++++ b/pb_clear.c
+@@ -10,6 +10,7 @@
+  * Tom St Denis, [email protected], http://poly.libtomcrypt.org
+  */
+ #include <tompoly.h>
++#include <stdlib.h>
+ 
+ void pb_clear(pb_poly *a)
+ {
+--- a/pb_grow.c
++++ b/pb_grow.c
+@@ -10,6 +10,8 @@
+  * Tom St Denis, [email protected], http://poly.libtomcrypt.org
+  */
+ #include <tompoly.h>
++#include <stdlib.h>
++#include <string.h>
+ 
+ int pb_grow(pb_poly *a, int size)
+ {
+--- a/pb_init.c
++++ b/pb_init.c
+@@ -10,6 +10,7 @@
+  * Tom St Denis, [email protected], http://poly.libtomcrypt.org
+  */
+ #include <tompoly.h>
++#include <stdlib.h>
+ 
+ /* initialize a */
+ int pb_init(pb_poly *a, mp_int *characteristic)
+--- a/pb_init_size.c
++++ b/pb_init_size.c
+@@ -10,6 +10,7 @@
+  * Tom St Denis, [email protected], http://poly.libtomcrypt.org
+  */
+ #include <tompoly.h>
++#include <stdlib.h>
+ 
+ /* initialize a */
+ int pb_init_size(pb_poly *a, mp_int *characteristic, int size)
+--- a/pb_shrink.c
++++ b/pb_shrink.c
+@@ -10,6 +10,7 @@
+  * Tom St Denis, [email protected], http://poly.libtomcrypt.org
+  */
+ #include <tompoly.h>
++#include <stdlib.h>
+ 
+ int pb_shrink(pb_poly *a)
+ {
+--- a/pb_sub.c
++++ b/pb_sub.c
+@@ -10,6 +10,7 @@
+  * Tom St Denis, [email protected], http://poly.libtomcrypt.org
+  */
+ #include <tompoly.h>
++#include <math.h>
+ 
+ int pb_sub(pb_poly *a, pb_poly *b, pb_poly *c)
+ {
+@@ -17,7 +18,7 @@ int pb_sub(pb_poly *a, pb_poly *b, pb_poly *c)
+    pb_poly *tmp;
+ 
+    /* grow c to be the max size */
+-   y = MAX(a->used, b->used);
++   y = fmax(a->used, b->used);
+    if (c->alloc < y) {
+       if ((err = pb_grow(c, y)) != MP_OKAY) {
+          return err;
+@@ -28,7 +29,7 @@ int pb_sub(pb_poly *a, pb_poly *b, pb_poly *c)
+    characteristic = mp_iszero(&(c->characteristic));
+ 
+    /* sub the terms */
+-   z = MIN(a->used, b->used);
++   z = fmin(a->used, b->used);
+    for (x = 0; x < z; x++) {
+        if ((err = mp_sub(&(a->terms[x]), &(b->terms[x]), &(c->terms[x]))) != 
MP_OKAY) {
+           return err;

diff --git a/dev-libs/libtompoly/libtompoly-0.04-r1.ebuild 
b/dev-libs/libtompoly/libtompoly-0.04-r1.ebuild
index b21e94a8c54f..b8fd20681358 100644
--- a/dev-libs/libtompoly/libtompoly-0.04-r1.ebuild
+++ b/dev-libs/libtompoly/libtompoly-0.04-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -9,13 +9,17 @@ DESCRIPTION="portable ISO C library for polynomial basis 
arithmetic"
 HOMEPAGE="https://www.libtom.net/";
 
SRC_URI="https://github.com/libtom/libtompoly/releases/download/${PV}/ltp-${PV}.tar.bz2";
 
-LICENSE="WTFPL-2"
+LICENSE="|| ( public-domain WTFPL-2 )"
 SLOT="0"
 KEYWORDS="amd64 ppc x86"
 
 DEPEND="dev-libs/libtommath"
 RDEPEND="${DEPEND}"
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.04-Fix-Wimplicit-function-declaration.patch
+)
+
 src_prepare() {
        default
        sed -i \

Reply via email to