diff options
author | Pete Cooper <peter_cooper@apple.com> | 2016-02-04 02:23:34 +0000 |
---|---|---|
committer | Pete Cooper <peter_cooper@apple.com> | 2016-02-04 02:23:34 +0000 |
commit | f8abe8c825ac9642ddbd1b82a4b60f6416983271 (patch) | |
tree | bdc66a558b0d1eabb82f7ad9263c1c002332d17b | |
parent | ceee5de088f3b644c4040145e1ed1242ef9ca9fa (diff) | |
download | bcm5719-llvm-f8abe8c825ac9642ddbd1b82a4b60f6416983271.tar.gz bcm5719-llvm-f8abe8c825ac9642ddbd1b82a4b60f6416983271.zip |
Set S_ATTR_SOME_INSTRUCTIONS on __text section.
ld64 sets both S_ATTR_PURE_INSTRUCTIONS and S_ATTR_SOME_INSTRUCTIONS
on __TEXT, __text. We only had the S_ATTR_PURE_INSTRUCTIONS attribute.
rdar://problem/24495801
llvm-svn: 259744
-rw-r--r-- | lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp | 2 | ||||
-rw-r--r-- | lld/test/mach-o/sectattrs.yaml | 30 |
2 files changed, 31 insertions, 1 deletions
diff --git a/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp b/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp index 087b557bf8d..c7fd2ca10d9 100644 --- a/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp +++ b/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp @@ -302,7 +302,7 @@ SectionInfo *Util::getFinalSection(DefinedAtom::ContentType atomType) { case DefinedAtom::typeCode: case DefinedAtom::typeStub: case DefinedAtom::typeStubHelper: - sectionAttrs = S_ATTR_PURE_INSTRUCTIONS; + sectionAttrs = S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS; break; case DefinedAtom::typeThunkTLV: _hasTLVDescriptors = true; diff --git a/lld/test/mach-o/sectattrs.yaml b/lld/test/mach-o/sectattrs.yaml new file mode 100644 index 00000000000..800ba55d1b3 --- /dev/null +++ b/lld/test/mach-o/sectattrs.yaml @@ -0,0 +1,30 @@ +# RUN: lld -flavor darwin -arch x86_64 -macosx_version_min 10.8 %s -dylib \ +# RUN: %p/Inputs/libSystem.yaml -o %t \ +# RUN: && llvm-objdump -private-headers %t | FileCheck %s +# + +--- !mach-o +arch: x86_64 +file-type: MH_OBJECT +flags: [ MH_SUBSECTIONS_VIA_SYMBOLS ] +sections: + - segment: __TEXT + section: __text + type: S_REGULAR + attributes: [ ] + address: 0x0000000000000000 + content: [ 0x55, 0x48, 0x89, 0xE5, 0x8B, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x5D, 0xC3 ] +global-symbols: + - name: _get + type: N_SECT + scope: [ N_EXT ] + sect: 1 + value: 0x0000000000000000 + +... + + +# CHECK: PURE_INSTRUCTIONS SOME_INSTRUCTIONS + |