Lines Matching refs:Sym
263 static bool isAArch64MappingSymbol(const Symbol &Sym) { in isAArch64MappingSymbol() argument
264 if (Sym.Binding != STB_LOCAL || Sym.Type != STT_NOTYPE || in isAArch64MappingSymbol()
265 Sym.getShndx() == SHN_UNDEF) in isAArch64MappingSymbol()
267 StringRef Name = Sym.Name; in isAArch64MappingSymbol()
273 static bool isArmMappingSymbol(const Symbol &Sym) { in isArmMappingSymbol() argument
274 if (Sym.Binding != STB_LOCAL || Sym.Type != STT_NOTYPE || in isArmMappingSymbol()
275 Sym.getShndx() == SHN_UNDEF) in isArmMappingSymbol()
277 StringRef Name = Sym.Name; in isArmMappingSymbol()
285 static bool isRequiredByABISymbol(const Object &Obj, const Symbol &Sym) { in isRequiredByABISymbol() argument
289 return Obj.isRelocatable() && isAArch64MappingSymbol(Sym); in isRequiredByABISymbol()
292 return Obj.isRelocatable() && isArmMappingSymbol(Sym); in isRequiredByABISymbol()
298 static bool isUnneededSymbol(const Symbol &Sym) { in isUnneededSymbol() argument
299 return !Sym.Referenced && in isUnneededSymbol()
300 (Sym.Binding == STB_LOCAL || Sym.getShndx() == SHN_UNDEF) && in isUnneededSymbol()
301 Sym.Type != STT_SECTION; in isUnneededSymbol()
311 Obj.SymbolTable->updateSymbols([&](Symbol &Sym) { in updateAndRemoveSymbols() argument
312 if (Config.SymbolsToSkip.matches(Sym.Name)) in updateAndRemoveSymbols()
317 if (!Sym.isCommon() && Sym.getShndx() != SHN_UNDEF && in updateAndRemoveSymbols()
319 (Sym.Visibility == STV_HIDDEN || Sym.Visibility == STV_INTERNAL)) || in updateAndRemoveSymbols()
320 Config.SymbolsToLocalize.matches(Sym.Name))) in updateAndRemoveSymbols()
321 Sym.Binding = STB_LOCAL; in updateAndRemoveSymbols()
324 if (Matcher.matches(Sym.Name)) in updateAndRemoveSymbols()
325 Sym.Visibility = Visibility; in updateAndRemoveSymbols()
338 !Config.SymbolsToKeepGlobal.matches(Sym.Name) && in updateAndRemoveSymbols()
339 Sym.getShndx() != SHN_UNDEF) in updateAndRemoveSymbols()
340 Sym.Binding = STB_LOCAL; in updateAndRemoveSymbols()
342 if (Config.SymbolsToGlobalize.matches(Sym.Name) && in updateAndRemoveSymbols()
343 Sym.getShndx() != SHN_UNDEF) in updateAndRemoveSymbols()
344 Sym.Binding = STB_GLOBAL; in updateAndRemoveSymbols()
347 if (Config.SymbolsToWeaken.matches(Sym.Name) && Sym.Binding != STB_LOCAL) in updateAndRemoveSymbols()
348 Sym.Binding = STB_WEAK; in updateAndRemoveSymbols()
350 if (Config.Weaken && Sym.Binding != STB_LOCAL && in updateAndRemoveSymbols()
351 Sym.getShndx() != SHN_UNDEF) in updateAndRemoveSymbols()
352 Sym.Binding = STB_WEAK; in updateAndRemoveSymbols()
354 const auto I = Config.SymbolsToRename.find(Sym.Name); in updateAndRemoveSymbols()
356 Sym.Name = std::string(I->getValue()); in updateAndRemoveSymbols()
358 if (!Config.SymbolsPrefixRemove.empty() && Sym.Type != STT_SECTION) in updateAndRemoveSymbols()
359 if (Sym.Name.compare(0, Config.SymbolsPrefixRemove.size(), in updateAndRemoveSymbols()
361 Sym.Name = Sym.Name.substr(Config.SymbolsPrefixRemove.size()); in updateAndRemoveSymbols()
363 if (!Config.SymbolsPrefix.empty() && Sym.Type != STT_SECTION) in updateAndRemoveSymbols()
364 Sym.Name = (Config.SymbolsPrefix + Sym.Name).str(); in updateAndRemoveSymbols()
376 auto RemoveSymbolsPred = [&](const Symbol &Sym) { in updateAndRemoveSymbols() argument
377 if (Config.SymbolsToKeep.matches(Sym.Name) || in updateAndRemoveSymbols()
378 (ELFConfig.KeepFileSymbols && Sym.Type == STT_FILE)) in updateAndRemoveSymbols()
381 if (Config.SymbolsToRemove.matches(Sym.Name)) in updateAndRemoveSymbols()
387 if (isRequiredByABISymbol(Obj, Sym)) in updateAndRemoveSymbols()
390 if (Config.StripDebug && Sym.Type == STT_FILE) in updateAndRemoveSymbols()
395 StringRef(Sym.Name).starts_with(".L"))) && in updateAndRemoveSymbols()
396 Sym.Binding == STB_LOCAL && Sym.getShndx() != SHN_UNDEF && in updateAndRemoveSymbols()
397 Sym.Type != STT_FILE && Sym.Type != STT_SECTION) in updateAndRemoveSymbols()
401 Config.UnneededSymbolsToRemove.matches(Sym.Name)) && in updateAndRemoveSymbols()
402 (!Obj.isRelocatable() || isUnneededSymbol(Sym))) in updateAndRemoveSymbols()
406 if (!Config.OnlySection.empty() && !Sym.Referenced && in updateAndRemoveSymbols()
407 Sym.getShndx() == SHN_UNDEF) in updateAndRemoveSymbols()