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.
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