Hacker News new | ask | show | jobs
by peoplefromibiza 1335 days ago
benefit != convenience

for some at least, and it was a goal in the first two decades of the Linux kernel community

TL;DR: LLVM and Clang allow non-free (proprietary) extensions

The Clang and LLVM developers reach different conclusions from ours because they do not share our values and goals. They object to the measures we have taken to defend freedom because they see the inconvenience of them and do not recognize (or don't care about) the need for them. I would guess they describe their work as "open source" and do not talk about freedom. They have been supported by Apple, the company which hates our freedom so much that its app store for the ithings _requires_ all apps to be nonfree. (*)

The nonfree compilers that are now based on LLVM prove that I was right -- that the danger was real. If I had "opened" up GCC code for use in nonfree combinations, that would not have prevented a defeat; rather, it would have caused that defeat to occur very soon.

For GCC to be replaced by another technically superior compiler that defended freedom equally well would cause me some personal regret, but I would rejoice for the community's advance. The existence of LLVM is a terrible setback for our community precisely because it is not copylefted and can be used as the basis for nonfree compilers -- so that all contribution to LLVM directly helps proprietary software as much as it helps us.

The cause of the setback is the existence of a non-copylefted compiler that therefore becomes the base for nonfree compilers. The identity of that compiler -- whether it be LLVM, GCC, or something else -- is a secondary detail. To make GCC available for such use would be throwing in the towel. If that enables GCC to "win", the victory would be hollow, because it would not be a victory for what really matters: users' freedom.

3 comments

> it was a goal in the first two decades of the Linux kernel community

do you have any evidence of that? and why are you quoting RMS while talking about development of the linux kernel?

> do you have any evidence of that?

Yeah, the fact that only few years ago Linux was finally buildable with Clang.

If you have any proof that there were other reasons besides "nobody was working on that and the Kernel was using GCC extensions not found anywhere else" I'll be willing to look at them

These debates have been going on since the mid 90s, I don't know why people still ask questions about them, it's ancient history, GCC was the de facto compiler for Linux because Linus decided so and everybody else followed.

If there was no other reason than a philosophical one (the technical one is the GCC extensions) you could have built Linux with MSVC in 1997.

Reminder: the first two decades ended 11 (ELEVEN) years ago.

We are in the fourth decade right now.

> and why are you quoting RMS while talking about development of the linux kernel?

Because Stallman was in charge of GCC and the history of GCC and Linux are almost inextricable from 1991 onwards.

> If you have any proof that there were other reasons besides "nobody was working on that and the Kernel was using GCC extensions not found anywhere else" I'll be willing to look at them

I can't cite sources, but AFAIK Linux uses GNU compiler extensions. The reason is not to lock other compilers out, it's just that some of those extensions are genuinely useful.

> I can't cite sources, but AFAIK Linux uses GNU compiler extensions. The reason is not to lock other compilers out, it's just that some of those extensions are genuinely useful.

Of course.

They are genuinely useful to Linux.

Other did not use those extensions because they did not want to use GCC, for reasons beyond the technical merits, but because GCC is free software

If they could copy them, they would have done it.

For something to be considered a feature, it has to be beneficial to someone. I'm not arguing that the benefit should manifest in convenience. Who benefits from the Linux kernel not being able to be compiled by a certain compiler, and how?
> For something to be considered a feature, it has to be beneficial to someone

It was beneficial to Linux, the open source and free software, as in GPL licensed, kernel.

It was beneficial to its users.

It was beneficial to the free software movement.

It wasn't beneficial to corporations, probably.

Things in fact have changed when corporate sponsored interests raised around Linux as a money maker platform. And when Apple started its war against GPLv3 (suddenly GCC was not good anymore for them) .

> Who benefits from the Linux kernel not being able to be compiled by a certain compiler, and how?

Again: the fact that Linux was not being able to be compiled by a certain compiler doesn't seem to me it hindered its ability to become the most used platform in the server space (or one of the most used).

Any counter proof?

-----

As already stated: beneficial != convenient

Going to the doctor for regular checks is not convenient, but it's beneficial for your health.

Linux remained GPL, compiled with clang or not. It didn't become possible to use Linux in a non-free way, did it?
> Linux remained GPL

Apple started to use Clang because GPLv3 was stricter than GPLv2.

That's why you can compile Linux with Clang, because Apple did not want to use GCC anymore!

That was a feature back in the day.

It forced corporations to adapt to Linux, instead of the opposite.

And apple "is" vanguard/blackrock, which is msft/google/starbuck!/etc, keep that in mind.

Apple doing open source feels more like PR than anything else (they do "maintain"/"employ the main dev of" cups if I am not mistaken).

And yes, open source is not enough anymore: we need "lean" open source, and that includes the SDK (excluding de facto the ultra-complex c++ and similar).

The real hard part is, once a piece of lean open source is mostly "done", it is to resist planned obsolescence.

That said, I am a "everything in risc-v assembly" (with interpreters of high level languages written in assembly) kind of guy.