From 2d0ac59fcc490517b202180f49b178ab80c2534e Mon Sep 17 00:00:00 2001 From: Matthieu Patou Date: Thu, 21 Oct 2010 00:13:54 +0400 Subject: replace: use a wrapper around strtoll if it didn't behave as expected --- lib/replace/wscript | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib/replace/wscript') diff --git a/lib/replace/wscript b/lib/replace/wscript index 48871d6442..1778ea71b0 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -160,6 +160,23 @@ def configure(conf): conf.CHECK_FUNCS('link readlink symlink realpath snprintf vsnprintf') conf.CHECK_FUNCS('asprintf vasprintf setenv unsetenv strnlen strtoull __strtoull') conf.CHECK_FUNCS('strtouq strtoll __strtoll strtoq') + #Some OS (ie. freebsd) return EINVAL if the convertion could not be done, it's not what we expect + #Let's detect those cases + if conf.CONFIG_SET('HAVE_STRTOLL'): + conf.CHECK_CODE(''' + long long nb = strtoll("Text", NULL, 0); + if (errno == EINVAL) { + return 0; + } else { + return 1; + } + ''', + msg="Checking correct behavior of strtoll", + headers = 'errno.h', + execute = True, + define_ret = True, + define = 'HAVE_BSD_STRTOLL', + ) conf.CHECK_FUNCS('if_nametoindex strerror_r') conf.CHECK_FUNCS('getdirentries getdents syslog') conf.CHECK_FUNCS('gai_strerror get_current_dir_name') -- cgit