Jörg Sonnenberger
Clang on SPARC
Why SPARC?
- Strict alignment architecture
- Register windows
- Big Endian
The history of the SPARC target in LLVM
- Older than Clang
- ...much older than clang: first commit in 2004
- No commercial backing, for-fun development only
- 2013: initial SPARCv9 support
- 2014, 2015: much polishing
Current situation
- SPARCv8 is assumed
- GNU as bug for FP branch instructions — adds extra nops
- Integrated Assembler: mostly working
- ...missing ASI support kind of kills it for NetBSD
- Code generator: atomics require SPARCv8+
- ...and SPARC64 only supports atomics for 32bit and 64bit types
Clang 3.8.0
- 32bit SPARC missing va_arg support for struct / union
- Personality routines build do not work correctly
- Merges pending
NetBSD and Clang on SPARC
- Kernel and boot loader currently crash in qemu
- SPARC64 userland on top of GCC-build kernel
- Userland: ATF run shows 33 unexpected failures
- ...some of them qemu issues
- ...more of them bad test cases unable to deal with lack of gcc
- Second ATF run: down to 20 unexpected failurse
- ...still two no-gcc cases