On Tue, May 06, 2008 at 11:47:40PM +0100, Stephen Gran wrote:
> This one time, at band camp, Josip Rodin said:
> > Hi,
> > 
> > The sqlippool module is still broken in the new version, which really
> > isn't right... this has been sitting here for a while, has upstream
> > been notified?  They maintain a pretty optimistic
> > http://wiki.freeradius.org/Rlm_sqlippool as if nothing could ever go
> > wrong... how does it work for them?
> 
> They use a bundled copy of libltdl that uses RTDL_GLOBAL for symbol
> imports.  We're trying our best not to use bundled copies of libraries
> already in Debian, although I'm quickly running out of other options for
> Lenny.  I've tried communicating with the libtool maintainers about some
> of the features in the new upstream (one of which is an option to use
> RTDL_GLOBAL imports conditionally), but my queries have been met with
> deafening silence.

Ow. Okay, getting back to the more obvious solution, to link the two .so's
together, let me document the exact details of the workaround for the
benefit of readers:

Adding the .la file from the rlm_sql/.libs/ directory to that ghastly
libtool invocation, seems to work for me:

% cd ~/freeradius-2.0.3/src/modules/rlm_sqlippool
% /usr/bin/libtool --mode=link gcc -release 2.0.3 -module -export-dynamic -o 
rlm_sqlippool.la -rpath /usr/lib/freeradius rlm_sqlippool.lo rlm_sqlippool.c 
/home/joy/freeradius-2.0.3/src/lib/libfreeradius-radius.la 
/home/joy/freeradius-2.0.3/src/modules/rlm_sql/rlm_sql.la -lnsl -lresolv 
-lpthread

*** Warning: Linking the shared library rlm_sqlippool.la against the loadable 
module
*** rlm_sql.so is not portable!
rm -fr  .libs/rlm_sqlippool-2.0.3.so .libs/rlm_sqlippool.a 
.libs/rlm_sqlippool.la .libs/rlm_sqlippool.lai .libs/rlm_sqlippool.so
gcc -shared  .libs/rlm_sqlippool.o  -Wl,--rpath 
-Wl,/home/joy/freeradius-2.0.3/src/lib/.libs -Wl,--rpath 
-Wl,/home/joy/freeradius-2.0.3/src/modules/rlm_sql/.libs -Wl,--rpath 
-Wl,/usr/lib/freeradius 
/home/joy/freeradius-2.0.3/src/lib/.libs/libfreeradius-radius.so 
/home/joy/freeradius-2.0.3/src/modules/rlm_sql/.libs/rlm_sql.so -lnsl -lresolv 
-lpthread  -Wl,-soname -Wl,rlm_sqlippool-2.0.3.so -o 
.libs/rlm_sqlippool-2.0.3.so
(cd .libs && rm -f rlm_sqlippool.so && ln -s rlm_sqlippool-2.0.3.so 
rlm_sqlippool.so)
ar cru .libs/rlm_sqlippool.a  rlm_sqlippool.o
ranlib .libs/rlm_sqlippool.a
creating rlm_sqlippool.la
(cd .libs && rm -f rlm_sqlippool.la && ln -s ../rlm_sqlippool.la 
rlm_sqlippool.la)

% ldd .libs/rlm_sqlippool-2.0.3.so  
        libfreeradius-radius-2.0.3.so => 
/home/joy/freeradius-2.0.3/src/lib/.libs/libfreeradius-radius-2.0.3.so 
(0x00002b2cdb9c5000)
        rlm_sql-2.0.3.so => 
/home/joy/freeradius-2.0.3/src/modules/rlm_sql/.libs/rlm_sql-2.0.3.so 
(0x00002b2cdbae7000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00002b2cdbbf4000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00002b2cdbd0c000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00002b2cdbe21000)
        libc.so.6 => /lib/libc.so.6 (0x00002b2cdbf36000)
        libltdl.so.3 => /usr/lib/libltdl.so.3 (0x00002b2cdc174000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
        libdl.so.2 => /lib/libdl.so.2 (0x00002b2cdc27b000)

And freeradius runs with this /usr/lib/freeradius/rlm_sqlippool-2.0.3.so
replaced.

Paul Hampson wrote earlier that he had problems plugging this into the
Makefile system, because he added:

RLM_LIBS    = $(topdir)/src/modules/lib/rlm_sql.la

Instead of that, I had added:

RLM_LIBS    = $(top_builddir)/src/modules/rlm_sql/.libs/rlm_sql.la

But actually both versions seemed to get it to link for me, my libtool
didn't have a problem finding src/modules/lib/.libs/rlm_sql.so
and giving that to gcc. It's 1.5.22, from etch, which might be relevant.

-- 
     2. That which causes joy or happiness.



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

Reply via email to