I maintain an open-source program called ObjCmp (attached) which can compare two Windows .obj files and tell whether they're "functionally identical". Two objects built from identical sources using the same tools and the same options, on the same machine, should be functionally identical. The problem is that they contain timestamps. What ObjCmp does is figure out where the timestamp fields are within the .obj format and ignore them for comparison purposes. You can read the documentation that comes with ObjCmp for more detail if you want to.
Unfortunately ObjCmp currently does not know how to handle "whole program optimization" objects built with the /GL compiler flag. Objects built with /GL have an undocumented format which is not standard COFF. MS says we shouldn't depend on this format, but I'd still like to see if it can be handled. It's not really necessary to reverse-engineer the whole format, of course, just to figure out where the timestamps are and skip over them.
If you look in the "testdata" subdir of the attachment there are files [login to view URL] and [login to view URL], and [login to view URL] and R2.obj. The D objects were built without /GL and ObjCmp can tell that they're functionally identical. The R objects should work the same way but they were built with /GL and the format is unknown.
The task is to modify ObjCmp to handle /GL .obj files such that (in particular) [login to view URL] and [login to view URL] compare as identical.
## Deliverables
I will give strong preference to a bidder who posts a working binary along with the bid.