From 755b6393cbcf7ebe8a40a3c551ea3547e09fd95e Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Sat, 14 Oct 2017 22:38:18 +1300 Subject: [PATCH] replace: Link to -lbsd when building replace.c by hand This ensures that we correctly detect HAVE_IFACE_GETIFADDRS et al, which are based on a "build the source" style test. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13087 Signed-off-by: Andrew Bartlett --- lib/replace/wscript | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/replace/wscript b/lib/replace/wscript index 9526632..7436a90 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -263,10 +263,13 @@ def configure(conf): conf.CHECK_FUNCS('prctl dirname basename') + strlcpy_in_bsd = False + # libbsd on some platforms provides strlcpy and strlcat if not conf.CHECK_FUNCS('strlcpy strlcat'): - conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', - checklibc=True) + if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', + checklibc=True): + strlcpy_in_bsd = True if not conf.CHECK_FUNCS('getpeereid'): conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h') if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'): @@ -625,6 +628,9 @@ removeea setea # look for a method of finding the list of network interfaces for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']: + bsd_for_strlcpy = '' + if strlcpy_in_bsd: + bsd_for_strlcpy = ' bsd' if conf.CHECK_CODE(''' #define %s 1 #define NO_CONFIG_H 1 @@ -637,7 +643,7 @@ removeea setea #include "test/getifaddrs.c" ''' % method, method, - lib='nsl socket', + lib='nsl socket' + bsd_for_strlcpy, addmain=False, execute=True): break -- 2.9.5