>As you found, there's no option for renaming libraries, only programs.

It's not very helpful that configure --help returns this as an option
when it doesn't work!

>The simplest way to avoid conflicts is to build and install to a
different target directory, e.g. ./configure
--prefix=/opt/gsl-1.13-debug

Forgive me but this is not an elegant solution. Having files with the
same names is a recipe for mix-up. In fact, running configure with the
--libdir=/usr/local/lib-dbg option to specify a different install
directory for the libs seems a better bet since you don't get duplicate
copies of the include files, etc.

>The situation is that GNU packages always compile with debugging (-g
-O2) by default...

I have been using GSL for a number of years and this is a revelation to
me! I never knew that. This is indeed a worthy inclusion in the INSTALL
file.

The corollary is: How do you build a release version for production
runs? Can I suggest this too should be added to the INSTALL file as the
release build runs at least 20% faster, methinks.

>This is a commendable philosophy which, unfortunately, does not work in
practice...

I agree with Leo! The default library (-g -O2) does not seem to debug
properly. When I tried stepping into a GSL routine with what I now know
was this configuration, GDB went to line 1, then line 6, then back to
line 2, then 3, then back to 1... I now realise that I got it to work
properly with just the -g option (no -O2 option). I have always regarded
the debug and optimisation options as a dangerous mix, whatever the
compiler. (I seem to recall they are incompatible options in MSVC++? Or
at very least, inlining is ignored in the debug build.)

In fact, I have discovered that giving configure the CFLAGS= option
overrides the the internal '-g -O2' option. So I would suggest building:

1) With CFLAGS='-g' and --libdir=/usr/local/lib-dbg  to get a debug
version installed in /usr/local/lib-dbg 

2) With CFLAGS='-O2' for the release build, and putting this in the
default /usr/local/lib.

(But I still think it's bad practice to have different libraries with
the same names! Can anyone who knows autoconf suggest a solution?)

For information, libgsl.a with the '-O2' option is 2896006 bytes, with
'-g' it's 6527236 bytes, and with '-g -O2' it's 8283822 bytes. NB. The
significant difference the -O2' option makes to the debug build,
presumably (as Leo says) due to extensive inlining.
_______________________________________________
Help-gsl mailing list
Help-gsl@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gsl

Reply via email to