This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Help compiling 4.3.0
- From: Brian Dessent <brian at dessent dot net>
- To: Lee Rhodes <lee at rhoba dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Mon, 25 Jun 2007 11:54:49 -0700
- Subject: Re: Help compiling 4.3.0
- References: <000301c7b756$06ad9c60$0701a8c0@lee8075b>
- Reply-to: gcc-help at gcc dot gnu dot org
Lee Rhodes wrote:
> Your arguments are convincing. Thanks.
>
> I didn't build with libgomp (openMP) or libmudflap (bounds checking for
> c), and I am wondering if I should have, but I am not sure of the
> consequences.
>
> 1. Does the absense of libmudflap prevent optional bounds checking in C++?
> 2. Does the absense of libgomp prevent thread programming?
>
> If I need to rebuild using these libraries, where do I get them?
> I couldn't find them in cygwin setup.
Those are both gcc target libraries, parts of the compiler. You won't
find them anywhere in Cygwin's setup.exe because they did not exist in
gcc 3.x, and gcc 3.x binaries are the only officially supported version
at this time.
If they're not being built it's because they aren't configured. Try
adding --enable-libgomp and --enable-libmudflap to your configure
invocation. Note that libgomp requires proper setting of the thread
model, which for Cygwin is --enable-threads=posix. I'm not sure if this
option is auto-detected correctly or not, so it wouldn't hurt to
explicitly give it.
Also note that the fact that they aren't automatically enabled on the
Cygwin target probably means that it's not entirely clear that they're
100% functional there. However, enabling them and then running their
testsuites is a good way to find out. The last time I ran the libgomp
4.3 testsuite on Cygwin I got 484 PASS and only 2 FAIL, so it looks like
it's pretty close. I don't think I've run the libmudflap testsuite
before. You can dig around the gcc-testresults archive to find other
examples.
To answer 1: Yes, you need a functioning libmudflap in order to use the
-fmudflap compiler option.
To answer 2: No, enabling OpenMP is not a prerequisite for writing
threaded programs. You can still write plain old C/C++ code that uses
the pthreads API, this requires no special support from the compiler.
What OpenMP gives you is the ability to tell the compiler to
automatically parallelize certain operations. This is not entirely
automatic though, you need to compile with -fopenmp and the source code
needs explicit markup with "#pragma omp" directives, so this is only
useful if you have code that was explicitly written to use OpenMP; it is
not a general purpose thing.
Brian