Jörg Sonnenberger

NetBSD and Clang

NetBSD developer summit @EuroBSDCon 2015


  1. Executive summary
  2. OpenMP
  3. libc
  4. NetBSD/x86
  5. NetBSD/ARM
  6. NetBSD/PowerPC
  7. NetBSD/Sparc
  8. NetBSD/MIPS

Executive summary

  • x86 + ARM + PPC: sort out library situation, testing
  • Sparc: complex, IAS
  • Mips: sort out ABI issues, GAS compat, IAS


  • Two runtimes supported: GNU OMP + LLVM OMP
  • Not required for building the commpiler, unlike with GCC
  • GNU OMP: single threaded only
  • LLVM OMP: build system still a bit messy
  • Runtime in base?


  • Goal: drop libgcc requirement
  • Milli code by using linker script as libc.so
  • Many side projects to decide on:
    • NIS vs master.passwd
    • NSS reorg
    • Separate ancient libdb out
    • Separate BIND resolver out
    • How to deal with static binaries?
    • Symbol versioning
    • ...
    • Checkout libc/shlib_major
  • Branch libc? Do multiple bumps in phases?


  • IAS still has a few issues with explicit data / address size overrides


  • IAS lacks compatibility for old-style assembly
  • pre-ARMv6 needs testing, not a focus of ARM


  • Lightly tested only so far, but in the build rotation


  • WIP, doesn't build a full release yet
  • IAS: relocations in the immediate field still unsupported
  • Sparc V9: aliases, memory ops
  • Some ABI implementation issues still open: va_arg with aggregates/unions, complex


  • WIP, doesn't build a full release yet
  • IAS: some non-immediate forms are not completely supported
  • IAS: missing some aliases
  • .ehframe still a bit problematic
  • PIC vs non-PIC still a bit problematic
  • Need to learn MIPS assembler...