Hacker News new | ask | show | jobs
by simias 2292 days ago
I disagree, for anybody who knows how FreeBSD works the title is perfectly clear IMO. They removed FreeBSD from the base system. Of course you can still build GCC from ports, but that's not part of the base OS.

It's as if MacOS decided to stop shipping bash by default. Of course you'll still be able to install it yourself, but it's not part of the OS anymore and you can't rely on it being available and supported.

FreeBSD is not Linux, it's a full OS, not just a kernel. There's a very clear line between what's part of the base system and what's not.

7 comments

> I disagree, for anybody who knows how FreeBSD works

That excludes the bulk of this site's readers.

People are here obtusely misunderstanding more than just how FreeBSD works.

Imagine this:

"Microsoft has removed Notepad from Windows!"

"You dummy, no it hasn't; you can still get a Notepad for Windows from the Microsoft Store! Microsoft only removed it from the base installation of Windows, not from Windows as such."

Doh? If that happened, you would no longer be able to rely on any installation of Windows to have Notepad.

Perhaps, but then the distinction between the base system and ports will be lost on them too, and saying that it's merely been removed from the build system doesn't do this news justice IMO, it's more significant than that.

Maybe we could compromise with "FreeBSD has removed GCC from its base system" or something similar.

> Maybe we could compromise with "FreeBSD has removed GCC from its base system" or something similar.

I think this would make the best headline.

> Otherwise please use the original title, unless it is misleading or linkbait; don't editorialize. (https://news.ycombinator.com/newsguidelines.html)

Which would make the headline that is most in accordance with the guidelines here:

"remove GCC 4.2.1 build infrastructure"

The thing is that it is not significant news, except perhaps to FreeBSD base developers. It does not signify anything really, certainly not all of the things that people are reading into it even in this very discussion. It's not the death knell of GCC. It's not some sort of war. It has no impact on FreeBSD users, or on people building applications on FreeBSD. It's not even much of a change, considering that the actual concrete change, switching compilers, happened a while ago.
> The thing is that it is not significant news, except perhaps to FreeBSD base developers

I think it's significant news, and I have no connection to FreeBSD. It's a significant milestone for Clang, which makes it significant news to C programmers.

> It's not some sort of war.

Well, these compilers are competing with each other. It's a bit like the browser war, such as it is. If there were a respectable BSD-licensed browser, I'm sure the various FreeBSD-on-desktop distros would favour it.

> It's not even much of a change, considering that the actual concrete change, switching compilers, happened a while ago.

As a nail in the coffin moment I'd say it's still significant.

It’s a good time for the bulk of this site’s readers to learn something about the BSD philosophy then.

Edit: This comment was not meant to be snarky.

I'm a relatively new FreeBSD user, in fact I'm writing this on a Thinkpad running FreeBSD right now. The title is still super misleading, I had no clue that it was talking about the build infrastructure from the title alone - instead, I was expecting that my next version upgrade would remove GCC compatibility. Learning the FreeBSD philosophy doesn't change the fact that the title is inaccurate and unhelpful.
Yes, your next upgrade will remove GCC from the base system, not just from the "build infrastructure". However, you can still install the GCC port, as before.
With a tiny caveat: most folks actually won't feel this, because GCC hasn't been included in any x86 installed base system for quite a while now. Most exposure to it for many users would have been if they were cross-building archs that still required it, as the build infrastructure would bootstrap an appropriate GCC4.2 at that time.
I think you misunderstood what I was saying - I was expecting that this post would mean that GCC would stop working, or no longer be available, for me as a user. The point is that even for a FreeBSD user - albeit a new one - the title here is unclear on what "removed GCC" means.
But FreeBSD doesn’t control what software works on FreeBSD, that is up to the individual software maintainers. What you are describing would be “GCC has removed support for FreeBSD.”
Then you really need to read up handbook again. Removing things from base never meant what you think it meant.
You can't expect people to be experts in everything.
I didn’t expect people to be experts in everything, and my comment says the exact opposite: non-experts could learn a little bit about the subject.
I just learned something useful! There might be more crud in BSD, better avoid. The fact they only now remove gcc-4.2 as the base of their system has told me more than enough, thanks, but no thanks.
The title does not say "FreeBSD has removed GCC from the base system". It says "FreeBSD has removed GCC", full stop. Ports are also managed by the FreeBSD project, as I'm sure you'll agree.
But 'FreeBSD Ports' are not 'FreeBSD' itself.

Title was clear to me - yes, perhaps more clear as you say it though.

I've ran every major BSD as a desktop OS and my first read was "what?! I knew Clang was getting good at pretending to be GCC nowadays but there's no way they've thrown it out of ports, right?!". And indeed, they haven't, but not because I read the title correctly.
The title very evidently wasn't clear to the casual reader. Today, you learned something!
> It's as if MacOS decided to stop shipping bash by default.

More precisely, it’s as if macOS stopped shipping GCC in the CLT.

Oh wait, they did exactly that already, the last one being gcc 4.2 on Darwin 11, after that a GCC command is still present but it’s just a front to llvm.

https://github.com/archmac/packages/blob/master/core/apple-g...

> It's as if MacOS decided to stop shipping bash by default.

They switched from tcsh to bash, so it's not out of the question.

edit: looks like tcsh is still available, but not the default.

> and you can’t rely on it being available and supported

Is there a reason that you’d be relying on what’s included in the FreeBSD base system? If I were building a piece of software and developing a FreeBSD target for it, I’d probably just write a port manifest for it and contribute it; and in so doing, I can have my port manifest declare a dependency on the GCC port.

Just like if I create an Ubuntu PPA, I can depend on Ubuntu system packages, or even other people’s PPAs. (And it’s even less arduous than the Ubuntu PPA case, because PPAs are all their own third-party package repos that you have to add, while Ports is one flat namespace. As long as it’s “in ports”, you can depend on it without asking the user to do the equivalent of `sudo apt-repository add ...`)

IT security where you just get what they think you should be using, and regular accounts don't have execution permissions on any user accessible file system.
Presumably we're talking, here, about relying on GCC as part of the build-process of a package or script you're trying to deploy to this system.

If you don't have execute permissions, then, well, you're not going to be "installing" any software in any practical sense—you might be able to compile sources or copy files around, but you can't make the resulting binaries executable. Nor are you going to be doing much software development, for the same reason.

So why, at that point, would you need a compiler to exist on the box? It'd be like having GCC in a busybox installation.

Yes you will be doing software development, but only for what matters to your employer and nothing else.

Savy UNIX IT can take care of it, apparently the experience of what meant working in UNIX shops with thin terminals is now lost.

Though i dont know how FreeBSD works after reading the title my first guess was hah, so are they completely switching to clang or some other compiler. But i think maybe if the title read "FreeBSD would stop GCC support" or something would have made it more clear on the outset, may be thats what the he is referring to.
> so are they completely switching to clang or some other compiler.

Yes, they are -- your understanding was correct. The FreeBSD OS now exclusively builds with clang, and clang is also the compiler shipped with the system.

You can, of course, still install GCC, and many other packages, from the ports tree, but it is no longer part of the OS.

In fact for the vast majority of FreeBSD users (those on i386 or amd64), this happened years ago. Old GCC was kept in the tree for some Tier-2/Tier-3 archs (like MIPS), and is now removed because it's no longer used for those.
MacOS is moving to zsh (I think they still ship bash)
macOS Catalina, i.e. version 10.15, has actually already moved to zsh, but – as you said – bash is still installed:

% bash -version

=> GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)

I ran FreeBSD for years, and this title still surprised me. I thought it was gone from ports too for ____ reason. Misleading