Hi All, On passing +cdecp[0-7] extension to the -march string in command line options, multilib linking is failing as mentioned in PR100856. This patch fixes this issue by generating a separate canonical string by removing compiler options which are not required for multilib linking from march string and assign the new string to mlibarch option. This mlibarch string is used for multilib comparison. Regression tested on arm-none-eabi and found no regressions. Ok for master? Regards, Srinath. gcc/ChangeLog: 2021-06-10 Srinath Parvathaneni PR target/100856 * common/config/arm/arm-common.c (arm_canon_arch_option): Define function to call arm_canon_arch_option_1 with flase boolean argument to generate canonical string for march option. (arm_canon_arch_option_1): Rename arm_canon_arch_option to arm_canon_arch_option_1 and add a boolean argument. (arm_canon_arch_multilib_option): Define function to call arm_canon_arch_option_1 with true boolean argument to generate canonical string for mlibarch option. * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): Define fgroup with cde feature bits. * config/arm/arm.h (arm_canon_arch_option_1): Function declaration. (arm_canon_arch_multilib_option): Function declaration. (CANON_ARCH_MULTILIB_SPEC_FUNCTION): Define new macro. (MULTILIB_ARCH_CANONICAL_SPECS): Define new macro. (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS entry. * config/arm/arm.opt (mlibarch): Add new option which is supported by DriverOnly. * config/arm/t-rmprofile (MULTILIB_MATCHES): march on right hand side of equal to is replaced with mlibarch for multilib comparison. gcc/testsuite/ChangeLog: 2021-06-10 Srinath Parvathaneni PR target/100856 * gcc.target/arm/acle/pr100856.c: New test. * gcc.target/arm/multilib.exp: Add cde compiler option entries.