* Mathieu Desnoyers: >> Can you use __has_include in <sys/rseq.h>, with a copy of the kernel >> definitions if the kernel header is not available? > > Sure. Should I pull a verbatim copy of uapi linux/rseq.h into glibc ? > If so, where should I put it ? Probably into <sys/rseq.h>, perhaps with a construct like this (untested): #ifdef __has_include # if __has_include ("linux/rseq.h") # define __GLIBC_HAVE_KERNEL_RSEQ # endif #else # include <linux/version.h> # if LINUX_VERSION_CODE >= KERNEL_VERSION (4, 18, 0) # define __GLIBC_HAVE_KERNEL_RSEQ # endif #endif #ifdef __GLIBC_HAVE_KERNEL_RSEQ # include <linux/rseq.h> #else … (fallback goes here) #endif We have an ongoing debate whether the fallback definition should use __u64 or uint64_t. You also need to add an assert that the compiler supports __attribute__ ((aligned)) because ignoring it produces an ABI-incompatible header. The struct rseq/struct rseq_cs definitions are broken, they should not try to change the alignment. PS: I have Internet connection trouble. Nobody should be worried if I drop off the net for a while. I understand this is quite a bad time for that. 8-(