summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-11-18 01:14:30 +0000
committerSam James <sam@gentoo.org>2022-11-18 01:14:30 +0000
commit3c2b1c4ef1121bc8fa1a3b18ad3bbb0a22d5e0c1 (patch)
tree461c0b3fd796c3181cc09fb4e5c82c253a5b3b98 /dev-tcltk/tclx
parentdev-tcltk/tclx: add github upstream metadata (diff)
downloadgentoo-3c2b1c4ef1121bc8fa1a3b18ad3bbb0a22d5e0c1.tar.gz
gentoo-3c2b1c4ef1121bc8fa1a3b18ad3bbb0a22d5e0c1.tar.bz2
gentoo-3c2b1c4ef1121bc8fa1a3b18ad3bbb0a22d5e0c1.zip
dev-tcltk/tclx: fix configure w/ clang 16
Bug: https://bugs.gentoo.org/881713 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-tcltk/tclx')
-rw-r--r--dev-tcltk/tclx/files/tclx-8.4.4-configure-clang16-deux.patch82
-rw-r--r--dev-tcltk/tclx/files/tclx-8.4.4-configure-clang16.patch32
-rw-r--r--dev-tcltk/tclx/tclx-8.4.4-r1.ebuild (renamed from dev-tcltk/tclx/tclx-8.4.4.ebuild)4
3 files changed, 117 insertions, 1 deletions
diff --git a/dev-tcltk/tclx/files/tclx-8.4.4-configure-clang16-deux.patch b/dev-tcltk/tclx/files/tclx-8.4.4-configure-clang16-deux.patch
new file mode 100644
index 000000000000..da4d5c399aee
--- /dev/null
+++ b/dev-tcltk/tclx/files/tclx-8.4.4-configure-clang16-deux.patch
@@ -0,0 +1,82 @@
+https://github.com/flightaware/tclx/pull/15
+
+From a65705e6cba4fe395afbdc8c903b8b819d7e6962 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 18 Nov 2022 01:12:17 +0000
+Subject: [PATCH] Fix configure.ac compatibility with Clang 16
+
+Clang 16 makes -Wimplicit-function-declaration and -Wimplicit-int errors by default.
+
+Unfortunately, this can lead to misconfiguration or miscompilation of software as configure
+tests may then return the wrong result.
+
+We also fix -Wstrict-prototypes while here as it's easy to do and it prepares
+us for C23.
+
+For more information, see LWN.net [0] or LLVM's Discourse [1], the Gentoo wiki [2],
+or the (new) c-std-porting mailing list [3].
+
+[0] https://lwn.net/Articles/913505/
+[1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213
+[2] https://wiki.gentoo.org/wiki/Modern_C_porting
+[3] hosted at lists.linux.dev.
+
+Bug: https://bugs.gentoo.org/881713
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/configure.in
++++ b/configure.in
+@@ -193,10 +193,11 @@ WIFEXITED(x); /* Generates compiler error if WIFEXITED uses an int. */
+
+ AC_MSG_CHECKING(checking to see what 'times' returns)
+ AC_TRY_RUN([
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/times.h>
+ #include <unistd.h>
+-main() {
++int main(void) {
+ struct tms cpu;
+ times(&cpu);
+ sleep(2);
+@@ -269,7 +270,8 @@ main() {
+
+ AC_CHECK_FUNC(catgets,
+ [AC_MSG_CHECKING([catclose return value])
+- AC_TRY_COMPILE([#include <nl_types.h>], [
++ AC_TRY_COMPILE([#include <stdlib.h>
++ #include <nl_types.h>], [
+ if (catclose ((nl_catd) 0) == 0) exit (0);],
+ AC_MSG_RESULT(ok), [
+ AC_MSG_RESULT([broken catclose return type])
+--- a/tclconfig/tcl.m4
++++ b/tclconfig/tcl.m4
+@@ -2525,7 +2525,8 @@ AC_DEFUN([TEA_TIME_HANDLER], [
+ # (like convex) have timezone functions, etc.
+ #
+ AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [
+- AC_TRY_COMPILE([#include <time.h>],
++ AC_TRY_COMPILE([#include <stdlib.h>
++ #include <time.h>],
+ [extern long timezone;
+ timezone += 1;
+ exit (0);],
+@@ -2537,7 +2538,8 @@ AC_DEFUN([TEA_TIME_HANDLER], [
+ # On some systems (eg IRIX 6.2), timezone is a time_t and not a long.
+ #
+ AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [
+- AC_TRY_COMPILE([#include <time.h>],
++ AC_TRY_COMPILE([#include <stdlib.h>
++ #include <time.h>],
+ [extern time_t timezone;
+ timezone += 1;
+ exit (0);],
+@@ -2574,7 +2576,7 @@ AC_DEFUN([TEA_BUGGY_STRTOD], [
+ AC_TRY_RUN([
+ #include <stdlib.h>
+ extern double strtod();
+- int main() {
++ int main(void) {
+ char *infString="Inf", *nanString="NaN", *spaceString=" ";
+ char *term;
+ double value;
+
diff --git a/dev-tcltk/tclx/files/tclx-8.4.4-configure-clang16.patch b/dev-tcltk/tclx/files/tclx-8.4.4-configure-clang16.patch
new file mode 100644
index 000000000000..89f90363246a
--- /dev/null
+++ b/dev-tcltk/tclx/files/tclx-8.4.4-configure-clang16.patch
@@ -0,0 +1,32 @@
+https://github.com/flightaware/tclx/commit/dfd54117ca500c9422ff2e11940219d19cedb906
+https://bugs.gentoo.org/881713
+
+From dfd54117ca500c9422ff2e11940219d19cedb906 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date: Tue, 23 Jun 2020 22:44:30 -0700
+Subject: [PATCH] Add missing #includes during configure tests
+
+These lead to failures when configuring on macOS on Apple Silicon
+
+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+--- a/configure.in
++++ b/configure.in
+@@ -195,6 +195,7 @@ WIFEXITED(x); /* Generates compiler error if WIFEXITED uses an int. */
+ AC_TRY_RUN([
+ #include <sys/types.h>
+ #include <sys/times.h>
++#include <unistd.h>
+ main() {
+ struct tms cpu;
+ times(&cpu);
+--- a/tclconfig/tcl.m4
++++ b/tclconfig/tcl.m4
+@@ -2572,6 +2572,7 @@ AC_DEFUN([TEA_BUGGY_STRTOD], [
+ if test "$tcl_strtod" = 1; then
+ AC_CACHE_CHECK([for Solaris2.4/Tru64 strtod bugs], tcl_cv_strtod_buggy,[
+ AC_TRY_RUN([
++ #include <stdlib.h>
+ extern double strtod();
+ int main() {
+ char *infString="Inf", *nanString="NaN", *spaceString=" ";
+
diff --git a/dev-tcltk/tclx/tclx-8.4.4.ebuild b/dev-tcltk/tclx/tclx-8.4.4-r1.ebuild
index b0be6efad919..34d1fe02ea60 100644
--- a/dev-tcltk/tclx/tclx-8.4.4.ebuild
+++ b/dev-tcltk/tclx/tclx-8.4.4-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -22,6 +22,8 @@ RESTRICT="test"
PATCHES=(
"${FILESDIR}"/${PN}-8.4-varinit.patch
"${FILESDIR}"/${PN}-8.4-ldflags.patch
+ "${FILESDIR}"/${P}-configure-clang16.patch
+ "${FILESDIR}"/${P}-configure-clang16-deux.patch
)
src_prepare() {