1 1.1 pooka # 2 1.1 pooka # Rump kernel POSIX hypervisor autoconf support. 3 1.1 pooka # 4 1.1 pooka # NOTE! regen by doing the following 5 1.1 pooka # 1) autoreconf -iv 6 1.1 pooka # 2) edit rumpuser_port.h (search for RUMPUSER_CONFIG for instructions) 7 1.1 pooka # 3) rm -rf autom4te.cache 8 1.6 lukem # 4) commit to NetBSD, pullup to https://github.com/rumpkernel/ 9 1.1 pooka # 10 1.1 pooka 11 1.1 pooka AC_PREREQ([2.66]) 12 1.6 lukem AC_INIT([rumpuser-posix], [999], [https://github.com/rumpkernel/]) 13 1.1 pooka 14 1.1 pooka AC_CONFIG_HEADERS([rumpuser_config.h]) 15 1.1 pooka AC_CONFIG_AUX_DIR([build-aux]) 16 1.7 lukem AC_CONFIG_MACRO_DIR([build-aux]) 17 1.1 pooka 18 1.1 pooka AC_LANG([C]) 19 1.1 pooka 20 1.1 pooka AC_SYS_LARGEFILE 21 1.1 pooka 22 1.4 pooka AC_CHECK_HEADERS([sys/param.h sys/sysctl.h sys/disk.h \ 23 1.1 pooka sys/disklabel.h sys/dkio.h sys/atomic.h paths.h]) 24 1.1 pooka 25 1.1 pooka AC_CANONICAL_TARGET 26 1.1 pooka 27 1.1 pooka AC_CHECK_TYPES([clockid_t, register_t]) 28 1.1 pooka 29 1.1 pooka AC_CHECK_FUNCS([kqueue chflags strsuftoll setprogname getprogname \ 30 1.3 pooka getenv_r posix_memalign memalign aligned_alloc \ 31 1.8 ozaki arc4random_buf getsubopt fsync_range __quotactl utimensat \ 32 1.8 ozaki preadv pwritev]) 33 1.1 pooka 34 1.1 pooka AC_TRY_LINK_FUNC([clock_nanosleep],, 35 1.1 pooka AC_CHECK_LIB([rt], [clock_nanosleep]) 36 1.1 pooka ) 37 1.3 pooka AC_CHECK_LIB([rt], [clock_gettime], 38 1.3 pooka AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [clock_gettime]), 39 1.3 pooka AC_TRY_LINK_FUNC([clock_gettime], 40 1.3 pooka AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [clock_gettime]))) 41 1.2 pooka AC_CHECK_LIB([rt], [clock_nanosleep], 42 1.2 pooka AC_DEFINE([HAVE_CLOCK_NANOSLEEP], 1, [clock_nanosleep]), 43 1.2 pooka AC_TRY_LINK_FUNC([clock_nanosleep], 44 1.2 pooka AC_DEFINE([HAVE_CLOCK_NANOSLEEP], 1, [clock_nanosleep]))) 45 1.1 pooka AC_CHECK_LIB([dl], [dlinfo], 46 1.1 pooka AC_DEFINE([HAVE_DLINFO], 1, [dlinfo]), 47 1.1 pooka AC_TRY_LINK_FUNC([dlinfo], AC_DEFINE([HAVE_DLINFO], 1, [dlinfo]))) 48 1.1 pooka 49 1.1 pooka AC_CHECK_MEMBERS([struct sockaddr_in.sin_len],,,[#include <netinet/in.h>]) 50 1.1 pooka 51 1.1 pooka dnl 52 1.1 pooka dnl pthread_setname() sillyness is a bit longer; we need the signature 53 1.1 pooka dnl 54 1.1 pooka SAVE_CFLAGS="${CFLAGS}" 55 1.1 pooka CFLAGS="${SAVE_CFLAGS} -Werror" 56 1.4 pooka 57 1.4 pooka dnl check sys/cdefs.h creatively to process only with cc, not cpp 58 1.4 pooka dnl (sys/cdefs.h in at least in musl contains a #warning) 59 1.4 pooka AC_CHECK_HEADERS([sys/cdefs.h], [], [], [#include <sys/cdefs.h>]) 60 1.4 pooka 61 1.1 pooka SAVE_LIBS="${LIBS}" 62 1.1 pooka LIBS="${LIBS} -lpthread" 63 1.1 pooka AC_MSG_CHECKING([for two-argument pthread_setname_np()]) 64 1.1 pooka AC_COMPILE_IFELSE( 65 1.1 pooka [AC_LANG_PROGRAM( 66 1.1 pooka [[#define _GNU_SOURCE 67 1.1 pooka #include <pthread.h>]], 68 1.1 pooka [[pthread_t pt;] 69 1.1 pooka [pthread_setname_np(pt, "x");return 0;]]) 70 1.1 pooka ],[ 71 1.1 pooka AC_MSG_RESULT([yes]) 72 1.1 pooka AC_DEFINE(HAVE_PTHREAD_SETNAME2, [1], 73 1.1 pooka [Define to 1 if you have 2-arg pthread_setname_np()]) 74 1.1 pooka ],[ 75 1.1 pooka AC_MSG_RESULT([no]) 76 1.1 pooka ]) 77 1.1 pooka AC_MSG_CHECKING([for three-argument pthread_setname_np()]) 78 1.1 pooka AC_COMPILE_IFELSE( 79 1.1 pooka [AC_LANG_PROGRAM( 80 1.1 pooka [[#define _GNU_SOURCE 81 1.1 pooka #include <pthread.h>]], 82 1.1 pooka [[pthread_t pt;] 83 1.1 pooka [pthread_setname_np(pt, "X", (void *)0);return 0;]]) 84 1.1 pooka ],[ 85 1.1 pooka AC_MSG_RESULT([yes]) 86 1.1 pooka AC_DEFINE(HAVE_PTHREAD_SETNAME3, [1], 87 1.1 pooka [Define to 1 if you have 3-arg pthread_setname_np()]) 88 1.1 pooka ],[ 89 1.1 pooka AC_MSG_RESULT([no]) 90 1.1 pooka ]) 91 1.1 pooka LIBS="${SAVELIBS}" 92 1.1 pooka 93 1.1 pooka AC_MSG_CHECKING([for ioctl cmd being int]) 94 1.1 pooka AC_COMPILE_IFELSE( 95 1.1 pooka [AC_LANG_PROGRAM( 96 1.1 pooka [[#include <sys/ioctl.h> 97 1.1 pooka #include <unistd.h> 98 1.1 pooka int ioctl(int fd, int, ...);]], 99 1.1 pooka [[] 100 1.1 pooka [return 0;]]) 101 1.1 pooka ],[ 102 1.1 pooka AC_MSG_RESULT([yes]) 103 1.1 pooka AC_DEFINE(HAVE_IOCTL_CMD_INT, [1], 104 1.1 pooka [Define to 1 if ioctl()'s cmd arg is int]) 105 1.1 pooka ],[ 106 1.1 pooka AC_MSG_RESULT([no]) 107 1.1 pooka ]) 108 1.1 pooka CFLAGS="${SAVE_CFLAGS}" 109 1.1 pooka 110 1.1 pooka AC_OUTPUT 111