Skip to content

Commit

Permalink
[Driver] Unsupport --print-multiarch
Browse files Browse the repository at this point in the history
* If GCC is configured with `--disable-multi-arch`, `--print-multiarch` output is an empty line.
* If GCC is configured with `--enable-multi-arch`, `--print-multiarch` output may be a normalized triple or (on Debian, 'vendor' is omitted) `x86_64-linux-gnu`.

The Clang support D101400 just prints the Debian multiarch style triple
unconditionally, but the string is not really expected for non-Debian systems.

AIUI many Linux distributions and non-Linux OSes don't configure GCC with `--enable-multi-arch`.
Instead of getting us in the trouble of supporting all kinds of variants, drop the support as before D101400.

Close #51469

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D133170
  • Loading branch information
MaskRay committed Sep 2, 2022
1 parent 5856576 commit e05edb1
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 13 deletions.
5 changes: 3 additions & 2 deletions clang/include/clang/Driver/Options.td
Original file line number Diff line number Diff line change
Expand Up @@ -4069,8 +4069,9 @@ def print_target_triple : Flag<["-", "--"], "print-target-triple">,
HelpText<"Print the normalized target triple">, Flags<[FlangOption]>;
def print_effective_triple : Flag<["-", "--"], "print-effective-triple">,
HelpText<"Print the effective target triple">, Flags<[FlangOption]>;
def print_multiarch : Flag<["-", "--"], "print-multiarch">,
HelpText<"Print the multiarch target triple">;
// GCC --disable-multiarch, GCC --enable-multiarch (upstream and Debian
// specific) have different behaviors. We choose not to support the option.
def : Flag<["-", "--"], "print-multiarch">, Flags<[Unsupported]>;
def print_prog_name_EQ : Joined<["-", "--"], "print-prog-name=">,
HelpText<"Print the full program path of <name>">, MetaVarName<"<name>">;
def print_resource_dir : Flag<["-", "--"], "print-resource-dir">,
Expand Down
6 changes: 0 additions & 6 deletions clang/lib/Driver/Driver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2152,12 +2152,6 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
return false;
}

if (C.getArgs().hasArg(options::OPT_print_multiarch)) {
llvm::outs() << TC.getMultiarchTriple(*this, TC.getTriple(), SysRoot)
<< "\n";
return false;
}

if (C.getArgs().hasArg(options::OPT_print_targets)) {
llvm::TargetRegistry::printRegisteredTargetsForVersion(llvm::outs());
return false;
Expand Down
10 changes: 5 additions & 5 deletions clang/test/Driver/print-multiarch.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Check the output of -print-multiarch.
/// GCC --disable-multiarch, GCC --enable-multiarch (upstream and Debian specific) have different behaviors.
/// We choose not to support the option.

// RUN: %clang -print-multiarch --target=x86_64-unknown-linux-gnu \
// RUN: -resource-dir=%S/Inputs/resource_dir \
// RUN: | FileCheck --check-prefix=PRINT-MULTIARCH %s
// PRINT-MULTIARCH: {{^}}x86_64-linux-gnu{{$}}
// RUN: not %clang -print-multiarch --target=x86_64-unknown-linux-gnu 2>&1 | FileCheck %s

// CHECK: error: unsupported option '-print-multiarch'

0 comments on commit e05edb1

Please sign in to comment.