Cannot compile and run on Mac OS X 10.4.7

Michael Check michaelr.check at gmail.com
Wed Aug 23 03:14:30 CEST 2006


Hi all,

We've tried to compile fr v1.1.2 on os x.4.7 with no luck.  We've
followed the instructions at doc/MACOSX (using --disable_shared  - the
mod for the makefile for rlm_sql is already done in this version) but
get the following errors during make (this is the tail of the make):

/usr/bin/ld: multiple definitions of symbol _CRYPTO_lock
/usr/lib/libcrypto.dylib(cryptlib.o) definition of _CRYPTO_lock
/usr/local/mysql/lib/libmysqlclient_r.a(libtaocrypt_la-misc.o)
definition of _CRYPTO_lock in section (__TEXT,__text)
collect2: ld returned 1 exit status
rm -f .libs/radiusdS.o
make[4]: *** [radiusd] Error 1
make[3]: *** [common] Error 2
make[2]: *** [all] Error 2
make[1]: *** [common] Error 2
make: *** [all] Error 2

And cannot proceed further.

---

If you try and compile _without_ --disable_shared, the we get through
make with this at the end:

/usr/local/src/freeradius-1.1.2/libtool --mode=link gcc   -o radwho
radwho.lo util.lo log.lo conffile.lo -lresolv  -lpthread
../lib/libradius.la
gcc -o .libs/radwho radwho.o util.o log.o conffile.o  -lresolv
-lpthread -L../lib/.libs -lradius
creating radwho
Making all in raddb...
make[2]: Nothing to be done for `all'.
Making all in scripts...
make[2]: Nothing to be done for `all'.
Making all in doc...
Making all in examples...
/usr/bin/make  -C examples all
make[4]: Nothing to be done for `all'.
Making all in rfc...
/usr/bin/make  -C rfc all
make[4]: Nothing to be done for `all'.

The make install has these ominous warning while linking all the
libraries for each rlm:

----------------------------------------------------------------------
Making install in rlm_realm...
if [ "xrlm_realm" != "x" ]; then \
    /usr/local/src/freeradius-1.1.2/libtool --mode=install
/usr/local/src/freeradius-1.1.2/install-sh -c -c \
        rlm_realm.la /usr/local/lib/rlm_realm.la || exit $?; \
    rm -f /usr/local/lib/rlm_realm-1.1.2.la; \
    ln -s rlm_realm.la /usr/local/lib/rlm_realm-1.1.2.la || exit $?; \
fi
libtool: install: warning: relinking `rlm_realm.la'
(cd /usr/local/src/freeradius-1.1.2/src/modules/rlm_realm; /bin/sh
/usr/local/src/freeradius-1.1.2/libtool --mode=relink gcc -release
1.1.2 -module -export-dynamic -o rlm_realm.la -rpath /usr/local/lib
rlm_realm.lo rlm_realm.c
/usr/local/src/freeradius-1.1.2/src/lib/libradius.la -lresolv
-lpthread)
gcc -dynamiclib -flat_namespace -undefined suppress -o
.libs/rlm_realm-1.1.2.so  rlm_realm.lo  /usr/local/lib/libradius.dylib
-lresolv -lpthread -lc -install_name
/usr/local/lib/rlm_realm-1.1.2.so
/usr/local/src/freeradius-1.1.2/install-sh -c -c
.libs/rlm_realm-1.1.2.soT /usr/local/lib/rlm_realm-1.1.2.so
(cd /usr/local/lib && rm -f rlm_realm.so && ln -s rlm_realm-1.1.2.so
rlm_realm.so)
/usr/local/src/freeradius-1.1.2/install-sh -c -c .libs/rlm_realm.lai
/usr/local/lib/rlm_realm.la
/usr/local/src/freeradius-1.1.2/install-sh -c -c .libs/rlm_realm.a
/usr/local/lib/rlm_realm.a
ranlib /usr/local/lib/rlm_realm.a
chmod 644 /usr/local/lib/rlm_realm.a
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `DYLD_LIBRARY_PATH' environment variable
     during execution

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------


AND FOR PERL:

Making install in rlm_perl...
/usr/local/src/freeradius-1.1.2/install-sh -c -m 755 example.pl
/usr/local/etc/raddb
if [ "xrlm_perl" != "x" ]; then \
    /usr/local/src/freeradius-1.1.2/libtool --mode=install
/usr/local/src/freeradius-1.1.2/install-sh -c -c \
        rlm_perl.la /usr/local/lib/rlm_perl.la || exit $?; \
    rm -f /usr/local/lib/rlm_perl-1.1.2.la; \
    ln -s rlm_perl.la /usr/local/lib/rlm_perl-1.1.2.la || exit $?; \
fi
libtool: install: warning: relinking `rlm_perl.la'
(cd /usr/local/src/freeradius-1.1.2/src/modules/rlm_perl; /bin/sh
/usr/local/src/freeradius-1.1.2/libtool --mode=relink gcc -release
1.1.2 -module -export-dynamic -o rlm_perl.la -rpath /usr/local/lib
rlm_perl.lo rlm_perl.c
/usr/local/src/freeradius-1.1.2/src/lib/libradius.la -L/usr/local/lib
/System/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DynaLoader/DynaLoader.a
-L/System/Library/Perl/5.8.6/darwin-thread-multi-2level/CORE -lperl
-ldl -lm -lc -lresolv -lpthread)

*** Warning: This library needs some functionality provided by
/System/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DynaLoader/DynaLoader.a.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
gcc -dynamiclib -flat_namespace -undefined suppress -o
.libs/rlm_perl-1.1.2.so  rlm_perl.lo  /usr/local/lib/libradius.dylib
-L/usr/local/lib
-L/System/Library/Perl/5.8.6/darwin-thread-multi-2level/CORE -lperl
-ldl -lm -lc -lresolv -lpthread -lc -install_name
/usr/local/lib/rlm_perl-1.1.2.so
/usr/local/src/freeradius-1.1.2/install-sh -c -c
.libs/rlm_perl-1.1.2.soT /usr/local/lib/rlm_perl-1.1.2.so
(cd /usr/local/lib && rm -f rlm_perl.so && ln -s rlm_perl-1.1.2.so rlm_perl.so)
/usr/local/src/freeradius-1.1.2/install-sh -c -c .libs/rlm_perl.lai
/usr/local/lib/rlm_perl.la
/usr/local/src/freeradius-1.1.2/install-sh -c -c .libs/rlm_perl.a
/usr/local/lib/rlm_perl.a
ranlib /usr/local/lib/rlm_perl.a
chmod 644 /usr/local/lib/rlm_perl.a


AND RUNNING sudo radiusd -X, the following error results:

read_config_files:  reading dictionary
read_config_files:  reading naslist
Using deprecated naslist file.  Support for this will go away soon.
read_config_files:  reading clients
read_config_files:  reading realms
radiusd:  entering modules setup
Module: Library search path is /usr/local/lib
radiusd.conf[1565] Failed to link to module 'rlm_exec':
dlopen(/usr/local/lib/rlm_exec-1.1.2.so, 9): Symbol not found:
_debug_flag   Referenced from: /usr/local/lib/rlm_exec-1.1.2.so
Expected in: flat namespace

AND QUITS IMMEDIATELY

---

We tried googling around and we're happy to hear that freeradius will
be a part of 10.5, but we'd like to get it running now...  There
really is no other docs we've found  on getting it compiled (after
difficulty like the above) and installed.  Certainly nothing recent
anyway.  Is it true that it _should_ just work? :)

Thanks in advance for any assistance,

Michael Check



More information about the Freeradius-Users mailing list