Index: libcfa/src/bits/locks.hfa
===================================================================
--- libcfa/src/bits/locks.hfa	(revision 0e52f140655799377d6885c12ca7bdc72f7c3d11)
+++ libcfa/src/bits/locks.hfa	(revision ace2e92e8bfa195e3c33c31711a82c7ac67e8700)
@@ -357,5 +357,12 @@
 				struct oneshot * expected = this.ptr;
 				// was this abandoned?
-				if( expected == 3p ) { free( &this ); return false; }
+				#if defined(__GNUC__) && __GNUC__ >= 7
+					#pragma GCC diagnostic push
+					#pragma GCC diagnostic ignored "-Wfree-nonheap-object"
+				#endif
+					if( expected == 3p ) { free( &this ); return false; }
+				#if defined(__GNUC__) && __GNUC__ >= 7
+					#pragma GCC diagnostic pop
+				#endif
 
 				/* paranoid */ verify( expected != 1p ); // Future is already fulfilled, should not happen
Index: libcfa/src/concurrency/io/call.cfa.in
===================================================================
--- libcfa/src/concurrency/io/call.cfa.in	(revision 0e52f140655799377d6885c12ca7bdc72f7c3d11)
+++ libcfa/src/concurrency/io/call.cfa.in	(revision ace2e92e8bfa195e3c33c31711a82c7ac67e8700)
@@ -109,9 +109,9 @@
 	#include <sys/syscall.h>
 
-#if defined(HAVE_PREADV2)
+#if defined(CFA_HAVE_PREADV2)
 	struct iovec;
 	extern ssize_t preadv2 (int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags);
 #endif
-#if defined(HAVE_PWRITEV2)
+#if defined(CFA_HAVE_PWRITEV2)
 	struct iovec;
 	extern ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags);
