zip: include patch to fix build with GCC 14
Co-authored-by: Emily <hello@emily.moe>
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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=";
|
||||
|
||||
Reference in New Issue
Block a user