diff --git a/package/libtorrent-rasterbar/Config.in b/package/libtorrent-rasterbar/Config.in index aa986f2388..6c55085947 100644 --- a/package/libtorrent-rasterbar/Config.in +++ b/package/libtorrent-rasterbar/Config.in @@ -1,4 +1,5 @@ comment "libtorrent-rasterbar needs a toolchain w/ C++, threads, wchar, gcc >= 4.8" + depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \ !BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 @@ -8,6 +9,7 @@ config BR2_PACKAGE_LIBTORRENT_RASTERBAR depends on BR2_HOST_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 depends on BR2_TOOLCHAIN_HAS_THREADS # boost + depends on BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK depends on BR2_USE_WCHAR # boost select BR2_PACKAGE_BOOST select BR2_PACKAGE_BOOST_CHRONO diff --git a/toolchain/Config.in b/toolchain/Config.in index 275f9f9cdd..bcbc3cf984 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -100,6 +100,19 @@ config BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS depends on !BR2_sparc_v8 depends on !BR2_m68k_cf5208 +# GCC uses thunk functions to adjust the 'this' pointer when calling +# C++ member functions in classes derived with multiple inheritance. +# Generation of thunk functions requires support from the compiler +# back end. In the absence of that support target-independent code +# in the C++ front end is used to generate thunk functions, but it +# does not support vararg functions. +# or1k will support it in the gcc mainline starting with gcc-9. +config BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK + bool + default y + depends on !BR2_or1k + depends on !BR2_xtensa + # Prior to gcc 7.x, exception_ptr, nested_exception and future from # libstdc++ would only be provided on architectures that support # always lock-free atomic ints. See