https://github.com/kkwli updated 
https://github.com/llvm/llvm-project/pull/204281

>From feb50c4bec6f72d5001e9b0e1998ea97465b61e6 Mon Sep 17 00:00:00 2001
From: Kelvin Li <[email protected]>
Date: Tue, 16 Jun 2026 12:52:53 -0400
Subject: [PATCH 1/3] [llvm-nm][AIX] Set default to 'any' if OBJECT_MODE is not
 set

Currently, the llvm-nm defaults to `32` if OBJECT_MODE is not set.
This patch is to change the default to `any` to make the usage
more flexible.
---
 clang/test/lit.cfg.py                     |  1 -
 llvm/test/tools/llvm-nm/option-X-AIX.test |  2 +-
 llvm/tools/llvm-nm/llvm-nm.cpp            | 18 ++++++++++--------
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/clang/test/lit.cfg.py b/clang/test/lit.cfg.py
index dc0d87f0a29a1..f0bd5532aa894 100644
--- a/clang/test/lit.cfg.py
+++ b/clang/test/lit.cfg.py
@@ -495,7 +495,6 @@ def user_is_root():
 # "OBJECT_MODE" to "any" by default on AIX OS.
 
 if "system-aix" in config.available_features:
-   config.substitutions.append(("llvm-nm", "env OBJECT_MODE=any llvm-nm"))
    config.substitutions.append(("llvm-ar", "env OBJECT_MODE=any llvm-ar"))
    config.substitutions.append(("llvm-ranlib", "env OBJECT_MODE=any 
llvm-ranlib"))
 
diff --git a/llvm/test/tools/llvm-nm/option-X-AIX.test 
b/llvm/test/tools/llvm-nm/option-X-AIX.test
index 1349ad82bbaf1..c8bd12722155b 100644
--- a/llvm/test/tools/llvm-nm/option-X-AIX.test
+++ b/llvm/test/tools/llvm-nm/option-X-AIX.test
@@ -8,7 +8,7 @@
 
 ## Test default "-X" option.
 # RUN: env -u OBJECT_MODE llvm-nm --format=just-symbols %t_xcoff32.o 
%t_xcoff64.o | \
-# RUN:   FileCheck -DFILE32=%t_xcoff32.o --check-prefixes=XCOFF32 %s 
--implicit-check-not={{.}}
+# RUN:   FileCheck -DFILE32=%t_xcoff32.o -DFILE64=%t_xcoff64.o 
--check-prefixes=XCOFF32,XCOFF64 %s --implicit-check-not={{.}}
 
 ## Test environment variable "OBJECT_MODE".
 # RUN: env OBJECT_MODE=32 llvm-nm --format=just-symbols %t_xcoff32.o 
%t_xcoff64.o | \
diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp
index a33c54914ee9d..477a519211461 100644
--- a/llvm/tools/llvm-nm/llvm-nm.cpp
+++ b/llvm/tools/llvm-nm/llvm-nm.cpp
@@ -2480,15 +2480,17 @@ int llvm_nm_main(int argc, char **argv, const 
llvm::ToolContext &) {
   // Get BitMode from enviornment variable "OBJECT_MODE" for AIX OS, if
   // specified.
   Triple HostTriple(sys::getProcessTriple());
+  BitMode = BitModeTy::Any;
   if (HostTriple.isOSAIX()) {
-    BitMode = StringSwitch<BitModeTy>(getenv("OBJECT_MODE"))
-                  .Case("32", BitModeTy::Bit32)
-                  .Case("64", BitModeTy::Bit64)
-                  .Case("32_64", BitModeTy::Bit32_64)
-                  .Case("any", BitModeTy::Any)
-                  .Default(BitModeTy::Bit32);
-  } else
-    BitMode = BitModeTy::Any;
+    if (char *ObjMode = getenv("OBJECT_MODE")) {
+      BitMode = StringSwitch<BitModeTy>(ObjMode)
+                    .Case("32", BitModeTy::Bit32)
+                    .Case("64", BitModeTy::Bit64)
+                    .Case("32_64", BitModeTy::Bit32_64)
+                    .Case("any", BitModeTy::Any)
+                    .Default(BitModeTy::Any);
+    }
+  }
 
   if (Arg *A = Args.getLastArg(OPT_X)) {
     StringRef Mode = A->getValue();

>From 065a5e9bb194caa67efcd5bbe625efe038c9a2f1 Mon Sep 17 00:00:00 2001
From: Kelvin Li <[email protected]>
Date: Wed, 17 Jun 2026 08:32:15 -0400
Subject: [PATCH 2/3] Remove unnecessary check

---
 llvm/tools/llvm-nm/llvm-nm.cpp | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp
index 477a519211461..fe49b42319035 100644
--- a/llvm/tools/llvm-nm/llvm-nm.cpp
+++ b/llvm/tools/llvm-nm/llvm-nm.cpp
@@ -2480,16 +2480,13 @@ int llvm_nm_main(int argc, char **argv, const 
llvm::ToolContext &) {
   // Get BitMode from enviornment variable "OBJECT_MODE" for AIX OS, if
   // specified.
   Triple HostTriple(sys::getProcessTriple());
-  BitMode = BitModeTy::Any;
   if (HostTriple.isOSAIX()) {
-    if (char *ObjMode = getenv("OBJECT_MODE")) {
-      BitMode = StringSwitch<BitModeTy>(ObjMode)
-                    .Case("32", BitModeTy::Bit32)
-                    .Case("64", BitModeTy::Bit64)
-                    .Case("32_64", BitModeTy::Bit32_64)
-                    .Case("any", BitModeTy::Any)
-                    .Default(BitModeTy::Any);
-    }
+    BitMode = StringSwitch<BitModeTy>(getenv("OBJECT_MODE"))
+                  .Case("32", BitModeTy::Bit32)
+                  .Case("64", BitModeTy::Bit64)
+                  .Case("32_64", BitModeTy::Bit32_64)
+                  .Case("any", BitModeTy::Any)
+                  .Default(BitModeTy::Any);
   }
 
   if (Arg *A = Args.getLastArg(OPT_X)) {

>From baded2f187018a655eccac3011702a74b5b388f4 Mon Sep 17 00:00:00 2001
From: Kelvin Li <[email protected]>
Date: Wed, 17 Jun 2026 10:02:31 -0400
Subject: [PATCH 3/3] Add back the non-AIX case

---
 llvm/tools/llvm-nm/llvm-nm.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp
index fe49b42319035..b6b260226500d 100644
--- a/llvm/tools/llvm-nm/llvm-nm.cpp
+++ b/llvm/tools/llvm-nm/llvm-nm.cpp
@@ -2487,7 +2487,8 @@ int llvm_nm_main(int argc, char **argv, const 
llvm::ToolContext &) {
                   .Case("32_64", BitModeTy::Bit32_64)
                   .Case("any", BitModeTy::Any)
                   .Default(BitModeTy::Any);
-  }
+  } else
+    BitMode = BitModeTy::Any;
 
   if (Arg *A = Args.getLastArg(OPT_X)) {
     StringRef Mode = A->getValue();

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to