Closed jonahbeckford closed 1 year ago
I can pull out the data with the existing COFF reader:
#mod_use "Compat.ml";;
#mod_use "coff.ml";;
let msvcrt_path = {|C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\lib\x86\msvcrt.lib|} ;;
let msvcrt_objects, msvcrt_imports = match Coff.Lib.read msvcrt_path with
`Lib lib -> lib | _ -> failwith "Not a `Lib" ;;
let chandler4gs_obj = snd @@ List.find (
function (objpath, coff) ->
String.equal objpath {|d:\agent\_work\2\s\Intermediate\vctools\msvcrt.nativeproj_110336922\objr\x86\chandler4gs.obj|})
msvcrt_objects ;;
Coff.Coff.directives chandler4gs_obj ;;
(*
- : (string * string list) list =
[("alternatename", ["__filter_x86_sse2_floating_point_exception=__filter_x86_sse2_floating_point_exception_default"])]
*)
I can may be able to do a PR if I can figure out what to do with that . It sounds similar to an alias, so I'll start there.alternatename
directive
Fixed in #114
I can see the problem clearly in 32-bit code, although it doesn't look like it is limited to 32-bit code.
Here is the invocation of flexlink 0.42 (edited to split newlines):
which gives:
The root cause seems to be the Linker Directives: