error loading shared libraries - BOILER=yes
Hi, HEAD of master, building with BOILER=yes (without BOILER=yes is fine), I get: freeradius-server$ echo BOILER=yes >> Make.inc.in freeradius-server$ ./configure --prefix=/opt/fr3 freeradius-server$ make freeradius-server$ build/bin/radiusd -X FreeRADIUS Version 3.0.0, for host x86_64-unknown-linux-gnu, built on Feb 11 2012 at 02:40:47 Copyright (C) 1999-2009 The FreeRADIUS server project and contributors. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may redistribute copies of FreeRADIUS under the terms of the GNU General Public License v2. Errors reading /opt/fr3/etc/raddb: No such file or directory freeradius-server$ build/bin/relink/radiusd -X build/bin/relink/radiusd: error while loading shared libraries: libfreeradius-radius.so: cannot open shared object file: No such file or directory ...OK - probably looking in /opt/fr3/lib freeradius-server$ make install ... freeradius-server$ build/bin/radiusd -X ...as above, OK freeradius-server$ build/bin/relink/radiusd -X ...also OK - makes sense, now installed. freeradius-server$ /opt/fr3/sbin/radiusd -X ...also OK freeradius-server$ cd /opt/fr3/sbin sbin$ ./radiusd -X ./radiusd: error while loading shared libraries: build/lib/relink/.libs/rlm_acctlog.so: cannot open shared object file: No such file or directory ... not good. The problem seems to be in the final 'gcc -rdynamic -o build/bin/relink/radiusd' command - if you remove all the many ' -Wl,-rpath=/opt/fr3/lib build/lib/relink/.libs/rlm_acctlog.so' arguments and run manually, then copy the resulting binary to the correct location, all is fine. The dynamic libs seem to be being added to gcc by $${${1}_R_PRLIBS} in scripts/libtool.mk:106, and previously :205, but before that I get a bit lost :-) Any ideas? Thanks, Matthew -- Matthew Newton, Ph.D. <mcn4@le.ac.uk> Systems Architect (UNIX and Networks), Network Services, I.T. Services, University of Leicester, Leicester LE1 7RH, United Kingdom For IT help contact helpdesk extn. 2253, <ithelp@le.ac.uk>
Matthew Newton wrote:
HEAD of master, building with BOILER=yes (without BOILER=yes is fine), I get:
freeradius-server$ echo BOILER=yes >> Make.inc.in freeradius-server$ ./configure --prefix=/opt/fr3 freeradius-server$ make
freeradius-server$ build/bin/radiusd -X FreeRADIUS Version 3.0.0, for host x86_64-unknown-linux-gnu, built on Feb 11 2012 at 02:40:47 Copyright (C) 1999-2009 The FreeRADIUS server project and contributors. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may redistribute copies of FreeRADIUS under the terms of the GNU General Public License v2.
Errors reading /opt/fr3/etc/raddb: No such file or directory
Well... yes. The path to raddb is hard-coded into the binary. If you're running it from the build directory, it doesn't really know that. The solution is "radiusd -Xd ./raddb -n debug" See raddb/debug.conf for a description of why "-n debug" helps.
freeradius-server$ build/bin/relink/radiusd -X build/bin/relink/radiusd: error while loading shared libraries: libfreeradius-radius.so: cannot open shared object file: No such file or directory
...OK - probably looking in /opt/fr3/lib
Yes. The "-n debug" helps.
freeradius-server$ make install ...
freeradius-server$ build/bin/radiusd -X ...as above, OK
Which isn't changed by a "make install"
freeradius-server$ cd /opt/fr3/sbin
sbin$ ./radiusd -X ./radiusd: error while loading shared libraries: build/lib/relink/.libs/rlm_acctlog.so: cannot open shared object file: No such file or directory
... not good.
Yup. I'll have to go fix that. I don't normally install it for my testing, so that might have slipped through the cracks.
The problem seems to be in the final 'gcc -rdynamic -o build/bin/relink/radiusd' command - if you remove all the many ' -Wl,-rpath=/opt/fr3/lib build/lib/relink/.libs/rlm_acctlog.so' arguments and run manually, then copy the resulting binary to the correct location, all is fine. The dynamic libs seem to be being added to gcc by $${${1}_R_PRLIBS} in scripts/libtool.mk:106, and previously :205, but before that I get a bit lost :-)
I think you're right. I'll take a look. The PRLIBS stuff is there for Mac, which *does* require the binary to be told where the libaries live. <sigh> Like the dynamic linker can't find libraries? Alan DeKok.
On Sat, Feb 11, 2012 at 10:23:27AM +0100, Alan DeKok wrote:
Matthew Newton wrote:
Errors reading /opt/fr3/etc/raddb: No such file or directory
Well... yes. The path to raddb is hard-coded into the binary. If you're running it from the build directory, it doesn't really know that.
Sorry - I realised that, was just indicating that it started OK.
The problem seems to be in the final 'gcc -rdynamic -o build/bin/relink/radiusd' command - if you remove all the many
The PRLIBS stuff is there for Mac, which *does* require the binary to be told where the libaries live. <sigh> Like the dynamic linker can't find libraries?
Eww - I thought the whole point of a dynamic linker was to go off and find libraries for you! :) Cheers, Matthew -- Matthew Newton, Ph.D. <mcn4@le.ac.uk> Systems Architect (UNIX and Networks), Network Services, I.T. Services, University of Leicester, Leicester LE1 7RH, United Kingdom For IT help contact helpdesk extn. 2253, <ithelp@le.ac.uk>
participants (2)
-
Alan DeKok -
Matthew Newton