[master] e41b6ca0d build: Better handle zlib-specific C flags

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Mon Jan 30 10:59:05 UTC 2023


commit e41b6ca0da5fff01a854aaddebf217158bad12ec
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Mon Jan 30 11:27:57 2023 +0100

    build: Better handle zlib-specific C flags
    
    There are two warnings that we enforce for our own code that zlib does
    not. There's also the visibility attribute that we check at configure
    time. And regarding the visibility attribute, zlib no longer relies on
    a NO_VIZ macro and aligned with the autoconf naming convention and wants
    HAVE_HIDDEN instead.

diff --git a/configure.ac b/configure.ac
index dcaffeb5e..93c92e29b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -255,27 +255,25 @@ else
 	CFLAGS="${CFLAGS} -Werror"
 fi
 
-# Support for visibility attribute
-save_CFLAGS="${CFLAGS}"
+# zlib-specific flags
+libvgz_extra_cflags="-Wno-error=strict-prototypes"
+
+dnl https://github.com/madler/zlib/issues/633
+libvgz_extra_cflags="$libvgz_extra_cflags -Wno-error=deprecated-non-prototype"
+
+AC_SUBST(libvgz_extra_cflags)
+
+# Support for visibility attribute (zlib)
 AC_CACHE_CHECK([whether we have support for visibility attributes],
 	[ac_cv_have_viz],
-	[AC_RUN_IFELSE(
+	[AC_COMPILE_IFELSE(
 		[AC_LANG_PROGRAM([[
-			#if ((__GNUC__-0) * 10 + __GNUC_MINOR__-0 >= 33 || defined(__SUNPRO_C))
-			#  define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
-			#else
-			#  define ZLIB_INTERNAL
-			#endif
-			int ZLIB_INTERNAL foo;
+			int __attribute__((visibility ("hidden"))) foo;
 		]],[])],
-	[ac_cv_have_viz=yes],
-	[ac_cv_have_viz=no])
+	[AC_DEFINE([HAVE_HIDDEN], [1],
+		[Define to 1 if visibility attribute hidden is available.])
+	])
 ])
-if test "$ac_cv_have_viz" = no; then
-	libvgz_extra_cflags="-DNO_VIZ"
-	AC_SUBST(libvgz_extra_cflags)
-fi
-CFLAGS="${save_CFLAGS}"
 
 AC_ARG_ENABLE(ubsan,
 	AS_HELP_STRING([--enable-ubsan],
diff --git a/lib/libvgz/Makefile.am b/lib/libvgz/Makefile.am
index 52fd2f0fb..929646ad5 100644
--- a/lib/libvgz/Makefile.am
+++ b/lib/libvgz/Makefile.am
@@ -1,11 +1,13 @@
 #
 
-AM_LDFLAGS  = $(AM_LT_LDFLAGS)
+AM_CFLAGS = $(AM_LT_CFLAGS) \
+	-D_LARGEFILE64_SOURCE=1 \
+	-DZLIB_CONST \
+	$(libvgz_extra_cflags)
 
-noinst_LTLIBRARIES = libvgz.la
+AM_LDFLAGS = $(AM_LT_LDFLAGS)
 
-libvgz_la_CFLAGS = -D_LARGEFILE64_SOURCE=1 -DZLIB_CONST \
-	$(libvgz_extra_cflags)
+noinst_LTLIBRARIES = libvgz.la
 
 libvgz_la_SOURCES = \
 	adler32.c \


More information about the varnish-commit mailing list