Allow objdump to recognise the System.Runtime.dll files that get shipped with .NET Core 2.1.
include * coff/i386.h (IMAGE_FILE_MACHINE_NATIVE_APPLE_OVERRIDE): Define. (IMAGE_FILE_MACHINE_NATIVE_FREEBSD_OVERRIDE): Define. (IMAGE_FILE_MACHINE_NATIVE_LINUX_OVERRIDE): Define. (IMAGE_FILE_MACHINE_NATIVE_NETBSD_OVERRIDE): Define. (I386_APPLE_MAGIC): Define. (I386_FREEBSD_MAGIC): Define. (I386_LINUX_MAGIC): Define. (I386_NETBSD_MAGIC): Define. (I386BADMAG): Extend macro to allow new magic numbers. * coff/x86_64.h (IMAGE_FILE_MACHINE_NATIVE_APPLE_OVERRIDE): Define. (IMAGE_FILE_MACHINE_NATIVE_FREEBSD_OVERRIDE): Define. (IMAGE_FILE_MACHINE_NATIVE_LINUX_OVERRIDE): Define. (IMAGE_FILE_MACHINE_NATIVE_NETBSD_OVERRIDE): Define. (AMD64_APPLE_MAGIC): Define. (AMD64_FREEBSD_MAGIC): Define. (AMD64_LINUX_MAGIC): Define. (AMD64_NETBSD_MAGIC): Define. (AMD64BADMAG): Extend macro to allow new magic numbers. bfd * coffcode.h (coff_set_arch_mach_hook): Handle I386_APPLE_MAGIC, I386_FREEBSD_MAGIC, I386_LINUX_MAGIC, I386_NETBSD_MAGIC, AMD64_APPLE_MAGIC, AMD64_FREEBSD_MAGIC, AMD64_LINUX_MAGIC, AMD64_NETBSD_MAGIC. * peXXigen.c: Add comment about source of .NET magic numbers. binutils* Makefile.am (AUTOMAKE_OPTIONS): Add subdir-objects (GENTESTDLLSPROG): Define. (TEST_PROGS): Add GENTESTDLLSPROG. * Makefile.in: Regenerate. * testsuite/binutils-all/objdump.exp (test_objdump_dotnet_assemblies): New proc. Run the new proc. * testsuite/gentestdlls.c: New source file.
This commit is contained in:
parent
5ba2943476
commit
1dd1bc4daf
11 changed files with 335 additions and 17 deletions
|
@ -43,7 +43,26 @@
|
|||
|
||||
#define LYNXCOFFMAGIC 0415
|
||||
|
||||
/* .NET DLLs XOR the Machine number (above) with an override to
|
||||
indicate that the DLL contains OS-specific machine code rather
|
||||
than just IL or bytecode. See
|
||||
https://github.com/dotnet/coreclr/blob/6f7aa7967c607b8c667518314ab937c0d7547025/src/inc/pedecoder.h#L94-L107. */
|
||||
#define IMAGE_FILE_MACHINE_NATIVE_APPLE_OVERRIDE 0x4644
|
||||
#define IMAGE_FILE_MACHINE_NATIVE_FREEBSD_OVERRIDE 0xadc4
|
||||
#define IMAGE_FILE_MACHINE_NATIVE_LINUX_OVERRIDE 0x7b79
|
||||
#define IMAGE_FILE_MACHINE_NATIVE_NETBSD_OVERRIDE 0x1993
|
||||
|
||||
/* Used in some .NET DLLs that target a specific OS. */
|
||||
#define I386_APPLE_MAGIC (I386MAGIC ^ IMAGE_FILE_MACHINE_NATIVE_APPLE_OVERRIDE)
|
||||
#define I386_FREEBSD_MAGIC (I386MAGIC ^ IMAGE_FILE_MACHINE_NATIVE_FREEBSD_OVERRIDE)
|
||||
#define I386_LINUX_MAGIC (I386MAGIC ^ IMAGE_FILE_MACHINE_NATIVE_LINUX_OVERRIDE)
|
||||
#define I386_NETBSD_MAGIC (I386MAGIC ^ IMAGE_FILE_MACHINE_NATIVE_NETBSD_OVERRIDE)
|
||||
|
||||
#define I386BADMAG(x) ( ((x).f_magic != I386MAGIC) \
|
||||
&& (x).f_magic != I386_APPLE_MAGIC \
|
||||
&& (x).f_magic != I386_FREEBSD_MAGIC \
|
||||
&& (x).f_magic != I386_LINUX_MAGIC \
|
||||
&& (x).f_magic != I386_NETBSD_MAGIC \
|
||||
&& (x).f_magic != I386AIXMAGIC \
|
||||
&& (x).f_magic != I386PTXMAGIC \
|
||||
&& (x).f_magic != LYNXCOFFMAGIC)
|
||||
|
|
|
@ -29,7 +29,27 @@
|
|||
|
||||
#define AMD64MAGIC 0x8664
|
||||
|
||||
#define AMD64BADMAG(x) ((x).f_magic != AMD64MAGIC)
|
||||
/* .NET DLLs XOR the Machine number (above) with an override to
|
||||
indicate that the DLL contains OS-specific machine code rather
|
||||
than just IL or bytecode. See
|
||||
https://github.com/dotnet/coreclr/blob/6f7aa7967c607b8c667518314ab937c0d7547025/src/inc/pedecoder.h#L94-L107. */
|
||||
#define IMAGE_FILE_MACHINE_NATIVE_APPLE_OVERRIDE 0x4644
|
||||
#define IMAGE_FILE_MACHINE_NATIVE_FREEBSD_OVERRIDE 0xadc4
|
||||
#define IMAGE_FILE_MACHINE_NATIVE_LINUX_OVERRIDE 0x7b79
|
||||
#define IMAGE_FILE_MACHINE_NATIVE_NETBSD_OVERRIDE 0x1993
|
||||
|
||||
/* Used in some .NET DLLs that target a specific OS. */
|
||||
#define AMD64_APPLE_MAGIC (AMD64MAGIC ^ IMAGE_FILE_MACHINE_NATIVE_APPLE_OVERRIDE)
|
||||
#define AMD64_FREEBSD_MAGIC (AMD64MAGIC ^ IMAGE_FILE_MACHINE_NATIVE_FREEBSD_OVERRIDE)
|
||||
#define AMD64_LINUX_MAGIC (AMD64MAGIC ^ IMAGE_FILE_MACHINE_NATIVE_LINUX_OVERRIDE)
|
||||
#define AMD64_NETBSD_MAGIC (AMD64MAGIC ^ IMAGE_FILE_MACHINE_NATIVE_NETBSD_OVERRIDE)
|
||||
|
||||
#define AMD64BADMAG(x) ( ((x).f_magic != AMD64MAGIC) \
|
||||
&& ((x).f_magic != AMD64_APPLE_MAGIC) \
|
||||
&& ((x).f_magic != AMD64_FREEBSD_MAGIC) \
|
||||
&& ((x).f_magic != AMD64_LINUX_MAGIC) \
|
||||
&& ((x).f_magic != AMD64_NETBSD_MAGIC))
|
||||
|
||||
#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b
|
||||
|
||||
#define OMAGIC 0404 /* Object files, eg as output. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue