Hello Francesco,

* Francesco Paolo Lovergine wrote on Fri, Mar 06, 2009 at 04:59:02PM CET:
> While trying to build gdal with the experimental libtool
> I found that in --mode=link the -shared mod-arg is stripped by 2.2 and that 
> renders gdal ruby binding no more buildable.
> 
> make -f RubyMakefile.mk build
> make[1]: Entering directory 
> `/users/frankie/debian/debian-gis/gdal/gdal-1.6.0/swig/ruby'
> /bin/sh /users/frankie/debian/debian-gis/gdal/gdal-1.6.0/libtool --mode=link  
>   g++  -fPIC -DPIC -shared -L/usr/lib  -L/usr/lib -lgeos_c -I/usr/include 
> -lsqlite3 -lodbc -lodbcinst -L/usr/lib -lexpat -L/usr/lib -lxerces-c 
> -lpthread -ljasper -lhdf5 -lmfhdf -ldf -logdi -lgif -ljpeg -ltiff -lpng 
> -lnetcdf -lpq -L/usr/lib -lpq -lz -lpthread -lm -lrt -ldl    -lcurl   
> -rdynamic -L/usr/lib/mysql -lmysqlclient 
> -L/users/frankie/debian/debian-gis/gdal/gdal-1.6.0 -lgdal1.6.0 -lruby1.8 
> gdal_wrap.o -o gdal.so

This line looks wrong.  The Makefile should invoke libtool somehow like
this:
  .../libtool --mode=link g++ -o gdal.la -module -avoid-version -rpath ... 
-L... -l...

There is no need to pass -shared, -fPIC, -DPIC, and the actual name of
the library.  If you do all of that, then you can pretty much just not
use libtool, and invoke g++ directly.  The point of using libtool is to
get portably the various system-dependent spellings of the above flags.

And the -rpath argument is to specify the directory where the module
will be installed to, not an rpath that will be put into this library
(just in case that wasn't clear).

That being said, the -shared argument is eaten by libtool because it is
interpreted by libtool, but not in the way GCC interprets it (see the
Libtool manual for details).  In order to pass flags by libtool,
directly to the compiler driver or to the linker, you can use
'-Wc,FLAG', '-Wl,FLAG', '-Xcompiler FLAG', or '-Xlinker FLAG'
In this case,
  -Xcompiler -shared

would be appropriate (and backward-compatible to Libtool 1.5.x).

Hope that helps.  Please reassign this bug to the package you're
building (gdal?).

Cheers,
Ralf



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to