diff options
author | Harald Welte <laforge@gnumonks.org> | 2014-12-04 14:15:36 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2014-12-04 14:15:36 +0100 |
commit | e15ac060e7ae78d4c3569d7fc9071bcf49807e05 (patch) | |
tree | a90fc81b1197e28b668a98f175543d705edf775f | |
parent | 20144f7bc5c04e57da36cd7d7883f576510f0298 (diff) |
fix libosmocore build for NuttX target
this fixes some compilation issues with libosmocore under NuttX,
particularly as some #defines are missing or some header files are
slightly different.
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/application.c | 6 | ||||
-rw-r--r-- | src/ctrl/control_if.c | 8 | ||||
-rw-r--r-- | src/gsm/a5.c | 5 | ||||
-rw-r--r-- | src/macaddr.c | 1 |
5 files changed, 19 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac index ef74932b..acd153d1 100644 --- a/configure.ac +++ b/configure.ac @@ -31,7 +31,7 @@ AC_SUBST(LTLDFLAGS_OSMOGSM) dnl checks for header files AC_HEADER_STDC -AC_CHECK_HEADERS(execinfo.h sys/select.h sys/socket.h syslog.h ctype.h) +AC_CHECK_HEADERS(execinfo.h sys/select.h sys/socket.h syslog.h ctype.h netinet/tcp.h) # for src/conv.c AC_FUNC_ALLOCA AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DL="$LIBS";LIBS=""]) diff --git a/src/application.c b/src/application.c index 881f0117..9c3fe52b 100644 --- a/src/application.c +++ b/src/application.c @@ -81,10 +81,16 @@ static void sighup_hdlr(int signal) void osmo_init_ignore_signals(void) { /* Signals that by default would terminate */ +#ifdef SIGPIPE signal(SIGPIPE, SIG_IGN); +#endif signal(SIGALRM, SIG_IGN); +#ifdef SIGHUP signal(SIGHUP, &sighup_hdlr); +#endif +#ifdef SIGIO signal(SIGIO, SIG_IGN); +#endif } /*! \brief Initialize the osmocom logging framework diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c index c20c1e0f..dc191209 100644 --- a/src/ctrl/control_if.c +++ b/src/ctrl/control_if.c @@ -31,10 +31,12 @@ #include <arpa/inet.h> -#include <netinet/tcp.h> #include <netinet/in.h> +#ifdef HAVE_NETINET_TCP_H +#include <netinet/tcp.h> +#endif -#include <sys/fcntl.h> +#include <fcntl.h> #include <sys/ioctl.h> #include <sys/socket.h> #include <sys/types.h> @@ -378,6 +380,7 @@ static int listen_fd_cb(struct osmo_fd *listen_bfd, unsigned int what) LOGP(DLCTRL, LOGL_INFO, "accept()ed new control connection from %s\n", inet_ntoa(sa.sin_addr)); +#ifdef TCP_NODELAY on = 1; ret = setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); if (ret != 0) { @@ -385,6 +388,7 @@ static int listen_fd_cb(struct osmo_fd *listen_bfd, unsigned int what) close(fd); return ret; } +#endif ccon = ctrl_connection_alloc(listen_bfd->data); if (!ccon) { LOGP(DLCTRL, LOGL_ERROR, "Failed to allocate.\n"); diff --git a/src/gsm/a5.c b/src/gsm/a5.c index de821e89..10a063e2 100644 --- a/src/gsm/a5.c +++ b/src/gsm/a5.c @@ -39,6 +39,11 @@ #include <osmocom/gsm/a5.h> +/* Somme OS (like Nuttx) don't have ENOTSUP */ +#ifndef ENOTSUP +#define ENOTSUP EINVAL +#endif + /*! \brief Main method to generate a A5/x cipher stream * \param[in] n Which A5/x method to use * \param[in] key 8 byte array for the key (as received from the SIM) diff --git a/src/macaddr.c b/src/macaddr.c index 7bc44017..59c481f7 100644 --- a/src/macaddr.c +++ b/src/macaddr.c @@ -89,6 +89,7 @@ int osmo_get_macaddr(uint8_t *mac_out, const char *dev_name) #include <sys/ioctl.h> #include <net/if.h> +#include <netinet/in.h> #include <netinet/ip.h> int osmo_get_macaddr(uint8_t *mac_out, const char *dev_name) |