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
