From: Andrew Bartlett Date: Sat, 14 Oct 2017 09:38:18 +0000 (+1300) Subject: replace: Link to -lbsd when building replace.c by hand X-Git-Tag: tevent-0.9.34~162 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=593dacd274a22583cac4e091a08bf2ded0ae9703;p=thirdparty%2Fsamba.git 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 Reviewed-by: Douglas Bagnall --- diff --git a/lib/replace/wscript b/lib/replace/wscript index 952663257fa..7436a90c003 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