Awesome work. This’ll open the door to next generation exploit mitigations like CFI and SafeStack. I wonder if anybody in the OpenBSD camp would like to help me in my efforts to port SafeStack to arm64.
Kinda surprised they even used gcc in the first place, given their allergy to copyleft.
OpenBsd: Initial release October 1st, 1996
Clang: Initial release September 26, 2007
[Comment removed by author]
There are some other compilers that are fun to hack on or play with, but none were ever ready to replace the system compiler in OpenBSD (or most other systems). Off the top my head, there is CompCert-C, TenDRA, Open Watcom V2, pcc, lcc, Open64, OpenUH, abc, vbcc, 8cc, sdcc, kencc, DRI/Alcyon C, OrangeC, SmallerC, tcc, deSmet C, and the various ack forks such as aack, nack, dack, etc. It seems that gcc is going to be around a lot longer since the BSD systems support architectures that do not have any support at all in clang.
Edit: A quick web search and wiki review pointed me to nwcc, neatcc, LuxCC, scc, oucc, ucc, and cparser as well - good to see compiler hacking is alive and well.
Ken’s compiler URL is wrong, this is the canonical version: https://bitbucket.org/plan9-from-bell-labs/9-cc
We have a collection of those and maybe others on the link below. You probably covered the others with your very, comprehensive comment and pile of links. Compact enough to put my reference posts to shame haha.
Apple gave up being gcc compiler maintainers as well - but their efforts are preserved at https://opensource.apple.com/tarballs/gcc/ all of which are based on a commit shortly after GCC 4.2.1 where the license changed. Seems others had made various attempts to continue that (see gcc* patches) but have since ceased work.
My guess is gcc was already there and switching requires some planning and effort. There is a small crowd of people getting sick of gcc/clang who want a new C compiler that isn’t slow as hell or written in C++ like gcc and clang.
Count me in with that crowd. I try to use TCC when I can get away with it. The generated code is “slow” by C standards, but the simplicity more than makes up for that.
Isn’t Theo an emacs user?
Note that OpenBSD is still using older versions of GCC, because the newer ones don’t necessarily support all the older archs that OpenBSD runs on.
Emacs was a prominently GNU project, and recent versions are GPLv3-licensed.
Seems like clang is winning the war. Also this would seem to be another step away from the GPL and towards more permissive licensing.
Kinda sad really. I appreciate the FSF’s work in so many ways, but they seem hell bent on riding into the sunset surrounded by a cloud of idealism and denial.