diff options
author | Jean-Daniel Dupas <devlists@shadowlab.org> | 2014-12-20 09:22:56 +0000 |
---|---|---|
committer | Jean-Daniel Dupas <devlists@shadowlab.org> | 2014-12-20 09:22:56 +0000 |
commit | edefcccd46355a27e802bdd72314d867433cbb04 (patch) | |
tree | 7938dd682099e0c455d4b4c3208c27659168ee5f /lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp | |
parent | 968a21de24d5deedaa2247ded2c665aa197f2927 (diff) | |
download | bcm5719-llvm-edefcccd46355a27e802bdd72314d867433cbb04.tar.gz bcm5719-llvm-edefcccd46355a27e802bdd72314d867433cbb04.zip |
[macho] Minor install_name fixes
Summary:
Fix the binary file reader to properly read dyld version info.
Update the install_name test case to properly test the binary reader. We can't use '-print_atoms' as the output format is 'native' yaml and it does not contains the dyld current and compatibility versions.
Also change the timestamp value of LD_ID_DYLD to match the one generated by ld64.
The dynamic linker (dyld) used to expects different values for timestamp in LD_ID_DYLD and LD_LOAD_DYLD for prebound images. While prebinding is deprecated, we should probably keep it safe and match ld64.
Reviewers: kledzik
Subscribers: llvm-commits
Projects: #lld
Differential Revision: http://reviews.llvm.org/D6736
llvm-svn: 224681
Diffstat (limited to 'lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp')
-rw-r--r-- | lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp b/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp index ef8ad1d3325..84bf400558d 100644 --- a/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp +++ b/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp @@ -437,6 +437,8 @@ readBinary(std::unique_ptr<MemoryBuffer> &mb, case LC_ID_DYLIB: { const dylib_command *dl = reinterpret_cast<const dylib_command*>(lc); f->installName = lc + read32(&dl->dylib.name, isBig); + f->currentVersion = read32(&dl->dylib.current_version, isBig); + f->compatVersion = read32(&dl->dylib.compatibility_version, isBig); } break; case LC_DATA_IN_CODE: { |