https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108866
--- Comment #5 from Pali Rohár <pali at kernel dot org> --- Thank you for info, I read that blog post and based on those details I adjusted spec file $ x86_64-w64-mingw32-gcc -dumpspecs > test.spec by adding additional lines to test.spec: .rc: x86_64-w64-mingw32-windres -J rc -O coff -i %i %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O} .res: x86_64-w64-mingw32-windres -J res -O coff -i %i %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O} rc files contains resources in text format and res files in binary format. With these changes x86_64-w64-mingw32-gcc was able to take both .c and .rc file on the input and produce .exe file with resource. $ cat test.c int main() { return 0; } $ cat test.rc 1 VERSIONINFO BEGIN END $ x86_64-w64-mingw32-gcc -specs=test.spec test.c test.rc -o test.exe Now show resource stored in test.exe: $ x86_64-w64-mingw32-windres -O rc test.exe /dev/stdout /* Type: version Name: 1. */ LANGUAGE 9, 1 1 VERSIONINFO BEGIN END Also replacing text test.rc file by binary test.res file works. There is one problem with it. I had to "hardcode" x86_64-w64-mingw32-windres name instead of just "windres". How to declare cross compile prefix? Because gcc somehow for "as" automatically adds it as in spec file is just "as", not "x86_64-w64-mingw32-as".