Page 1 of 1

GCC version for MS Windows packages

Posted: Sat Oct 31, 2009 10:40 am
by marfi
Hi Eran,
you have told me some time ago that you intend to use MinGW/GCC 4.4.0 in next CL packages/installers for Windows. Which MinGW/GCC distribution version do you plan to use? Will it include OpenMP support? I suggest to use one of GCC compilers provided by TDM (see http://www.tdragon.net/recentgcc/ ) at least because of included support for OpenMP and pthreads. The best choice is probably GCC with SJLJ Unwinding. I use it together with wxPack on Windows for a long time without any problem.

Best regards
Michal

Re: GCC version for MS Windows packages

Posted: Sat Oct 31, 2009 1:51 pm
by frank_frl

Re: GCC version for MS Windows packages

Posted: Sat Oct 31, 2009 2:08 pm
by eranif
I am NOT going to use TDM version, I am only using the official releases of MinGW project.
The current codelite (from trunk) is built with GCC4.4.0 - SJLJ, the version which is in the MinGW official

Eran

Re: GCC version for MS Windows packages

Posted: Sat Oct 31, 2009 2:49 pm
by frank_frl
Hi Eran,
The current codelite (from trunk) is built with GCC4.4.0 - SJLJ, the version which is in the MinGW official
are you sure that you using SJLJ, since this is from the official readme for GCC4.4.0 from MinGW.org

Code: Select all

- Zero cost exceptions: New exception model Dwarf only has performance
  penalty when being thrown.  The old model, SJLJ, is no longer
  available.
And also the libgcc_s_dw2-1.dll dependency for the CodeliteIndexer insinuates that you are using Dwarf.

BTW if one don't needs exceptions across DLL boundaries, one can get rid of this dependency by using the '-static-libgcc' linker flag.

Frank

Re: GCC version for MS Windows packages

Posted: Sat Oct 31, 2009 2:57 pm
by marfi
And what about the OpenMP support? Is it included in your build? It is a great GCC's addon and the only free way how to create fully parallelized applications using OpenMP stardard language extension (Intel C++ and MS VC++ support OpenMP in paid versions only).

Re: GCC version for MS Windows packages

Posted: Sun Nov 01, 2009 12:43 am
by eranif
marfi wrote:Is it included in your build?
I am NOT building GCC myself, I am using the *official* release. The only thing that I am doing, is packaging it
marfi wrote:And what about the OpenMP support?
I am not familiar with this (I dont even know if it is a DLL, standard or whatever ;)) . However, if OpenMP is available for download from MinGW download page, and its size is relatively small, I dont mind to including it.

If it requires different build for the GCC - I am not going to build GCC myself, this is not my intention.
frank_frl wrote:are you sure that you using SJLJ
You are correct, its DW2

I forgot to mention: my current package also includes pthreads
Eran

Re: GCC version for MS Windows packages

Posted: Sun Nov 01, 2009 1:52 am
by marfi
marfi wrote:
And what about the OpenMP support?

I am not familiar with this (I dont even know if it is a DLL, standard or whatever ) . However, if OpenMP is available for download from MinGW download page, and its size is relatively small, I dont mind to including it.
OpenMP is a standard for creation of parallelized applications on SMP machines (it meas on all multi-core/multi-cpu PCs, etc.). It allows you to parallelize your code using special preprocessor commands and library functions (you can parallelize even for-loop iterations!). It is part of GCC from 4.2.x (see http://gcc.gnu.org/projects/gomp/ ) and it internally uses pthreads. If you provide pthreads than it is possible you provide also OpenMP :)

Re: GCC version for MS Windows packages

Posted: Sun Nov 01, 2009 1:55 am
by eranif
Well, according to the gcc4.4.0 release notes, it is already there (along with pthread), but for pthread I knew what to look for ;)

Eran

Re: GCC version for MS Windows packages

Posted: Sun Nov 01, 2009 6:29 pm
by frank_frl
Here is a document how to use OpenMP with GCC
http://www.ipd.uni-karlsruhe.de/multico ... OpenMP.pdf

Frank