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 */ +  /*! @} */ | 
