diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-04-20 21:20:51 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-04-20 21:20:51 +0000 | 
| commit | 583e75cce441388bc562fa225d23499261a0091e (patch) | |
| tree | 5944a7c248d4a8c858db45abc3444eb69270a3c8 /lib/Driver/ToolChains/Gnu.cpp | |
| parent | 7442d6faa2719e4e7d33a7021c406c5a4facd74d (diff) | |
Diffstat (limited to 'lib/Driver/ToolChains/Gnu.cpp')
| -rw-r--r-- | lib/Driver/ToolChains/Gnu.cpp | 38 | 
1 files changed, 11 insertions, 27 deletions
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp index 549e24cbd2b3..313bf38c2860 100644 --- a/lib/Driver/ToolChains/Gnu.cpp +++ b/lib/Driver/ToolChains/Gnu.cpp @@ -586,37 +586,15 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,        bool WantPthread = Args.hasArg(options::OPT_pthread) ||                           Args.hasArg(options::OPT_pthreads); -      if (Args.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ, -                       options::OPT_fno_openmp, false)) { +      // FIXME: Only pass GompNeedsRT = true for platforms with libgomp that +      // require librt. Most modern Linux platforms do, but some may not. +      if (addOpenMPRuntime(CmdArgs, ToolChain, Args, +                           JA.isHostOffloading(Action::OFK_OpenMP), +                           /* GompNeedsRT= */ true))          // OpenMP runtimes implies pthreads when using the GNU toolchain.          // FIXME: Does this really make sense for all GNU toolchains?          WantPthread = true; -        // Also link the particular OpenMP runtimes. -        switch (ToolChain.getDriver().getOpenMPRuntime(Args)) { -        case Driver::OMPRT_OMP: -          CmdArgs.push_back("-lomp"); -          break; -        case Driver::OMPRT_GOMP: -          CmdArgs.push_back("-lgomp"); - -          // FIXME: Exclude this for platforms with libgomp that don't require -          // librt. Most modern Linux platforms require it, but some may not. -          CmdArgs.push_back("-lrt"); -          break; -        case Driver::OMPRT_IOMP5: -          CmdArgs.push_back("-liomp5"); -          break; -        case Driver::OMPRT_Unknown: -          // Already diagnosed. -          break; -        } -        if (JA.isHostOffloading(Action::OFK_OpenMP)) -          CmdArgs.push_back("-lomptarget"); - -        addArchSpecificRPath(ToolChain, Args, CmdArgs); -      } -        AddRunTimeLibs(ToolChain, D, CmdArgs, Args);        if (WantPthread && !isAndroid) @@ -770,6 +748,12 @@ void tools::gnutools::Assembler::ConstructJob(Compilation &C,      Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);      break;    } +  case llvm::Triple::aarch64: +  case llvm::Triple::aarch64_be: { +    Args.AddLastArg(CmdArgs, options::OPT_march_EQ); +    Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ); +    break; +  }    case llvm::Triple::mips:    case llvm::Triple::mipsel:    case llvm::Triple::mips64:  | 
