This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[Mach-O]: define cpu arch and subtype capabilities
- From: Tristan Gingold <gingold at adacore dot com>
- To: "binutils at sourceware dot org Development" <binutils at sourceware dot org>
- Date: Wed, 16 Apr 2014 10:07:16 +0200
- Subject: [Mach-O]: define cpu arch and subtype capabilities
- Authentication-results: sourceware.org; auth=none
Hello,
this patch adds new macros for cpu arch and subtypes. It also
set the LIB64 flag on x86_64 cpu subtype.
Committed on trunk.
Tristan.
include/mach-o/
2014-04-16 Tristan Gingold <gingold@adacore.com>
* loader.h (BFD_MACH_O_CPU_ARCH_MASK, BFD_MACH_O_CPU_ARCH_ABI64)
(BFD_MACH_O_CPU_SUBTYPE_MASK, BFD_MACH_O_CPU_SUBTYPE_LIB64): Define.
bfd/
2014-04-16 Tristan Gingold <gingold@adacore.com>
* mach-o-x86-64.c (bfd_mach_o_x86_64_mkobject): Adjust cpusubtype
flag.
diff --git a/bfd/mach-o-x86-64.c b/bfd/mach-o-x86-64.c
index 221c030..017a6b8 100644
--- a/bfd/mach-o-x86-64.c
+++ b/bfd/mach-o-x86-64.c
@@ -53,7 +53,8 @@ bfd_mach_o_x86_64_mkobject (bfd *abfd)
mdata = bfd_mach_o_get_data (abfd);
mdata->header.magic = BFD_MACH_O_MH_MAGIC_64;
mdata->header.cputype = BFD_MACH_O_CPU_TYPE_X86_64;
- mdata->header.cpusubtype = BFD_MACH_O_CPU_SUBTYPE_X86_ALL;
+ mdata->header.cpusubtype =
+ BFD_MACH_O_CPU_SUBTYPE_X86_ALL | BFD_MACH_O_CPU_SUBTYPE_LIB64;
mdata->header.byteorder = BFD_ENDIAN_LITTLE;
mdata->header.version = 2;
diff --git a/include/mach-o/loader.h b/include/mach-o/loader.h
index 952346d..20cfe42 100644
--- a/include/mach-o/loader.h
+++ b/include/mach-o/loader.h
@@ -32,7 +32,10 @@ typedef enum bfd_mach_o_mach_header_magic
}
bfd_mach_o_mach_header_magic;
-#define BFD_MACH_O_CPU_IS64BIT 0x1000000
+/* Capability bits in cpu type. */
+#define BFD_MACH_O_CPU_ARCH_MASK 0xff000000
+#define BFD_MACH_O_CPU_ARCH_ABI64 0x01000000
+#define BFD_MACH_O_CPU_IS64BIT 0x01000000
typedef enum bfd_mach_o_cpu_type
{
@@ -57,6 +60,10 @@ typedef enum bfd_mach_o_cpu_type
}
bfd_mach_o_cpu_type;
+/* Capability bits in cpu subtype. */
+#define BFD_MACH_O_CPU_SUBTYPE_MASK 0xff000000
+#define BFD_MACH_O_CPU_SUBTYPE_LIB64 0x80000000
+
typedef enum bfd_mach_o_cpu_subtype
{
/* i386. */