diff --git a/Makefile.port b/Makefile.port index 508b4fecc..2df88de90 100644 --- a/Makefile.port +++ b/Makefile.port @@ -151,9 +151,15 @@ G_DIR := src/generated/$(ROMID) ifneq (,$(findstring windows,$(TARGET_PLATFORM))) TARGET_CFLAGS := $(shell pkg-config sdl2 --cflags-only-I) - TARGET_LDFLAGS := $(shell pkg-config sdl2 --libs) -lz -lopengl32 -static-libstdc++ -lws2_32 -lwinmm -ldbghelp + TARGET_LDFLAGS := $(shell pkg-config sdl2 --libs) -lz -lopengl32 -lws2_32 -lwinmm -ldbghelp # on windows/mingw we need this to be built with a 32-bit compiler so it finds the correct libs TOOLCHAIN ?= i686-w64-mingw32- + # on GCC link libstdc++ statically + ifeq (,$(findstring clang,$(CC))$(findstring clang,$(CXX))) + TARGET_LDFLAGS += -static-libstdc++ + else + TARGET_LDFLAGS += -lstdc++ + endif else # assume *nix TARGET_CFLAGS := $(shell pkg-config sdl2 --cflags-only-I) TARGET_LDFLAGS := $(shell pkg-config sdl2 --libs) -lGL -lz -ldl @@ -233,8 +239,8 @@ INCLUDES = \ -I port/include TOOLCHAIN ?= -CC := $(TOOLCHAIN)gcc -std=c11 -CXX := $(TOOLCHAIN)g++ -std=c++20 +CC ?= $(TOOLCHAIN)gcc +CXX ?= $(TOOLCHAIN)g++ ifneq (,$(CXX_O_FILES)) LD := $(CXX) else @@ -250,7 +256,6 @@ COMMON_CFLAGS := $(C_DEFINES) -DAVOID_UB=1 $(INCLUDES) $(TARGET_CFLAGS) -g \ -fwrapv \ -Wall \ -Wno-address \ - -Wno-aggressive-loop-optimizations \ -Wno-int-in-bool-context \ -Wno-misleading-indentation \ -Wno-missing-braces \ @@ -261,8 +266,8 @@ COMMON_CFLAGS := $(C_DEFINES) -DAVOID_UB=1 $(INCLUDES) $(TARGET_CFLAGS) -g \ -Wno-unused-variable \ -Wno-format-truncation -CFLAGS := $(COMMON_CFLAGS) -Wno-pointer-sign -CXXFLAGS := $(COMMON_CFLAGS) -Wno-unused-function +CFLAGS := -std=c11 $(COMMON_CFLAGS) -Wno-pointer-sign +CXXFLAGS := -std=c++20 $(COMMON_CFLAGS) -Wno-unused-function LDFLAGS := $(TARGET_LDFLAGS) # Make ROMID available as an environment variable to all tooling. diff --git a/port/src/system.c b/port/src/system.c index 5a3257540..608345ae9 100644 --- a/port/src/system.c +++ b/port/src/system.c @@ -1,3 +1,7 @@ +#ifndef _GNU_SOURCE +#define _GNU_SOURCE 1 +#endif + #include #include #include @@ -29,10 +33,6 @@ __attribute__((dllexport)) u32 AmdPowerXpressRequestHighPerformance = 1; #else -#ifndef _GNU_SOURCE -#define _GNU_SOURCE 1 -#endif - #include // figure out how to yield