From 5f84b3720acc9d85cef1354346876c180e7b13fc Mon Sep 17 00:00:00 2001 From: Petr Hosek Date: Fri, 18 May 2018 18:33:07 +0000 Subject: [PATCH] [Support] Avoid normalization in sys::getDefaultTargetTriple The return value of sys::getDefaultTargetTriple, which is derived from -DLLVM_DEFAULT_TRIPLE, is used to construct tool names, default target, and in the future also to control the search path directly; as such it should be used textually, without interpretation by LLVM. Normalization of this value may lead to unexpected results, for example if we configure LLVM with -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-linux-gnu, normalization will transform that value to x86_64--linux-gnu. Driver will use that value to search for tools prefixed with x86_64--linux-gnu- which may be confusing. This is also inconsistent with the behavior of the --target flag which is taken as-is without any normalization and overrides the value of LLVM_DEFAULT_TARGET_TRIPLE. Users of sys::getDefaultTargetTriple already perform their own normalization as needed, so this change shouldn't impact existing logic. Differential Revision: https://reviews.llvm.org/D46910 llvm-svn: 332750 --- cmake/modules/GetHostTriple.cmake | 8 ++++---- lib/Support/Unix/Host.inc | 2 +- lib/Support/Windows/Host.inc | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cmake/modules/GetHostTriple.cmake b/cmake/modules/GetHostTriple.cmake index 019188a59cc..7b842450b72 100644 --- a/cmake/modules/GetHostTriple.cmake +++ b/cmake/modules/GetHostTriple.cmake @@ -4,15 +4,15 @@ function( get_host_triple var ) if( MSVC ) if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - set( value "x86_64-pc-win32" ) + set( value "x86_64-pc-windows-msvc" ) else() - set( value "i686-pc-win32" ) + set( value "i686-pc-windows-msvc" ) endif() elseif( MINGW AND NOT MSYS ) if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - set( value "x86_64-w64-mingw32" ) + set( value "x86_64-w64-windows-gnu" ) else() - set( value "i686-pc-mingw32" ) + set( value "i686-pc-windows-gnu" ) endif() else( MSVC ) set(config_guess ${LLVM_MAIN_SRC_DIR}/cmake/config.guess) diff --git a/lib/Support/Unix/Host.inc b/lib/Support/Unix/Host.inc index 5580e63893c..b65f84bf444 100644 --- a/lib/Support/Unix/Host.inc +++ b/lib/Support/Unix/Host.inc @@ -64,5 +64,5 @@ std::string sys::getDefaultTargetTriple() { TargetTripleString = EnvTriple; #endif - return Triple::normalize(TargetTripleString); + return TargetTripleString; } diff --git a/lib/Support/Windows/Host.inc b/lib/Support/Windows/Host.inc index 90a6fb31670..58c4dc5d678 100644 --- a/lib/Support/Windows/Host.inc +++ b/lib/Support/Windows/Host.inc @@ -30,5 +30,5 @@ std::string sys::getDefaultTargetTriple() { Triple = EnvTriple; #endif - return Triple::normalize(Triple); + return Triple; }