LLVM-embedded-toolchain-for-Arm icon indicating copy to clipboard operation
LLVM-embedded-toolchain-for-Arm copied to clipboard

clang/clang++ multi-lib selection: prefer no rtti, no exceptions variant for clang

Open JoshuaYonathan opened this issue 1 year ago • 1 comments

Hello,

When I run the following command: clang -print-multi-directory --target=arm-none-eabi -march=armv7e-m -mfloat-abi=hard -mfpu=fpv5-d16

I expect the output: arm-none-eabi/armv7em_hard_fpv5_d16

However, I get the output: arm-none-eabi/armv7em_hard_fpv5_d16_exn_rtti

Adding the -fno-rtti -fno-exceptions flags gets me the output I expect, but wouldn't it be the correct behavior to select the non-exn_rtti libs when invoking clang and not clang++?

JoshuaYonathan avatar Jun 22 '24 21:06 JoshuaYonathan

Hi Joshua,

Thank you for reaching out!

-fno-rtti -fno-exceptions should not have impact on C code generation and thus the C libraries, so effectively C libraries in both folders armv7em_hard_fpv5_d16 and armv7em_hard_fpv5_d16_exn_rtti must be the same. Which is not ideal, but this is how the multilib setup works now.

For a C project library folder selection should not make a difference, however I agree that it would be cleaner to select armv7em_hard_fpv5_d16 when clang is used as you suggested. I will keep this issue as an improvement in the multilib setup.

voltur01 avatar Jun 24 '24 13:06 voltur01