The current official Go compiler (http://code.google.com/p/go/) currently uses a hand-crafted, possibly secret code generator that includes inputting custom sections to the ELF binary.
In this approach, there were a lot of errors related to utilities that directly read and / or write ELF information, for example ldd , objdump or strip .
I believe that this could be prevented by using a well-designed cross-platform code generator such as LLVM, and then just use the bundling tools provided with the OS, for example ld on Unix / Linux (or ld.exe on w / MinGW windows) or link.exe on Windows with Visual Studio.
So why does Go use its own code generator? Is it really just reinventing the wheel? Or are there more important reasons for this?
hiobs source share