Skip to content

Link to -lssp when enabling _FORTIFY_SOURCE

This is required for MinGW GCC, otherwise get the following errors:

[1/8] Linking target src/libcairo-2.dll
FAILED: src/libcairo-2.dll
"c++" @src/libcairo-2.dll.rsp
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-output-stream.c.obj:cairo-output-stream.c:(.text+0x99c): undefined reference to `__memcpy_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/win32_cairo-win32-font.c.obj:cairo-win32-fo:(.text+0x164b): undefined reference to `__memcpy_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x33fc): undefined reference to `__strcat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x3468): undefined reference to `__strcat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x34a3): undefined reference to `__strcat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x34be): undefined reference to `__strcat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x3a24): undefined reference to `__strncat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x3a4a): undefined reference to `__strncat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x3a81): undefined reference to `__strcat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x3bb1): undefined reference to `__strncat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x3bda): undefined reference to `__strncat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x3bf2): undefined reference to `__strcat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x3c1d): undefined reference to `__strncat_chk'
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: src/libcairo-2.dll.p/cairo-pdf-interchange.c.obj:cairo-pdf-interchange.c:(.text+0x3c2e): undefined reference to `__strcat_chk'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

See https://stackoverflow.com/a/68393356

Edited by Luca Bacci

Merge request reports