[all-commits] [llvm/llvm-project] d75806: [clang] [MinGW] Guess the right ix86 arch name spe...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Thu Oct 28 23:33:00 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d758069f5e0d483f85ed1ee2c84b3955238eedce
      https://github.com/llvm/llvm-project/commit/d758069f5e0d483f85ed1ee2c84b3955238eedce
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-10-29 (Fri, 29 Oct 2021)

  Changed paths:
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/MinGW.cpp
    M clang/lib/Driver/ToolChains/MinGW.h
    M clang/test/Driver/mingw-sysroot.cpp

  Log Message:
  -----------
  [clang] [MinGW] Guess the right ix86 arch name spelling as sysroot

For x86, most contempory mingw toolchains use i686 as 32 bit
x86 arch target.

As long as the target triple is set to the right form, this works
fine, either as the compiler's default target, or via e.g.
a triple prefix like i686-w64-mingw32-clang.

However, if the unprefixed toolchain targets x86_64, but the user
tries to switch it to target 32 bit by adding the -m32 option, the
computeTargetTriple function in Clang, together with
Triple::get32BitArchVariant, sets the arch to i386. This causes
the right sysroot to not be found.

When targeting an arch where there are potential spelling ambiguities
with respect to the sysroots (i386 and arm), check if the driver can
find a sysroot with the arch name - if not, try a couple other
candidates.

Differential Revision: https://reviews.llvm.org/D111952


  Commit: a21a6ed8c23ff16cd0971606f85a00f8262064fa
      https://github.com/llvm/llvm-project/commit/a21a6ed8c23ff16cd0971606f85a00f8262064fa
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-10-29 (Fri, 29 Oct 2021)

  Changed paths:
    M libcxx/test/std/language.support/support.dynamic/alloc.errors/set.new.handler/get_new_handler.pass.cpp
    M libcxx/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp
    M libcxx/test/std/language.support/support.exception/propagation/current_exception.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/noncopyable_return_type.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Change LIBCXX-WINDOWS-FIXME into XFAIL: msvc for cases that succeed in mingw configurations

Add comments about the reasons for the XFAILs where there was none before.

Differential Revision: https://reviews.llvm.org/D112211


Compare: https://github.com/llvm/llvm-project/compare/1eae247a2d20...a21a6ed8c23f


More information about the All-commits mailing list