diff --git a/src/macros.hpp b/src/macros.hpp
index 981f17027fbf39ddc1100d4f2774c2c3956dc13e..b5c38c151c778c65d00e5bdcad6af356c9ee80e6 100644
--- a/src/macros.hpp
+++ b/src/macros.hpp
@@ -1,5 +1,7 @@
 #pragma once
 
+#ifdef __GNUC__
+
 #define ATTR_NONNULL_ALL __attribute__((nonnull))
 #define ATTR_NONNULL(...) __attribute__((nonnull(__VA_ARGS__)))
 
@@ -7,8 +9,27 @@
 #define ATTR_STRFTIME(fmtpos) __attribute__(( format(strftime, (fmtpos), 0 ) ))
 
 #define ATTR_PACKED __attribute__((packed))
-
+#define ATTR_UNUSED __attribute__((unused))
 #define ATTR_WEAK __attribute__((weak))
 
 #define ATTR_LIKELY(x) __builtin_expect((x), 1)
 #define ATTR_UNLIKELY(x) __builtin_expect((x), 0)
+
+#else
+
+#define ATTR_NONNULL_ALL
+#define ATTR_NONNULL(...)
+
+#define ATTR_PRINTF(fmtpos, argpos)
+#define ATTR_STRFTIME(fmtpos)
+
+#define ATTR_PACKED
+#define ATTR_UNUSED
+#define ATTR_WEAK
+
+#define ATTR_LIKELY(x) (x)
+#define ATTR_UNLIKELY(x) (x)
+
+#endif
+
+#define MARK_UNUSED(x) (void)(x)
diff --git a/src/net/tcp_server_socket.cpp b/src/net/tcp_server_socket.cpp
index 0308d90cb8f603e37130581152cc877366949a9c..7a555c242324e644efe8c42da796df082ff21549 100644
--- a/src/net/tcp_server_socket.cpp
+++ b/src/net/tcp_server_socket.cpp
@@ -18,6 +18,9 @@
 #include <sys/stat.h>
 #include <netinet/in.h>
 
+#include "macros.hpp"
+
+
 namespace rmrf::net {
 
 tcp_server_socket::tcp_server_socket(uint16_t port, incoming_client_listener_type client_listener_) :
@@ -54,13 +57,10 @@ tcp_server_socket::tcp_server_socket(uint16_t port, incoming_client_listener_typ
 
 
 // As we're not depending on the actual async server object we need to suppress the warning that we're not using it.
-#ifdef __GNUC__
-	#define UNUSED __attribute__ ((unused))
-#else
-	#define UNUSED
-#endif
 
-void tcp_server_socket::await_raw_socket_incomming(async_server_socket::self_ptr_type ass UNUSED, const auto_fd& socket) {
+void tcp_server_socket::await_raw_socket_incomming(async_server_socket::self_ptr_type ass, const auto_fd& socket) {
+	MARK_UNUSED(ass);
+
 	struct sockaddr_in client_addr;
 	socklen_t client_len = sizeof(client_addr);
 	int client_fd_raw = accept(socket.get(), (struct sockaddr *)&client_addr, &client_len);
@@ -84,7 +84,9 @@ int tcp_server_socket::get_number_of_connected_clients() {
 	return this->number_of_connected_clients;
 }
 
-void tcp_server_socket::client_destructed_cb(tcp_client::exit_status exit_status UNUSED) {
+void tcp_server_socket::client_destructed_cb(tcp_client::exit_status exit_status) {
+	MARK_UNUSED(exit_status);
+
 	this->number_of_connected_clients--;
 }