forked from OSchip/llvm-project
[llvm-ar] -s: don't convert a thin archive to a regular one
In binutils, ar -s and randlib don't convert a thin archive to a regular one. This behavior makes sense and this patch ports the behavior. Reviewed By: gbreynoo Differential Revision: https://reviews.llvm.org/D117443
This commit is contained in:
parent
dd6e7e0d57
commit
ceb9094a49
|
@ -58,9 +58,23 @@
|
||||||
# RUN: llvm-nm --print-armap %t-thin.a \
|
# RUN: llvm-nm --print-armap %t-thin.a \
|
||||||
# RUN: | FileCheck %s --check-prefix=SYMTAB
|
# RUN: | FileCheck %s --check-prefix=SYMTAB
|
||||||
|
|
||||||
|
## llvm-ranlib does not change a thin archive to a regular one.
|
||||||
|
# RUN: rm -f %t-thin.a && llvm-ar rcTS %t-thin.a %t.o
|
||||||
|
# RUN: llvm-nm --print-armap %t-thin.a | FileCheck %s --check-prefix=NO-SYMTAB
|
||||||
|
# RUN: llvm-ranlib %t-thin.a
|
||||||
|
# RUN: llvm-nm --print-armap %t-thin.a | FileCheck %s --check-prefix=SYMTAB
|
||||||
|
# RUN: FileCheck --input-file=%t-thin.a %s --check-prefixes=THIN
|
||||||
|
|
||||||
|
## llvm-ar -s is identical to ranlib and a duplicated operation does not change the output.
|
||||||
|
# RUN: rm -f %t-thin2.a && llvm-ar rcTS %t-thin2.a %t.o
|
||||||
|
# RUN: llvm-ar s %t-thin2.a && cmp %t-thin.a %t-thin2.a
|
||||||
|
# RUN: llvm-ar s %t-thin2.a && cmp %t-thin.a %t-thin2.a
|
||||||
|
|
||||||
# SYMTAB: symbol in
|
# SYMTAB: symbol in
|
||||||
# NO-SYMTAB-NOT: symbol in
|
# NO-SYMTAB-NOT: symbol in
|
||||||
|
|
||||||
|
# THIN: !<thin>
|
||||||
|
|
||||||
--- !ELF
|
--- !ELF
|
||||||
FileHeader:
|
FileHeader:
|
||||||
Class: ELFCLASS64
|
Class: ELFCLASS64
|
||||||
|
|
|
@ -968,6 +968,8 @@ static void createSymbolTable(object::Archive *OldArchive) {
|
||||||
if (OldArchive->hasSymbolTable())
|
if (OldArchive->hasSymbolTable())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (OldArchive->isThin())
|
||||||
|
Thin = true;
|
||||||
performWriteOperation(CreateSymTab, OldArchive, nullptr, nullptr);
|
performWriteOperation(CreateSymTab, OldArchive, nullptr, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue