llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-driver @llvm/pr-subscribers-clang Author: Paul Osmialowski (pawosm-arm) <details> <summary>Changes</summary> Using `-fveclib=ArmPL` without `-lamath` likely effects in the link-time errors. --- Full diff: https://github.com/llvm/llvm-project/pull/116432.diff 3 Files Affected: - (modified) clang/lib/Driver/ToolChains/CommonArgs.cpp (+10) - (modified) clang/test/Driver/fveclib.c (+11) - (modified) flang/test/Driver/fveclib.f90 (+11) ``````````diff diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index cbba4289eb9450..913797dec123fc 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -490,6 +490,16 @@ void tools::AddLinkerInputs(const ToolChain &TC, const InputInfoList &Inputs, else A.renderAsInput(Args, CmdArgs); } + if (const Arg *A = Args.getLastArg(options::OPT_fveclib)) { + if (A->getNumValues() == 1) { + StringRef V = A->getValue(); + if (V == "ArmPL") { + CmdArgs.push_back(Args.MakeArgString("-lamath")); + CmdArgs.push_back(Args.MakeArgString("-lm")); + addArchSpecificRPath(TC, Args, CmdArgs); + } + } + } } void tools::addLinkerCompressDebugSectionsOption( diff --git a/clang/test/Driver/fveclib.c b/clang/test/Driver/fveclib.c index 8b233b0023398f..738c27fafb0524 100644 --- a/clang/test/Driver/fveclib.c +++ b/clang/test/Driver/fveclib.c @@ -102,3 +102,14 @@ /* Verify no warning when math-errno is re-enabled for a different veclib (that does not imply -fno-math-errno). */ // RUN: %clang -### --target=aarch64-linux-gnu -fveclib=ArmPL -fmath-errno -fveclib=LIBMVEC %s 2>&1 | FileCheck --check-prefix=CHECK-REPEAT-VECLIB %s // CHECK-REPEAT-VECLIB-NOT: math errno enabled + +/* Verify that vectorized routines library is being linked in. */ +// RUN: %clang -### --target=aarch64-linux-gnu -fveclib=ArmPL %s 2>&1 | FileCheck --check-prefix=CHECK-LINKING-ARMPL %s +// CHECK-LINKING-ARMPL: "-lamath" +// CHECK-LINKING-ARMPL-SAME: "-lm" + +/* Verify that the RPATH is being set when needed. */ +// RUN: %clang -### --target=aarch64-linux-gnu -frtlib-add-rpath -fveclib=ArmPL %s 2>&1 | FileCheck --check-prefix=CHECK-RPATH-ARMPL %s +// CHECK-RPATH-ARMPL: "-lamath" +// CHECK-RPATH-ARMPL-SAME: "-lm" +// CHECK-RPATH-ARMPL-SAME: "-rpath" diff --git a/flang/test/Driver/fveclib.f90 b/flang/test/Driver/fveclib.f90 index 14c59b0616f828..60a711a0816d3d 100644 --- a/flang/test/Driver/fveclib.f90 +++ b/flang/test/Driver/fveclib.f90 @@ -30,3 +30,14 @@ ! TODO: if we add support for -nostdlib or -nodefaultlibs we need to test that ! these prevent "-framework Accelerate" being added on Darwin + +! RUN: %flang -### --target=aarch64-linux-gnu -fveclib=ArmPL %s 2>&1 | FileCheck --check-prefix=CHECK-LINKING-ARMPL %s +! CHECK-LINKING-ARMPL: "-lamath" +! CHECK-LINKING-ARMPL-SAME: "-lm" + +! RUN: %flang -### --target=aarch64-linux-gnu -frtlib-add-rpath -fveclib=ArmPL %s 2>&1 | FileCheck --check-prefix=CHECK-RPATH-ARMPL %s +! CHECK-RPATH-ARMPL: "-lamath" +! CHECK-RPATH-ARMPL-SAME: "-lm" +! We need to see "-rpath" at least twice, one for veclib, one for the Fortran runtime +! CHECK-RPATH-ARMPL-SAME: "-rpath" +! CHECK-RPATH-ARMPL-SAME: "-rpath" `````````` </details> https://github.com/llvm/llvm-project/pull/116432 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits