diff options
author | dimitri staessens <[email protected]> | 2017-02-09 22:31:55 +0100 |
---|---|---|
committer | dimitri staessens <[email protected]> | 2017-02-09 23:25:00 +0100 |
commit | c3300620c68486619fd9c8e47a2552f6a913e09b (patch) | |
tree | 97f805ee804ceb6e228dc45ca7bbdc29cc22be0b /src | |
parent | 6785ca65ab48f1a29914c1784a24009964ec4720 (diff) | |
download | ouroboros-c3300620c68486619fd9c8e47a2552f6a913e09b.tar.gz ouroboros-c3300620c68486619fd9c8e47a2552f6a913e09b.zip |
lib, tools, ipcpd: Fix compilation on FreeBSD
FreeBSD defines its own bswap64 in the <sys/endian.h> header, which is
now included correctly.
POSIX requires XSI or RTS extensions to be enabled for the
sa_sigaction field to be visible. Linux doesn't do the check
correctly, but FreeBSD does.
Removes the LOG_MISSING call which was deprecated with the last
revision of the logging system.
Diffstat (limited to 'src')
-rw-r--r-- | src/ipcpd/shim-eth-llc/main.c | 1 | ||||
-rw-r--r-- | src/lib/byte_order.h | 8 | ||||
-rw-r--r-- | src/tools/cbr/cbr.c | 1 |
3 files changed, 7 insertions, 3 deletions
diff --git a/src/ipcpd/shim-eth-llc/main.c b/src/ipcpd/shim-eth-llc/main.c index 15482f87..f96c6e8a 100644 --- a/src/ipcpd/shim-eth-llc/main.c +++ b/src/ipcpd/shim-eth-llc/main.c @@ -773,7 +773,6 @@ static int eth_llc_ipcp_bootstrap(struct dif_config * conf) memcpy(LLADDR(&device), ifr.ifr_addr.sa_data, MAC_SIZE); device.sdl_alen = MAC_SIZE; /* TODO: replace socket calls with bpf for BSD */ - LOG_MISSING; skfd = socket(AF_LINK, SOCK_RAW, 0); #else device.sll_ifindex = idx; diff --git a/src/lib/byte_order.h b/src/lib/byte_order.h index 9ee082af..364b06cc 100644 --- a/src/lib/byte_order.h +++ b/src/lib/byte_order.h @@ -49,7 +49,9 @@ #include <stdlib.h> #ifdef __GLIBC__ -# include <endian.h> +#include <endian.h> +#elif defined(__FreeBSD__) +#include <sys/endian.h> #endif /* if x86 compatible cpu */ @@ -131,7 +133,8 @@ static inline uint32_t bswap_32(uint32_t x) { #if defined(__GNUC__) && (__GNUC__ >= 4) && \ (__GNUC__ > 4 || __GNUC_MINOR__ >= 3) #define bswap_64(x) __builtin_bswap64(x) -#elif !defined(__STRICT_ANSI__) +#elif !defined (bswap64) +#if !defined(__STRICT_ANSI__) static inline uint64_t bswap_64(uint64_t x) { union { uint64_t ll; @@ -145,6 +148,7 @@ static inline uint64_t bswap_64(uint64_t x) { #else #error "bswap_64 unsupported" #endif +#endif #ifdef CPU_BIG_ENDIAN #define be2me_32(x) (x) diff --git a/src/tools/cbr/cbr.c b/src/tools/cbr/cbr.c index 752395da..ef8a58ba 100644 --- a/src/tools/cbr/cbr.c +++ b/src/tools/cbr/cbr.c @@ -21,6 +21,7 @@ */ #define _POSIX_C_SOURCE 199506L +#define __XSI_VISIBLE 500 #include <stdio.h> #include <string.h> |