I doubt very much that using the Plan 9 C compilers will bring much additional benefit for finding bugs (except bugs in the compiler!).
Out of curiousity, why is linking against the system libraries so
hard? I assume a port of kenc to Linux would have a driver program
that would just invoke the system ld(1). I'd think that getting
the ABI and generation of ELF (or of standard Linux assembly language)
correct would be the hard part.
What am I missing?
The compiler is a single program that produces an object file. Combined in the compiler are the traditional roles of preprocessor, lexical analyzer, parser, code generator, local optimizer, and first half of the assembler. The object files are binary forms of assembly language, similar to what might be passed between the first and second passes of an assembler.
Object files and libraries are combined by a loader program to produce the executable binary. The loader combines the roles of second half of the assembler, global optimizer, and loader.