Talk:GNU Compiler Collection

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

C++ use now approved for developing gcc proper[edit]

As of June 2010 there are plans being discussed to use C++ as the implementation language for certain upcoming features in gcc:

This should probably be mentioned in the main article, given that gcc has traditionally been required to be written in C for bootstrapping purposes? —Preceding unsigned comment added by Parallelized (talkcontribs) 20:08, 6 June 2010 (UTC)[reply]

Good point. I've added a short para to the "Structure" section, as an interim solution. It will be interesting to see how this change works out. Cheers, CWC 10:51, 9 June 2010 (UTC)[reply]

Missing fact:GCC development is largely controlled by a steering committee[edit]

The fact that major gcc development decisions are handled by a steering committee should probably be also mentioned in the article?

--Parallelized (talk) 11:51, 11 June 2010 (UTC)[reply]

You're right (again!). I added a short mention in the EGCS fork subsection. Corrections and improvements welcome, as always. Cheers, CWC 15:09, 11 June 2010 (UTC)[reply]

BSD complaints exaggerated[edit]

The #Criticism section kinda exaggerates an "anti-GCC" position among BSDs. There's one link to a developer calling GCC slow/bad, but that sort of talk is normal for developers. (Plus a broken link to the Jem Report.) Even GCC devs complain about things in GCC being broken, but that's just how devs talk. It doesn't mean they hate their own project.

As for replacing GCC, yeh, there are individuals or subgroups working on possible replacements, but they've been looking into these alternatives for years and no one has even a working proof-of-concept.

I'm not saying these projects are doomed. (That would be speculation, suitable for a forum, not for an encyclopedia) I'm just saying we should document the current situation faithfully. Gronky (talk) 12:39, 29 July 2010 (UTC)[reply]

I don't follow the BSDs closely enough to know what's happening here, but I do know that the Criticism section is pretty rotten. I took a close look while making this edit, and I do not like what I saw.
It would be great if someone could find a good secondary source on this topic. Failing that, could someone with some clue in the area do a WP:BOLD rewrite? Failing that, I may have a go myself, despite my lack of clue here. Cheers, CWC 06:23, 14 August 2010 (UTC)[reply]

Not to mention the whole GPLv3 discussion should not be here but rather in the GPLv3 page. And the clang/llvm page should mention that Apple is the major contributor to those projects. And Apple/NeXT has in the past not be been a good citizen in FOSS communities including GCC. With a mention of how the Objective-C front-end got contributed to GCC in the end. -- Andrew Pinski —Preceding unsigned comment added by 12.108.191.226 (talk) 01:41, 14 August 2010 (UTC)[reply]

Hi, Andrew. I've left a welcome message on user talk:12.108.191.226. Did I get the bit about Cavium Networks right? If I stuffed up (always a possibility), feel free to fix it or contact me.
If we follow Wikipedia's rules (sadly, that's a big "if"), we would need a good source about Apple and GCC before mentioning Apple's bad record with FOSS (preferably a secondary source, otherwise a primary source; tertiary sources are right out). I don't think we'll find such a source. LLVM and related projects have a BSDish license dating back to LLVM's start as at a university, they are committed to that license, and they have lots of non-Apple developers (even if most of the development is funded by Apple). Which is why I undid your recent edit to the article. I hope you don't mind ... and keep contributing to Wikipedia. Cheers, CWC 07:14, 14 August 2010 (UTC)[reply]

Posting a bug report as "criticism"[edit]

I just removed four paragraphs, plus three lines of c pointer arithmetic(!). GCC has a bug, and it's in the bug tracker, and it's been discussed. Actually, GCC has hundreds of bugs, and they're in the bug tracker too. No one expects a compiler to be bug-free, so GCC developers acknowledging a bug does not mean that GCC is regularly criticised for this particular bug.

We should be developing the content of this article toward not having a "criticism" section. Info about memory and pointers should be in a section of the article about GCC internals and techy attributes. Gronky (talk) 22:23, 14 August 2010 (UTC)[reply]

Problem Solved[edit]

Well, one does not have to have a criticism section for the sake of it (as this one originated back in 2008), and the content as it stood was not critic of the actual software but rather a discussion on the different goals and philosophies of GNU and BSD--the parts that could be substantiated by references, that is.

If anyone is willing to find proper sources where actual characteristics of the software compare unfavourably to alternatives or are otherwise deemed questionable, you're more than welcome to reinstate this section, but in the meanwhile I've shitcanned it as I didn't think it was salvagable as it stood. —Preceding unsigned comment added by 88.27.135.125 (talk) 05:09, 19 August 2010 (UTC)[reply]

see this above: "Missing fact:GCC development is largely controlled by a steering committee". these committees do not publish "successful examples of compiling supported languages" ... there are many options and build fails - you need a string of unpublished keys to get it to build simply natively on a linux using a recent gcc. It is not as open as they advertise. — Preceding unsigned comment added by 2601:143:480:A4C0:7C1F:530E:EA36:FCDA (talk) 20:54, 26 March 2021 (UTC)[reply]

Useful article in The H[edit]

The H recently published a good history of GCC by Richard Hillesley. It is reasonably short but gives a lot of detail. It may be of use in the article (I don't have time to check, sorry); if not, we could consider adding it as an External link. Cheers, CWC 06:51, 28 August 2010 (UTC)[reply]

Competing compilers in the 80s[edit]

It would be interesting to note what else was available in the 80s when GCC was being written. Why was GCC necessary? What other projects could have been used as starting points but were rejected? Why did so many developers start using GCC? Was it the best quality around? The best of the zero cost compilers??

A developer from that epoch told me that in 1991 Johnson PCC and dbx/adb were perfectly viable alternatives to GCC and GDB. Not nearly *as* good, mind you ... Johnson PCC was probably never "open source".

A possible starting point. Gronky (talk) 11:02, 5 June 2011 (UTC)[reply]

I'm not sure that people were really swarming to it in the 1980s, but in my case I started using it for a research project at Apple because I needed to retarget to a novel VM, and I didn't want to spend months negotiating for access to sources of unknown retargetability, plus as a small project there wasn't budget to pay hefty licensing fees. It did turn out to be better quality, once I got it working. My experience is unpublished so far as I know, but you can find relevant quotes in Linus' comments on Linux early days, and in Tiemann's Open Sources chapter. It should be kept in mind that open source projects were very few in number in those days, full C compilers even fewer, and there wasn't anything like handy web pages to list the options. :-) Stan (talk) 13:05, 5 June 2011 (UTC)[reply]

A license from AT&T (and the successor holders of the IP rights to UNIX) was required for use of PCC, at least to 1997, which I moved on from the GNU Project.

I remember the USENIX where Steve Johnson told me that he was glad that a better alternative to PCC was finally available (we talked for a long time, and it was clear he had read the source code of the compiler). A professional judgment we heard from many others. Also about GDB being better than dbx/adb. GCC was what got the USENIX and UNIX communities to really believe that the GNU development model worked, and would produce major software of use to the UNIX community.

Of course, the trade journals weren't interested in covering a non-commercial project, and we at the GNU Project published community-reviewed/improved software, not peer-reviewed journal articles. Over that decade many of the software firms that specialized in compilers closed. Most due to being out-"competed" by GCC. Which mirrored what happened with software firms, a few years earlier, that sold versions of Emacs. I don't have citations at hand. A lot of this was noted in gnUSENET, but that doesn't really meet WP standards.

It would be a great add to this WP article, if it can meet WP standards. I suspect the switch of BSD from PCC to GCC can be adequately cited. Lentower (talk) 04:49, 6 June 2011 (UTC)[reply]

History[edit]

This section contained what appear to be some self-serving WP:COI misstatements [1] and [2] of the historical record which I have corrected, with citations. None of the code in the Lawrence Livermore compiler that Tower worked on made it into GCC. Also, Tower did contribute but he was certainly not the senior author; the author was Stallman. Msnicki (talk) 00:22, 10 October 2011 (UTC)[reply]

The "unfinished GNU operating system"[edit]

In the first paragraph of the article, we find a passage that reads, "As well as being the official compiler of the unfinished GNU operating system, GCC has been adopted as the standard compiler by most other modern Unix-like computer operating systems, including Linux, the BSD family and Mac OS X." When reading this, I tripped over the claim that the GNU operating system is not finished. This is unclear, what in the GNU operating system is 'unfinished'? Is it unfinished because the original kernel written for GNU isn't used? If that's the case I don't see why 'unfinished' should be mentioned right at the top of the article without an explanation to the 'unfinished' state. This can lead a reader to think GNU is broken and unusable or something down that line.

I recommend removing the claim of 'unfinished' for the GNU operating system since:

A) It's ambiguous
B) This is an article for GCC not the GNU operating system. Let's not make claims that we can't go into details about due to it being outside of the article's scope.
C) The claim has no citation.

It should read as the following:

"As well as being the official compiler of the GNU operating system, GCC has been adopted as the standard compiler by most other modern Unix-like computer operating systems, including Linux, the BSD family and Mac OS X."

Regards, -- Joel M.Chat ✐ 17:05, 6 January 2012 (UTC)[reply]

Would you prefer we refer to it as the "non-existant GNU operating system"? So far as I know, the FSF never got around to even starting the actual OS, only the tools that might go with one, and an actual GNU operating system certainly doesn't exist in any sort of finished form today. So what's wrong with referring to it as unfinished? At best, that's what it is, isn't it? Msnicki (talk) 17:42, 6 January 2012 (UTC)[reply]
You seem to be confusing operating system with kernel. They built most of the operating system, the kernel they made is still not ready for the primetime though (GNU Hurd). IRWolfie- (talk) 11:41, 3 February 2012 (UTC)[reply]
You seem confused about what an operating system is: "An operating system (OS) is a set of programs that manage computer hardware resources and provide common services for application software." The operating system is the part that runs in kernel mode. What GNU contributed were things that run in user mode. Those are applications, even if they are things like gcc, bash and grep. They may be bundled with a distribution, but they are not part of the OS. Msnicki (talk) 16:46, 3 February 2012 (UTC)[reply]

Quotes[edit]

The Theo quote is totally misleading in the optimizations section. GCC does *less* optimization than well-known proprietary compilers like ICC, and back when GCC optimization was poor, all I ever heard was "GCC produces bad code" over and over and over again. (I sat in many customer meetings.) One random quote doesn't prove or disprove anything, except that one person has a contrary opinion. At the very least it should go the random criticisms section. The Linus quote is also problematic - if you think about it, what he's really saying is that he wants GCC to accept his idea of the language rather than an ISO standard. Linus should complain to the ISO rather than claiming "total disregard", which is just a gross exaggeration of the sort that he's prone to express. Without further explanation/context, I think these two quotes are a subtle way of sneaking POV in where it doesn't belong. Stan (talk) 17:53, 3 February 2012 (UTC)[reply]

I don't have the personal knowledge to evaluate the claims (I don't presently use gcc and never got enough experience with new code when I did use it) but I have the same concern you do. I'm suspicious of a non-WP:NPOV agenda as well. Presently, the take-away for most readers is probably that these complaints represent a consensus in the user communities, even among the most respected individuals. I have no idea if that's actually true (but I'm skeptical.) Msnicki (talk) 18:04, 3 February 2012 (UTC)[reply]

Mac OS X's standard compiler[edit]

Mac OS X's standard compiler is now llvm. I'm not sure how it would be best to update the lead here; should mention of Mac OS X just be stripped from the lead, or it important to note that Mac OS X *was* using gcc and is now using something else? --Steven Fisher (talk) 00:40, 1 May 2012 (UTC)[reply]

Drop from the lede, mention OS X in the second para as one of the notable GCC ports, which is true irrespective of what Apple does with GCC now or in the future. Specific version usage is probably too minute for this article, but maybe a mention of standard-ness in history section. Stan (talk) 19:41, 1 May 2012 (UTC)[reply]

External links modified[edit]

Hello fellow Wikipedians,

I have just added archive links to one external link on GNU Compiler Collection. Please take a moment to review my edit. If necessary, add {{cbignore}} after the link to keep me from modifying it. Alternatively, you can add {{nobots|deny=InternetArchiveBot}} to keep me off the page altogether. I made the following changes:

When you have finished reviewing my changes, please set the checked parameter below to true to let others know.

This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}} (last update: 18 January 2022).

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers. —cyberbot IITalk to my owner:Online 06:03, 26 August 2015 (UTC)[reply]

Linfo.org source[edit]

The claim that GCC works on more platforms than any other compiler carries a reference that has been tagged as potentially unreliable since 2013. I've started a discussion on the RS noticeboard. QVVERTYVS (hm?) 14:16, 18 November 2015 (UTC)[reply]

C library section irrelevant[edit]

This section doesn't belong in the discussion of a compiler. GCC also works just fine for BSDs, Solaris, etc. They don't use glibc and GCC is not tied down to it. The choice of libc used is a runtime option that happens to have defaults that work. 141.226.218.124 (talk) 23:45, 17 November 2016 (UTC)[reply]

GCC Ports must be built by user[edit]

Can someone add a section explaining that the different compilers *themselves* have to be built by the user? It is not very clear here or in the official page that there are apparently no official ready-to-use builds. Additionally, a short, rough guideline on the organization of the GNU project -and how a user must proceed- would be useful for the purposes of the article. Even the official site is rather convoluted. — Preceding unsigned comment added by 221.133.24.102 (talk) 07:40, 6 April 2017 (UTC)[reply]

Version history[edit]

A version history would be nice. User:ScotXWt@lk 10:00, 28 July 2017 (UTC)[reply]

External links modified[edit]

Hello fellow Wikipedians,

I have just modified 3 external links on GNU Compiler Collection. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}} (last update: 18 January 2022).

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 19:50, 14 September 2017 (UTC)[reply]

External links modified[edit]

Hello fellow Wikipedians,

I have just modified one external link on GNU Compiler Collection. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}} (last update: 18 January 2022).

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 16:11, 9 October 2017 (UTC)[reply]

Strict standard support for C11[edit]

"Regarding language version support for C++ and C, since GCC 11.1 the default target is gnu++17, a superset of C++17, and gnu11, a superset of C11, with strict standard support also available." I think that needs a citation. TheGoatOfSparta (talk) 00:37, 1 February 2024 (UTC)[reply]