cross compiling freeradius

Erich Titl erich.titl at think.ch
Fri Oct 16 01:02:24 CEST 2020


Hi Alan

Am 16.10.2020 um 00:26 schrieb Alan DeKok:
> On Oct 15, 2020, at 6:18 PM, Erich Titl <erich.titl at think.ch> wrote:
>>>  libtool is a horrific 4K LoC shell script which is supposed to do cross-platform building.  It's insane.
>>
>> So it is possible that it is invoked by the cross compile instructions
> 
>   No.  What I said was that FreeRADIUS doesn't use libtool.  What I meant was "FreeRADIUS doesn't use libtool"
> 
>> Oh sure I know how to handle this. But basically I don't want to mess
>> around with the code provided by the freeradius project.
> 
>   If you're editing a "configure" script to site-local changes, it's fine.  That's part of the build process.  We don't use "configure" when the server is running.
> 
>>>> mega at leafbuilder:~/leaf/devel/master-new-openssl/source/x86_64-unknown-linux-uclibc/radius/freeradius-server-3.0.21$
>>>> make reconfig
>>>> make: Nothing to be done for 'reconfig'.
>>>
>>>  Then you didn't edit "configure.ac", I think.  Or, you regenerated "configure" after editing "configure.ac"
>>
>> Indeed I did using autogen.sh, I will then start over with a virgin
>> tarball.
> 
>    As I said... don't use "autogen.sh".  This doesn't mean "leave the output of autopen.sh alone, and try to do something on top of that".  It means start over.

Yep....I did

I restarted from scratch

./configure yields then

checking for grep... (cached) /bin/grep
checking for _talloc in -ltalloc... no
checking for _talloc in -ltalloc in /usr/local/lib... no
checking for _talloc in -ltalloc in /opt/lib... no
configure: WARNING: talloc library not found. Use
--with-talloc-lib-dir=<path>.
configure: error: FreeRADIUS requires libtalloc

OK it needs talloc stuff

./configure
--with-talloc-include-dir=~/leaf/devel/master-new-openssl/staging/x86_64-unknown-linux-uclibc/usr/include/samba
 --with-talloc-lib-dir=~/leaf/devel/master-new-openssl/staging/x86_64-unknown-linux-uclibc/usr/lib

checking for _talloc in -ltalloc in
~/leaf/devel/master-new-openssl/staging/x86_64-unknown-linux-uclibc/usr/lib...
no
checking for _talloc in -ltalloc... no
checking for _talloc in -ltalloc in /usr/local/lib... no
checking for _talloc in -ltalloc in /opt/lib... no
configure: WARNING: talloc library not found. Use
--with-talloc-lib-dir=<path>.
configure: error: FreeRADIUS requires libtalloc

despite

ls
~/leaf/devel/master-new-openssl/staging/x86_64-unknown-linux-uclibc/usr/lib/libtalloc*
/home/mega/leaf/devel/master-new-openssl/staging/x86_64-unknown-linux-uclibc/usr/lib/libtalloc.so
/home/mega/leaf/devel/master-new-openssl/staging/x86_64-unknown-linux-uclibc/usr/lib/libtalloc.so.2
/home/mega/leaf/devel/master-new-openssl/staging/x86_64-unknown-linux-uclibc/usr/lib/libtalloc.so.2.0.5

So obviously there are talloc libraries present there.

This error does not show up when I use the whole shebang of
configuration options

make: Entering directory
'/home/mega/leaf/devel/master-new-openssl/source/x86_64-unknown-linux-uclibc/radius'
( cd freeradius-server-3.0.21 ; ./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--host=x86_64-unknown-linux-uclibc \
--build=x86_64-linux-gnu \
--with-rlm_acctlog \
--with-rlm_acct_unique \
--with-rlm_always \
--with-rlm_attr_filter \
--with-rlm_attr_rewrite \
--with-rlm_chap \
--with-rlm_checkval \
--with-rlm_copy_packet \
--with-rlm_detail \
--with-rlm_digest \
--with-rlm_dynamic_clients \
--with-rlm_eap \
--with-rlm_eap_gtc \
--with-rlm_eap_leap \
--with-rlm_eap_md5 \
--with-rlm_eap_mschapv2 \
--with-lm_eap_peap \
--with-rlm_eap_sim \
--with-rlm_eap_tls \
--with-rlm_eap_ttls \
--with-rlm_exec \
--with-rlm_expiration \
--with-rlm_expr \
--with-rlm_fastusers \
--with-rlm_files \
--with-rlm_ldap \
--with-rlm_linelog \
--with-rlm_logintime \
--with-rlm_mschap \
--with-rlm_otp \
--with-rlm_pap \
--with-rlm_passwd \
--with-rlm_policy \
--with-rlm_preprocess \
--with-rlm_radutmp \
--with-rlm_realm \
--with-rlm_sql \
--with-rlm_sqlcounter \
--with-rlm_sqlippool \
--with-rlm_sql_log \
--with-rlm_unix \
--without-rlm_ippool \
--without-rlm_sql_unixodbc \
--without-rlm_counter \
--without-rlm_dbm \
--without-rlm_eap_tnc \
--without-rlm-krb5 \
--without-rlm-eap_ikev2 \
--without-rlm-perl \
--without-rlm-pam \
--without-rlm_sql_iodbc \
--without-rlm_python \
--without-rlm_sql_oracle \
--without-rlm_sql_postgresql \
--with-dhcp \
--with-talloc-include-dir=/home/mega/leaf/devel/master-new-openssl/staging/x86_64-unknown-linux-uclibc/usr/include/samba
\
--with-talloc-lib-dir=/home/mega/leaf/devel/master-new-openssl/staging/x86_64-unknown-linux-uclibc/usr/lib
\
--with-mysql-dir=/home/mega/leaf/devel/master-new-openssl/staging/x86_64-unknown-linux-uclibc/usr


Now I commented out the offending macros and ran

mega at leafbuilder:~/leaf/devel/master-new-openssl/source/x86_64-unknown-linux-uclibc/radius/freeradius-server-3.0.21$
make reconfig
Makefile:38: *** Missing 'Make.inc' Run './configure [options]' and
retry.  Stop.

OK so rerunning configure yields

checking for __builtin_choose_expr support in compiler... configure:
error: in
`/home/mega/leaf/devel/master-new-openssl/source/x86_64-unknown-linux-uclibc/radius/freeradius-server-3.0.21':
configure: error: cannot run test program while cross compiling
See `config.log' for more details

Obviously the modified configure.ac did not build a new configure
script. Using autogen.sh before did.

There must be a proper way to rebuild configure here.

Thanks

ET




-- 
Diese E-Mail wurde von AVG auf Viren geprüft.
http://www.avg.com



More information about the Freeradius-Users mailing list