public class GnuLinker extends DelegatingTool implements Linker, HasIncrementalThinLTO
Linker containing information specific to the GNU implementation.Linker.CxxRuntimeType, Linker.ExtraOutputsDeriver, Linker.LinkableDepType, Linker.LinkType, Linker.SharedLibraryLoadingTypegetCommandPrefix, getEnvironmentclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetCommandPrefix, getEnvironmentpublic GnuLinker(Tool tool)
public com.google.common.collect.ImmutableList<FileScrubber> getScrubbers(com.google.common.collect.ImmutableMap<Path,Path> cellRootMap)
getScrubbers in interface LinkercellRootMap - Replacement map for cell roots found in paths, to some suitably normalized
form (such as a relative path from root cell).public Iterable<Arg> linkWhole(Arg input, SourcePathResolverAdapter resolver)
public Iterable<Arg> incrementalThinLTOFlags(Path output)
incrementalThinLTOFlags in interface HasIncrementalThinLTOoutput - the path of the output index filespublic Iterable<Arg> fileList(Path fileListPath)
Linkerpublic String origin()
public String libOrigin()
public String searchPathEnvVar()
searchPathEnvVar in interface Linkerpublic String preloadEnvVar()
preloadEnvVar in interface Linkerpublic com.google.common.collect.ImmutableList<Arg> createUndefinedSymbolsLinkerArgs(ProjectFilesystem projectFilesystem, BuildRuleParams baseParams, ActionGraphBuilder graphBuilder, BuildTarget target, com.google.common.collect.ImmutableList<? extends SourcePath> symbolFiles)
symbolFiles into a linker script wrapped in
`EXTERN` commands.createUndefinedSymbolsLinkerArgs in interface Linkertarget - the name given to the BuildRule which creates the linker script.symbolFiles - public Iterable<String> getNoAsNeededSharedLibsFlags()
getNoAsNeededSharedLibsFlags in interface Linkerpublic Iterable<String> getIgnoreUndefinedSymbolsFlags()
getIgnoreUndefinedSymbolsFlags in interface Linkerpublic Iterable<Arg> getSharedLibFlag()
getSharedLibFlag in interface Linkerpublic Iterable<String> outputArgs(String path)
outputArgs in interface Linkerpublic Linker.SharedLibraryLoadingType getSharedLibraryLoadingType()
getSharedLibraryLoadingType in interface Linkerpublic Optional<Linker.ExtraOutputsDeriver> getExtraOutputsDeriver()
getExtraOutputsDeriver in interface Linkerpublic boolean getUseUnixPathSeparator()
getUseUnixPathSeparator in interface Linker