Module link

Source

Modules§

raw_dylib πŸ”’

Structs§

LinkerOutput πŸ”’
Translating this is kind of useless. We don’t pass translation flags to the linker, so we’d just end up with inconsistent languages within the same diagnostic.

Enums§

RlibFlavor πŸ”’

Functions§

add_apple_link_args πŸ”’
We need to communicate five things to the linker on Apple/Darwin targets:
add_apple_sdk πŸ”’
add_dynamic_crate πŸ”’
add_late_link_args πŸ”’
Add arbitrary β€œlate link” args defined by the target spec. FIXME: Determine where exactly these args need to be inserted.
add_library_search_dirs πŸ”’
Add sysroot and other globally set directories to the directory search list.
add_link_script πŸ”’
Add a link script embedded in the target, if applicable.
add_linked_symbol_object πŸ”’
Add a synthetic object file that contains reference to all symbols that we want to expose to the linker.
add_lld_args πŸ”’
When using the linker flavors opting in to lld, add the necessary paths and arguments to invoke it:
add_local_crate_allocator_objects πŸ”’
Add object files for allocator code linked once for the whole crate tree.
add_local_crate_metadata_objects πŸ”’
Add object files containing metadata for the current crate.
add_local_crate_regular_objects πŸ”’
Add object files containing code from the current crate.
add_local_native_libraries πŸ”’
add_native_libs_from_crate πŸ”’
add_order_independent_options πŸ”’
add_post_link_args πŸ”’
Add arbitrary β€œpost-link” args defined by the target spec. FIXME: Determine where exactly these args need to be inserted.
add_post_link_objects πŸ”’
Add post-link object files defined by the target spec.
add_pre_link_args πŸ”’
Add arbitrary β€œpre-link” args defined by the target spec or from command line. FIXME: Determine where exactly these args need to be inserted.
add_pre_link_objects πŸ”’
Add pre-link object files defined by the target spec.
add_relro_args πŸ”’
Add options making relocation sections in the produced ELF files read-only and suppressing lazy binding.
add_rpath_args πŸ”’
Add library search paths used at runtime by dynamic linkers.
add_sanitizer_libraries πŸ”’
add_static_crate πŸ”’
add_upstream_native_libraries πŸ”’
add_upstream_rust_crates πŸ”’
add_user_defined_link_args πŸ”’
Add arbitrary β€œuser defined” args defined from command line. FIXME: Determine where exactly these args need to be inserted.
are_upstream_rust_objects_already_included πŸ”’
collect_natvis_visualizers πŸ”’
detect_self_contained_mingw πŸ”’
each_linked_rlib
ensure_removed
escape_linker_output πŸ”’
escape_string πŸ”’
exec_linker πŸ”’
get_apple_sdk_root πŸ”’
get_object_file_path πŸ”’
ignored_for_lto
Returns a boolean indicating whether the specified crate should be ignored during LTO.
link_binary
Performs the linkage portion of the compilation phase. This will generate all of the requested outputs for this compilation session.
link_dwarf_object πŸ”’
Use thorin (rust implementation of a dwarf packaging utility) to link DWARF objects into a DWARF package.
link_natively πŸ”’
Create a dynamic library or executable.
link_output_kind πŸ”’
link_rlib πŸ”’
Create an β€˜rlib’.
link_sanitizer_runtime πŸ”’
link_staticlib πŸ”’
Create a static archive.
linker_and_flavor
This functions tries to determine the appropriate linker (and corresponding LinkerFlavor) to use
linker_with_args πŸ”’
Produce the linker command line containing linker path and arguments.
preserve_objects_for_their_debuginfo πŸ”’
Returns a pair of boolean indicating whether we should preserve the object and dwarf object files on the filesystem for their debug information. This is often useful with split-dwarf like schemes.
print_native_static_libs πŸ”’
rehome_lib_path πŸ”’
rehome_sysroot_lib_dir πŸ”’
relevant_lib πŸ”’
self_contained_components πŸ”’
Various toolchain components used during linking are used from rustc distribution instead of being found somewhere on the host system. We only provide such support for a very limited number of targets.
strip_with_external_utility πŸ”’