From a5ceef5fdf8cef8777d32a7683e7453398072cc4 Mon Sep 17 00:00:00 2001 From: Michael Tuexen <tuexen@fh-muenster.de> Date: Fri, 4 May 2018 13:18:10 +0200 Subject: [PATCH] Improve compilation on Solaris 11.4. --- gtests/net/packetdrill/packet_socket_pcap.c | 4 ++-- gtests/net/packetdrill/run_system_call.c | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gtests/net/packetdrill/packet_socket_pcap.c b/gtests/net/packetdrill/packet_socket_pcap.c index 568aef97..e9ca8622 100644 --- a/gtests/net/packetdrill/packet_socket_pcap.c +++ b/gtests/net/packetdrill/packet_socket_pcap.c @@ -35,7 +35,7 @@ #ifdef USE_LIBPCAP -#if defined(__FreeBSD__) || defined(__APPLE__) +#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__SunOS_5_11) #include <pcap/pcap.h> #elif defined(__OpenBSD__) || defined(__NetBSD__) #include <pcap.h> @@ -257,7 +257,7 @@ int packet_socket_receive(struct packet_socket *psock, (u32)pkt_header->ts.tv_sec, (u32)pkt_header->ts.tv_usec); -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__) +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__) || defined(__SunOS_5_11) packet->time_usecs = timeval_to_usecs(&pkt_header->ts); #elif defined(__OpenBSD__) packet->time_usecs = bpf_timeval_to_usecs(&pkt_header->ts); diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c index a0e53806..19776b79 100644 --- a/gtests/net/packetdrill/run_system_call.c +++ b/gtests/net/packetdrill/run_system_call.c @@ -6934,6 +6934,7 @@ static int await_idle_thread(struct state *state) return STATUS_OK; } +#if !defined(__SunOS_5_11) static int yield(void) { #if defined(linux) @@ -6948,6 +6949,7 @@ static int yield(void) return 0; #endif /* defined(__APPLE__) */ } +#endif /* Enqueue the system call for the syscall thread and wake up the thread. */ static void enqueue_system_call( @@ -6997,8 +6999,12 @@ static void enqueue_system_call( DEBUGP("main thread: unlocking and yielding\n"); thread_id = state->syscalls->thread_id; run_unlock(state); +#if defined(__SunOS_5_11) + yield(); +#else if (yield() != 0) die_perror("yield"); +#endif DEBUGP("main thread: checking syscall thread state\n"); if (is_thread_sleeping(getpid(), thread_id)) -- GitLab