Igor Schein on Tue, 4 Feb 2003 14:43:37 -0500


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: get_ld patch


On Tue, Feb 04, 2003 at 02:27:35PM -0500, Igor Schein wrote:
> On Tue, Feb 04, 2003 at 07:53:49PM +0100, Karim BELABAS wrote:
> > On Tue, 4 Feb 2003, Igor Schein wrote:
> > > -rpath is a linker switch, not a compiler switch, so the following is
> > > needed ( at least for gcc ):
> > >
> > > Index: config/get_ld
> > > ===================================================================
> > > RCS file: /home/megrez/cvsroot/pari/config/get_ld,v
> > > retrieving revision 1.5
> > > diff -u -r1.5 get_ld
> > > --- config/get_ld       2003/01/20 20:36:03     1.5
> > > +++ config/get_ld       2003/02/04 17:12:33
> > > @@ -53,6 +53,6 @@
> > >  echo "Executable linker is   $LD  $LDFLAGS"
> > >
> > >  case "$osname" in
> > > -  osf1|linux|cygwin*|freebsd) runpathprefix='-rpath' ;;
> > > +  osf1|linux|cygwin*|freebsd) runpathprefix='-Wl,-rpath' ;;
> > >    solaris) runpathprefix='-R' ;;
> > >  esac
> > 
> > It should not be needed [ cf config/Makefile.SH:162-166 ]. The current logic
> > is the we find out the linker flags, then depending on the compiler/linker
> > pair, we pass these flags directly or through -Wl [ if $LDisGCC is set ].
> 
> Oh, I know what happened, I did 'env CC="gcc -W" ./Configure', like
> I've done many times in the past, but because of -W get_ld failed to
> set LDisGCC.  There must be a better way of detection.
> 
> Igor
> 

This brings up another point I would like to make.  Right now, without
autoconf structure in place, the user doesn't have a seamless control
over compiler flags.  Like in the situation above, I just wanted to
add -W flag to default flags without having to edit dft file.  

Right now there're too many flag-related variables, and there's no
well-defined relationships between them:

ASFLAGS=''
KERNELCPPFLAGS=''
LDFLAGS=' -export-dynamic'
DYNFLAGS=''
cflags='-O3 -DGCC_INLINE -Wall -fomit-frame-pointer '
DBGFLAGS='-g -Wall'
OPTFLAGS='-O3 -DGCC_INLINE -Wall -fomit-frame-pointer'
DLCFLAGS=''
LDFLAGS=' -export-dynamic'
DLLDFLAGS='-shared -soname $(LIBPARI_SONAME)'
EXTRADLLDFLAGS='-lc ${LIBS}'

I would rather see standard CFLAGS or CCOPT.  I understand perfectly
well other people who have pointed out autoconf's shortcomings in the
past on this list, but one can't take away its merits as far as
user-friendliness goes.

Igor