Rewrite with hard-coded offsets into the PE file format to discern if a binary is PE32 or PE32+, and then to determine if it contains a "CLR Data Directory" entry that looks valid. Tested with PE32 and PE32+ compiled Mono binaries, PE32 and PE32+ native binaries, and a random assortment of garbage files. Former-commit-id: 9e7ac86ec84f653a2f79b87183efd5b0ebda001b
Mono binary reference assemblies
Built using csc 2.1.0.
Adding a new .NET profile
Use the following steps (we're using 4.7.1 as example):
- Copy existing
v4.7/Makefile
andsrc/v4.7/*
to new folders and commit - Update
PROFILE
variable inv4.7.1/Makefile
- Wire up new profile in
Makefile
in repo root - Run the generation script
./generate-refasm-sources.sh v4.7.1 some/path/to/netfx/referenceassemblies
- Revert deletion of
*.extra.cs
- Revert changes that remove
#if / #endif
- Revert suspicious changes to:
Accessibility.cs
(bug in GenApi)Microsoft.VisualBasic.cs
(bug in GenApi and wrong AssemblyCopyright/Product attribute)Microsoft.VisualC.cs
(bug in GenApi)System.Data.Linq.cs
(bug in GenApi)System.Deployment.cs
(we only have stub assemblies)System.Runtime.DurableInstancing.cs
(bug in GenApi)System.Security.cs
(bug in GenApi)System.Web.Mobile.cs
(we only have stub assemblies)System.Workflow.*.cs
(we only have stub assemblies)
- Add new assemblies/facades to
v4.7.1/Makefile
- Run
make -C v4.7.1
and ensure everything compiles