[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