mirror of
https://git.yoctoproject.org/poky
synced 2026-04-20 00:32:13 +02:00
zip: Fix build with gcc-14
zip's configure fails to link this piece of test code:
int main() { return closedir(opendir(".")); }
with GCC-14 because it now treats implicit declaration of function
as error, unline older GCC version where it was just a warning
and this test would build fine.
Remove 0002-unix.c-Do-not-redefine-DIR-as-FILE.patch which
is now unnecessary (MJ: this part wasn't applicable for kirkstone).
(From OE-Core rev: fd31dd1abc8199a1865801259e6f96b78a17d994)
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3422411eb750c7e960b81676637cfb321dbadefb)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
From 9db2f8cdbbc0dfb359d3b4e5dfe48c18652ce531 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 8 May 2024 19:02:46 -0700
|
||||
Subject: [PATCH] configure: Include dirent.h for closedir/opendir APIs
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
GCC-14 is strict about function prototypes and since the
|
||||
testcase tries to compile/link opendir/closedir functions
|
||||
without including signatures, it fails to build the test
|
||||
due to missing signatures which come from dirent.h
|
||||
|
||||
Therefore include the needed system header and make it more
|
||||
robust.
|
||||
|
||||
Fixes
|
||||
a.c:2:21: error: implicit declaration of function ‘closedir’ [-Wimplicit-function-declaration]
|
||||
2 | int main() { return closedir(opendir(".")); }
|
||||
| ^~~~~~~~
|
||||
a.c:2:30: error: implicit declaration of function ‘opendir’ [-Wimplicit-function-declaration]
|
||||
2 | int main() { return closedir(opendir(".")); }
|
||||
| ^~~~~~~
|
||||
|
||||
Upstream-Status: Inactive-Upstream
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
unix/configure | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/unix/configure b/unix/configure
|
||||
index f917086..1dd98c6 100644
|
||||
--- a/unix/configure
|
||||
+++ b/unix/configure
|
||||
@@ -591,6 +591,7 @@ $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
|
||||
|
||||
echo Check for directory libraries
|
||||
cat > conftest.c << _EOF_
|
||||
+#include <dirent.h>
|
||||
int main() { return closedir(opendir(".")); }
|
||||
_EOF_
|
||||
|
||||
--
|
||||
2.45.0
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
From 76f5bf3546d826dcbc03acbefcf0b10b972bf136 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 10 Aug 2022 17:19:38 -0700
|
||||
Subject: [PATCH 2/2] unix.c: Do not redefine DIR as FILE
|
||||
|
||||
DIR is already provided on Linux via
|
||||
/usr/include/dirent.h system header
|
||||
|
||||
Upstream-Status: Inactive-Upstream
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
unix/unix.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/unix/unix.c b/unix/unix.c
|
||||
index ba87614..6e6f4d2 100644
|
||||
--- a/unix/unix.c
|
||||
+++ b/unix/unix.c
|
||||
@@ -61,13 +61,11 @@ local time_t label_utim = 0;
|
||||
/* Local functions */
|
||||
local char *readd OF((DIR *));
|
||||
|
||||
-
|
||||
#ifdef NO_DIR /* for AT&T 3B1 */
|
||||
#include <sys/dir.h>
|
||||
#ifndef dirent
|
||||
# define dirent direct
|
||||
#endif
|
||||
-typedef FILE DIR;
|
||||
/*
|
||||
** Apparently originally by Rich Salz.
|
||||
** Cleaned up and modified by James W. Birdsall.
|
||||
--
|
||||
2.37.1
|
||||
|
||||
@@ -18,8 +18,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.
|
||||
file://0002-configure-support-PIC-code-build.patch \
|
||||
file://0001-configure-Use-CFLAGS-and-LDFLAGS-when-doing-link-tes.patch \
|
||||
file://0001-configure-Specify-correct-function-signatures-and-de.patch \
|
||||
file://0002-unix.c-Do-not-redefine-DIR-as-FILE.patch \
|
||||
file://0001-unix-configure-use-_Static_assert-to-do-correct-dete.patch \
|
||||
file://0001-configure-Include-dirent.h-for-closedir-opendir-APIs.patch \
|
||||
"
|
||||
UPSTREAM_VERSION_UNKNOWN = "1"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user