[11/19] berkeley: Fix build with GCC 14

Message ID 20240819100608.991138-12-michael.tremer@ipfire.org
State Staged
Commit 8972cf22a07ee9d52f1a4c68acd17b29c841c8b7
Headers
Series [01/19] expect: Fix build with GCC 14.2 |

Commit Message

Michael Tremer Aug. 19, 2024, 10:06 a.m. UTC
  Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
---
 lfs/berkeley                                  |   3 +
 .../db-5.2.28-sqlite-configure-path.patch     |  11 +
 src/patches/db-5.3.28-clang16.patch           | 325 ++++++++++++++++++
 3 files changed, 339 insertions(+)
 create mode 100644 src/patches/db-5.2.28-sqlite-configure-path.patch
 create mode 100644 src/patches/db-5.3.28-clang16.patch
  

Patch

diff --git a/lfs/berkeley b/lfs/berkeley
index 0ef917015..264097c59 100644
--- a/lfs/berkeley
+++ b/lfs/berkeley
@@ -71,6 +71,9 @@  $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
 	$(UPDATE_AUTOMAKE)
+	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/db-5.3.28-clang16.patch
+	cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/db-5.2.28-sqlite-configure-path.patch
+	cd $(DIR_APP)/dist && ./s_config
 	cd $(DIR_APP) && sed -i "s/\(__atomic_compare_exchange\)/\1_db/" src/dbinc/atomic.h
 	cd $(DIR_APP)/build_unix && ../dist/configure \
 		--prefix=/usr \
diff --git a/src/patches/db-5.2.28-sqlite-configure-path.patch b/src/patches/db-5.2.28-sqlite-configure-path.patch
new file mode 100644
index 000000000..cfbe2a7ff
--- /dev/null
+++ b/src/patches/db-5.2.28-sqlite-configure-path.patch
@@ -0,0 +1,11 @@ 
+--- a/dist/aclocal/sql.m4
++++ b/dist/aclocal/sql.m4
+@@ -91,7 +91,7 @@
+ # !!! END COPIED from autoconf distribution
+ 
+ sqlite_dir=$srcdir/../lang/sql/sqlite
+-(cd sql && eval "\$SHELL ../$sqlite_dir/configure --disable-option-checking $ac_sub_configure_args CPPFLAGS=\"-I.. $CPPFLAGS\" --enable-amalgamation=$db_cv_sql_amalgamation --enable-readline=$with_readline" && cat build_config.h >> config.h) || exit 1
++(cd sql && eval "\$SHELL $sqlite_dir/configure --disable-option-checking $ac_sub_configure_args CPPFLAGS=\"-I.. $CPPFLAGS\" --enable-amalgamation=$db_cv_sql_amalgamation --enable-readline=$with_readline" && cat build_config.h >> config.h) || exit 1
+ 
+ # Configure JDBC if --enable-jdbc
+ if test "$db_cv_jdbc" != "no"; then
diff --git a/src/patches/db-5.3.28-clang16.patch b/src/patches/db-5.3.28-clang16.patch
new file mode 100644
index 000000000..aab73d87a
--- /dev/null
+++ b/src/patches/db-5.3.28-clang16.patch
@@ -0,0 +1,325 @@ 
+https://bugs.gentoo.org/883413
+--- a/dist/aclocal/clock.m4
++++ b/dist/aclocal/clock.m4
+@@ -20,12 +20,14 @@ esac
+ #	existence to mean the clock really exists.
+ AC_CACHE_CHECK([for clock_gettime monotonic clock], db_cv_clock_monotonic, [
+ AC_TRY_RUN([
++#include <time.h>
+ #include <sys/time.h>
+-main() {
++int main(void) {
+ 	struct timespec t;
+ 	return (clock_gettime(CLOCK_MONOTONIC, &t) != 0);
+ }], db_cv_clock_monotonic=yes, db_cv_clock_monotonic=no,
+ AC_TRY_LINK([
++#include <time.h>
+ #include <sys/time.h>], [
+ struct timespec t;
+ clock_gettime(CLOCK_MONOTONIC, &t);
+--- a/dist/aclocal/mmap.m4
++++ b/dist/aclocal/mmap.m4
+@@ -29,6 +29,7 @@ if test "$mmap_ok" = "yes" ; then
+      * system to system.
+      */
+     #include <stdio.h>
++    #include <stdlib.h>
+     #include <string.h>
+     #include <sys/types.h>
+     #include <sys/stat.h>
+@@ -42,13 +43,12 @@ if test "$mmap_ok" = "yes" ; then
+     #define MAP_FAILED (-1)
+     #endif
+ 
+-    int catch_sig(sig)
+-	    int sig;
++    void catch_sig(int sig)
+     {
+ 	    exit(1);
+     }
+ 
+-    main() {
++    int main(void) {
+ 	    const char *underlying;
+ 	    unsigned gapsize;
+ 	    char *base;
+--- a/dist/aclocal/mutex.m4
++++ b/dist/aclocal/mutex.m4
+@@ -5,7 +5,7 @@ AC_DEFUN(AM_PTHREADS_SHARED, [
+ AC_TRY_RUN([
+ #include <stdlib.h>
+ #include <pthread.h>
+-main() {
++int main(void) {
+ 	pthread_cond_t cond;
+ 	pthread_mutex_t mutex;
+ 	pthread_condattr_t condattr;
+@@ -49,7 +49,7 @@ AC_DEFUN(AM_PTHREADS_PRIVATE, [
+ AC_TRY_RUN([
+ #include <stdlib.h>
+ #include <pthread.h>
+-main() {
++int main(void) {
+ 	pthread_cond_t cond;
+ 	pthread_mutex_t mutex;
+ 	pthread_condattr_t condattr;
+@@ -89,7 +89,7 @@ AC_DEFUN(AM_PTHREADS_CONDVAR_DUPINITCHK, [
+ AC_TRY_RUN([
+ #include <stdlib.h>
+ #include <pthread.h>
+-main() {
++int main(void) {
+ 	pthread_cond_t cond;
+ 	pthread_condattr_t condattr;
+ 	exit(pthread_condattr_init(&condattr) ||
+@@ -110,7 +110,7 @@ AC_DEFUN(AM_PTHREADS_RWLOCKVAR_DUPINITCHK, [
+ AC_TRY_RUN([
+ #include <stdlib.h>
+ #include <pthread.h>
+-main() {
++int main(void) {
+ 	pthread_rwlock_t rwlock;
+ 	pthread_rwlockattr_t rwlockattr;
+ 	exit(pthread_rwlockattr_init(&rwlockattr) ||
+@@ -227,6 +227,7 @@ if test "$db_cv_mutex" = no; then
+ 	# LWP threads: _lwp_XXX
+ 	if test "$db_cv_mutex" = no; then
+ 	AC_TRY_LINK([
++	#include <stdlib.h>
+ 	#include <synch.h>],[
+ 		static lwp_mutex_t mi = SHAREDMUTEX;
+ 		static lwp_cond_t ci = SHAREDCV;
+@@ -243,6 +244,7 @@ if test "$db_cv_mutex" = no; then
+ 	LIBS="$LIBS -lthread"
+ 	AC_TRY_LINK([
+ 	#include <thread.h>
++	#include <stdlib.h>
+ 	#include <synch.h>],[
+ 		mutex_t mutex;
+ 		cond_t cond;
+@@ -258,6 +260,7 @@ if test "$db_cv_mutex" = no; then
+ 	if test "$db_cv_mutex" = no -o "$db_cv_mutex" = ui_only; then
+ 	AC_TRY_LINK([
+ 	#include <thread.h>
++	#include <stdlib.h>
+ 	#include <synch.h>],[
+ 		mutex_t mutex;
+ 		cond_t cond;
+@@ -282,7 +285,7 @@ if test "$db_cv_mutex" = no; then
+ 	# x86/gcc: FreeBSD, NetBSD, BSD/OS, Linux
+ 	AC_TRY_COMPILE(,[
+ 	#if (defined(i386) || defined(__i386__)) && defined(__GNUC__)
+-		exit(0);
++		return 0;
+ 	#else
+ 		FAIL TO COMPILE/LINK
+ 	#endif
+@@ -291,7 +294,7 @@ if test "$db_cv_mutex" = no; then
+ 	# x86_64/gcc: FreeBSD, NetBSD, BSD/OS, Linux
+ 	AC_TRY_COMPILE(,[
+ 	#if (defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__)
+-		exit(0);
++		return 0;
+ 	#else
+ 		FAIL TO COMPILE/LINK
+ 	#endif
+@@ -314,7 +317,7 @@ if test "$db_cv_mutex" = no; then
+ 	AC_TRY_COMPILE(,[
+ 	#if defined(__sparc__) && defined(__GNUC__)
+ 		asm volatile ("membar #StoreStore|#StoreLoad|#LoadStore");
+-		exit(0);
++		return 0;
+ 	#else
+ 		FAIL TO COMPILE/LINK
+ 	#endif
+@@ -356,7 +359,7 @@ AC_TRY_LINK([
+ 	msem_init(&x, 0);
+ 	msem_lock(&x, 0);
+ 	msem_unlock(&x, 0);
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -373,7 +376,7 @@ AC_TRY_LINK([
+ 	msem_init(&x, 0);
+ 	msem_lock(&x, 0);
+ 	msem_unlock(&x, 0);
+-	exit(0);
++	return 0;
+ ], [db_cv_mutex=UNIX/msem_init])
+ fi
+ 
+@@ -395,7 +398,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__USLC__)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -452,7 +455,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__alpha) && defined(__DECC)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -463,7 +466,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__alpha) && defined(__GNUC__)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -474,7 +477,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__arm__) && defined(__GNUC__)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -485,7 +488,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if (defined(__mips) || defined(__mips__)) && defined(__GNUC__)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -496,7 +499,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if (defined(__hppa) || defined(__hppa__)) && defined(__GNUC__)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -507,7 +510,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if (defined(__powerpc__) || defined(__ppc__)) && defined(__GNUC__)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -518,7 +521,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if (defined(mc68020) || defined(sun3)) && defined(__GNUC__)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -529,7 +532,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__MVS__) && defined(__IBMC__)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -540,7 +543,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__s390__) && defined(__GNUC__)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -551,7 +554,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(__ia64) && defined(__GNUC__)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -562,7 +565,7 @@ fi
+ if test "$db_cv_mutex" = no; then
+ AC_TRY_COMPILE(,[
+ #if defined(_UTS)
+-	exit(0);
++	return 0;
+ #else
+ 	FAIL TO COMPILE/LINK
+ #endif
+@@ -910,9 +913,9 @@ fi
+ if test "$db_cv_atomic" = no; then
+ 	AC_TRY_COMPILE(,[
+ 	#if ((defined(i386) || defined(__i386__)) && defined(__GNUC__))
+-		exit(0);
++		return 0;
+ 	#elif ((defined(x86_64) || defined(__x86_64__)) && defined(__GNUC__))
+-		exit(0);
++		return 0;
+ 	#else
+ 		FAIL TO COMPILE/LINK
+ 	#endif
+@@ -921,6 +924,7 @@ fi
+ 
+ if test "$db_cv_atomic" = no; then
+ AC_TRY_LINK([
++#include <stdlib.h>
+ #include <sys/atomic.h>],[
+ 	volatile unsigned val = 1;
+ 	exit (atomic_inc_uint_nv(&val) != 2 ||
+--- a/dist/aclocal/sequence.m4
++++ b/dist/aclocal/sequence.m4
+@@ -43,7 +43,9 @@ AC_DEFUN(AM_SEQUENCE_CONFIGURE, [
+ 	# test, which won't test for the appropriate printf format strings.
+ 	if test "$db_cv_build_sequence" = "yes"; then
+ 		AC_TRY_RUN([
+-		main() {
++		#include <stdio.h>
++		#include <string.h>
++		int main(void) {
+ 			$db_cv_seq_type l;
+ 			unsigned $db_cv_seq_type u;
+ 			char buf@<:@100@:>@;
+@@ -59,7 +61,10 @@ AC_DEFUN(AM_SEQUENCE_CONFIGURE, [
+ 				return (1);
+ 			return (0);
+ 		}],, [db_cv_build_sequence="no"],
+-		AC_TRY_LINK(,[
++		AC_TRY_LINK([
++		#include <stdio.h>
++		#include <string.h>
++		],[
+ 			$db_cv_seq_type l;
+ 			unsigned $db_cv_seq_type u;
+ 			char buf@<:@100@:>@;
+--- a/dist/aclocal/types.m4
++++ b/dist/aclocal/types.m4
+@@ -69,7 +69,7 @@ AC_SUBST(stdint_h_decl)
+ AC_MSG_CHECKING(for stdint.h)
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #include <stdint.h>
+-  int main() {
++  int main(void) {
+   uint_least8_t x=0;
+   return x;
+   }])],[AC_MSG_RESULT(yes)
+@@ -77,7 +77,7 @@ if test "$db_cv_cxx" = "yes"; then
+   AC_MSG_CHECKING([if stdint.h can be used by C++])
+   AC_LANG_PUSH(C++)
+   AC_COMPILE_IFELSE([AC_LANG_SOURCE([#include <stdint.h>
+-    int main() {
++    int main(void) {
+     uint_least8_t x=0;
+     return x;
+   }])],[AC_MSG_RESULT(yes)