Hi,
I'm new to this mailing list and hope this is the right one I'm addressing.
Lately I have been trying to port gcc and g++ from GCC 4.4.0 to interix (the BSD-like unix subsystem optionally available for WinXP and Vista). The subsystem is shipped with gcc and g++ 3.3 and binutils 2.13 which I have used for the bootstrap. Based on other peoples patches I have had some success.

Until now there is no compiler available for interix that supports OpenMP and that's what I'm after. As libgomp in GCC so far isn't targeting interix I have made some changes to libgomp in my copy of the GCC 4.4.0 distribution. A new source file was created, gcc-4.4.0/libgomp/config/posix/interix/proc.c, which is templated on the existing gcc-4.4.0/libgomp/config/posix/proc.c and gcc-4.4.0/libgomp/config/posix/mingw32/proc.c in the distribution (see
http://www.oeffner.net/stuff/gcc-4.4.0_interix_changes.zip
or http://www.suacommunity.com/forum/tm.aspx?m=16600 ). With this file and modifications to GCC configuration files in the distribution I can bootstrap GCC 4.4.0 to build gcc and g++ compilers to support OpenMP on interix.

Although small OpenMP C++ programs builds and runs just fine I have problems with a large program that also uses OpenMP. The large program is unstable and crashes when compiled with OpenMP on interix. Compiled with g++4.4.0 without OpenMP it runs like a charm. As we distribute this program to other platforms like Linux, MacOSX and Win32 where it runs fine with OpenMP I believe that my current implementation I have for porting libgomp to interix is buggy.

If anyone knows about some common or obvious pitfalls when porting libgomp to a new platform or if anyone has got any advice about what not to do I'd be very grateful.

Many thanks,

Rob



Reply via email to