fvwm: Fix build with gcc-14

Fixes for C99 compatibility

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj
2024-05-09 17:21:26 -07:00
parent 88cc44c359
commit 587edc5e8d
4 changed files with 115 additions and 0 deletions
@@ -0,0 +1,45 @@
From cbba378a23410241176d62f3bb43965c044615e3 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Thu, 24 Nov 2022 13:06:50 +0100
Subject: [PATCH 1/3] configure: Do not require support for implicit ints
Implicit ints have not been part of C since 1999, and future
compilers will disable support for them by default. Fortunatenly,
only one configure check needs adjusting.
Upstream-Status: Submitted [https://github.com/fvwmorg/fvwm/pull/100]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
acinclude.m4 | 2 +-
configure.ac | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/acinclude.m4 b/acinclude.m4
index 8b74ff1e..b66042f9 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -30,7 +30,7 @@ if test "$ac_cv_func_select" = yes; then
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif],
-[extern select ($ac_cv_type_fd_set_size_t,
+[extern int select ($ac_cv_type_fd_set_size_t,
$ac_cv_type_fd_set *, $ac_cv_type_fd_set *, $ac_cv_type_fd_set *,
$ac_type_timeval *);],
[ac_found=yes ; break 3],ac_found=no)
diff --git a/configure.ac b/configure.ac
index 97ab9e7a..c9fcede6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -220,7 +220,7 @@ AC_MINIX
# catch -Werror and similar options when running configure
AC_TRY_COMPILE([#include <stdio.h>],
-[int i; static j; int *p; char *c;
+[int i; int *p; char *c;
switch (*p = p = *c) { case 0: printf("%Q", c, p); }
*c = &i; c = p;
while (1 || (unsigned int)3 >= 0 || ((int)-1) == ((unsigned int)1));
--
2.45.0
@@ -0,0 +1,32 @@
From 51287fb60263530f61b14df5519e10dabe67d2ad Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Thu, 24 Nov 2022 13:07:56 +0100
Subject: [PATCH 2/3] acinclude.m4: Add missing <unistd.h> to
AM_SAFETY_CHECK_MKSTEMP
Otherwise, the check fails on a compiler which does not support
implicit function declarations (a language feature removed in 1999).
Upstream-Status: Submitted [https://github.com/fvwmorg/fvwm/pull/100]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
acinclude.m4 | 3 +++
1 file changed, 3 insertions(+)
diff --git a/acinclude.m4 b/acinclude.m4
index b66042f9..4dee2abe 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1154,6 +1154,9 @@ AC_DEFUN([AM_SAFETY_CHECK_MKSTEMP],[
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
int main(void)
{
char template[128];
--
2.45.0
@@ -0,0 +1,35 @@
From 542c6f25327587d5a6bffb8a45b457ec85dcf8e1 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Tue, 19 Dec 2023 13:24:50 +0100
Subject: [PATCH 3/3] configure: Further defang the -Werror check
Incompatible pointer types are actually errors (in the sense
that they are invalid C). Compilers have merely tolerated them as
warnings for backwards compatibility. This is changing with Clang 16
and GCC 14, so relax the check a little.
Upstream-Status: Submitted [https://github.com/fvwmorg/fvwm/pull/100]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index c9fcede6..2e9615b2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -220,9 +220,8 @@ AC_MINIX
# catch -Werror and similar options when running configure
AC_TRY_COMPILE([#include <stdio.h>],
-[int i; int *p; char *c;
- switch (*p = p = *c) { case 0: printf("%Q", c, p); }
- *c = &i; c = p;
+[int unused; int *p; char *c;
+ printf("%Q", c, p);
while (1 || (unsigned int)3 >= 0 || ((int)-1) == ((unsigned int)1));
], , AC_MSG_ERROR("
configure is not able to compile programs with warnings. Please
--
2.45.0
@@ -34,6 +34,9 @@ DEPENDS = " \
SRC_URI = " \
git://github.com/fvwmorg/fvwm.git;protocol=https;branch=master \
file://0001-Fix-compilation-for-disabled-gnome.patch \
file://0001-configure-Do-not-require-support-for-implicit-ints.patch \
file://0002-acinclude.m4-Add-missing-unistd.h-to-AM_SAFETY_CHECK.patch \
file://0003-configure-Further-defang-the-Werror-check.patch \
"
SRCREV = "7baf540e56fb1a3e91752acba872a88543529d46"