package/opencv: fix build due to gcc bug 68485
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Sat, 1 Jun 2019 10:20:32 +0000 (12:20 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 20 Jun 2019 19:50:58 +0000 (21:50 +0200)
With Microblaze Gcc version <= 9.x the build fails due to gcc bug 68485:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68485. The bug show up when
building opencv with optimization but not when building with -O0. To
work around this, if BR2_TOOLCHAIN_HAS_GCC_BUG_68458=y, we force using
-O0.

Fixes:
 - http://autobuild.buildroot.org/results/17fff0f312ebd520ba3341976ba56fd8c85ee376

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Reviewed-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/opencv/opencv.mk

index ccc2d820da92b01599039214a2dcbdec8fa1353d..4c15075fe0c11b3477f89640fa1652cf2214fb11 100644 (file)
@@ -10,6 +10,7 @@ OPENCV_INSTALL_STAGING = YES
 OPENCV_LICENSE = BSD-3-Clause
 OPENCV_LICENSE_FILES = LICENSE
 OPENCV_SUPPORTS_IN_SOURCE_BUILD = NO
+OPENCV_CXXFLAGS = $(TARGET_CXXFLAGS)
 
 # OpenCV component options
 OPENCV_CONF_OPTS += \
@@ -166,6 +167,10 @@ OPENCV_CONF_OPTS += \
 
 OPENCV_DEPENDENCIES += zlib
 
+ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_68485),y)
+OPENCV_CXXFLAGS += -O0
+endif
+
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_FFMPEG),y)
 OPENCV_CONF_OPTS += -DWITH_FFMPEG=ON
 OPENCV_DEPENDENCIES += ffmpeg bzip2
@@ -195,8 +200,8 @@ OPENCV_CONF_OPTS += -DWITH_GTK=OFF
 endif
 
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_JASPER),y)
-OPENCV_CONF_OPTS += -DWITH_JASPER=ON \
-       -DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) -D__STDC_LIMIT_MACROS"
+OPENCV_CONF_OPTS += -DWITH_JASPER=ON
+OPENCV_CXXFLAGS += -D__STDC_LIMIT_MACROS
 OPENCV_DEPENDENCIES += jasper
 else
 OPENCV_CONF_OPTS += -DWITH_JASPER=OFF
@@ -232,6 +237,8 @@ else
 OPENCV_CONF_OPTS += -DWITH_V4L=OFF -DWITH_LIBV4L=OFF
 endif
 
+OPENCV_CONF_OPTS += -DCMAKE_CXX_FLAGS="$(OPENCV_CXXFLAGS)"
+
 # Installation hooks:
 define OPENCV_CLEAN_INSTALL_DOC
        $(RM) -fr $(TARGET_DIR)/usr/share/OpenCV/doc