Pelles C forum

Pelles C => General discussions => Topic started by: TimoVJL on February 01, 2014, 10:29:55 PM

Title: gcc users
Post by: TimoVJL on February 01, 2014, 10:29:55 PM
Just polling users in this forum  ;D
How many users use gcc ?
How many gcc users understand how gcc works ?
How big gcc is and what modules it use ?
What is benefits of using gcc ?
Are using any drugs ?
Are you belief any some kind of god ?
Are you still using gcc ?
Is this some kind of joke ?
Yes it is!

Title: Re: gcc users
Post by: Stefan Pendl on February 01, 2014, 11:28:53 PM
Didn't know that Finnish guys are that funny, thought they are more frosty in Winter ;)
Title: Re: gcc users
Post by: Bitbeisser on February 02, 2014, 07:16:46 AM
Didn't know that Finnish guys are that funny, thought they are more frosty in Winter ;)
Just a futile way trying to stay warm, I guess...  8)

As to the original "poll":
Quote
How many users use gcc ?
Don't know, I use it (in some sorts) on systems that don't have any better/more sane alternative available
Quote
How many gcc users understand how gcc works ?
I think that I pretty much understand this, can't speak for other users though...  :P
Quote
How big gcc is and what modules it use ?
Yup
Quote
What is benefits of using gcc ?
:-\
Quote
Are using any drugs ?
No
Quote
Are you belief any some kind of god ?
No
Quote
Are you still using gcc ?
See above

Ralf  8)
Title: Re: gcc users
Post by: TimoVJL on February 02, 2014, 08:49:51 AM
Just bare gcc C 4.8 compiler is about 40 MB now ?
Not long ago 3.4 was about 12 MB ?
Title: Re: gcc users
Post by: Bitbeisser on February 03, 2014, 05:42:39 AM
Just bare gcc C 4.8 compiler is about 40 Mb now ?
Not long ago 3.4 was about 12 Mb ?
Not quite sure how you are counting this, but the "bare" gcc from my Arduino setup is 207KB for each AVR and ARM targets...

Ralf
Title: Re: gcc users
Post by: frankie on February 03, 2014, 12:15:57 PM
First of all consider that GCC original meaning has changed from 'Gnu C Compiler' to 'Gnu Compilers Collection'.
GCC is truly a collection of different compilers, when you download the actual version you get a sw able to compile  C (gcc), C++ (g++), Objective-C, Objective-C++, Fortran (gfortran), Java (gcj), Ada (GNAT), and Go (gccgo) (from release 4.6).
Consider also that the package includes even the target-specific backend code generators and the libraries for specifc machine or other systems different from the development system.
In fact GCC is a 'cross-compiling system', able to produce from a development station code that will run on almost all processors and OS's.
Than there is the linker also able to link for all code formats and systems.
A customized version, like the Arduino compiler could be, would include one language compiler (tipically C), one code backend generator and a simplified linker.
For a short description see this (http://en.wikipedia.org/wiki/GNU_Compiler_Collection).
Title: Re: gcc users
Post by: TimoVJL on February 03, 2014, 12:34:56 PM
"bare gcc C compiler" ;) just that.
Title: Re: gcc users
Post by: frankie on February 03, 2014, 03:12:50 PM
If for GCC 4.8.1
Quote
Disk space requirement: 500MB for the source and ~2.1GB for the compiled files. About 3GB space will be needed for the temporary files when compiling.
40Mb is reasonable  ;D

Actually GCC is wrote in C++ :( so takes a lot of crap with it!
Title: Re: gcc users
Post by: TimoVJL on February 03, 2014, 04:01:28 PM
If for GCC 4.8.1
40Mb is reasonable  ;D
Oops :-[
PellesC v7: pocc.exe 2 MB ARM x86 x64
MSVC 18: cl.exe + c1.dll + c2.dll 4.8 MB x86
gcc 4.8.1: gcc.exe cc1.exe as.exe ... 15.3 MB x86
and ld.exe + LTO > 12 MB
Title: Re: gcc users
Post by: bitcoin on March 27, 2019, 02:08:17 PM
I use gcc to writing hello world examples. Because GCC can build EXE with zero-runtime, unlike MSVC (this shit putting anywhere CRT).
And GCC have many interesting plugins.
Title: Re: gcc users
Post by: TimoVJL on March 27, 2019, 02:17:32 PM
Most of C compilers can create a zero or minimal crt applications.
Only compiler support routines have to give somehow, like some sort of crtmin.lib and msvc isn't an exception.
Sometimes gcc needs an additional __main() stub.
gcc and polink (https://forum.pellesc.de/index.php?topic=7059.msg26794#msg26794)

EDIT: gcc 7 and 8 has a bug with .drectve, wrong Characteristics in object-file:
Characteristics   
      00000040   IMAGE_SCN_CNT_INITIALIZED_DATA
      00300000   IMAGE_SCN_ALIGN_4BYTES
      40000000   IMAGE_SCN_MEM_READ
      80000000   IMAGE_SCN_MEM_WRITE

should be:
Characteristics   
      00000200   IMAGE_SCN_LNK_INFO
      00000800   IMAGE_SCN_LNK_REMOVE

So with polink.exe use -merge:.drectve=.rdata