[vlc-devel] [PATCH] contrib/libpng: force C89 mode when using GCC (fixes #16760)
Sean McGovern
gseanmcg at gmail.com
Fri Apr 1 20:10:06 CEST 2016
On Mar 29, 2016 13:36, "Sean McGovern" <gseanmcg at gmail.com> wrote:
>
> ---
> Apparently this library lives 20+ years in the past...
> ---
> contrib/src/png/force-c89.patch | 34 ++++++++++++++++++++++++++++++++++
> contrib/src/png/rules.mak | 3 ++-
> 2 files changed, 36 insertions(+), 1 deletion(-)
> create mode 100644 contrib/src/png/force-c89.patch
>
> diff --git a/contrib/src/png/force-c89.patch
b/contrib/src/png/force-c89.patch
> new file mode 100644
> index 0000000..1877df4
> --- /dev/null
> +++ b/contrib/src/png/force-c89.patch
> @@ -0,0 +1,34 @@
> +From 12e63e91af1378225993b36e25ce3252b54e751a Mon Sep 17 00:00:00 2001
> +From: Dagobert Michelsen <dam at opencsw.org>
> +Date: Mon, 14 Mar 2016 16:21:06 +0100
> +Subject: [PATCH] Force back to C89 if needed. This fixes #245
> +
> +---
> + configure.ac | 14 ++++++++++++++
> + 1 file changed, 14 insertions(+)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 3b8746a..ee3ea05 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -114,6 +114,20 @@ AC_ARG_ENABLE(werror,
> + CFLAGS="$sav_CFLAGS"
> + fi],)
> +
> ++# For GCC 5 the default mode for C is -std=gnu11 instead of -std=gnu89
> ++# In pngpriv.h we request just the POSIX 1003.1 and C89 APIs by
defining _POSIX_SOURCE to 1
> ++# This is incompatible with the new default mode, so we test for that
and force the
> ++AC_MSG_CHECKING([if we need to force back C standard to C89])
> ++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#define _POSIX_SOURCE 1
> ++#include <stdio.h>
> ++])],AC_MSG_RESULT(no),[
> ++if test "x$GCC" != "xyes"; then
> ++ AC_MSG_ERROR([Forcing back to C89 is required but the flags are
unknown for other compilers than GCC])
> ++fi
> ++AC_MSG_RESULT(yes)
> ++CFLAGS="$CFLAGS -std=c89"
> ++])
> ++
> + # Checks for header files.
> + AC_HEADER_STDC
> +
> diff --git a/contrib/src/png/rules.mak b/contrib/src/png/rules.mak
> index 61f835e..0cde547 100644
> --- a/contrib/src/png/rules.mak
> +++ b/contrib/src/png/rules.mak
> @@ -17,12 +17,13 @@ png: libpng-$(PNG_VERSION).tar.xz .sum-png
> $(APPLY) $(SRC)/png/winrt.patch
> $(APPLY) $(SRC)/png/bins.patch
> $(APPLY) $(SRC)/png/automake.patch
> + $(APPLY) $(SRC)/png/force-c89.patch
> $(MOVE)
>
> DEPS_png = zlib $(DEPS_zlib)
>
> .png: png
> $(RECONF)
> - cd $< && $(HOSTVARS) ./configure $(HOSTCONF)
> + cd $< && $(HOSTVARS) CC="`echo ${CC} | ${SED-sed} 's:
-std=[a-z0-9]*::'`" ./configure $(HOSTCONF)
> cd $< && $(MAKE) install
> touch $@
Ping!
-- Sean McG.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20160401/f89a01d1/attachment.html>
More information about the vlc-devel
mailing list