2
1
Эх сурвалжийг харах

package/zip: fix build with GCC 14

Builds with GCC 14 print the following error

> zip.h:726:10: error: conflicting types for 'memset'; have 'char *(char *, int,  unsigned int)'

This is because with GCC 14, Zip incorrectly detects that the memset functions
exist. Which enables the ZMEM flag and declares its own version of memset.

This is because the ./unix/configure script attempts to compile a C file using
'memset' but it does not include the <string.h>. This was allowed in gnu89, but
in GCC 14 -Werror=implicit-function-declaration is enabled by default[1].

We forcefully set '-std=gnu89' so that Zip will compile everything against
gnu89, which suppresses the warning.

[1] https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit 29c6fe13d37ab1a3305005b42441a49afe4d1895)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Brandon Maier 1 жил өмнө
parent
commit
3326cbd2e5
1 өөрчлөгдсөн 2 нэмэгдсэн , 2 устгасан
  1. 2 2
      package/zip/zip.mk

+ 2 - 2
package/zip/zip.mk

@@ -31,7 +31,7 @@ ZIP_TARGET_CFLAGS = \
 define ZIP_BUILD_CMDS
 	$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \
 		CFLAGS="$(ZIP_TARGET_CFLAGS) $(ZIP_CFLAGS)" \
-		AS="$(TARGET_CC) -c" \
+		CC="$(TARGET_CC) -std=gnu89" AS="$(TARGET_CC) -c" \
 		-f unix/Makefile generic
 endef
 
@@ -43,7 +43,7 @@ endef
 define HOST_ZIP_BUILD_CMDS
 	$(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D) \
 		CFLAGS="$(HOST_CFLAGS) $(ZIP_CFLAGS)" \
-		AS="$(HOSTCC) -c" \
+		CC="$(HOSTCC) -std=gnu89" AS="$(HOSTCC) -c" \
 		-f unix/Makefile generic
 endef