[clang] [Clang][Hexagon] Use --cstdlib flag to choose Picolibc (PR #183257)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 6 06:30:14 PDT 2026
================
@@ -596,25 +614,23 @@ void HexagonToolChain::getHexagonLibraryPaths(const ArgList &Args,
std::copy(D.PrefixDirs.begin(), D.PrefixDirs.end(),
std::back_inserter(RootDirs));
- std::string SysRoot(getEffectiveSysRoot());
+ std::string SysRoot(getEffectiveSysRoot(Args));
if (!llvm::is_contained(RootDirs, SysRoot))
RootDirs.push_back(SysRoot);
bool HasPIC = Args.hasArg(options::OPT_fpic, options::OPT_fPIC);
- // Assume G0 with -shared.
- bool HasG0 = Args.hasArg(options::OPT_shared);
+ bool HasG0 = false;
if (auto G = getSmallDataThreshold(Args))
HasG0 = *G == 0;
const std::string CpuVer = GetTargetCPUVersion(Args).str();
for (auto &Dir : RootDirs) {
std::string LibDir = Dir + "/lib";
std::string LibDirCpu = LibDir + '/' + CpuVer;
- if (HasG0) {
- if (HasPIC)
- LibPaths.push_back(LibDirCpu + "/G0/pic");
+ if (HasPIC)
+ LibPaths.push_back(LibDirCpu + "/G0/pic");
+ if (HasG0)
----------------
quic-k wrote:
-fPIC is always G0, right? @quic-akaryaki
also, can we add -L/..../lib/<cpu>/G0 after -L/..../lib/<cpu> for non-G0 code, so if we don't have non-G0 version of some libs, we can fall back to G0 libs
my understanding of small data libs is, small-data(G8) libraries won’t work with non-small data(G0) objects, but non-small-data(G0) libraries will work with small data(G8) objects
https://github.com/llvm/llvm-project/pull/183257
More information about the cfe-commits
mailing list