libraw: fix build with old glibc versions
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 16 Feb 2017 08:23:51 +0000 (09:23 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 16 Feb 2017 08:26:43 +0000 (09:26 +0100)
Prior to glibc 2.18, definitions like SIZE_MAX or INT_FAST32_MAX from
<stdint.h> were only made available for C code, or in C++ if
__STDC_LIMIT_MACROS was defined.

The code from jasper uses such definitions, without defining
__STDC_LIMIT_MACROS. Unfortunately, defining __STDC_LIMIT_MACROS in
the jasper headers doesn't work, since <stdint.h> has already been
included before, at a point where __STDC_LIMIT_MACROS was not defined.

So to solve this problem, we simply pass -D__STDC_LIMIT_MACROS in
CXXFLAGS when building libraw with jasper support.

Fixes:

  http://autobuild.buildroot.net/results/908aef6c82d56060933713df217b6b2ba21a01b0/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/libraw/libraw.mk

index d76a1808d5f6d3558575cbc12f92a7d0e1f11bcf..f78ce1e0cbd593fcfefdfc546d9daa798d8baaab 100644 (file)
@@ -21,10 +21,15 @@ LIBRAW_CONF_OPTS += \
 LIBRAW_LICENSE = LGPLv2.1 or CDDL 1.0 or LibRaw Software License 27032010
 LIBRAW_LICENSE_FILES = LICENSE.LGPL LICENSE.CDDL LICENSE.LibRaw.pdf README
 LIBRAW_DEPENDENCIES = host-pkgconf
+LIBRAW_CXXFLAGS = $(TARGET_CXXFLAGS)
+LIBRAW_CONF_ENV = CXXFLAGS="$(LIBRAW_CXXFLAGS)"
 
 ifeq ($(BR2_PACKAGE_JASPER),y)
 LIBRAW_CONF_OPTS += --enable-jasper
 LIBRAW_DEPENDENCIES += jasper
+# glibc prior to 2.18 only defines constants such as SIZE_MAX or
+# INT_FAST32_MAX for C++ code if __STDC_LIMIT_MACROS is defined
+LIBRAW_CXXFLAGS += -D__STDC_LIMIT_MACROS
 else
 LIBRAW_CONF_OPTS += --disable-jasper
 endif