From 8a1f2d65804de59fbe7811b74720e6572684e9ca Mon Sep 17 00:00:00 2001 From: Jez Ng Date: Tue, 7 Dec 2021 19:11:06 -0500 Subject: [PATCH] [lld-macho] Include archive name in bitcode files Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D115281 --- lld/MachO/InputFiles.cpp | 1 + lld/test/MachO/lto-archive.ll | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lld/MachO/InputFiles.cpp b/lld/MachO/InputFiles.cpp index 558de41..23f28e63 100644 --- a/lld/MachO/InputFiles.cpp +++ b/lld/MachO/InputFiles.cpp @@ -1478,6 +1478,7 @@ static macho::Symbol *createBitcodeSymbol(const lto::InputFile::Symbol &objSym, BitcodeFile::BitcodeFile(MemoryBufferRef mb, StringRef archiveName, uint64_t offsetInArchive) : InputFile(BitcodeKind, mb) { + this->archiveName = std::string(archiveName); std::string path = mb.getBufferIdentifier().str(); // ThinLTO assumes that all MemoryBufferRefs given to it have a unique // name. If two members with the same name are provided, this causes a diff --git a/lld/test/MachO/lto-archive.ll b/lld/test/MachO/lto-archive.ll index c37fdd0..866b2d6 100644 --- a/lld/test/MachO/lto-archive.ll +++ b/lld/test/MachO/lto-archive.ll @@ -10,15 +10,15 @@ ; RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/references-foo.s -o %t/references-foo.o ; RUN: %lld -lSystem %t/references-foo.o %t/foo.a -o /dev/null -why_load | FileCheck %s --check-prefix=FOO -; FOO: _foo forced load of foo.o +; FOO: _foo forced load of {{.+}}foo.a(foo.o) ; RUN: %lld -lSystem -force_load %t/foo.a %t/main.o -o /dev/null -why_load | FileCheck %s --check-prefix=FORCE-LOAD -; FORCE-LOAD: -force_load forced load of foo.o +; FORCE-LOAD: -force_load forced load of {{.+}}foo.a(foo.o) ; RUN: %lld -lSystem -ObjC -framework CoreFoundation %t/objc.a %t/main.o \ ; RUN: -o /dev/null -why_load | FileCheck %s --check-prefix=OBJC -; OBJC: _OBJC_CLASS_$_Foo forced load of has-objc-symbol.o -; OBJC: -ObjC forced load of has-objc-category.o +; OBJC: _OBJC_CLASS_$_Foo forced load of {{.+}}objc.a(has-objc-symbol.o) +; OBJC: -ObjC forced load of {{.+}}objc.a(has-objc-category.o) ; RUN: %lld -lSystem %t/foo.a %t/main.o -o %t/no-force-load -why_load | count 0 -- 2.7.4