Minimize visibilities.
This makes it much clearer which things are used outside the crate.
This commit is contained in:
parent
04a318787b
commit
bdacdfe95f
24 changed files with 188 additions and 179 deletions
|
@ -28,7 +28,7 @@ use crate::errors;
|
|||
/// and prevent inspection of linker output in case of errors, which we occasionally do.
|
||||
/// This should be acceptable because other messages from rustc are in English anyway,
|
||||
/// and may also be desirable to improve searchability of the linker diagnostics.
|
||||
pub fn disable_localization(linker: &mut Command) {
|
||||
pub(crate) fn disable_localization(linker: &mut Command) {
|
||||
// No harm in setting both env vars simultaneously.
|
||||
// Unix-style linkers.
|
||||
linker.env("LC_ALL", "C");
|
||||
|
@ -39,7 +39,7 @@ pub fn disable_localization(linker: &mut Command) {
|
|||
/// The third parameter is for env vars, used on windows to set up the
|
||||
/// path for MSVC to find its DLLs, and gcc to find its bundled
|
||||
/// toolchain
|
||||
pub fn get_linker<'a>(
|
||||
pub(crate) fn get_linker<'a>(
|
||||
sess: &'a Session,
|
||||
linker: &Path,
|
||||
flavor: LinkerFlavor,
|
||||
|
@ -213,28 +213,36 @@ fn link_or_cc_args<L: Linker + ?Sized>(
|
|||
macro_rules! generate_arg_methods {
|
||||
($($ty:ty)*) => { $(
|
||||
impl $ty {
|
||||
pub fn verbatim_args(&mut self, args: impl IntoIterator<Item: AsRef<OsStr>>) -> &mut Self {
|
||||
#[allow(unused)]
|
||||
pub(crate) fn verbatim_args(&mut self, args: impl IntoIterator<Item: AsRef<OsStr>>) -> &mut Self {
|
||||
verbatim_args(self, args)
|
||||
}
|
||||
pub fn verbatim_arg(&mut self, arg: impl AsRef<OsStr>) -> &mut Self {
|
||||
#[allow(unused)]
|
||||
pub(crate) fn verbatim_arg(&mut self, arg: impl AsRef<OsStr>) -> &mut Self {
|
||||
verbatim_args(self, iter::once(arg))
|
||||
}
|
||||
pub fn link_args(&mut self, args: impl IntoIterator<Item: AsRef<OsStr>, IntoIter: ExactSizeIterator>) -> &mut Self {
|
||||
#[allow(unused)]
|
||||
pub(crate) fn link_args(&mut self, args: impl IntoIterator<Item: AsRef<OsStr>, IntoIter: ExactSizeIterator>) -> &mut Self {
|
||||
link_args(self, args)
|
||||
}
|
||||
pub fn link_arg(&mut self, arg: impl AsRef<OsStr>) -> &mut Self {
|
||||
#[allow(unused)]
|
||||
pub(crate) fn link_arg(&mut self, arg: impl AsRef<OsStr>) -> &mut Self {
|
||||
link_args(self, iter::once(arg))
|
||||
}
|
||||
pub fn cc_args(&mut self, args: impl IntoIterator<Item: AsRef<OsStr>>) -> &mut Self {
|
||||
#[allow(unused)]
|
||||
pub(crate) fn cc_args(&mut self, args: impl IntoIterator<Item: AsRef<OsStr>>) -> &mut Self {
|
||||
cc_args(self, args)
|
||||
}
|
||||
pub fn cc_arg(&mut self, arg: impl AsRef<OsStr>) -> &mut Self {
|
||||
#[allow(unused)]
|
||||
pub(crate) fn cc_arg(&mut self, arg: impl AsRef<OsStr>) -> &mut Self {
|
||||
cc_args(self, iter::once(arg))
|
||||
}
|
||||
pub fn link_or_cc_args(&mut self, args: impl IntoIterator<Item: AsRef<OsStr>>) -> &mut Self {
|
||||
#[allow(unused)]
|
||||
pub(crate) fn link_or_cc_args(&mut self, args: impl IntoIterator<Item: AsRef<OsStr>>) -> &mut Self {
|
||||
link_or_cc_args(self, args)
|
||||
}
|
||||
pub fn link_or_cc_arg(&mut self, arg: impl AsRef<OsStr>) -> &mut Self {
|
||||
#[allow(unused)]
|
||||
pub(crate) fn link_or_cc_arg(&mut self, arg: impl AsRef<OsStr>) -> &mut Self {
|
||||
link_or_cc_args(self, iter::once(arg))
|
||||
}
|
||||
}
|
||||
|
@ -261,7 +269,7 @@ generate_arg_methods! {
|
|||
/// represents the meaning of each option being passed down. This trait is then
|
||||
/// used to dispatch on whether a GNU-like linker (generally `ld.exe`) or an
|
||||
/// MSVC linker (e.g., `link.exe`) is being used.
|
||||
pub trait Linker {
|
||||
pub(crate) trait Linker {
|
||||
fn cmd(&mut self) -> &mut Command;
|
||||
fn is_cc(&self) -> bool {
|
||||
false
|
||||
|
@ -312,12 +320,12 @@ pub trait Linker {
|
|||
}
|
||||
|
||||
impl dyn Linker + '_ {
|
||||
pub fn take_cmd(&mut self) -> Command {
|
||||
pub(crate) fn take_cmd(&mut self) -> Command {
|
||||
mem::replace(self.cmd(), Command::new(""))
|
||||
}
|
||||
}
|
||||
|
||||
pub struct GccLinker<'a> {
|
||||
struct GccLinker<'a> {
|
||||
cmd: Command,
|
||||
sess: &'a Session,
|
||||
target_cpu: &'a str,
|
||||
|
@ -847,7 +855,7 @@ impl<'a> Linker for GccLinker<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
pub struct MsvcLinker<'a> {
|
||||
struct MsvcLinker<'a> {
|
||||
cmd: Command,
|
||||
sess: &'a Session,
|
||||
}
|
||||
|
@ -1095,7 +1103,7 @@ impl<'a> Linker for MsvcLinker<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
pub struct EmLinker<'a> {
|
||||
struct EmLinker<'a> {
|
||||
cmd: Command,
|
||||
sess: &'a Session,
|
||||
}
|
||||
|
@ -1212,7 +1220,7 @@ impl<'a> Linker for EmLinker<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
pub struct WasmLd<'a> {
|
||||
struct WasmLd<'a> {
|
||||
cmd: Command,
|
||||
sess: &'a Session,
|
||||
}
|
||||
|
@ -1396,7 +1404,7 @@ impl<'a> WasmLd<'a> {
|
|||
}
|
||||
|
||||
/// Linker shepherd script for L4Re (Fiasco)
|
||||
pub struct L4Bender<'a> {
|
||||
struct L4Bender<'a> {
|
||||
cmd: Command,
|
||||
sess: &'a Session,
|
||||
hinted_static: bool,
|
||||
|
@ -1502,7 +1510,7 @@ impl<'a> Linker for L4Bender<'a> {
|
|||
}
|
||||
|
||||
impl<'a> L4Bender<'a> {
|
||||
pub fn new(cmd: Command, sess: &'a Session) -> L4Bender<'a> {
|
||||
fn new(cmd: Command, sess: &'a Session) -> L4Bender<'a> {
|
||||
L4Bender { cmd, sess, hinted_static: false }
|
||||
}
|
||||
|
||||
|
@ -1515,14 +1523,14 @@ impl<'a> L4Bender<'a> {
|
|||
}
|
||||
|
||||
/// Linker for AIX.
|
||||
pub struct AixLinker<'a> {
|
||||
struct AixLinker<'a> {
|
||||
cmd: Command,
|
||||
sess: &'a Session,
|
||||
hinted_static: Option<bool>,
|
||||
}
|
||||
|
||||
impl<'a> AixLinker<'a> {
|
||||
pub fn new(cmd: Command, sess: &'a Session) -> AixLinker<'a> {
|
||||
fn new(cmd: Command, sess: &'a Session) -> AixLinker<'a> {
|
||||
AixLinker { cmd, sess, hinted_static: None }
|
||||
}
|
||||
|
||||
|
@ -1750,7 +1758,7 @@ pub(crate) fn linked_symbols(
|
|||
|
||||
/// Much simplified and explicit CLI for the NVPTX linker. The linker operates
|
||||
/// with bitcode and uses LLVM backend to generate a PTX assembly.
|
||||
pub struct PtxLinker<'a> {
|
||||
struct PtxLinker<'a> {
|
||||
cmd: Command,
|
||||
sess: &'a Session,
|
||||
}
|
||||
|
@ -1816,7 +1824,7 @@ impl<'a> Linker for PtxLinker<'a> {
|
|||
}
|
||||
|
||||
/// The `self-contained` LLVM bitcode linker
|
||||
pub struct LlbcLinker<'a> {
|
||||
struct LlbcLinker<'a> {
|
||||
cmd: Command,
|
||||
sess: &'a Session,
|
||||
}
|
||||
|
@ -1887,7 +1895,7 @@ impl<'a> Linker for LlbcLinker<'a> {
|
|||
fn linker_plugin_lto(&mut self) {}
|
||||
}
|
||||
|
||||
pub struct BpfLinker<'a> {
|
||||
struct BpfLinker<'a> {
|
||||
cmd: Command,
|
||||
sess: &'a Session,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue