diff --git a/arm-software/embedded/arm-multilib/CMakeLists.txt b/arm-software/embedded/arm-multilib/CMakeLists.txt index 2fa0cbb22845..2617b2c582f5 100644 --- a/arm-software/embedded/arm-multilib/CMakeLists.txt +++ b/arm-software/embedded/arm-multilib/CMakeLists.txt @@ -346,12 +346,12 @@ foreach(lib_idx RANGE ${lib_count_dec}) foreach(flag ${multilib_flags_list}) string(APPEND multilib_yaml_content " - ${flag}\n") endforeach() - if(ENABLE_MULTILIB_HEADER_OPTIMISATION) + if(ENABLE_MULTILIB_HEADER_OPTIMISATION AND variant_group STREQUAL "base_libs") string(APPEND multilib_yaml_content " IncludeDirs:\n") string(APPEND multilib_yaml_content " - ${parent_dir_name}/${variant}/include\n") string(APPEND multilib_yaml_content " - ${parent_dir_name}/include\n") endif() - string(APPEND multilib_yaml_content " Group: stdlibs\n") + string(APPEND multilib_yaml_content " Group: ${variant_group}\n") else() # In place of a json, an error message is expected. string(JSON variant_error_msg GET ${lib_def} "error") @@ -362,7 +362,7 @@ foreach(lib_idx RANGE ${lib_count_dec}) foreach(flag ${multilib_flags_list}) string(APPEND multilib_yaml_content " - ${flag}\n") endforeach() - string(APPEND multilib_yaml_content " Group: stdlibs\n") + string(APPEND multilib_yaml_content " Group: base_libs\n") endif() endif() diff --git a/arm-software/embedded/arm-multilib/multilib.yaml.in b/arm-software/embedded/arm-multilib/multilib.yaml.in index 1fcc4e795d1a..e06aabba960e 100644 --- a/arm-software/embedded/arm-multilib/multilib.yaml.in +++ b/arm-software/embedded/arm-multilib/multilib.yaml.in @@ -20,8 +20,10 @@ MultilibVersion: '1.0' -# Make an exclusive group for library variants, to make sure we don't -# accidentally include two or more variants at once. +# Make the main library selection exclusive, to make sure we don't +# accidentally include two or more base variants at once. But allow +# specialised overlay layers such as string/startup deltas to be +# selected in parallel with the base layer. # # Even if they all match the command-line options, putting two sets of # include directories on the include path can cause build failure, @@ -32,7 +34,11 @@ MultilibVersion: '1.0' # nothing will ever include the _libc_ stdio.h, which was what the # #include_next was really looking for. Groups: -- Name: stdlibs +- Name: base_libs + Type: Exclusive +- Name: string_libs + Type: Exclusive +- Name: startup_libs Type: Exclusive # The list of library variants is substituted in by CMakeLists.txt, so @@ -49,7 +55,7 @@ Variants: - Error: Arm Toolchain for Embedded does not provide RWPI library variants Flags: - -frwpi - Group: stdlibs + Group: base_libs Mappings: