Add names for mach-o permissions bits and use the symbol names in place of magic...
authorNick Kledzik <kledzik@apple.com>
Wed, 4 Sep 2013 23:53:44 +0000 (23:53 +0000)
committerNick Kledzik <kledzik@apple.com>
Wed, 4 Sep 2013 23:53:44 +0000 (23:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190013 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/MachO.h
lib/MC/MachObjectWriter.cpp

index 9d401c8d36659bf5d2dd13c9071a3b39b2330d69..59998ada0204b4f92ec4492c6a736b8d7b0cd393 100644 (file)
@@ -417,6 +417,15 @@ namespace llvm {
       X86_64_RELOC_TLV             = 9
     };
 
+    // Values for segment_command.initprot.
+    // From <mach/vm_prot.h>
+    enum {
+      VM_PROT_READ    = 0x1,
+      VM_PROT_WRITE   = 0x2,
+      VM_PROT_EXECUTE = 0x4
+    };
+
+
     // Structs from <mach-o/loader.h>
 
     struct mach_header {
index d0bfc65cb27ec0bb49dd5bebb5b98a4cf892eaee..3531ab2247d7da05d901ec0c2a9c194e60f4f715 100644 (file)
@@ -185,8 +185,10 @@ void MachObjectWriter::WriteSegmentLoadCommand(unsigned NumSections,
     Write32(SectionDataStartOffset); // file offset
     Write32(SectionDataSize); // file size
   }
-  Write32(0x7); // maxprot
-  Write32(0x7); // initprot
+  // maxprot
+  Write32(MachO::VM_PROT_READ | MachO::VM_PROT_WRITE | MachO::VM_PROT_EXECUTE); 
+  // initprot
+  Write32(MachO::VM_PROT_READ | MachO::VM_PROT_WRITE | MachO::VM_PROT_EXECUTE); 
   Write32(NumSections);
   Write32(0); // flags