Showing content from https://clang.llvm.org/doxygen/classclang_1_1driver_1_1toolchains_1_1Linux.html below:
clang: clang::driver::toolchains::Linux Class Reference
Linux (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args) bool HasNativeLLVMSupport () const override HasNativeLTOLinker - Check whether the linker and related tools have native LLVM support.
std::string getMultiarchTriple (const Driver &D, const llvm::Triple &TargetTriple, StringRef SysRoot) const override Get our best guess at the multiarch triple for a target.
void AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override Add the clang cc1 arguments for system include paths.
void addLibStdCxxIncludePaths (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override void AddCudaIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override Add arguments to use system-specific CUDA includes.
void AddHIPIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override Add arguments to use system-specific HIP includes.
void AddHIPRuntimeLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override Add the system specific linker arguments to use for the given HIP runtime library type.
void AddIAMCUIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override Add arguments to use MCU GCC toolchain includes.
void addSYCLIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override Add arguments to use system-specific SYCL includes.
RuntimeLibType GetDefaultRuntimeLibType () const override GetDefaultRuntimeLibType - Get the default runtime library variant to use.
unsigned GetDefaultDwarfVersion () const override CXXStdlibType GetDefaultCXXStdlibType () const override bool IsAArch64OutlineAtomicsDefault (const llvm::opt::ArgList &Args) const override Test whether this toolchain supports outline atomics by default.
bool isPIEDefault (const llvm::opt::ArgList &Args) const override Test whether this toolchain defaults to PIE.
bool IsMathErrnoDefault () const override IsMathErrnoDefault - Does this tool chain use -fmath-errno by default.
SanitizerMask getSupportedSanitizers () const override Return sanitizers which are available in this toolchain.
void addProfileRTLibs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override addProfileRTLibs - When -fprofile-instr-profile is specified, try to pass a suitable profile runtime library to the linker.
std::string computeSysRoot () const override Return the sysroot, possibly searching for a default sysroot using target-specific logic.
std::string getDynamicLinker (const llvm::opt::ArgList &Args) const override void addExtraOpts (llvm::opt::ArgStringList &CmdArgs) const override const char * getDefaultLinker () const override GetDefaultLinker - Get the default linker to use.
Generic_ELF (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args) void addClangTargetOptions (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, Action::OffloadKind DeviceOffloadKind) const override Add options that need to be passed to cc1 for this target.
virtual std::string getDynamicLinker (const llvm::opt::ArgList &Args) const virtual void addExtraOpts (llvm::opt::ArgStringList &CmdArgs) const Generic_GCC (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args) ~Generic_GCC () override void printVerboseInfo (raw_ostream &OS) const override Dispatch to the specific toolchain for verbose printing.
UnwindTableLevel getDefaultUnwindTableLevel (const llvm::opt::ArgList &Args) const override How detailed should the unwind tables be by default.
bool isPICDefault () const override Test whether this toolchain defaults to PIC.
bool isPIEDefault (const llvm::opt::ArgList &Args) const override Test whether this toolchain defaults to PIE.
bool isPICDefaultForced () const override Tests whether this toolchain forces its default for PIC, PIE or non-PIC.
bool IsIntegratedAssemblerDefault () const override IsIntegratedAssemblerDefault - Does this tool chain enable -integrated-as by default.
llvm::opt::DerivedArgList * TranslateArgs (const llvm::opt::DerivedArgList &Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override TranslateArgs - Create a new derived argument list for any argument translations this ToolChain may wish to perform, or 0 if no tool chain specific translations are needed.
virtual ~ToolChain () const Driver & getDriver () const llvm::vfs::FileSystem & getVFS () const const llvm::Triple & getTriple () const virtual const llvm::Triple * getAuxTriple () const Get the toolchain's aux triple, if it has one.
virtual std::string getInputFilename (const InputInfo &Input) const Some toolchains need to modify the file name, for example to replace the extension for object files with .cubin for OpenMP offloading to Nvidia GPUs.
llvm::Triple::ArchType getArch () const StringRef getArchName () const StringRef getPlatform () const StringRef getOS () const StringRef getDefaultUniversalArchName () const Provide the default architecture name (as expected by -arch) for this toolchain.
std::string getTripleString () const const llvm::Triple & getEffectiveTriple () const Get the toolchain's effective clang triple.
bool hasEffectiveTriple () const path_list & getLibraryPaths () const path_list & getLibraryPaths () const path_list & getFilePaths () const path_list & getFilePaths () const path_list & getProgramPaths () const path_list & getProgramPaths () const const MultilibSet & getMultilibs () const const llvm::SmallVector< Multilib > & getSelectedMultilibs () const Multilib::flags_list getMultilibFlags (const llvm::opt::ArgList &) const Get flags suitable for multilib selection, based on the provided clang command line arguments.
SanitizerArgs getSanitizerArgs (const llvm::opt::ArgList &JobArgs) const const XRayArgs & getXRayArgs () const const llvm::opt::Arg * getRTTIArg () const RTTIMode getRTTIMode () const ExceptionsMode getExceptionsMode () const virtual llvm::opt::DerivedArgList * TranslateArgs (const llvm::opt::DerivedArgList &Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const TranslateArgs - Create a new derived argument list for any argument translations this ToolChain may wish to perform, or 0 if no tool chain specific translations are needed.
virtual llvm::opt::DerivedArgList * TranslateOpenMPTargetArgs (const llvm::opt::DerivedArgList &Args, bool SameTripleAsHost, SmallVectorImpl< llvm::opt::Arg * > &AllocatedArgs) const TranslateOpenMPTargetArgs - Create a new derived argument list for that contains the OpenMP target specific flags passed via -Xopenmp-target -opt=val OR -Xopenmp-target=<triple> -opt=val.
virtual void TranslateXarchArgs (const llvm::opt::DerivedArgList &Args, llvm::opt::Arg *&A, llvm::opt::DerivedArgList *DAL, SmallVectorImpl< llvm::opt::Arg * > *AllocatedArgs=nullptr) const Append the argument following A
to DAL
assuming A
is an Xarch argument.
virtual llvm::opt::DerivedArgList * TranslateXarchArgs (const llvm::opt::DerivedArgList &Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind, SmallVectorImpl< llvm::opt::Arg * > *AllocatedArgs) const Translate -Xarch_ arguments.
virtual Tool * SelectTool (const JobAction &JA) const Choose a tool to use to handle the action JA
.
std::string GetFilePath (const char *Name) const std::string GetProgramPath (const char *Name) const std::string GetLinkerPath (bool *LinkerIsLLD=nullptr) const Returns the linker path, respecting the -fuse-ld= argument to determine the linker suffix or name.
std::string GetStaticLibToolPath () const Returns the linker path for emitting a static library.
virtual void printVerboseInfo (raw_ostream &OS) const Dispatch to the specific toolchain for verbose printing.
virtual bool isCrossCompiling () const Returns true if the toolchain is targeting a non-native architecture.
virtual bool HasNativeLLVMSupport () const HasNativeLTOLinker - Check whether the linker and related tools have native LLVM support.
virtual types::ID LookupTypeForExtension (StringRef Ext) const LookupTypeForExtension - Return the default language type to use for the given extension.
virtual bool IsBlocksDefault () const IsBlocksDefault - Does this tool chain enable -fblocks by default.
virtual bool IsIntegratedAssemblerDefault () const IsIntegratedAssemblerDefault - Does this tool chain enable -integrated-as by default.
virtual bool IsIntegratedBackendDefault () const IsIntegratedBackendDefault - Does this tool chain enable -fintegrated-objemitter by default.
virtual bool IsIntegratedBackendSupported () const IsIntegratedBackendSupported - Does this tool chain support -fintegrated-objemitter.
virtual bool IsNonIntegratedBackendSupported () const IsNonIntegratedBackendSupported - Does this tool chain support -fno-integrated-objemitter.
virtual bool useIntegratedAs () const Check if the toolchain should use the integrated assembler.
virtual bool useIntegratedBackend () const Check if the toolchain should use the integrated backend.
virtual bool parseInlineAsmUsingAsmParser () const Check if the toolchain should use AsmParser to parse inlineAsm when integrated assembler is not default.
virtual bool IsMathErrnoDefault () const IsMathErrnoDefault - Does this tool chain use -fmath-errno by default.
virtual bool IsEncodeExtendedBlockSignatureDefault () const IsEncodeExtendedBlockSignatureDefault - Does this tool chain enable -fencode-extended-block-signature by default.
virtual bool IsObjCNonFragileABIDefault () const IsObjCNonFragileABIDefault - Does this tool chain set -fobjc-nonfragile-abi by default.
virtual bool UseObjCMixedDispatch () const UseObjCMixedDispatchDefault - When using non-legacy dispatch, should the mixed dispatch method be used?
virtual bool useRelaxRelocations () const Check whether to enable x86 relax relocations by default.
bool defaultToIEEELongDouble () const Check whether use IEEE binary128 as long double format by default.
virtual LangOptions::StackProtectorMode GetDefaultStackProtectorLevel (bool KernelOrKext) const GetDefaultStackProtectorLevel - Get the default stack protector level for this tool chain.
virtual LangOptions::TrivialAutoVarInitKind GetDefaultTrivialAutoVarInit () const Get the default trivial automatic variable initialization.
virtual const char * getDefaultLinker () const GetDefaultLinker - Get the default linker to use.
virtual RuntimeLibType GetDefaultRuntimeLibType () const GetDefaultRuntimeLibType - Get the default runtime library variant to use.
virtual CXXStdlibType GetDefaultCXXStdlibType () const virtual UnwindLibType GetDefaultUnwindLibType () const virtual std::string getCompilerRTPath () const virtual std::string getCompilerRT (const llvm::opt::ArgList &Args, StringRef Component, FileType Type=ToolChain::FT_Static) const const char * getCompilerRTArgString (const llvm::opt::ArgList &Args, StringRef Component, FileType Type=ToolChain::FT_Static) const std::string getCompilerRTBasename (const llvm::opt::ArgList &Args, StringRef Component, FileType Type=ToolChain::FT_Static) const std::optional< std::string > getRuntimePath () const std::optional< std::string > getStdlibPath () const std::optional< std::string > getStdlibIncludePath () const virtual path_list getArchSpecificLibPaths () const virtual StringRef getOSLibName () const virtual UnwindTableLevel getDefaultUnwindTableLevel (const llvm::opt::ArgList &Args) const How detailed should the unwind tables be by default.
virtual bool IsAArch64OutlineAtomicsDefault (const llvm::opt::ArgList &Args) const Test whether this toolchain supports outline atomics by default.
virtual bool isPICDefault () const =0 Test whether this toolchain defaults to PIC.
virtual bool isPIEDefault (const llvm::opt::ArgList &Args) const =0 Test whether this toolchain defaults to PIE.
virtual bool isPICDefaultForced () const =0 Tests whether this toolchain forces its default for PIC, PIE or non-PIC.
virtual bool SupportsProfiling () const SupportsProfiling - Does this tool chain support -pg.
virtual void CheckObjCARC () const Complain if this tool chain doesn't support Objective-C ARC.
virtual llvm::codegenoptions::DebugInfoFormat getDefaultDebugFormat () const Get the default debug info format. Typically, this is DWARF.
virtual bool UseDwarfDebugFlags () const UseDwarfDebugFlags - Embed the compile options to clang into the Dwarf compile unit information.
virtual std::string GetGlobalDebugPathRemapping () const Add an additional -fdebug-prefix-map entry.
virtual unsigned GetDefaultDwarfVersion () const virtual unsigned getMaxDwarfVersion () const virtual bool GetDefaultStandaloneDebug () const virtual llvm::DebuggerKind getDefaultDebuggerTuning () const virtual bool supportsDebugInfoOption (const llvm::opt::Arg *) const Does this toolchain supports given debug info option or not.
virtual void adjustDebugInfoKind (llvm::codegenoptions::DebugInfoKind &DebugInfoKind, const llvm::opt::ArgList &Args) const Adjust debug information kind considering all passed options.
virtual llvm::ExceptionHandling GetExceptionModel (const llvm::opt::ArgList &Args) const GetExceptionModel - Return the tool chain exception model.
virtual bool SupportsEmbeddedBitcode () const SupportsEmbeddedBitcode - Does this tool chain support embedded bitcode.
virtual std::string getThreadModel () const getThreadModel() - Which thread model does this target use?
virtual bool isThreadModelSupported (const StringRef Model) const isThreadModelSupported() - Does this target support a thread model?
virtual bool isBareMetal () const isBareMetal - Is this a bare metal target.
virtual std::string getMultiarchTriple (const Driver &D, const llvm::Triple &TargetTriple, StringRef SysRoot) const virtual std::string ComputeLLVMTriple (const llvm::opt::ArgList &Args, types::ID InputType=types::TY_INVALID) const ComputeLLVMTriple - Return the LLVM target triple to use, after taking command line arguments into account.
virtual std::string ComputeEffectiveClangTriple (const llvm::opt::ArgList &Args, types::ID InputType=types::TY_INVALID) const ComputeEffectiveClangTriple - Return the Clang triple to use for this target, which may take into account the command line arguments.
virtual ObjCRuntime getDefaultObjCRuntime (bool isNonFragile) const getDefaultObjCRuntime - Return the default Objective-C runtime for this platform.
virtual bool hasBlocksRuntime () const hasBlocksRuntime - Given that the user is compiling with -fblocks, does this tool chain guarantee the existence of a blocks runtime?
virtual std::string computeSysRoot () const Return the sysroot, possibly searching for a default sysroot using target-specific logic.
virtual void AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const Add the clang cc1 arguments for system include paths.
virtual void addClangTargetOptions (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, Action::OffloadKind DeviceOffloadKind) const Add options that need to be passed to cc1 for this target.
virtual void addClangCC1ASTargetOptions (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CC1ASArgs) const Add options that need to be passed to cc1as for this target.
virtual void addClangWarningOptions (llvm::opt::ArgStringList &CC1Args) const Add warning options that need to be passed to cc1 for this target.
virtual SmallVector< std::string > getMultilibMacroDefinesStr (llvm::opt::ArgList &Args) const virtual RuntimeLibType GetRuntimeLibType (const llvm::opt::ArgList &Args) const virtual CXXStdlibType GetCXXStdlibType (const llvm::opt::ArgList &Args) const virtual UnwindLibType GetUnwindLibType (const llvm::opt::ArgList &Args) const virtual std::string detectLibcxxVersion (StringRef IncludePath) const virtual void AddClangCXXStdlibIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set the include paths to use for the given C++ standard library type.
void AddClangCXXStdlibIsystemArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const AddClangCXXStdlibIsystemArgs - Add the clang -cc1 level arguments to set the specified include paths for the C++ standard library.
bool ShouldLinkCXXStdlib (const llvm::opt::ArgList &Args) const Returns if the C++ standard library should be linked in.
virtual void AddCXXStdlibLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const AddCXXStdlibLibArgs - Add the system specific linker arguments to use for the given C++ standard library type.
void AddFilePathLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const AddFilePathLibArgs - Add each thing in getFilePaths() as a "-L" option.
virtual void AddCCKextLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const AddCCKextLibArgs - Add the system specific linker arguments to use for kernel extensions (Darwin-specific).
virtual bool isFastMathRuntimeAvailable (const llvm::opt::ArgList &Args, std::string &Path) const If a runtime library exists that sets global flags for unsafe floating point math, return true.
bool addFastMathRuntimeIfAvailable (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const AddFastMathRuntimeIfAvailable - If a runtime library exists that sets global flags for unsafe floating point math, add it and return true.
virtual Expected< SmallVector< std::string > > getSystemGPUArchs (const llvm::opt::ArgList &Args) const getSystemGPUArchs - Use a tool to detect the user's availible GPUs.
virtual void addProfileRTLibs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const addProfileRTLibs - When -fprofile-instr-profile is specified, try to pass a suitable profile runtime library to the linker.
virtual void AddCudaIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const Add arguments to use system-specific CUDA includes.
virtual void AddHIPIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const Add arguments to use system-specific HIP includes.
virtual void addSYCLIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const Add arguments to use system-specific SYCL includes.
virtual void AddIAMCUIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const Add arguments to use MCU GCC toolchain includes.
virtual VersionTuple computeMSVCVersion (const Driver *D, const llvm::opt::ArgList &Args) const On Windows, returns the MSVC compatibility version.
virtual llvm::SmallVector< BitCodeLibraryInfo, 12 > getDeviceLibs (const llvm::opt::ArgList &Args) const Get paths for device libraries.
virtual void AddHIPRuntimeLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const Add the system specific linker arguments to use for the given HIP runtime library type.
virtual SanitizerMask getSupportedSanitizers () const Return sanitizers which are available in this toolchain.
virtual SanitizerMask getDefaultSanitizers () const Return sanitizers which are enabled by default.
virtual bool canSplitThinLTOUnit () const Returns true when it's possible to split LTO unit to use whole program devirtualization and CFI santiizers.
virtual llvm::DenormalMode getDefaultDenormalModeForType (const llvm::opt::ArgList &DriverArgs, const JobAction &JA, const llvm::fltSemantics *FPType=nullptr) const Returns the output denormal handling type in the default floating point environment for the given FPType
if given.
Tool * buildAssembler () const override Tool * buildLinker () const override Tool * buildStaticLibTool () const override Tool * getTool (Action::ActionClass AC) const override Tool * buildAssembler () const override Tool * buildLinker () const override bool isTarget64Bit () const Check whether the target triple's architecture is 64-bits.
bool isTarget32Bit () const Check whether the target triple's architecture is 32-bits.
void PushPPaths (ToolChain::path_list &PPaths) void AddMultilibPaths (const Driver &D, const std::string &SysRoot, const std::string &OSLibDir, const std::string &MultiarchTriple, path_list &Paths) void AddMultiarchPaths (const Driver &D, const std::string &SysRoot, const std::string &OSLibDir, path_list &Paths) void AddMultilibIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const void AddClangCXXStdlibIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set the include paths to use for the given C++ standard library type.
virtual void addLibCxxIncludePaths (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const bool addGCCLibStdCxxIncludePaths (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, StringRef DebianMultiarch) const bool addLibStdCXXIncludePaths (Twine IncludeDir, StringRef Triple, Twine IncludeSuffix, const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, bool DetectDebian=false) const ToolChain (const Driver &D, const llvm::Triple &T, const llvm::opt::ArgList &Args) llvm::Expected< std::unique_ptr< llvm::MemoryBuffer > > executeToolChainProgram (StringRef Executable) const Executes the given Executable
and returns the stdout.
void setTripleEnvironment (llvm::Triple::EnvironmentType Env) virtual Tool * buildAssembler () const virtual Tool * buildLinker () const virtual Tool * buildStaticLibTool () const virtual Tool * getTool (Action::ActionClass AC) const virtual std::string buildCompilerRTBasename (const llvm::opt::ArgList &Args, StringRef Component, FileType Type, bool AddArch) const std::optional< std::string > getTargetSubDirPath (StringRef BaseDir) const Find the target-specific subdirectory for the current target triple under BaseDir
, doing fallback triple searches as necessary.
enum CXXStdlibType { CST_Libcxx , CST_Libstdcxx } enum RuntimeLibType { RLT_CompilerRT , RLT_Libgcc } enum UnwindLibType { UNW_None , UNW_CompilerRT , UNW_Libgcc } enum class UnwindTableLevel { None , Synchronous , Asynchronous } enum RTTIMode { RM_Enabled , RM_Disabled } enum ExceptionsMode { EM_Enabled , EM_Disabled } enum FileType { FT_Object , FT_Static , FT_Shared } using path_list = SmallVector< std::string, 16 > static ParsedClangName getTargetAndModeFromProgramName (StringRef ProgName) Return any implicit target and/or mode flag for an invocation of the compiler driver as ProgName
.
static bool needsProfileRT (const llvm::opt::ArgList &Args) needsProfileRT - returns true if instrumentation profile is on.
static bool needsGCovInstrumentation (const llvm::opt::ArgList &Args) Returns true if gcov instrumentation (-fprofile-arcs or –coverage) is on.
static llvm::Triple getOpenMPTriple (StringRef TripleStr) static void addSystemInclude (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, const Twine &Path) Utility function to add a system include directory to CC1 arguments.
static void addExternCSystemInclude (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, const Twine &Path) Utility function to add a system include directory with extern "C" semantics to CC1 arguments.
static void addExternCSystemIncludeIfExists (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, const Twine &Path) static void addSystemIncludes (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, ArrayRef< StringRef > Paths) Utility function to add a list of system include directories to CC1.
static std::string concat (StringRef Path, const Twine &A, const Twine &B="", const Twine &C="", const Twine &D="") GCCInstallationDetector GCCInstallation LazyDetector< CudaInstallationDetector > CudaInstallation LazyDetector< RocmInstallationDetector > RocmInstallation LazyDetector< SYCLInstallationDetector > SYCLInstallation MultilibSet Multilibs llvm::SmallVector< Multilib > SelectedMultilibs
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4