Home | History | Annotate | Line # | Download | only in librumpuser
      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