diff --git a/docs/markdown/snippets/update_xc32_for_v5.md b/docs/markdown/snippets/update_xc32_for_v5.md new file mode 100644 index 000000000000..1263948191d2 --- /dev/null +++ b/docs/markdown/snippets/update_xc32_for_v5.md @@ -0,0 +1,4 @@ +## XC32 support now aware of v5.00 features + +XC32 features introduced in v5.00 can now be used. This includes +support for LTO auto and the C2x and CPP23 standards. diff --git a/mesonbuild/compilers/mixins/microchip.py b/mesonbuild/compilers/mixins/microchip.py index 29fe0c5f18c6..b21b032c31a8 100644 --- a/mesonbuild/compilers/mixins/microchip.py +++ b/mesonbuild/compilers/mixins/microchip.py @@ -122,14 +122,15 @@ class Xc32Compiler(CompilerBase): gcc_version = '4.5.1' # Defaults to GCC version used by first XC32 release (v1.00). - _COLOR_VERSION = ">=3.0" # XC32 version based on GCC 8.3.1+ - _WPEDANTIC_VERSION = ">=1.40" # XC32 version based on GCC 4.8.3+ - _LTO_AUTO_VERSION = "==-1" - _USE_MOLD_VERSION = "==-1" + _COLOR_VERSION = '>=3.0' # XC32 version based on GCC 8.3.1+ + _WPEDANTIC_VERSION = '>=1.40' # XC32 version based on GCC 4.8.3+ + _LTO_AUTO_VERSION = '>=5.00' # XC32 version based on GCC 13.2.1+ + _LTO_CACHE_VERSION = '==-1' + _USE_MOLD_VERSION = '==-1' def __init__(self) -> None: if not self.is_cross: - raise EnvironmentException("XC32 supports only cross-compilation.") + raise EnvironmentException('XC32 supports only cross-compilation.') def get_instruction_set_args(self, instruction_set: str) -> T.Optional[T.List[str]]: return None @@ -182,14 +183,14 @@ class Xc32CStds(GnuCStds): """Mixin for setting C standards based on XC32 version.""" - _C18_VERSION = ">=3.0" - _C2X_VERSION = "==-1" - _C23_VERSION = "==-1" - _C2Y_VERSION = "==-1" + _C18_VERSION = '>=3.0' + _C2X_VERSION = '>=5.00' + _C23_VERSION = '==-1' + _C2Y_VERSION = '==-1' class Xc32CPPStds(GnuCPPStds): """Mixin for setting C++ standards based on XC32 version.""" - _CPP23_VERSION = "==-1" - _CPP26_VERSION = "==-1" + _CPP23_VERSION = '>=5.00' + _CPP26_VERSION = '==-1'