Fine tuning gcc build to machine specific properties

Ted Byers r.ted.byers@rogers.com
Mon Sep 3 06:33:00 GMT 2007


Thanks Brian,

So I should be and am content that the default build
builds successfully, with only about a dozen
unexpected failures (across all supported languages)
out of tens of thousands of tests.  About the same as
most test builds reported on the gcc website, and
better than a lot of them.

But now, there seems to be something screwy, possibly
specific to cygwin.  I downloaded and installed the
high performance math libraries from AMD's website. 
When I built the examples using the original gcc
compiler collection, it compiled perfectly and all
tests using the high performance library passed.  Now,
doing exactly the same thing, make dies half way
through at link time for one of the tests half way
through make complaining that -lg2c doesn't exist. 
But it does, obviously, since make using gcc v 3.4.4
found it.  Where do I look for a fix to this?  gcc v
3.4.4 must have had something hard coded into it to
tell it where this library is, because I didn't tell
it where to look.  I didn't even know this library
existed the first time I built the AMD acml examples. 
My guess, from what I saw today, is that my current
build of gcc v 4.2.1 doesn't have this information
built in.  I assume that is this information was in
either environment variables or in the GnuMakefile, my
attempt at compiling the examples using gcc v 4.2.1
would have succeeded.

any ideas?

Thanks again for your time and advice.

Ted




--- Brian Dessent <brian@dessent.net> wrote:

> Ted Byers wrote:
> 
> > I tried passing something like -msse2 and
> > -march=athlon64 to configure, but configure
> rejected
> > these, claiming that there are no floags like
> these
> > for the configure script.  I found these flags in
> the
> > gcc documentation, so I am confused.  How do I
> tell
> > configure to build executables optimized for my
> > processor?  Or does that not work well for cygwin
> on
> > WXP on an AMD Athlon 64 X 2?
> 
> Those are gcc options, they aren't configure
> options.  Specify them to
> gcc when building software and it will do what you
> want.  Normally you
> do this by setting the variables CFLAGS for C and
> CXXFLAGS for C++. 
> Autoconf based packages automatically set these to
> "-g -O2" if they are
> not set by the user (and it detects you're using
> gcc), which means if
> you want to set them yourself you probably want to
> include "-g -O2" in
> your own settings, otherwise the default means no
> optimization and no
> debug information.
> 
> The only time you'd specify anything to configure is
> if you want to
> change the default value of -march and -mtune that
> is "baked in" to gcc,
> which you do with --with-arch and --with-tune.  But
> that is not the
> usual way of doing things, and it's certainly not
> necessary to rebuild
> gcc every time you want to change this.  It's a lot
> easier just to leave
> gcc generic by default and set your desired *FLAGS.
> 
> Brian
> 



More information about the Gcc-help mailing list