From 7f5567eec0f996fd849876c74508aa63b3c2e3fc Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 28 Aug 2022 15:48:12 +0200 Subject: [PATCH] Reviewed GLFW compilation requirements on Linux: `_GNU_SOURCE` Reasons to NOT define `_GNU_SOURCE`: - access to lots of nonstandard GNU/Linux extension functions - access to traditional functions which were omitted from the POSIX standard (often for good reason, such as being replaced with better alternatives, or being tied to particular legacy implementations) - access to low-level functions that cannot be portable, but that you sometimes need for implementing system utilities like mount, ifconfig, etc. - broken behavior for lots of POSIX-specified functions, where the GNU folks disagreed with the standards committee on how the functions should behave and decided to do their own thing. --- src/Makefile | 1 + src/external/glfw/src/posix_poll.c | 1 - src/external/glfw/src/posix_poll.h | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index a6f380b6f..291508edc 100644 --- a/src/Makefile +++ b/src/Makefile @@ -307,6 +307,7 @@ endif # -Wno-missing-braces ignore invalid warning (GCC bug 53119) # -Wno-unused-value ignore unused return values of some functions (i.e. fread()) # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec +# -D_GNU_SOURCE access to lots of nonstandard GNU/Linux extension functions # -Werror=pointer-arith catch unportable code that does direct arithmetic on void pointers # -fno-strict-aliasing jar_xm.h does shady stuff (breaks strict aliasing) CFLAGS = -Wall -D_GNU_SOURCE -D$(PLATFORM) -D$(GRAPHICS) -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing $(CUSTOM_CFLAGS) diff --git a/src/external/glfw/src/posix_poll.c b/src/external/glfw/src/posix_poll.c index d309292e1..676a8a510 100644 --- a/src/external/glfw/src/posix_poll.c +++ b/src/external/glfw/src/posix_poll.c @@ -29,7 +29,6 @@ #define _GNU_SOURCE #include "internal.h" -#include "posix_poll.h" // @raysan5: Required for poll(), ppoll() #include #include diff --git a/src/external/glfw/src/posix_poll.h b/src/external/glfw/src/posix_poll.h index 860f108da..1effd1cd3 100644 --- a/src/external/glfw/src/posix_poll.h +++ b/src/external/glfw/src/posix_poll.h @@ -26,7 +26,6 @@ // It is fine to use C99 in this file because it will not be built with VS //======================================================================== -#define _GNU_SOURCE // @raysan5: Required for ppoll() #include GLFWbool _glfwPollPOSIX(struct pollfd* fds, nfds_t count, double* timeout);