[llvm] [llvm-symbolizer] Recognize AIX big archive (PR #150401)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 12 02:24:43 PST 2025
================
@@ -0,0 +1,105 @@
+## Test big archive recognition with same-named members (XCOFF format).
+## Big archives can contain multiple members with the same name but different
+## architectures. This test verifies llvm-symbolizer can disambiguate using
+## architecture specification.
+
+# RUN: rm -rf %t.dir && mkdir %t.dir && cd %t.dir
+
+# RUN: yaml2obj --docnum=1 %s -o 32.o
+# RUN: yaml2obj --docnum=2 %s -o 64.o
+
+## Create big archive with same-named members using explicit format.
+# RUN: cp 32.o test.o
+# RUN: llvm-ar --format=bigarchive %if system-aix %{-X32%} crv archive.a test.o
+# RUN: cp 64.o test.o
+# RUN: llvm-ar --format=bigarchive %if system-aix %{-X64 rv%} %else %{qv%} archive.a test.o
+
+## Test symbolization disambiguates between 32-bit and 64-bit members
+## using architecture specified via --default-arch flag.
+# RUN: llvm-symbolizer --default-arch=ppc --obj="archive.a(test.o)" 0x0 | FileCheck %s --check-prefix=CHECK-32
+# RUN: llvm-symbolizer --default-arch=ppc64 --obj="archive.a(test.o)" 0x0 | FileCheck %s --check-prefix=CHECK-64
+
+## Test architecture specified via :arch suffix notation.
+# RUN: llvm-symbolizer --obj="archive.a(test.o):ppc" 0x0 | FileCheck %s --check-prefix=CHECK-32
+# RUN: llvm-symbolizer --obj="archive.a(test.o):ppc64" 0x0 | FileCheck %s --check-prefix=CHECK-64
+
+# CHECK-32: foo32
+# CHECK-64: foo64
+
+## Test error cases.
+# RUN: not llvm-symbolizer --default-arch=ppc --obj="archive.a(nonexistent.o)" 0x1000 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
+# CHECK-ERROR: error: 'archive.a(nonexistent.o)': no matching member 'nonexistent.o' with arch 'ppc' in 'archive.a'
+
+# RUN: not llvm-symbolizer --obj="test.o(test.o)" 0x1000 2>&1 | FileCheck %s --check-prefix=CHECK-NOTARCHIVE
+# CHECK-NOTARCHIVE: error: 'test.o(test.o)': 'test.o' is not a valid archive
+
+# RUN: not llvm-symbolizer --obj="archive.a():ppc64" 0x1000 2>&1 | FileCheck %s --check-prefix=CHECK-NOSYMBOL
----------------
midhuncodes7 wrote:
changed as per suggestion
https://github.com/llvm/llvm-project/pull/150401
More information about the llvm-commits
mailing list