Am 15.01.24 um 04:53 schrieb Ben Shi via Discussion of avr-libc development:
Dear AVR-libc developers, I am current maintainer of the llvm-avr backend, and I would like to ask for your feedback on my work. My final goal is making clang-llvm-lld-compiler_rt chain fully functional, and let AVR program developers get rid of the GNU tool chain. So any complain/concern/report is welcome.
Is it possible to build AVR-LibC with clang? Johann
Current known issues: 1. The clang frontend still does not support float-64 type and int24 type. 2. The clang frontend does not support virtual functions in C++ classes. 3. The 32-bit mul/div are not supported in compiler-rt, though 8-bit/16-bit ones are supported. 4. The lld should have support all functionality compared to GNU-ld. (There may be bugs, but it should be quite stable.) 5. The lld accepts all syntax of GNU linker script, except 'KEEP(SORT(*)(.ctors))', so you need to do a little modification to the linker scripts distributed within avr-gcc, and use lld style syntax. 6. There are still some minor bugs in the llvm backend. (https://github.com/llvm/llvm-project/issues?q=is%3Aopen+is%3Aissue+label%3Abackend%3AAVR) Generally speaking I have written some simple test programs with the clang/llvm/lld chain on Arduino boards, which are stable. So I would ask for more tests and reports by you. You can specify lld with command line option '-fuse-ld=lld'. You are appreciated to report issues to me at https://github.com/llvm/llvm-project/issues, and do not forget to set the issue's label to 'backend:avr'. I hope my work can be fully accepted by the aruidno community and finally replace the GNU toolchain in its package releases in the future. Best regards, Ben Shi