forked from OSchip/llvm-project
[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
This commit is contained in:
parent
f7b81db715
commit
24b61ac832
|
@ -2927,10 +2927,11 @@ static void ParseTargetArgs(TargetOptions &Opts, ArgList &Args,
|
|||
Opts.FPMath = Args.getLastArgValue(OPT_mfpmath);
|
||||
Opts.FeaturesAsWritten = Args.getAllArgValues(OPT_target_feature);
|
||||
Opts.LinkerVersion = Args.getLastArgValue(OPT_target_linker_version);
|
||||
Opts.Triple = llvm::Triple::normalize(Args.getLastArgValue(OPT_triple));
|
||||
Opts.Triple = Args.getLastArgValue(OPT_triple);
|
||||
// Use the default target triple if unspecified.
|
||||
if (Opts.Triple.empty())
|
||||
Opts.Triple = llvm::sys::getDefaultTargetTriple();
|
||||
Opts.Triple = llvm::Triple::normalize(Opts.Triple);
|
||||
Opts.OpenCLExtensionsAsWritten = Args.getAllArgValues(OPT_cl_ext_EQ);
|
||||
Opts.ForceEnableInt128 = Args.hasArg(OPT_fforce_enable_int128);
|
||||
Opts.NVPTXUseShortPointers = Args.hasFlag(
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -64,5 +64,5 @@ std::string sys::getDefaultTargetTriple() {
|
|||
TargetTripleString = EnvTriple;
|
||||
#endif
|
||||
|
||||
return Triple::normalize(TargetTripleString);
|
||||
return TargetTripleString;
|
||||
}
|
||||
|
|
|
@ -30,5 +30,5 @@ std::string sys::getDefaultTargetTriple() {
|
|||
Triple = EnvTriple;
|
||||
#endif
|
||||
|
||||
return Triple::normalize(Triple);
|
||||
return Triple;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue