From a49c47fa192385783704d2c93a0070ef746a0cb8 Mon Sep 17 00:00:00 2001 From: Thomas Perale Date: Sun, 8 Jun 2025 12:14:22 +0200 Subject: [PATCH] package/ghostscript: fix build with host GCC 15 Fix the following autobuild error on configs with host GCC15. ``` /workdir/instance-0/output-1/host/bin/ccache /usr/bin/gcc -O2 -DNDEBUG -Wall -Wstrict-prototypes -Wundef -Wmissing-declarations -Wmissing-prototypes -Wwrite-strings -fno-strict-aliasing -Werror=declaration-after-statement -fno-builtin -fno-common -Werror=return-type -Wno-unused-local-typedefs -DHAVE_STDINT_H=1 -DHAVE_DIRENT_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIBDL=1 -DGX_COLOR_INDEX_TYPE="unsigned long long" -D__USE_UNIX98=1 -DHAVE_SNPRINTF -O2 -I/workdir/instance-0/output-1/host/include -L/workdir/instance-0/output-1/host/lib -Wl,-rpath,/workdir/instance-0/output-1/host/lib -DNOCONTRIB -DHAVE_RESTRICT=1 -DHAVE_LIMITS_H=1 -DHAVE_STRING_H=1 -fno-strict-aliasing -O2 -I/workdir/instance-0/output-1/host/include -L/workdir/instance-0/output-1/host/lib -Wl,-rpath,/workdir/instance-0/output-1/host/lib -DHAVE_POPEN_PROTO=1 -I./base -o ./obj/aux/genconf ./base/genconf.c -lz In file included from ./base/genconf.c:18: ./base/stdpre.h:348:13: error: 'bool' cannot be defined via 'typedef' 348 | typedef int bool; | ^~~~ ./base/stdpre.h:348:13: note: 'bool' is a keyword with '-std=c23' onwards ./base/stdpre.h:348:1: warning: useless type name in empty declaration 348 | typedef int bool; | ^~~~~~~ ``` This is due to the change in the default C language version in GCC15. The patch included is not exactly the same as the upstream one, it only picks the part that fix the `bool` definition and dropped the declaration type changes. Fixes: https://autobuild.buildroot.org/results/9c6/9c6cbff256635c6ab4be4c5b7bf18f9d3c4b46681 Signed-off-by: Thomas Perale Signed-off-by: Julien Olivain (cherry picked from commit fa45c47fcb022445114fe4ff70018e634076d109) Signed-off-by: Thomas Perale --- ...Fix-compatibility-with-C23-compilers.patch | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 package/ghostscript/0001-Fix-compatibility-with-C23-compilers.patch diff --git a/package/ghostscript/0001-Fix-compatibility-with-C23-compilers.patch b/package/ghostscript/0001-Fix-compatibility-with-C23-compilers.patch new file mode 100644 index 0000000000..0dfca9cfa2 --- /dev/null +++ b/package/ghostscript/0001-Fix-compatibility-with-C23-compilers.patch @@ -0,0 +1,36 @@ +From ae940946473ceb8c5353bc6e7f04673c6e60502d Mon Sep 17 00:00:00 2001 +From: Alex Cherepanov +Date: Thu, 3 Apr 2025 17:19:41 +0100 +Subject: Bug 708160: Fix compatibility with C23 compilers + +Upstream: https://cgit.ghostscript.com/cgi-bin/cgit.cgi/ghostpdl.git/commit/?id=ae940946473ceb8c5353bc6e7f04673c6e60502d +[thomas: Only backport the bool typedef condition] +Signed-off-by: Thomas Perale +--- + base/stdpre.h | 6 ++++-- + 1 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/base/stdpre.h b/base/stdpre.h +index dda30b6a4..2f9c84e0d 100644 +--- a/base/stdpre.h ++++ b/base/stdpre.h +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2001-2023 Artifex Software, Inc. ++/* Copyright (C) 2001-2025 Artifex Software, Inc. + All Rights Reserved. + + This software is provided AS-IS with no warranty, either express or +@@ -341,7 +341,9 @@ typedef signed char schar; + * and the MetroWerks C++ compiler insists that bool be equivalent to + * unsigned char. + */ +-#ifndef __cplusplus ++ ++/* C23 has bool as a builtin type. */ ++#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L) + #ifdef __BEOS__ + typedef unsigned char bool; + #else +-- +cgit v1.2.3 +