mac os x build of v1.1.3: "Symbol not found: _debug_flag"
Hi all! some days ago (22.8.) i reported success on compiling and running freeradius with mac os x (10.4.7). as i read of someone habving problems to do so in the past few days i just downloaded the release version 1.1.3 and ran into to following problem: just typing "./configure", "make" and "make install" showed no errors, but on trying to start the freeradius server with "freeradius -XAs" i get: radiusd: entering modules setup Module: Library search path is /usr/local/lib radiusd.conf[1585] Failed to link to module 'rlm_exec': dlopen(/usr/local/lib/rlm_exec-1.1.3.so, 9): Symbol not found: _debug_flag Referenced from: /usr/local/lib/rlm_exec-1.1.3.so Expected in: flat namespace i am just using the standard config files with no change at all except a line for a testuser in "users". exactly the same configuration on exactly the same machine with the (also just fresh) compiled cvs-version of 21.8.2006 works without any problems. it is not only related to the rlm_exec module, if i am commenting this out in "instantination" of radiusd.conf i get the error: radiusd: entering modules setup Module: Library search path is /usr/local/lib radiusd.conf[1555] Failed to link to module 'rlm_expr': dlopen(/usr/local/lib/rlm_expr-1.1.3.so, 9): Symbol not found: _debug_flag Referenced from: /usr/local/lib/rlm_expr-1.1.3.so Expected in: flat namespace and if i comment out "expr", the same with the next used module (i assume) "pap". any hints? what changed in the meantime? regards markus -- Markus Krause email: krause@biochem.mpg.de Mogli-Soft: Support for Mac OS X, Webmail/Horde, LDAP, RADIUS by order of the Computing Center of the Max-Planck-Institute of Biochemistry Tel.: 089 - 89 40 85 99 Fax.: 089 - 89 40 85 98 --------------------------------------------------------------------- This message was sent using https://webmail.biochem.mpg.de If you encounter any problems please report to rz-linux@biochem.mpg.de
Markus Krause <krause@biochem.mpg.de> wrote:
any hints? what changed in the meantime?
Nothing, so far as I can tell. I think a solution might be to put the *server* globals into a "libradiusd", rather than the server core. The modules can link to libradius, so that appears to work fine. But it appears that the modules can't link to symbols in the server core. Damned if I know why. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
Hi Alan, i hope i did not report nonsense ... maybe i am understanding something wrong ... i just tried todays cvs, and it worked ... in more detail: i just checkout out the current cvs content of branch 1_1: cvs -d :pserver:anoncvs@cvs.freeradius.org:/source checkout -r branch_1_1 radiusd and made again "./configure", "make" and "make install" all works like the last cvs checkout! then (after removal of /usr/local/sbin/rad* /usr/local/bin/rad* /usr/local/lib/rlm*) i repeated the same with freeradius-1.1.3.tar.gz, and the the error appears. the only obvious difference i could make out is a difference in CFLAGS: * in freeradius-1.1.3.tar.gz: CFLAGS = $(INCLUDE) -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DDARWIN -Wall -D_GNU_SOURCE -DNDEBUG * in todays cvs version: CFLAGS = $(INCLUDE) -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DDARWIN -Wall -D_GNU_SOURCE -g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef has this been fixed in cvs again already? or am i messing something up? regards Markus Zitat von Alan DeKok <aland@deployingradius.com>:
Markus Krause <krause@biochem.mpg.de> wrote:
any hints? what changed in the meantime?
Nothing, so far as I can tell.
I think a solution might be to put the *server* globals into a "libradiusd", rather than the server core. The modules can link to libradius, so that appears to work fine. But it appears that the modules can't link to symbols in the server core.
Damned if I know why.
Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html
-- Markus Krause email: krause@biochem.mpg.de Mogli-Soft: Support for Mac OS X, Webmail/Horde, LDAP, RADIUS by order of the Computing Center of the Max-Planck-Institute of Biochemistry Tel.: 089 - 89 40 85 99 Fax.: 089 - 89 40 85 98 --------------------------------------------------------------------- This message was sent using https://webmail.biochem.mpg.de If you encounter any problems please report to rz-linux@biochem.mpg.de
Markus Krause <krause@biochem.mpg.de> wrote:
in more detail: i just checkout out the current cvs content of branch 1_1: cvs -d :pserver:anoncvs@cvs.freeradius.org:/source checkout -r branch_1_1 radiusd
and made again "./configure", "make" and "make install" all works like the last cvs checkout!
And it runs? Dang...
the only obvious difference i could make out is a difference in CFLAGS
Both usee: -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DDARWIN -Wall -D_GNU_SOURCE Not working (1.1.3) uses: -DNDEBUG Working (CVS) uses: ... a bunch of -W flags The warning flags shouldn't make any difference. The only thing I can think of is that the -DNDEBUG is the cause of the problem, though I have no idea why. Try building 1.1.3 from scratch again, but this time adding -DNDEBUG by hand to the CFLAGS in Make.inc, after "./configure", and before "make". If that works, I'll be pleasantly surprised. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
Zitat von Alan DeKok <aland@deployingradius.com>:
Markus Krause <krause@biochem.mpg.de> wrote:
in more detail: i just checkout out the current cvs content of branch 1_1: cvs -d :pserver:anoncvs@cvs.freeradius.org:/source checkout -r branch_1_1 radiusd
and made again "./configure", "make" and "make install" all works like the last cvs checkout!
And it runs? Dang... yes, just verified it again to be sure ...
the only obvious difference i could make out is a difference in CFLAGS
Both usee: -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DDARWIN -Wall -D_GNU_SOURCE
Not working (1.1.3) uses: -DNDEBUG
Working (CVS) uses: ... a bunch of -W flags
The warning flags shouldn't make any difference. The only thing I can think of is that the -DNDEBUG is the cause of the problem, though I have no idea why.
Try building 1.1.3 from scratch again, but this time adding -DNDEBUG by hand to the CFLAGS in Make.inc, after "./configure", and before "make". If that works, I'll be pleasantly surprised. hmm, -DNDEBUG _is_ there after "./configure" .. i played a bit with the settings (as i am not an experienced developper), even tried all the -W flags, but with no effect.
but it seems i pointed in the complete wrong direction and oversaw some other difference (sorry for the misdirection), as there is another difference in Make.inc: the freeradius-1.1.3.tar.gz uses "INSTALLSTRIP = -s" whereas the cvs versions use "INSTALLSTRIP = " so after changing (removal of "-s") and a new "sudo make install" freeradius starts up successfully and works! i think "-s" tells libtool to strip of debug information? but it does work on linux (just tested on sles10). regards markus -- Markus Krause email: krause@biochem.mpg.de Mogli-Soft: Support for Mac OS X, Webmail/Horde, LDAP, RADIUS by order of the Computing Center of the Max-Planck-Institute of Biochemistry Tel.: 089 - 89 40 85 99 Fax.: 089 - 89 40 85 98 --------------------------------------------------------------------- This message was sent using https://webmail.biochem.mpg.de If you encounter any problems please report to rz-linux@biochem.mpg.de
Markus Krause <krause@biochem.mpg.de> wrote:
so after changing (removal of "-s") and a new "sudo make install" freeradius starts up successfully and works! i think "-s" tells libtool to strip of debug information? but it does work on linux (just tested on sles10).
Ok... we'll make a note of that for the next release. Alan DeKok. -- http://deployingradius.com - The web site of the book http://deployingradius.com/blog/ - The blog
Markus Krause wrote:
the only obvious difference i could make out is a difference in CFLAGS:
* in freeradius-1.1.3.tar.gz: CFLAGS = $(INCLUDE) -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DDARWIN -Wall -D_GNU_SOURCE -DNDEBUG
* in todays cvs version: CFLAGS = $(INCLUDE) -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DDARWIN -Wall -D_GNU_SOURCE -g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef
has this been fixed in cvs again already? or am i messing something up?
When you build FreeRADIUS from a CVS snapshot, the ./configure script automatically adds the option --enable-developer for you. That would explain why the CFLAGS are different. See the following excerpt from configure.in (line 286) if test "x$developer" != "xno" -a -d $srcdir/CVS; then dnl turn on the developer flag when taken from a CVS checkout (not a release) developer="yes" fi -- Nicolas Baradakis
participants (3)
-
Alan DeKok -
Markus Krause -
Nicolas Baradakis