Language Selection

English French German Italian Portuguese Spanish

Getting Familiar with GCC Parameters

Filed under
HowTos

gcc (GNU C Compiler) is actually a collection of frontend tools that does compilation, assembly, and linking. The goal is to produce a ready-to-run executable in a format acceptable to the OS. For Linux, this is ELF (Executable and Linking Format) on x86 (32-bit and 64-bit). But do you know what some of the gcc parameters can do for you? If you're looking for ways to optimize the resulted binary, prepare for a debugging session, or simply observe the steps gcc takes to turn your source code into an executable, getting familiar with these parameters is a must. So, please read on.

Recall that gcc does multiple steps, not just one. Here is a brief explanation of their meaning:

* Preprocessing: Producing code that no longer contains directives. Things like "#if" cannot be understood directly by the compiler, so this must be translated into real code. Macros are also expanded at this stage, making the resulting code larger than the original. [1]

* Compilation:

Full Story.

More in Tux Machines

OSS Leftovers

  • The Future of Marketing Technology Is Headed for an Open-Source Revolution
  • Edging Closer – ODS Sydney
    Despite the fact that OpenStack’s mission statement has not fundamentally changed since the inception of the project in 2010, we have found many different interpretations of the technology through the years. One of them was that OpenStack would be an all-inclusive anything-as-a-service, in a striking parallel to the many different definitions the “cloud” assumed at the time. At the OpenStack Developer Summit in Sydney, we found a project that is returning to its roots: scalable Infrastructure-as-a-Service. It turns out, that resonates well with its user base.
  • Firefox Quantum Now Available on openSUSE Tumbleweed, Linux 4.14 Coming Soon
    Users of the openSUSE Tumbleweed rolling operating system can now update their computers to the latest and greatest Firefox Quantum web browser.
  • Short Delay with WordPress 4.9
    You may have heard WordPress 4.9 is out. While this seems a good improvement over 4.8, it has a new editor that uses codemirror.  So what’s the problem? Well, inside codemirror is jshint and this has that idiotic no evil license. I think this was added in by WordPress, not codemirror itself. So basically WordPress 4.9 has a file, or actually a tiny part of a file that is non-free.  I’ll now have to delay the update of WordPress to hack that piece out, which probably means removing the javascript linter. Not ideal but that’s the way things go.

Red Hat and Fedora Leftovers

Darling ('Wine' for OS X) and Games Leftovers

Linux 4.13.14, 4.9.63, 4.4.99, and 3.18.82