Talk:GNU Compiler Collection/Archive 1

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Archive 1 Archive 2 →


Needs to mention how egcs forked from gcc, then proved so much more vital that it was eventually 'blessed' as the official gcc. - David Gerard 00:39, Jan 13, 2004 (UTC)

Yeah. A little tricky to describe "encyclopedically", since much of the activity has never been published before, for instance the part about Gumby holding the phone away from his ear. :-) Stan 00:56, 13 Jan 2004 (UTC)
Heh. A bit here, and I wrote something for EGCS as well, based strictly on the FAQs. Cat, meet pigeons ... - David Gerard 14:21, Jan 13, 2004 (UTC)


The link for "doxygen's output for trees" is broken. Can anybody find a current link for that? user:sander123

I've commented it out for now. If anyone finds it again or wants to put it up themselves ... - David Gerard 17:17, Feb 25, 2004 (UTC)

"In computing"

Phrase In computing, GCC is the GNU Compiler Collection. came from disambiguation page and is not useful the article.

  • It says that GCC is the GNU Compiler Collection - it is not valuable, because the article named GNU Compiler Collection, not GCC.
  • It says that GNU Compiler Collection is computing term. It is not usefull, becuase it is too broad the next definition more scpecific and useful.

Phrase GNU Compiler Collection (GCC) is a free programming tool' is much more better. - Kenny sh

Must mention "in computing" - the word 'programming' has other meanings, even if relatively minor - David Gerard 15:15, 5 Jul 2004 (UTC)
Do you think, that all others software related artcles should have In computing, in the beginnig? Kenny 16:36, 2004 Jul 5 (UTC)
There's probably a slicker way to phrase this for the lead - give me a chance and I'll see what I can do. Stan 18:54, 5 Jul 2004 (UTC)
It's the shortest possible way I could think of for it - "In xxx," is a commonly used lead. It's TWO WORDS ... if you can think of something simpler ... - David Gerard 21:44, 5 Jul 2004 (UTC)
When you write "In computing, this is .. ", I (and may be others) expect some thing like "But not in computing this means ... ". That is sutable for disambiguation page. This page is only about GNU Compiler Collection (BTW, which I use every day), even not about acronym GCC. On disambiguation page you may to mention about another meanings of acronym GCC. Phrase "GNU Compiler Collection (GCC) is a free set of programming tools" makes "In computing," senseless and redundant. I propose to move In computing, somewere latter, and leave the first phrase GNU Compiler Collection (GCC) is a free set of programming tools, which is direct, priecise and simple. Kenny 08:35, 2004 Jul 6 (UTC)
I strongly disagree. Articles should work standalone. And many articles in other fields - and in computing - start "In xxx," so that someone who e.g. gets there with 'Random page' has some vague idea what on Earth it's talking about - David Gerard 11:24, 6 Jul 2004 (UTC)
What other kind of programming tools are there? --Ævar Arnfjörð Bjarmason 12:37, 2004 Jul 6 (UTC)
There are numerical programming tools at least, and cults have programming tools too, although they don't typically call them that themselves. "In XXX" is a kind of band-aid, a useful way to set context when you can't think of something more elegant. Stan 13:00, 6 Jul 2004 (UTC)
It seems to me the only difference between the opinions presented here is that some people dont like the In xxx, ( i personally like the other style better ). But the mutual agreement is that people actually find out what this GCC thing is, therefor you need to ask yourselves if that point indeed is getting across, and if not; fix it. --Ævar Arnfjörð Bjarmason 13:12, 2004 Jul 6 (UTC)
What I was thinking of was 'programming' as in putting together a program of activity - "programming" is the word used for this - David Gerard 16:52, 6 Jul 2004 (UTC)

I put in a new lead, a little more focussed on GCC specifically; GCC does not include any assemblers or linkers, the previous lead left that impression. I don't say "computing", but I do say "software" and "programming", which should set context sufficiently for anybody over the age of 12, plus the all-important "compiler" link which is how you find out what it is exactly. Stan 13:35, 6 Jul 2004 (UTC)

Better, yes. I've tightened it a bit and changed "Linux" to "open source Unix-like", 'cos it's pretty much universal amongst them - David Gerard 16:48, 6 Jul 2004 (UTC)
How about a change to among unix-like operating systems, gcc is (by far, very popular, whatever) compiler i think we should avoid the word "standard" here, also, mention that it is also used on none-unix like systems, but not as common. --Ævar Arnfjörð Bjarmason 17:22, 2004 Jul 6 (UTC)
"standard" is a good word in this context - the source codes of the OSes have lots of GCCisms, any other compiler would have to work to handle. GCC is actually unpopular with many BSDers, who hate GCC but use it because there is no comparable BSD-licensed alternative. The non-Unix part could be handled with a "many different systems", then use a later section for more detail about usage/popularity on the various platforms. Stan 18:06, 6 Jul 2004 (UTC)
I still think it's not right to say standard is Windows standard just because it is the most common OS? There is a difference between a standard and something that is dominant. It is right to say that there are almost no others ( ICC springs to mind though ). But i still think it needs to be reworded. --Ævar Arnfjörð Bjarmason 18:49, 2004 Jul 6 (UTC)
You missed my point - GCC is standard not because it's the most common, but because it's always there, and because the OSes are written to work with GCC, not the other way around. It's not a formal standard in any sense, but "standard" in English has a variety of less-formal meanings, and no other word conveys those meanings as accurately. Stan 17:51, 7 Jul 2004 (UTC)
Yes. In conventional usage, it is correct to state that gcc is standard on Linux, the BSDs, BeOS and Mac OS X - in fact, it might even be a particular version - David Gerard 13:12, 8 Jul 2004 (UTC)
Stan, thats where you're wrong not all of these OSes are written to work with GCC, GNU/Linux might be but OpenBSD and NetBSD, and probably FreeBSD are not. They are written in ANSI C without any GNU extentions. --Ævar Arnfjörð Bjarmason 16:00, 2004 Jul 8 (UTC)
Sure, the BSDs' intent may be to be ISO C, but have they tested with a different compiler? There are lots of subtle ways to be dependent on a particular one. For a compiler that's not "standard", the BSD folks sure get concerned whenever we change the unspecified aspects of GCC behavior! :-) Both GNU/Linux and Darwin/OS X are deliberately made GCC-dependent, and they both call GCC their standard compiler. So however you want to phrase it, you're not really going to be able to avoid the word without seriously misrepresenting GCC's position in the world. Stan 16:44, 8 Jul 2004 (UTC)
No, I'm speaking from the viewpoint of the OSes in question. GCC is the assumed compiler. If you want an application to work as anything other than a static binary - if it has to use system libs - you'd better use the compiler that has been assumed - David Gerard 16:58, 8 Jul 2004 (UTC)


I forgot to add it to the comments but i reverted the page due to vandalism

Thanks for the note - vandalism is unfortunately so frequent that we usually only bother to note a reversion in the edit summary, thus all the "rv" lines you see in the recent changes for instance. Stan 05:14, 17 Jun 2005 (UTC)


Shouldn't the screenshot actually show the output of gcc? Now it just shows the terminal emulator Rxvt.

Well, the contents of the terminal show gcc being used. Don't know what else you could want from it, save for possibly an illustration of gcc spewing errors.
Maybe it's just me, but doesn't it seem kind of silly to have a (37 K!) screenshot of a program that is by its nature text-only? -- magetoo 17:26, 3 December 2005 (UTC)
Screenshot has been changed to GCC showing the --version string. I was going to show the output of 'gcc -v' but it was too ugly and verbose. --Bk0 (Talk) 03:23, 15 December 2005 (UTC)

A Note on Bootstrapping?

I saw this on this page: "writing the compiler in X, then hand-compiling it from source (most likely in a non-optimized way) and running that on the code to get an optimized compiler. This method is used for GCC," and I would like to know more. Perhaps this GCC article could provide more information? —This unsigned comment was added by Uranther (talkcontribs) .

That's not really what GCC does. From memory, I believe when GCC bootstraps it first compiles a minimal compiler from sources that don't contain GCC language extensions (using the system compiler), creating the stage 1 bootstrap compiler. That stage1 compiler is then used to compile the full GCC sources, creating the stage 2 compiler. The stage 2 compiler is used to again compile the full GCC sources, and then the stage 2 and stage 3 binaries are compared. If they differ, the build aborts with an error. If they are identical, the stage 3 compiler is used to build all the support libraries and is installed as the final GCC build. --Bk0 (Talk) 05:54, 23 March 2006 (UTC)

New screenshot issue

The new screenshot has been removed twice, with a comment saying that it does not work and that the image doesn't exist. It *does* work for me. *Yes*, I did clear my cache and loaded the page freshly. How can this be? Especially, this link points to the version where the new screenshot has been put in place again and it *does* work for me there. this link points to the image page and it *does* work for me. Finally, this link points to the image itself, which *does* work for me. So what am I missing? Maybe it's being linked to in an incorrect manner, so that it works under some circumstance, but not others. Please help.

Middle End

Should the middle end paragraph be moved into its own section (like front end and back end)? -- 18:54, 25 May 2006 (UTC)

On Portal:Free software, GCC is currently the selected article

Just to let you know. The purpose of selecting an article is both to point readers to the article and to highlight it to potential contributors. It will remain on the portal for a week or so. The previous selected article was Samba. Gronky 21:03, 8 June 2006 (UTC)

broken cross compilers

Cross compiler says:

However, due to limited volunteer time and the huge amount of work it takes to maintain working cross compilers, in many releases some of the cross compilers are broken.

How true is this? Should this be said on Cross compiler? Should it be said here? -- Sy / (talk) 15:04, 20 June 2006 (UTC)

This is generally true, although "broken" is imprecise - better might be "only partially functioning", because people will say "broken" when they get an error cross-compiling one funtion in newlib or something, when everything else is OK. I don't know if I'd say maintaining a cross-compiler is a "huge amount of work", but it is more than native, because there are more pieces to manage. Stan 20:22, 20 June 2006 (UTC)

gcc from Pastel to C

Len Tower's article has been deleted, restored, and is listed for deletion again. Can anyone please confirm that he not only was working on the conversion from Pastel to C, but provided "notable" contributions? Thank you. LossIsNotMore 15:58, 27 September 2006 (UTC)

A Suggestion for "Supported Architectures"

I came to this page to see what architectures were supported by the compiler. As an idea, it'd be good to see the supposted architecutres broken up by processor class. E.g. 8-bit microcontrollers, DSP Chips, etc.

Just a suggestion :)


I don't think that GCC should redirect to this article. Firstly because that was not and is not the original or primary meaning of the acronym, and secondly as a consequence this reeks a bit of revisionism. The C Compiler is of much more encyclopedic interest anyway, as it was/is of critical importance to the GNU/Linux platform. The rest of the Collection is mostly of academic interest only. Would anyone object to splitting the article to deal with the C Compiler and the Compiler Collection as separate entities? Though since GNU decided to supersede the original meaning, that could cause confusion since there is only one current and official meaning. That being the case, perhaps the title of the article should be purposely left in abbreviated form as "GCC"? This seems to be the best compromise between the historical and prevalent meaning vs the official meaning. VanishingUser 01:00, 24 April 2007 (UTC)

Well, GCC is already a perfectly fine disambig page, nothing to mess with there. And when you say C compiler, are you including or excluding C++ and Objective-C? Also, the Ada compiler is used to help make things that blow people up, hardly seems "of academic interest only", while the Fortran compiler is used by various researchers. The compiler was officially renamed because we got tired of explaining that it wasn't just a C compiler; WP generally follows official names, unless there is some kind of overwhelming objective evidence, like survey results - we don't want to be influenced by people's subjective opinions. As for splitting, the split-off article wouldn't have much to say besides describing the internals of the C frontend; while I could probably write such an article, I'm not really interested in going to that level of detail. Unless you're ready and able to write at least two pages of new content on the C frontend, the split isn't going to be worthwhile. Stan 01:51, 24 April 2007 (UTC)


Aren't there any? I believe on the article about the XCode, which uses gcc, it's mentioned that gcc is slower than CodeWarrior's compiler. --M1ss1ontomars2k4 23:51, 16 September 2007 (UTC)

In fact, it seems there is no mention at all of how fast/slow or big/small the outputted binaries are. If someone can contribute on this topic, please be bold and go for it! --Gronky 07:27, 17 September 2007 (UTC)
It's also a known problem that GCC and Make are interdependent. That is, to install GCC on Linux, you need GNU Make installed, and to install GNU Make you need GCC installed. ZappyGun (talk) 13:07, 8 May 2008 (UTC)
I added one. Anyone care to expand on it? :) --Jacob Myers (Flame me!) 13:04, 23 December 2008 (UTC)

Architectures - bad style

The list of hardware in the "Architectures" section should be removed. Wikipedia is not the place to list such information, it is surely listed on other websites such as Wikipedia should just say "runs on 41 architectures" and provide a reference with a link to the page. --Gronky 07:32, 17 September 2007 (UTC) will typically only list currently supported types by the FSF version, whereas this section includes both historical ports and non-FSF ports. So not a good idea to rely on for all info in that section. Stan 20:38, 17 September 2007 (UTC)
Ok, but the current list is unencyclopediac. Wikipedia doesn't have to act as the record of all architectures ever supported by any piece of software. If it can do that, that's great, but the crucial thing is that it has to remain an encyclopedia article.
Maybe if the current supported architectures are removed, the remaining ones would make a list short enough to be discussed paragraph-style? --Gronky 20:47, 17 September 2007 (UTC)
First define "encyclopedic", without using any tautologies. Plus, this is a multi-target compiler, for which the list of target architectures is the most important thing about it. Stan 19:34, 18 September 2007 (UTC)
Without any explanation of what all that jargon means, those lists mean nothing to almost everyone on the planet. --Gronky 20:23, 18 September 2007 (UTC)
Um, that's why they're links. Keep things in perspective, 99% of the content in our articles on software are unintelligible to almost everyone on the planet, yet relatively few people suggest we reduce those articles to stubs. Stan 08:22, 19 September 2007 (UTC)
Here's something funny. While we're having this discussion, some anon has come along and added another architecture to the list on the page. So how can anyone verify that these lists are correct? How can I even check if some of these architectures even exist!?
That section of the page has turned into a primary source, which Wikipedia can never be. The information must be available externally, and this page will just have to link to that page.--Gronky 09:24, 18 September 2007 (UTC)
AVR32 has a link to the website describing the GCC port, not much of a mystery there. The best sources for past architectural support are old printed GCC manuals - I have various editions going back to 1989, in fact those manuals are the basis for the list that's there now. So if you delete the list, you've made the information unavailable to everybody that doesn't have a personal library of older GNU manuals. If some of the architectures are redlinks, that's because WP coverage of Japanese embedded processors is lacking - too many people thinking the whole world is x86, tsk tsk. All of this stuff is extensively documented externally, just not in one place - WP's "value-add" is that here it's all in one place. Stan 19:33, 18 September 2007 (UTC)
It would be a shame if that information was not available, but Wikipedia isn't GCC's backup website, and it's not anyone's list-storage solution, etc. The list can be preserved here on the talk page, or on your user page. Think the whole world is x86? That's where you've gone wrong. You've forgotten that to most of the world "x86" is no different from a23, d55, o70 etc.
If the section was turned into three paragraphs that said what these things were and why it was notable that GCC supported them, that would be interesting. "GCC was the first to support the XX architecture, used by CompanyY. It was ported to the XY architecture after Windows discontinued support... etc." That would be useful. --Gronky 20:23, 18 September 2007 (UTC)
Hold on, so now you're saying that the full list would be acceptable if it was expanded into a sort of running text version? How about an annotated list, which preserves the quick lookup ability? I can think of specific notabilities for most of those ports, haven't written them down because I have a horrendous backlog of images to upload. Stan 08:22, 19 September 2007 (UTC)
Ok, well there's no rush. If you could turn that list into a discussion of GCC's porting history, that would be great. --Gronky 09:15, 19 September 2007 (UTC)



Our history section is a bit anaemic right now, the EGCS article doesn't seem to be getting any more detailed, and per the #egcs section above it's possible that it's not going to do so (due to lack of hard sources). We should probably merge it in here, because when it comes down to it EGCS is little more than a footnote in the history of GCC now. Chris Cunningham (talk) 11:06, 7 January 2008 (UTC)

  • Agree --Gronky (talk) 16:14, 11 February 2008 (UTC)
  • Agree And redirect, or course. — Becksguy (talk) 06:28, 15 February 2008 (UTC)
  • Agree Tchalvakspam (talk) 16:32, 15 February 2008 (UTC)
  • Agree - merge seems reasonable. arny (talk) 18:48, 16 February 2008 (UTC)

It's been almost two months now since the proposal. I think there has been sufficient time for consideration and sufficient consensus to merge and it really doesn't seem controversial. Lets just do it. — Becksguy (talk) 09:55, 2 March 2008 (UTC)

Done. Chris Cunningham (not at work) - talk 12:47, 2 March 2008 (UTC)

That was fast. Nice. — Becksguy (talk) 13:10, 2 March 2008 (UTC)


What do you think about expanding the history section with a list of dates and major revision numbers? I read plenty of text that says as of gcc x.zz feature y has been available. It would be nice to know approximately what date that version of gcc became available. Daniel.Cardenas (talk) 20:45, 8 July 2008 (UTC)


Compared to close to 100% of open source projects, gcc performs VERY poorly. Most open source projects are among the best in their field. gcc, unfortunately is among the worst in its field. Yes, it can produce code for almost every platform. But it creates the worst code on almost any of those platforms than any other compilers. It can compile. That is pretty much all that can be said about gcc. Intel's compilers and Microsoft's compilers, in most cases, create code that is SO MUCH FASTER.

Most open source projects are "close to optimal". gcc, despite the long time that it has been worked on, is just dismal. Even more so from an open source kind of view.

Apart from the "open source" label, I don't think any self-respecting *n*x user would want to use gcc. It's portable, sure. It also creates the worst code possible on most of the platforms it has been ported to. Compared to other compilers on those platforms. (talk) 03:14, 19 June 2009 (UTC)

May be we can have a section that compares gcc and Open64?? Raysonho (talk) 05:34, 19 June 2009 (UTC)

Dead link re optimization

We currently cite, a dead link, for the (uncontroversial) sentence:

The RTL optimizations are of less importance with the addition of global SSA-based optimizations on GIMPLE trees,<ref ...> as RTL optimizations have a much more limited scope, and have less high-level information.

Out of interest in the topic, I turned to the Internet Archive and found Should we use one of these PDFs as the source for that sentence?

(I see that Mr Novillo's 2004 GCC summit paper "Design and Implementation of Tree SSA" says "Another source of compile time slowness are the presence of RTL optimizations that have been superseded by Tree SSA." I haven't read the slides.) Cheers, CWC 10:54, 22 September 2009 (UTC)

Fixed by user Alainr345 (talk · contribs) in this edit with a link to an article from Red Hat Magazine — thanks!. That's a useful article, so I've added it to the ELs section as well. Cheers, CWC 12:54, 4 January 2010 (UTC)

Updates to Further Reading section

While doing a tidy-up of the External links section, I decided to add year of publication to the list of books under Further reading. It turns out we've been linking to rather outdated versions of the GCC documents:

So I replaced those links with the most recent versions of the "Using GCC" and "GCC internals" manuals"

Was there some reason for sticking with the old links? Does anyone have any objections to, or comments about, these changes?

In addition, I removed the The Jem Report: More on OpenBSD's New Compiler (changed to PDF because HTML link is dead) which is already used as a reference. Cheers, CWC 12:45, 4 January 2010 (UTC)

GPL Licensing

If gcc is GPL software, does that mean anything you build with it is automatically GPL'd (i.e. free as in free beer)? I doubt the GPL can extend itself this way, but I'm not sure why. —Preceding unsigned comment added by (talk) 19:56, 23 February 2010 (UTC)

No. If you wrote a program (to analyze code, for example) that used source code from GCC, the GPL on that source code would require you to put your program under the GPL. But if you just use GCC to compile a program, there is no requirement to put that program under the GPL. Hope this helps, CWC 21:53, 23 February 2010 (UTC)


Cc1 redirects to this article. What does Cc1 mean? --Abdull (talk) 12:34, 2 March 2010 (UTC)

I believe cc1 is the compiler executable. During the different translation phases of a compilation, the compiler driver typically runs one or more of cpp (C preprocessor), cc1 (compiler), and ld (linker). decltype (talk) 12:43, 2 March 2010 (UTC)
To be more precise, "cc1" is the C compiler. The C++ compiler is "cc1plus", and so forth. "cc1" is an old naming convention (once used by PCC I think), with "cc0" as preprocessor etc, but that's so obscure that the redirect to here is probably still sensible. Stan (talk) 13:58, 2 March 2010 (UTC)

GCC Linfo link

A link to LINFO was dead (, it seems to have been moved to I checked with waybackmachine ( and the new page seems identical. I took the liberty to update it. --Sahedin (talk) 21:55, 27 April 2010 (UTC)

I forgot to add that the main page for contains a link named LINFO that takes you to to So the link should be ok. --Sahedin (talk) 22:06, 27 April 2010 (UTC)

Thanks for doing that, Sahedin. Cheers, CWC 04:28, 28 April 2010 (UTC)

History - loaded language and inconsistent citation

The history section uses the word "blessed" in a context where it does not belong ('the FSF ... "blessed" EGCS as the official version of GCC'), which suggests some bias on the part of the author. Perhaps a word like "adopted" would suit the context better, but as a relatively inexperienced Wikipedia editor I thought I should bring it up here first. Also, some of the paragraphs in History have a lot of citations, and others have none at all. I'd be happy to help find citations for the content there, but again I thought I should bring it up here first in case someone would rather rewrite those sections instead, since they contain ambiguous and unhelpful phrases like "the difficulty in getting work accepted by the official GCC project was greatly frustrating for many". - (talk) 10:30, 12 May 2010 (UTC)

Feel absolutely free to rewrite or remove anything that doesn't adhere to NPOV, or is contentious and unsourced. Make sure you provide an edit summary when doing those changes, so it's clear what your intentions are. Thanks for helping, decltype (talk) 10:39, 12 May 2010 (UTC)
"Blessed" is the right word in this context I think - "adopted" generally carries an implication of doing something as part of adoption process, but in this case the people actually working on the compiler didn't do anything different from the day before to the day after. "Declared ... to be" or "designated as" would work too. The bit about getting work accepted is a rather genteel description of the ranting and raving I personally heard on a daily basis, but I don't know how much it's been written about - a quick scan of my bookshelf didn't turn up anything usable. Stan (talk) 13:08, 12 May 2010 (UTC)