This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Mach-O]: define cpu arch and subtype capabilities


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.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]