Makefile(win): link -lpsapi so the MinGW build resolves GetProcessMemoryInfo
compat.h's rss_gb() calls GetProcessMemoryInfo and links psapi via #pragma comment(lib,"psapi.lib") — an MSVC-ism. MinGW gcc ignores that pragma (emits -Wunknown-pragmas), and the Windows LDFLAGS never linked psapi, so on a gcc that doesn't honor the pragma (e.g. 16.1.0 UCRT) the build fails with `undefined reference to GetProcessMemoryInfo`. Add -lpsapi to the Windows LDFLAGS; harmless on toolchains where the pragma also resolves it. Found while building on native Windows 11 with winlibs GCC 16.1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+5
-1
@@ -67,7 +67,11 @@ else ifneq ($(IS_WIN),)
|
|||||||
CC = gcc
|
CC = gcc
|
||||||
ARCH ?= x86-64-v3
|
ARCH ?= x86-64-v3
|
||||||
CFLAGS = -D_FILE_OFFSET_BITS=64 -O3 -march=$(ARCH) -fopenmp -Wall -Wextra -Wno-unused-parameter -Wno-misleading-indentation -Wno-unused-function
|
CFLAGS = -D_FILE_OFFSET_BITS=64 -O3 -march=$(ARCH) -fopenmp -Wall -Wextra -Wno-unused-parameter -Wno-misleading-indentation -Wno-unused-function
|
||||||
LDFLAGS = -lm -fopenmp -static
|
# -lpsapi: compat.h calls GetProcessMemoryInfo (rss_gb). It's linked via
|
||||||
|
# #pragma comment(lib,"psapi.lib") for MSVC, but MinGW gcc ignores that pragma
|
||||||
|
# (warns), so link psapi explicitly or the build fails undefined-reference on
|
||||||
|
# modern GCC (e.g. 16.x under UCRT). Harmless where the pragma also resolves it.
|
||||||
|
LDFLAGS = -lm -fopenmp -static -lpsapi
|
||||||
EXE = .exe
|
EXE = .exe
|
||||||
else
|
else
|
||||||
ifneq (,$(PPC64))
|
ifneq (,$(PPC64))
|
||||||
|
|||||||
Reference in New Issue
Block a user