typedef int (*comparison_fn_t)(const void *, const void *);
#endif
-#ifdef REPLACE_STRPTIME
+#ifndef HAVE_WORKING_STRPTIME
#define strptime rep_strptime
struct tm;
char *rep_strptime(const char *buf, const char *format, struct tm *tm);
+AC_CHECK_FUNCS(strptime)
+AC_CHECK_DECLS(strptime, [], [], [#include <time.h>])
AC_CACHE_CHECK([whether strptime is available and works],libreplace_cv_STRPTIME_OK,[
AC_TRY_RUN([
#define LIBREPLACE_CONFIGURE_TEST_STRPTIME
[libreplace_cv_STRPTIME_OK="assuming not"])
])
if test x"$libreplace_cv_STRPTIME_OK" != x"yes"; then
- AC_DEFINE(REPLACE_STRPTIME,1,[Whether strptime should be replaced])
LIBREPLACEOBJ="${LIBREPLACEOBJ} $libreplacedir/strptime.o"
+else
+ AC_DEFINE(HAVE_WORKING_STRPTIME,1,[Whether strptime is working correct])
fi
conf.CHECK_HEADERS('poll.h')
conf.CHECK_FUNCS('poll')
- if not conf.CHECK_CODE('''#define LIBREPLACE_CONFIGURE_TEST_STRPTIME
- #include "test/strptime.c"''',
- define='HAVE_STRPTIME',
- execute=True,
- addmain=False,
- msg='Checking for working strptime'):
- conf.DEFINE('REPLACE_STRPTIME', 1)
+ conf.CHECK_FUNCS('strptime')
+ conf.CHECK_DECLS('strptime', headers='time.h')
+ conf.CHECK_CODE('''#define LIBREPLACE_CONFIGURE_TEST_STRPTIME
+ #include "test/strptime.c"''',
+ define='HAVE_WORKING_STRPTIME',
+ execute=True,
+ addmain=False,
+ msg='Checking for working strptime')
conf.CHECK_CODE('gettimeofday(NULL, NULL)', 'HAVE_GETTIMEOFDAY_TZ', execute=False)
# Note: C99_VSNPRINTF is not a function, but a special condition
# for replacement
'snprintf.c': ['C99_VSNPRINTF', 'snprintf', 'vsnprintf', 'asprintf', 'vasprintf'],
+ # Note: WORKING_STRPTIME is not a function, but a special condition
+ # for replacement
+ 'strptime.c': ['WORKING_STRPTIME', 'strptime'],
}
REPLACE_HOSTCC_SOURCE = ''
- if bld.CONFIG_SET('REPLACE_STRPTIME'): REPLACE_HOSTCC_SOURCE += ' strptime.c'
for filename, functions in REPLACEMENT_FUNCTIONS.iteritems():
for function in functions:
if not bld.CONFIG_SET('HAVE_%s' % function.upper()):