From: Cyrill G. <gor...@gm...> - 2018-04-20 08:30:15
|
On Thu, Apr 19, 2018 at 07:26:23PM -0700, Fabian Giesen wrote: > Windows Store and Xbox One apps need to pass WACK, the Windows App > Certification Kit, and part of that process involves a tool named > BinScope that checks the debug info of all object files making up > the final executable against a list of minimum versions. > > These minimum versions get increased periodically as new SDKs and > compilers are released. In a patch 2 years ago, I made NASM > pretend it was MASM and output a then-current MASM version number. > > Well, the minimum version number has increased again, and > periodically hardcoding a new random MASM version to keep BinScope > happy doesn't seem like the way to go. > > It turns out that BinScope does not impose any minimum version > requirements on object files listing a source language BinScope > doesn't know about. > > I have no idea how to officially request a new CodeView language > ID (or whether there even is a way to do so for someone outside > MS). But experimentally, using 'N' (0x4e) for NASM seems to be > working just fine and is far away from the range of currently > allocated language IDs (which stop at 0x10). > > Long story short, make NASM emit a source language ID of 0x4e, > with the actual NASM version in the version number fields. > BinScope is happy to accept that, and since the language ID field > is purely an informational field in an optional debug info record > that (as far as I can tell) is not used for anything else, this > seems reasonably safe and unlikely to cause trouble. > > Signed-off-by: Fabian Giesen <fa...@ra...> Applied, thanks! |