Compilation broken in v2.1.x branch?
I hadn't done a 'git pull' and recompile since 1st February. Now when I try it again, the build fails on my machine (Ubuntu 10.10 x86_64) $ make distclean && ./configure --prefix=/v/build/fr && make && make install ... gcc -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -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 -I/u/home/brian/git/freeradius-server/src -DHOSTINFO=\"x86_64-unknown-linux-gnu\" -DRADIUSD_VERSION=\"2.1.11\" -DOPENSSL_NO_KRB5 -c detail.c -o detail.o >/dev/null 2>&1 /u/home/brian/git/freeradius-server/libtool --mode=link gcc -export-dynamic -dlopen self \ -o radiusd acct.lo auth.lo client.lo conffile.lo crypt.lo exec.lo files.lo listen.lo log.lo mainconfig.lo modules.lo modcall.lo radiusd.lo stats.lo soh.lo session.lo threads.lo util.lo valuepair.lo version.lo xlat.lo event.lo realms.lo evaluate.lo vmps.lo detail.lo \ /u/home/brian/git/freeradius-server/src/lib/libfreeradius-radius.la -lnsl -lresolv -lpthread \ -lcrypt -lltdl -lcrypto -lssl -lcrypto rm -f .libs/radiusd.nm .libs/radiusd.nmS .libs/radiusd.nmT creating .libs/radiusdS.c (cd .libs && gcc -g -O2 -c -fno-builtin "radiusdS.c") rm -f .libs/radiusdS.c .libs/radiusd.nm .libs/radiusd.nmS .libs/radiusd.nmT gcc .libs/radiusdS.o -o .libs/radiusd .libs/acct.o .libs/auth.o .libs/client.o .libs/conffile.o .libs/crypt.o .libs/exec.o .libs/files.o .libs/listen.o .libs/log.o .libs/mainconfig.o .libs/modules.o .libs/modcall.o .libs/radiusd.o .libs/stats.o .libs/soh.o .libs/session.o .libs/threads.o .libs/util.o .libs/valuepair.o .libs/version.o .libs/xlat.o .libs/event.o .libs/realms.o .libs/evaluate.o .libs/vmps.o .libs/detail.o -Wl,--export-dynamic /u/home/brian/git/freeradius-server/src/lib/.libs/libfreeradius-radius.so -lnsl -lresolv -lpthread -lcrypt /usr/lib/libltdl.so -lssl -lcrypto -ldl -Wl,--rpath -Wl,/v/build/fr/lib .libs/modules.o: In function `setup_modules': /v/git/freeradius-server/src/main/modules.c:1395: undefined reference to `lt__PROGRAM__LTX_preloaded_symbols' collect2: ld returned 1 exit status make[4]: *** [radiusd] Error 1 make[4]: Leaving directory `/v/git/freeradius-server/src/main' make[3]: *** [main] Error 2 make[3]: Leaving directory `/v/git/freeradius-server/src' make[2]: *** [all] Error 2 make[2]: Leaving directory `/v/git/freeradius-server/src' make[1]: *** [src] Error 2 make[1]: Leaving directory `/v/git/freeradius-server' make: *** [all] Error 2 Doing a git bisect from 5853570817fc2a1b5e972fbafe10568813e426ac suggests the problem to be introduced here: 2d0c5fa94938f727b4f37fb7399b777437171eeb is the first bad commit commit 2d0c5fa94938f727b4f37fb7399b777437171eeb Author: Alan T. DeKok <aland@freeradius.org> Date: Mon Feb 14 15:03:48 2011 +0100 Fix typos and regenerate for 2.1.11 :100755 100755 cd0356c27a219e968bf3cecaef08ca04f74eea64 d48179f54bd576f474168325dc0aaac2d9c4dfe0 M configure And to confirm this manually: - a checkout of 995b62f8 builds successfully - bc9435fd builds successfully - 2d0c5fa9 fails as above The relevant software versions are: ii autoconf 2.67-2ubuntu1 automatic configure script builder ii automake 1:1.11.1-1 A tool for generating GNU Standards-compliant Makefiles ii autotools-dev 20100122.1 Update infrastructure for config.{guess,sub} files ii libltdl-dev 2.2.6b-2ubuntu1 A system independent dlopen wrapper for GNU libtool ii libltdl7 2.2.6b-2ubuntu1 A system independent dlopen wrapper for GNU libtool ii libtool 2.2.6b-2ubuntu1 Generic library support script I'm no expert in autoconf black magic, but it seems to me that the "fix typos" actually introduced one (it should be libltdl not libtldl) Regards, Brian.
Brian Candler wrote:
I hadn't done a 'git pull' and recompile since 1st February. Now when I try it again, the build fails on my machine (Ubuntu 10.10 x86_64) .. /v/git/freeradius-server/src/main/modules.c:1395: undefined reference to `lt__PROGRAM__LTX_preloaded_symbols'
The configuration system is using libtool from your system installation, but libltdl from the local FreeRADIUS source. The libtool people have a wonderful practice of upgrading systems in incompatible ways...
And to confirm this manually: - a checkout of 995b62f8 builds successfully - bc9435fd builds successfully - 2d0c5fa9 fails as above .. I'm no expert in autoconf black magic, but it seems to me that the "fix typos" actually introduced one (it should be libltdl not libtldl)
OK. That checkin seemed to have caused a whole bunch of other problems, too. I'll revert it. Alan DeKok.
I'm no expert in autoconf black magic, but it seems to me that the "fix typos" actually introduced one (it should be libltdl not libtldl)
Patch at https://github.com/candlerb/freeradius-server/tree/candlerb/fix-ltdl fixes the problem for me - now it builds again. What I don't understand is, why configure was patched manually in the first place - surely any changes should be done to configure.in, and autoconf should generate configure automatically? I tried running autoconf but I got a much more invasive set oef changes, as I have autoconf 2.67 but the existing configure file was generated from autoconf 2.61 Regards, Brian.
participants (2)
-
Alan DeKok -
Brian Candler