If you are providing some compiler extensions and keeping the rest of the compiler proprietary then maybe.TLDR:
I think the licensing becomes an issue when used commercially rather than individual end users.
This is interesting: What about parts of the runtime distributed with the compiler (e.g. libgcc) and often linked statically? Are there specific exceptions for them?However the vast majority of individuals will simply use a compiler to release a potentially closed-source product. This is fine. The GPL doesn't spread to binaries generated by GPL licensed programs.
I do agree with freebuser ...hardworkingnewbie well, static linking of non-GPL software with LGPL is allowed in principle, but you must provide the user with a way to "re-link" himself, which, in practice, is quite cumbersome… (at least for closed-source stuff. for opensource, it's implicit of course)
(I think this whole GNU idea of "enforcing freedom by imposing restrictions" is an oxymoron and badly flawed…)
As for OP, I think his posts are improving as far as striking a decent tone, but could still stand some improvement in how they're written. Best I was able to understand, OP is wondering about how FreeBSD decided to use first its own homegrown C compiler, then switching to GCC, and then dropping GCC in favor of Clang.TLDR:
I think the licensing becomes an issue when used commercially rather than individual end users.
I think this is the only post I ever saw on this forum since 2009 that I'd like to give thanks and like at the same time.People interested in such questions should visit or (if you have a couple of GB spare) download Prof. Diomidis Spinellis' excellent unix history repo @ https://github.com/dspinellis/unix-history-repo -- you can not only see what was shipped in 386BSD-0.1 but go all the way back to the beginning of unix and see how it evolved.
I think these are addressed here. The FAQ at the bottom is useful too.This is interesting: What about parts of the runtime distributed with the compiler (e.g. libgcc) and often linked statically? Are there specific exceptions for them?
Because it never had.But I had no idea that FreeBSD had its own homegrown C compiler prior to adopting GCC as default C/C++ compiler.
So, what did FreeBSD use prior to adopting GCC as system default?Because it never had.
Uhm, I'll quote myself here from this very thread:So, what did FreeBSD use prior to adopting GCC as system default?
-> FreeBSD never "adopted" GCC.(btw, very first nonsensical take is the "own fast C compiler". Even 386BSD 1.0 – and of course FreeBSD 1.0 – shipped with GCC… and more gibberish follows. should really be obvious to anyone)
Seems like I may need to learn to read in Git...Uhm, I'll quote myself here from this very thread:
-> FreeBSD never "adopted" GCC.
I appreciate bakul 's tip, would be nice if I had the expertise to properly take advantage of it.People interested in such questions should visit or (if you have a couple of GB spare) download Prof. Diomidis Spinellis' excellent unix history repo @ https://github.com/dspinellis/unix-history-repo -- you can not only see what was shipped in 386BSD-0.1 but go all the way back to the beginning of unix and see how it evolved.
Well, on PDP-11/VAX, there was probably a different compiler if you're interested, that would be a way to find out…Seems like I may need to learn to read in Git...
I appreciate bakul 's tip, would be nice if I had the expertise to properly take advantage of it.
Yeah, that kind of behavior is better left to reddit.Trolls just write nonsense and see who "bites".
Maybe lang/pcc. Could be interesting because according to Wikipedia, it was used on BSD prior to 4.4BSD.Which brings me to this related question. Are there interesting c compilers other than clang/llvm & gcc i should try on freebsd ?
Question is: for what purpose? Just to have a look at them and play around with them, or to do real development stuff?Which brings me to this related question. Are there interesting c compilers other than clang/llvm & gcc i should try on freebsd ?
I found : ucc,tcc,sdcc,pcc,nwcc,flatcc,bcc
Even playing around with special purpose compilers/assemblers has value. Learning the logic behind their design, and getting it down, and being able to compare the logic patterns - it's that kind of skill that would be valuable for projects like Russia's Elbrus 8C (Discussion right here on these forums) or China's Loongson. Politics aside, this looks like serious brain gymnastics (A term I credit Alain De Vos with inventing ) to keep people busyQuestion is: for what purpose? Just to have a look at them and play around with them, or to do real development stuff?
I was playing with that the other day when testing out this processor emulator:There are of course quite some "special purpose" compilers, like e.g. devel/cc65 targeting machines like the C64 – I don't program the C64 in C, but use cc65's assembler (ca65).
That's why I still enjoy programming the C64, this machine can be understood as a whole by a human being not that I know every single bit in every memory-mapped register by heart (this machine uses MMIO exclusively, there's an I/O area that can be mapped toEverything feels like it is in my grasp of understanding haha.
0xd000-0xdfff
, I love this simplicity), but that can be looked up quickly if needed.I don't see the point of using older and less well-maintained "just for fun", that's probably a waste of time. Right now, among the free and commonly used compilers for x86 machines (32- and 64-bit), clang is the gold standard, when measured by the efficiency of the generated code. There are compilers that are "better" than gcc and clang in that respect. For example, the Portland Group makes a superb C++ and Fortran compiler. Their main focus is parallel programming, today mostly using GPUs. But even even on non-parallel codes on x86 it generates excellent code, which is typically faster than that from free compilers. But: The PG compilers cost money, I think big money. And buying them just for compiling regular programs for a single CPU would be silly; the small performance benefit has no relation to the large cost. If you have a few tenthousand CPUs and a million GPUs, then it matters greatly.Which brings me to this related question. Are there interesting c compilers other than clang/llvm & gcc i should try on freebsd ?
I found : ucc,tcc,sdcc,pcc,nwcc,flatcc,bcc
Like bitcoin mining farms? That's about the best case scenario I can think of.If you have a few tenthousand CPUs and a million GPUs, then it matters greatly.