[llvm] [llvm-readobj] --needed-libs: support --elf-output-style=JSON (PR #75028)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 10 23:28:35 PST 2023
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-binary-utilities
Author: Fangrui Song (MaskRay)
<details>
<summary>Changes</summary>
Close #<!-- -->74529
---
Full diff: https://github.com/llvm/llvm-project/pull/75028.diff
2 Files Affected:
- (modified) llvm/test/tools/llvm-readobj/ELF/needed-libs.test (+13)
- (modified) llvm/tools/llvm-readobj/ELFDumper.cpp (+1-1)
``````````diff
diff --git a/llvm/test/tools/llvm-readobj/ELF/needed-libs.test b/llvm/test/tools/llvm-readobj/ELF/needed-libs.test
index d37ab6238e137..d2d0bdad26ed0 100644
--- a/llvm/test/tools/llvm-readobj/ELF/needed-libs.test
+++ b/llvm/test/tools/llvm-readobj/ELF/needed-libs.test
@@ -5,6 +5,8 @@
# RUN: | FileCheck %s -DFILE=%t1 --implicit-check-not=warning: --strict-whitespace --check-prefix=NEEDED-LIBS
# RUN: llvm-readelf --needed-libs %t1 2>&1 \
# RUN: | FileCheck %s -DFILE=%t1 --implicit-check-not=warning: --strict-whitespace --check-prefix=NEEDED-LIBS
+# RUN: llvm-readobj --elf-output-style=JSON --needed-libs --pretty-print %t1 2>&1 \
+# RUN: | FileCheck %s -DFILE=%t1 --implicit-check-not=warning: --match-full-lines --strict-whitespace --check-prefix=JSON
## Check that library names are sorted when printed.
## Document that we also sort error entries.
@@ -19,6 +21,17 @@
# NEEDED-LIBS-NEXT:{{^}} ccc{{$}}
# NEEDED-LIBS-NEXT:{{^}}]{{$}}
+# JSON: "FileSummary": {
+# JSON: "NeededLibraries": [{{.*}}warning: '[[FILE]]': string table at offset 0x78: unable to read the string at 0x9999a11: it goes past the end of the table (0x85)
+# JSON-NEXT:{{.*}}warning: '[[FILE]]': string table at offset 0x78: unable to read the string at 0x1111189: it goes past the end of the table (0x85)
+# JSON-EMPTY:
+# JSON-NEXT: "<?>",
+# JSON-NEXT: "<?>",
+# JSON-NEXT: "aaa",
+# JSON-NEXT: "bbb",
+# JSON-NEXT: "ccc"
+# JSON-NEXT: ]
+
--- !ELF
FileHeader:
Class: ELFCLASS64
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index 85d5ab68b495c..a9a31ae6c4740 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -2581,7 +2581,7 @@ template <class ELFT> void ELFDumper<ELFT>::printNeededLibraries() {
llvm::sort(Libs);
for (StringRef L : Libs)
- W.startLine() << L << "\n";
+ W.printString(L);
}
template <class ELFT>
``````````
</details>
https://github.com/llvm/llvm-project/pull/75028
More information about the llvm-commits
mailing list