[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.
This commit is contained in:
parent
ebe87bafcf
commit
518bd65d62
3 changed files with 38 additions and 1 deletions
|
|
@ -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
|
||||
^^^^^^^^^^^^^^
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue