Index: libcfa/src/concurrency/io.cfa
===================================================================
--- libcfa/src/concurrency/io.cfa	(revision d384787be999e142272516fb61f200e092c7a722)
+++ libcfa/src/concurrency/io.cfa	(revision 0ea6c5a7cb18833338f85081efacd0c41eeeabb7)
@@ -412,13 +412,4 @@
 // I/O Interface
 //=============================================================================================
-extern "C" {
-	#define __USE_GNU
-	#define _GNU_SOURCE
-	#include <fcntl.h>
-	#include <sys/uio.h>
-	#include <sys/socket.h>
-	#include <sys/stat.h>
-}
-
 #if defined(HAVE_LINUX_IO_URING_H)
 	#define __submit_prelude \
@@ -437,4 +428,36 @@
 #endif
 
+// Some forward declarations
+extern "C" {
+	#include <sys/types.h>
+	struct iovec;
+	extern ssize_t preadv2 (int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags);
+	extern ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags);
+
+	extern int fsync(int fd);
+	extern int sync_file_range(int fd, int64_t offset, int64_t nbytes, unsigned int flags);
+
+	struct msghdr;
+	struct sockaddr;
+	extern ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);
+	extern ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);
+	extern ssize_t send(int sockfd, const void *buf, size_t len, int flags);
+	extern ssize_t recv(int sockfd, void *buf, size_t len, int flags);
+	extern int accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags);
+	extern int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
+
+	extern int fallocate(int fd, int mode, uint64_t offset, uint64_t len);
+	extern int posix_fadvise(int fd, uint64_t offset, uint64_t len, int advice);
+	extern int madvise(void *addr, size_t length, int advice);
+
+	extern int openat(int dirfd, const char *pathname, int flags, mode_t mode);
+	extern int close(int fd);
+
+	struct statx;
+	extern int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf);
+
+	extern ssize_t read (int fd, void *buf, size_t count);
+}
+
 //-----------------------------------------------------------------------------
 // Asynchronous operations
@@ -549,10 +572,5 @@
 int cfa_accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags) {
 	#if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_ACCEPT)
-		#pragma GCC diagnostic push
-		#pragma GCC diagnostic ignored "-Wattributes"
-			__SOCKADDR_ARG _addr;
-			_addr.__sockaddr__ = addr;
-			return accept4( sockfd, _addr, addrlen, flags );
-		#pragma GCC diagnostic pop
+		return accept4( sockfd, addr, addrlen, flags );
 	#else
 		__submit_prelude
@@ -569,10 +587,5 @@
 int cfa_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) {
 	#if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_CONNECT)
-		#pragma GCC diagnostic push
-		#pragma GCC diagnostic ignored "-Wattributes"
-			__CONST_SOCKADDR_ARG _addr;
-			_addr.__sockaddr__ = addr;
-			return connect( sockfd, _addr, addrlen );
-		#pragma GCC diagnostic pop
+		return connect( sockfd, addr, addrlen );
 	#else
 		__submit_prelude
@@ -766,5 +779,5 @@
 			return IS_DEFINED(IORING_OP_FALLOCATE);
 
-		if( /*func == (fptr_t)fadvise || */
+		if( /*func == (fptr_t)posix_fadvise || */
 			func == (fptr_t)cfa_fadvise )
 			#define _CFA_IO_FEATURE_IORING_OP_FADVISE ,
