Author: Kelvin Li Date: 2026-06-26T17:54:18-04:00 New Revision: 518bd65d62cd831c8ae583a0f0fbca6df9b37a3b
URL: https://github.com/llvm/llvm-project/commit/518bd65d62cd831c8ae583a0f0fbca6df9b37a3b DIFF: https://github.com/llvm/llvm-project/commit/518bd65d62cd831c8ae583a0f0fbca6df9b37a3b.diff LOG: [driver][AIX] Accept '32_64' and 'any' as valid value for OBJECT_MODE (#205180) If OBJECT_MODE is set to '32_64' or 'any', the driver accepts the setting silently. Added: Modified: clang/docs/ReleaseNotes.rst clang/lib/Driver/Driver.cpp clang/test/Driver/aix-object-mode.c Removed: ################################################################################ diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 7fb3f273c5608..93f770c10afae 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -981,6 +981,8 @@ AIX Support - Added support for ``#pragma comment(copyright, "token_sequence")`` on AIX. This directive embeds a copyright or identifying string into the compiled object file. The string is included in the final executable and loaded into memory at program runtime. +- The driver relaxes the restrictions on the ``OBJECT_MODE`` environment + variable and now silently accepts ``32_64`` and ``any``. NetBSD Support ^^^^^^^^^^^^^^ diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index eb87bd2eebad0..0b04a68417bbe 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -674,11 +674,14 @@ static llvm::Triple computeTargetTriple(const Driver &D, StringRef ObjectMode = *ObjectModeValue; llvm::Triple::ArchType AT = llvm::Triple::UnknownArch; + // Silently accept '32_64' and 'any' + const bool OtherAllowedMode = + ObjectMode == "32_64" || ObjectMode == "any"; if (ObjectMode == "64") { AT = Target.get64BitArchVariant().getArch(); } else if (ObjectMode == "32") { AT = Target.get32BitArchVariant().getArch(); - } else { + } else if (!OtherAllowedMode) { D.Diag(diag::err_drv_invalid_object_mode) << ObjectMode; } diff --git a/clang/test/Driver/aix-object-mode.c b/clang/test/Driver/aix-object-mode.c index 7d79b5e900f67..c13b478bf7962 100644 --- a/clang/test/Driver/aix-object-mode.c +++ b/clang/test/Driver/aix-object-mode.c @@ -12,6 +12,26 @@ // RUN: env OBJECT_MODE=32 \ // RUN: %clang -print-target-triple | FileCheck -check-prefix=CHECK32 %s +// RUN: env OBJECT_MODE=32_64 \ +// RUN: %clang --target=powerpc-ibm-aix -print-target-triple | FileCheck -check-prefix=CHECK32 %s + +// RUN: env OBJECT_MODE=32_64 \ +// RUN: %clang --target=powerpc64-ibm-aix -print-target-triple | FileCheck -check-prefix=CHECK64 %s + +// RUN: env OBJECT_MODE=32_64 \ +// RUN: %clang -print-target-triple | FileCheck \ +// RUN: -check-prefix=%if target={{powerpc64-.*}} %{CHECK64%} %else %{CHECK32%} %s + +// RUN: env OBJECT_MODE=any \ +// RUN: %clang --target=powerpc-ibm-aix -print-target-triple | FileCheck -check-prefix=CHECK32 %s + +// RUN: env OBJECT_MODE=any \ +// RUN: %clang --target=powerpc64-ibm-aix -print-target-triple | FileCheck -check-prefix=CHECK64 %s + +// RUN: env OBJECT_MODE=any \ +// RUN: %clang -print-target-triple | FileCheck \ +// RUN: -check-prefix=%if target={{powerpc64-.*}} %{CHECK64%} %else %{CHECK32%} %s + // Command-line options win. // RUN: env OBJECT_MODE=64 \ // RUN: %clang --target=powerpc64-ibm-aix -print-target-triple -m32 | FileCheck -check-prefix=CHECK32 %s @@ -19,6 +39,18 @@ // RUN: env OBJECT_MODE=32 \ // RUN: %clang --target=powerpc-ibm-aix -print-target-triple -m64 | FileCheck -check-prefix=CHECK64 %s +// RUN: env OBJECT_MODE=32_64 \ +// RUN: %clang --target=powerpc-ibm-aix -print-target-triple -m64 | FileCheck -check-prefix=CHECK64 %s + +// RUN: env OBJECT_MODE=32_64 \ +// RUN: %clang --target=powerpc64-ibm-aix -print-target-triple -m32 | FileCheck -check-prefix=CHECK32 %s + +// RUN: env OBJECT_MODE=any \ +// RUN: %clang --target=powerpc-ibm-aix -print-target-triple -m64 | FileCheck -check-prefix=CHECK64 %s + +// RUN: env OBJECT_MODE=any \ +// RUN: %clang --target=powerpc64-ibm-aix -print-target-triple -m32 | FileCheck -check-prefix=CHECK32 %s + // CHECK32: powerpc-ibm-aix // CHECK64: powerpc64-ibm-aix _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
