Skip to content

Commit

Permalink
zip: include patch to fix build with GCC 14
Browse files Browse the repository at this point in the history
Co-authored-by: Emily <[email protected]>
  • Loading branch information
FliegendeWurst and emilazy committed Nov 26, 2024
1 parent f126749 commit 584da3b
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 19 deletions.
56 changes: 56 additions & 0 deletions pkgs/by-name/zi/zip/12-fix-build-with-gcc-14.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
From: Santiago Vila <[email protected]>
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
15 changes: 0 additions & 15 deletions pkgs/by-name/zi/zip/fix-memset-detection.patch

This file was deleted.

12 changes: 8 additions & 4 deletions pkgs/by-name/zi/zip/package.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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=";
Expand Down

0 comments on commit 584da3b

Please sign in to comment.