mirror of
https://github.com/intel/llvm.git
synced 2026-02-04 03:26:06 +08:00
Require -pie when linking with ASan on Android.
llvm-svn: 157923
This commit is contained in:
@@ -97,6 +97,8 @@ def err_arc_unsupported : Error<
|
||||
"-fobjc-arc is not supported on current deployment target">;
|
||||
def err_drv_mg_requires_m_or_mm : Error<
|
||||
"option '-MG' requires '-M' or '-MM'">;
|
||||
def err_drv_asan_android_requires_pie : Error<
|
||||
"AddressSanitizer on Android requires '-pie'">;
|
||||
|
||||
def warn_c_kext : Warning<
|
||||
"ignoring -fapple-kext which is valid for c++ and objective-c++ only">;
|
||||
|
||||
@@ -1290,6 +1290,8 @@ static void addAsanRTLinux(const ToolChain &TC, const ArgList &Args,
|
||||
return;
|
||||
if(TC.getTriple().getEnvironment() == llvm::Triple::ANDROIDEABI) {
|
||||
if (!Args.hasArg(options::OPT_shared)) {
|
||||
if (!Args.hasArg(options::OPT_pie))
|
||||
TC.getDriver().Diag(diag::err_drv_asan_android_requires_pie);
|
||||
// For an executable, we add a .preinit_array stub.
|
||||
CmdArgs.push_back("-u");
|
||||
CmdArgs.push_back("__asan_preinit");
|
||||
|
||||
Reference in New Issue
Block a user