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)
llvm-svn: 190013

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

index 9d401c8..59998ad 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 d0bfc65..3531ab2 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