diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-06-28 08:28:52 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-06-28 10:30:34 +0200 |
commit | 14c4c498b15485c35abf6fb8ec54eb1e0724bae6 (patch) | |
tree | 0c441da412bbcc6845fc62d8624152e9c0d1af38 | |
parent | f1e13d6081920b7f65c0ff70c19fb638a7fc86fa (diff) |
Fix embedded (arm-none-eabi) builds
Due to OS#3360, build testing for arm-none-eabi was unfortunately
skipped for a long time. This is a number of fixes that make the
compile test pass again.
Related: OS#3360
Change-Id: I88e3c8e1a8786ca2a6a023b0d27c74be200a8588
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/logging.c | 2 | ||||
-rw-r--r-- | src/pseudotalloc/pseudotalloc.c | 16 | ||||
-rw-r--r-- | src/pseudotalloc/talloc.h | 3 | ||||
-rw-r--r-- | src/timer_clockgettime.c | 5 |
5 files changed, 28 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index cb580a37..dd5f15bc 100644 --- a/configure.ac +++ b/configure.ac @@ -91,6 +91,8 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([char foo;])], CFLAGS="$saved_CFLAGS" AC_SUBST(SYMBOL_VISIBILITY) +AC_CHECK_FUNCS(clock_gettime localtime_r) + AC_DEFUN([CHECK_TM_INCLUDES_TM_GMTOFF], [ AC_CACHE_CHECK( [whether struct tm has tm_gmtoff member], diff --git a/src/logging.c b/src/logging.c index 147b1fb7..1dfd4847 100644 --- a/src/logging.c +++ b/src/logging.c @@ -356,6 +356,7 @@ static void _output(struct log_target *target, unsigned int subsys, } if (!cont) { if (target->print_ext_timestamp) { +#ifdef HAVE_LOCALTIME_R struct tm tm; struct timeval tv; osmo_gettimeofday(&tv, NULL); @@ -367,6 +368,7 @@ static void _output(struct log_target *target, unsigned int subsys, if (ret < 0) goto err; OSMO_SNPRINTF_RET(ret, rem, offset, len); +#endif } else if (target->print_timestamp) { char *timestr; time_t tm; diff --git a/src/pseudotalloc/pseudotalloc.c b/src/pseudotalloc/pseudotalloc.c index 2a990663..89e62696 100644 --- a/src/pseudotalloc/pseudotalloc.c +++ b/src/pseudotalloc/pseudotalloc.c @@ -96,3 +96,19 @@ char *talloc_asprintf(const void *ctx, const char *fmt, ...) va_end(args); return buf; } + +void *talloc_steal(const void *new_ctx, const void *obj) +{ + /* as we don't do hierarchical allocations, this is simply a NOP */ + return (void *)obj; +} + +char *talloc_vasprintf(const void *t, const char *fmt, va_list ap) +{ + /* we have a hard-coded maximum string length of 128 bytes in this pseudo implementation */ + char *buf = pseudotalloc_malloc(128); + if (!buf) + return NULL; + vsnprintf(buf, 128, fmt, ap); + return buf; +} diff --git a/src/pseudotalloc/talloc.h b/src/pseudotalloc/talloc.h index ae2e1fc8..34088af0 100644 --- a/src/pseudotalloc/talloc.h +++ b/src/pseudotalloc/talloc.h @@ -59,3 +59,6 @@ void *_talloc_zero_array(const void *ctx, unsigned count, const char *name); char *talloc_asprintf(const void *ctx, const char *fmt, ...); + +void *talloc_steal(const void *new_ctx, const void *obj); +char *talloc_vasprintf(const void *t, const char *fmt, va_list ap); diff --git a/src/timer_clockgettime.c b/src/timer_clockgettime.c index 8d9760c5..7b17fd11 100644 --- a/src/timer_clockgettime.c +++ b/src/timer_clockgettime.c @@ -44,6 +44,9 @@ /*! \file timer_clockgettime.c */ +#include "config.h" +#ifdef HAVE_CLOCK_GETTIME + #include <stdlib.h> #include <stdbool.h> #include <sys/time.h> @@ -135,4 +138,6 @@ void osmo_clock_override_add(clockid_t clk_id, time_t secs, long nsecs) timespecadd(&c->time, &val, &c->time); } +#endif /* HAVE_CLOCK_GETTIME */ + /*! @} */ |