https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108865
--- Comment #7 from Costas Argyris <costas.argyris at gmail dot com> --- I think the problem is that the embedding of the manifest into the executable is a very low-level process that depends on ms specifics that mt.exe (or VS) knows about and windres + link doesn't. For example, by inspecting an executable patched with mt.exe through a hex editor, one can see that there is some padding involved. This is mentioned here: http://www.vbaccelerator.com/home/VB/Code/Libraries/XP_Visual_Styles/Using_XP_Visual_Styles_in_VB/article.asp "For some bizarre reason, you must also ensure that the resulting XML file is an even multiple of 4 bytes long. So for example, if your file is actually 597 bytes you need to add padding spaces to make up the file size to 600 bytes before compiling." However, even after doing that I wasn't able to get it to work. I think the proper ms way does more to the binary than just embed the manifest and pad, which is not done by the windres + link approach. I couldn't find examples online for doing this. There are examples of compiling and linking resource files in general using GNU tools, but not a resource file that just references a manifest xml file. So unless someone has some deeper knowledge on how to do this, I seem to be blocked atm.