--- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -441,33 +441,13 @@ def configure(conf): conf.CHECK_FUNCS('prctl dirname basename') - strlcpy_in_bsd = False + # Not checking for libbsd + conf.CHECK_FUNCS('strlcpy strlcat') + conf.CHECK_FUNCS('getpeereid') + conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h') + conf.CHECK_FUNCS('setproctitle_init') - # libbsd on some platforms provides strlcpy and strlcat - if not conf.CHECK_FUNCS('strlcpy strlcat'): - if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h', - checklibc=True): - strlcpy_in_bsd = True - elif conf.env.enable_fuzzing: - # Just to complicate it more, some versions of Honggfuzz have - # got strlcpy and strlcat in libc, but not in - # (unless it is there coincidentally, on a BSD). Therefore we - # can't use CHECK_FUNCS alone to decide whether to add the - # headers to replace.h. - # - # As this is only known to happen on a fuzzing compiler, we'll - # skip the check when not in fuzzing mode. - conf.CHECK_HEADERS('bsd/string.h') - - 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'): - conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h') - if not conf.CHECK_FUNCS('setproctitle_init'): - conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h') - - if not conf.CHECK_FUNCS('closefrom'): - conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h') + conf.CHECK_FUNCS('closefrom') conf.CHECK_CODE(''' struct ucred cred; @@ -850,9 +830,6 @@ syscall(SYS_copy_file_range,0,NULL,0,NUL # 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 @@ -865,7 +842,7 @@ syscall(SYS_copy_file_range,0,NULL,0,NUL #include "tests/getifaddrs.c" ''' % method, method, - lib='nsl socket' + bsd_for_strlcpy, + lib='nsl socket', addmain=False, execute=True): break @@ -913,7 +890,6 @@ def build(bld): break extra_libs = '' - if bld.CONFIG_SET('HAVE_LIBBSD'): extra_libs += ' bsd' if bld.CONFIG_SET('HAVE_LIBRT'): extra_libs += ' rt' if bld.CONFIG_SET('REPLACE_REQUIRES_LIBSOCKET_LIBNSL'): extra_libs += ' socket nsl'