See bug https://bugs.gentoo.org/836723

There are 2 compilation errors:

/var/tmp/portage/net-misc/turbovnc-2.2.7-r2/work/turbovnc-2.2.7/unix/Xvnc/programs/Xserver/os/access.c: In function 'GetLocalClientCreds':
/var/tmp/portage/net-misc/turbovnc-2.2.7-r2/work/turbovnc-2.2.7/unix/Xvnc/programs/Xserver/os/access.c:1178:18: error: storage size of 'peercred' isn't known
 1178 |     struct ucred peercred;
      |                  ^~~~~~~~

/var/tmp/portage/net-misc/turbovnc-2.2.7-r2/work/turbovnc-2.2.7/unix/Xvnc/programs/Xserver/Xext/xf86bigfont.c:48:10: fatal error: asm/page.h: No such file or directory
   48 | #include <asm/page.h>
      |          ^~~~~~~~~~~~


--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -69,6 +69,8 @@
 boolean_number(TVNC_BUILDSERVER)
 report_option(TVNC_BUILDSERVER "TurboVNC Server")
 
+option(BUILDING_ON_MUSL "Define GNU macros on musl" 0)
+
 if(TVNC_BUILDNATIVE OR TVNC_BUILDSERVER)
 	set(USEC 1)
 endif()
--- a/unix/Xvnc/programs/Xserver/os/CMakeLists.txt
+++ b/unix/Xvnc/programs/Xserver/os/CMakeLists.txt
@@ -13,6 +13,10 @@
 	add_definitions(-DBSD44SOCKETS)
 endif()
 
+if(BUILDING_ON_MUSL)
+	add_definitions(-D_GNU_SOURCE)
+endif()
+
 set(EXTRASRCS "")
 if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
 	add_definitions(-DSECURE_RPC)
--- a/unix/Xvnc/programs/Xserver/Xext/CMakeLists.txt
+++ b/unix/Xvnc/programs/Xserver/Xext/CMakeLists.txt
@@ -8,6 +8,10 @@
 	endif()
 endforeach()
 
+if(BUILDING_ON_MUSL)
+	add_definitions(-D__GNU_LIBRARY__=2)
+endif()
+
 disable_compiler_warnings()
 handle_type_puns()
 
