package/libheif: needs gcc >= 10

Fixes build error with gcc 9.x:

output/build/libheif-1.21.1/libheif/nclx.h:128:50: error:
 'bool nclx_profile::operator==(const nclx_profile&)
 const' cannot be defaulted

 using this defconfig:

  BR2_arm=y
  BR2_TOOLCHAIN_EXTERNAL=y
  BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
  BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
  BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-static-2020.11.2.tar.bz2"
  BR2_TOOLCHAIN_EXTERNAL_GCC_9=y
  BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_4=y
  BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
  # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
  BR2_TOOLCHAIN_EXTERNAL_CXX=y
  BR2_STATIC_LIBS=y
  BR2_PACKAGE_LIBHEIF=y

According to https://github.com/strukturag/libheif/issues/1615#issuecomment-3457979167
gcc >= 10 with support for C++20 is needed for the package.

The failing code was introduced upstream in version 0.21.0 with commit
a62f933e38
which was added to buildroot with commit
a8aed698c7.

Also removed -std=c++11 from CXXFLAGS.

The build error was not yet recorded by the autobuilders.

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Bernd Kuhls
2026-03-07 19:54:25 +01:00
committed by Julien Olivain
parent 1f91091178
commit 7323bcc1d4
3 changed files with 6 additions and 7 deletions

View File

@@ -3,7 +3,7 @@ config BR2_PACKAGE_KODI_IMAGEDECODER_HEIF
depends on BR2_INSTALL_LIBSTDCPP # libde265, libheif, tinyxml2
depends on BR2_TOOLCHAIN_HAS_THREADS # libde265, libheif
depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_30730 # libheif
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # libheif
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # libheif
select BR2_PACKAGE_LIBDE265
select BR2_PACKAGE_LIBHEIF
select BR2_PACKAGE_TINYXML2
@@ -12,7 +12,7 @@ config BR2_PACKAGE_KODI_IMAGEDECODER_HEIF
https://github.com/xbmc/imagedecoder.heif
comment "kodi-imagedecoder-heif needs a toolchain w/ C++, threads, gcc >= 4.8"
comment "kodi-imagedecoder-heif needs a toolchain w/ C++, threads, gcc >= 10"
depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_30730 # libheif
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
!BR2_TOOLCHAIN_GCC_AT_LEAST_10

View File

@@ -2,14 +2,14 @@ config BR2_PACKAGE_LIBHEIF
bool "libheif"
depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_30730
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_10 # C++20
depends on BR2_TOOLCHAIN_HAS_THREADS
help
libheif is an HEIF and AVIF file format decoder and encoder.
https://github.com/strukturag/libheif
comment "libheif needs a toolchain w/ C++, threads, gcc >= 4.8"
comment "libheif needs a toolchain w/ C++, threads, gcc >= 10"
depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_30730
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \
!BR2_TOOLCHAIN_HAS_THREADS

View File

@@ -11,7 +11,6 @@ LIBHEIF_LICENSE_FILES = COPYING
LIBHEIF_CPE_ID_VENDOR = struktur
LIBHEIF_INSTALL_STAGING = YES
LIBHEIF_CONF_OPTS = \
-DCMAKE_CXX_FLAGS="-std=c++11" \
-DENABLE_PLUGIN_LOADING=OFF \
-DWITH_AOM_DECODER=OFF \
-DWITH_AOM_ENCODER=OFF \