2.0.0-pre1 - cannot build on FreeBSD

David Wood david at wood2.org.uk
Tue May 29 06:43:01 CEST 2007


Hi Nicolas (and everyone),

In message <W$J+RmS2F6WGFAjM at wood2.org.uk>, David Wood 
<david at wood2.org.uk> writes
>In message <dU4MLmNw+2WGFAB6 at wood2.org.uk>, David Wood
><david at wood2.org.uk> writes
>>For future robustness, rather than a version number check (it's just
>>possible that FreeBSD 5.x will get a working gethostbyaddr_r(), much as
>>I doubt it), here's an alternative patch to that in bug #454, using
>><http://lists.cistron.nl/pipermail/freeradius-users/2003-October/024297.html>
>>as my inspiration:
>
>Not only is that patch ugly - further testing proves that it's flawed.
>
>I'll have another go at it tomorrow.

It didn't take until tomorrow - this looks better, and is tested and 
apparently working with autoconf 2.61.


Note - this patch is against 2.0.0-pre1, not CVS HEAD.

--- BEGIN ---
--- configure.in        Tue May 29 04:58:50 2007
+++ configure.in        Tue May 29 04:57:03 2007
@@ -904,9 +904,17 @@
  AC_MSG_CHECKING([gethostbyaddr_r() syntax])
  case "$host" in
  *-freebsd*)
-       AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
-       gethostbyaddrrstyle=BSD
-       AC_MSG_WARN([FreeBSD overridden to BSD-style])
+dnl With FreeBSD, check if there's a prototype for gethostbyaddr_r.
+dnl Some versions (FreeBSD 5.1?) have a symbol but no prototype - so we override this test to
+dnl BSDSTYLE. FreeBSD 6.2 and up have proper GNU style support.
+       AC_CHECK_DECLS([gethostbyaddr_r], [], [
+               AC_DEFINE(GETHOSTBYADDRRSTYLE, BSDSTYLE, [style of gethostbyaddr_r functions ])
+               gethostbyaddrrstyle=BSD
+               AC_MSG_WARN([FreeBSD overridden to BSD-style])
+       ], [
+#include <stdio.h>
+#include <netdb.h>
+])
         ;;
  esac
  if test "x$gethostbyaddrrstyle" = "x"; then
--- END ---

(with apologies once again about the lost tabs - a plain/text MIME 
attachment might keep them, but cut and paste means a tab is turned into 
8 spaces in my mailer)


As a check on functionality, I temporarily changed the name of the 
function in the first parameter of AC_CHECK_DECLS to garbage, which 
changed the behaviour of the code as I'd intended (verified by diffing 
config.log between the 'garbage'' and normal runs).

What do you think? Do you agree that that's a better solution than the 
patch in bug #454?


Meanwhile, I think I've fixed the packaging list for the FreeRADIUS 2 
port on FreeBSD (and the script that generates it) - though this process 
did flag up one oddity. src/modules/rlm_eap/types/rlm_eap_psk is not 
built in 2.0.0-pre1. So far as I can tell, this is because Makefile.in 
is never turned into a Makefile. Is this intentional?

I'll continue to test as I find the time over the next few days - I need 
to port my configuration to FreeRADIUS 2.x, as well as check my port 
carefully.


Best wishes,




David
-- 
David Wood
david at wood2.org.uk



More information about the Freeradius-Users mailing list