Building FreeRADIUS on HP-UX B.11.31 ia64 (gcc, 32bit)
Alexander Gattin
xrgtn at yandex.ru
Fri Jun 22 11:16:00 CEST 2012
Hello,
There are 2 problems with HP-UX build (I use GNU
gcc and native ld):
1. ld options '+b <libdir>' are passed without
'-Wl,' prefix directly to gcc (not to ld):
> gcc -shared -Wl,+h -Wl,rlm_acctlog-2.1.12.so -Wl,+nodefaultrpath -o .libs/rlm_acctlog-2.1.12.so .libs/rlm_acctlog.o +b /comptel/ilink/src/freeradius-server-2.1.12/src/lib/.libs:/comptel/ilink/xxxxxxxxxxxxxxxx32/lib /comptel/ilink/src/freeradius-server-2.1.12/src/lib/.libs/libfreeradius-radius.so -lnsl -lrt -lpthread -lc
> gcc: +b: No such file or directory
> gcc: /comptel/ilink/src/freeradius-server-2.1.12/src/lib/.libs:/comptel/ilink/xxxxxxxxxxxxxxxx32/lib: No such file or directory
> make[6]: *** [rlm_acctlog.la] Error 1
Probably, native ld is never invoked directly
in FreeRADIUS build, so I've hacked ./configure
script in this place:
> if test "$with_gnu_ld" = no; then
> hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
> hardcode_libdir_separator=:
>
> case $host_cpu in
> hppa*64*|ia64*)
> hardcode_libdir_flag_spec_ld='+b $libdir'
> hardcode_direct=no
> hardcode_shlibpath_var=no
> ;;
> *)
> hardcode_direct=yes
> export_dynamic_flag_spec='${wl}-E'
>
> # hardcode_minus_L: Not really in the search PATH,
> # but as the default location of the library.
> hardcode_minus_L=yes
> ;;
> esac
> fi
I replaced hardcode_libdir_flag_spec_ld='+b $libdir'
with hardcode_libdir_flag_spec_ld='${wl}+b ${wl}$libdir'
(quick and dirty fix), and this allowed me to
continue:
2. raddb/Makefile uses one-argument form of
'ln -s', which is not present on HP-UX:
> make[2]: Entering directory `/comptel/ilink/src/freeradius-server-2.1.12/raddb'
> Usage: ln [-f] [-i] [-s] f1 f2
> ln [-f] [-i] [-s] f1 ... fn d1
> make[2]: *** [all] Error 2
> make[2]: Leaving directory `/comptel/ilink/src/freeradius-server-2.1.12/raddb'
I've fixed it this way:
sed -i.orig 's/\(\<ln -s [^ ]*\);/\1 .;/' raddb/Makefile
Regarding the 1st problem, I think the proper fix
should instead ensure that
hardcode_libdir_flag_spec is passed to gcc while
hardcode_libdir_flag_spec_ld is passed to native
ld only. These flags are not used in Makefiles,
rules.mak or Make.inc, they are defined and used
in ./configure - generated libtool script.
I'll see if I can make a proper fix there.
--
With best regards,
xrgtn
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20120622/0747d5b1/attachment.pgp>
More information about the Freeradius-Users
mailing list