From edefcccd46355a27e802bdd72314d867433cbb04 Mon Sep 17 00:00:00 2001 From: Jean-Daniel Dupas Date: Sat, 20 Dec 2014 09:22:56 +0000 Subject: [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 --- lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp') 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 &mb, case LC_ID_DYLIB: { const dylib_command *dl = reinterpret_cast(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: { -- cgit v1.2.3