zip: include patch to fix build with GCC 14

Co-authored-by: Emily <hello@emily.moe>
This commit is contained in:
FliegendeWurst
2024-11-26 18:20:59 +01:00
co-authored by Emily
parent f126749a88
commit 584da3b7ce
3 changed files with 64 additions and 19 deletions
@@ -0,0 +1,56 @@
From: Santiago Vila <sanvila@debian.org>
Subject: Fix build with gcc-14
Bug-Debian: https://bugs.debian.org/1075706
X-Debian-version: 3.0-14
--- a/unix/configure
+++ b/unix/configure
@@ -514,14 +514,16 @@
echo Check for $func
echo "int main(){ $func(); return 0; }" > conftest.c
$CC $BFLAG -o conftest conftest.c >/dev/null 2>/dev/null
- [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_`echo $func | tr '[a-z]' '[A-Z]'`"
+# glibc-based systems do not need this
+# [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_`echo $func | tr '[a-z]' '[A-Z]'`"
done
echo Check for memset
echo "int main(){ char k; memset(&k,0,0); return 0; }" > conftest.c
$CC -o conftest conftest.c >/dev/null 2>/dev/null
-[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DZMEM"
+# glibc-based systems do not need this
+# [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DZMEM"
echo Check for memmove
@@ -551,7 +553,8 @@
}
_EOF_
$CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
-[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_ERRNO"
+# glibc-based systems do not need this
+# [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_ERRNO"
echo Check for directory libraries
@@ -567,7 +570,8 @@
$CC -o conftest conftest.c -l$lib >/dev/null 2>/dev/null
[ $? -eq 0 ] && OPT=-l$lib && break
done
- if [ ${OPT} ]; then
+ # glibc-based systems do not need this
+ if true; then
LFLAGS2="${LFLAGS2} ${OPT}"
else
CFLAGS="${CFLAGS} -DNO_DIR"
@@ -629,7 +633,8 @@
}
_EOF_
$CC ${CFLAGS} -c conftest.c > /dev/null 2>/dev/null
-[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_VALLOC"
+# glibc-based systems do not need this
+# [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_VALLOC"
echo Check for /usr/local/bin and /usr/local/man
@@ -1,15 +0,0 @@
diff -ur a/unix/configure b/unix/configure
--- a/unix/configure 2008-06-19 21:32:20.000000000 -0600
+++ b/unix/configure 2023-07-11 10:02:57.809867694 -0600
@@ -519,7 +519,10 @@
echo Check for memset
-echo "int main(){ char k; memset(&k,0,0); return 0; }" > conftest.c
+cat > conftest.c << _EOF_
+#include <string.h>
+int main(){ char k; memset(&k,0,0); return 0; }
+_EOF_
$CC -o conftest conftest.c >/dev/null 2>/dev/null
[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DZMEM"
+8 -4
View File
@@ -27,14 +27,18 @@ stdenv.mkDerivation rec {
];
patches = [
# Trying to use `memset` without declaring it is flagged as an error with clang 16, causing
# the `configure` script to incorrectly define `ZMEM`. That causes the build to fail due to
# incompatible redeclarations of `memset`, `memcpy`, and `memcmp` in `zip.h`.
./fix-memset-detection.patch
# Implicit declaration of `closedir` and `opendir` cause dirent detection to fail with clang 16.
./fix-implicit-declarations.patch
# Fixes forward declaration errors with timezone.c
./fix-time.h-not-included.patch
# Without this patch, we get a runtime failures with GCC 14 when building OpenJDK 8:
#
# zip I/O error: No such file or directory
# zip error: Could not create output file (was replacing the original zip file)
# make[2]: *** [CreateJars.gmk:659: /build/source/build/linux-x86_64-normal-server-release/images/src.zip] Error 1
#
# Source: Debian
./12-fix-build-with-gcc-14.patch
(fetchpatch {
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-arch/zip/files/zip-3.0-pic.patch?id=d37d095fc7a2a9e4a8e904a7bf0f597fe99df85a";
hash = "sha256-OXgC9KqiOpH/o/bSabt3LqtoT/xifqfkvpLLPfPz+1c=";