Adjust toolchain versions for triggering workarounds:

* Make netlist/plib noexcept issue workaround trigger for clang 8 or
  Apple clang 11.0.0.
* Disable lifetime DSE optimisation for GCC 10.2 (this may be an issue
  in GNU libstdc++ rather than GCC itself - using compiler version as a
  proxy for standard library version is bad, but it's the path of least
  resistance for now).
This commit is contained in:
Vas Crabb 2022-06-06 03:56:51 +10:00
parent 6c474b6699
commit ea1e51636c
3 changed files with 7 additions and 7 deletions

View file

@ -1000,7 +1000,7 @@ CLANG_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) --version 2> /dev/null
PYTHON_AVAILABLE := $(shell $(PYTHON) --version > /dev/null 2>&1 && echo python)
GIT_AVAILABLE := $(shell git --version > /dev/null 2>&1 && echo git)
else
GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) -dumpversion 2> NUL)
GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) -dumpfullversion 2> NUL)
CLANG_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) --version 2> NUL| head -n 1 | grep clang | sed "s/^.*[^0-9]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$$/\1/" | head -n 1)
PYTHON_AVAILABLE := $(shell $(PYTHON) --version > NUL 2>&1 && echo python)
GIT_AVAILABLE := $(shell git --version > NUL 2>&1 && echo git)
@ -1023,9 +1023,9 @@ endif
endif
else
ifdef OVERRIDE_CC
GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(OVERRIDE_CC)) -dumpversion 2> /dev/null)
GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(OVERRIDE_CC)) -dumpfullversion 2> /dev/null)
else
GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) -dumpversion 2> /dev/null)
GCC_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) -dumpfullversion 2> /dev/null)
endif
ifeq ($(findstring emcc,$(CC)),emcc)
CLANG_VERSION := $(shell $(TOOLCHAIN)$(subst @,,$(CC)) -v 2>&1 >/dev/null | grep 'clang version' | head -n 1 | grep -e 'version [0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?' -o | grep -e '[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?' -o | tail -n 1)

View file

@ -1085,9 +1085,9 @@ end
"-Wno-array-bounds",
"-Wno-error=attributes", -- GCC fails to recognize some uses of [[maybe_unused]]
}
if version < 100000 then
if version < 100300 then
buildoptions_cpp {
"-flifetime-dse=1", -- GCC 9 takes issue with Sol's get<std::optional<T> >() otherwise
"-flifetime-dse=1", -- GCC 10.2 and earlier take issue with Sol's get<std::optional<T> >() otherwise - possibly an issue with libstdc++ itself
}
end
if version >= 80000 then

View file

@ -227,9 +227,9 @@ namespace plib
using mingw = std::integral_constant<bool, false>;
#endif
#if defined(__APPLE__)
using clang_noexcept_issue = std::integral_constant<bool, version::vmajor::value < 11>;
using clang_noexcept_issue = std::integral_constant<bool, (type::value == ci_compiler::CLANG) && (version::vmajor::full < 110003)>;
#else
using clang_noexcept_issue = std::integral_constant<bool, (type::value == ci_compiler::CLANG) && (version::vmajor::value < 8)>;
using clang_noexcept_issue = std::integral_constant<bool, (type::value == ci_compiler::CLANG) && (version::vmajor::value < 9)>;
#endif
#if defined(__ia64__)
using abi_vtable_function_descriptors = std::integral_constant<bool, true>;