dev-scheme/guile: fix configure w/ clang 16 (2.0.x)

Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2023-01-04 04:09:15 +00:00
parent 4c06dccc61
commit ddfb19b4eb
2 changed files with 79 additions and 7 deletions

View File

@@ -0,0 +1,71 @@
https://src.fedoraproject.org/rpms/guile/c/7fcab121be7d2bc8e3e48d0da476127b86cec90c?branch=rawhide
These issues have already been fixed upstream via gnulib imports:
commit 7e641595cd9b45ce7339e21c20a8ab81af9278f6
Author: Andy Wingo <wingo@pobox.com>
Date: Wed Feb 15 21:41:24 2017 +0100
Update Gnulib to v0.1-1157-gb03f418.
commit a91b95cca2d397c84f8b9bbd602d40209a7092ce
Author: Andy Wingo <wingo@pobox.com>
Date: Wed Jan 20 21:52:54 2021 +0100
Update Gnulib to v0.1-4379-g2ef5a9b4b
Also bump required autoconf version to 2.64, as required by Gnulib.
--- a/m4/link.m4
+++ b/m4/link.m4
@@ -22,6 +22,7 @@ AC_DEFUN([gl_FUNC_LINK],
AC_RUN_IFELSE(
[AC_LANG_PROGRAM(
[[#include <unistd.h>
+ #include <stdio.h>
]],
[[int result = 0;
if (!link ("conftest.a", "conftest.b/"))
--- a/m4/round.m4
+++ b/m4/round.m4
@@ -57,7 +57,7 @@ int main()
* (double) (1U << ((DBL_MANT_DIG + 3) / 5))
* (double) (1U << ((DBL_MANT_DIG + 4) / 5));
volatile double x = 0.5 - 0.5 / TWO_MANT_DIG;
- exit (x < 0.5 && round (x) != 0.0);
+ return x < 0.5 && round (x) != 0.0;
}]])], [gl_cv_func_round_works=yes], [gl_cv_func_round_works=no],
[case "$host_os" in
netbsd* | aix*) gl_cv_func_round_works="guessing no";;
Avoid implicit ints in the guile_cv_localtime_cache check. It cause
the check to always fail with strict(er) C99 compilers that do not
support implicit int.
Submitted upstream:
<https://lists.gnu.org/archive/html/bug-guile/2022-12/msg00017.html>
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60022>
--- a/configure.ac
+++ b/configure.ac
@@ -1086,7 +1086,7 @@ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
# include <stdlib.h>
#endif
extern char **environ;
-unset_TZ ()
+int unset_TZ ()
{
char **from, **to;
for (to = from = environ; (*to = *from); from++)
@@ -1095,7 +1095,7 @@ unset_TZ ()
}
char TZ_GMT0[] = "TZ=GMT0";
char TZ_PST8[] = "TZ=PST8";
-main()
+int main()
{
time_t now = time ((time_t *) 0);
int hour_GMT0, hour_unset;

View File

@@ -1,4 +1,4 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -33,18 +33,19 @@ DEPEND="${RDEPEND}
SLOT="12/22" # subslot is soname version
MAJOR="2.0"
# guile generates ELF files without use of C or machine code
# It's a false positive. bug #677600
QA_PREBUILT='*[.]go'
DOCS=( GUILE-VERSION HACKING README )
PATCHES=(
"${FILESDIR}/${PN}-2-snarf.patch"
"${FILESDIR}/${P}-darwin.patch"
"${FILESDIR}/${P}-ia64-fix-crash-thread-context-switch.patch"
"${FILESDIR}/${P}-configure-clang16.patch"
)
# guile generates ELF files without use of C or machine code
# It's a portage's false positive. bug #677600
QA_PREBUILT='*[.]go'
DOCS=( GUILE-VERSION HACKING README )
src_prepare() {
default
eautoreconf