As Ben Shi via Discussion of avr-libc development wrote: > 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.
There's probably no reason to "get rid" of the GNU toolchain, but Clang is certainly a welcome addition. > Current known issues: > 1. The clang frontend still does not support float-64 type and int24 type. Well, they are even relatively new to GCC, and we don't have a libm for float64. > 2. The clang frontend does not support virtual functions in C++ classes. I'm not a C++ guy, so I have no idea what kind of impact that really has. I vaguely remember C++ on AVR-GCC always had some restrictions anyway. > 3. The 32-bit mul/div are not supported in compiler-rt, though 8-bit/16-bit > ones are supported. What does that mean for the end user? > 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. As long as it's backwards compatible with the GNU linker, no problem. > 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. Well, Arduino is often quite conservative, and unless there is some really compelling reason to switch toolchains (like say, LLVM would generally produce code half the size of GCC :-), I wouldn't expect that to happen anytime soon. -- cheers, Joerg .-.-. --... ...-- -.. . DL8DTL http://www.sax.de/~joerg/ Never trust an operating system you don't have sources for. ;-)