pub fn needs_plt(&self) -> bool {
        // Check if the current target usually needs PLT to be enabled.
        // The user can use the command line flag to override it.
        let needs_plt = self.target.target.options.needs_plt;

        let dbg_opts = &self.opts.debugging_opts;

        let relro_level = dbg_opts.relro_level
            .unwrap_or(self.target.target.options.relro_level);

        // Only enable this optimization by default if full relro is also enabled.
        // In this case, lazy binding was already unavailable, so nothing is lost.
        // This also ensures `-Wl,-z,now` is supported by the linker.
        let full_relro = RelroLevel::Full == relro_level;

        // If user didn't explicitly forced us to use / skip the PLT,
        // then try to skip it where possible.
        dbg_opts.plt.unwrap_or(needs_plt || !full_relro)
    }
/// True if we cannot skip the PLT for shared library calls.
True if we cannot skip the PLT for shared library calls.
True if we cannot skip the PLT for shared library calls .
pub fn needs_plt(&self) -> bool {
        // Check if the current target usually needs PLT to be enabled.
        // The user can use the command line flag to override it.
        let needs_plt = self.target.target.options.needs_plt;
        let dbg_opts = &self.opts.debugging_opts;
        let relro_level = dbg_opts.relro_level
            .unwrap_or(self.target.target.options.relro_level);
        // Only enable this optimization by default if full relro is also enabled.
        // In this case, lazy binding was already unavailable, so nothing is lost.
        // This also ensures `-Wl,-z,now` is supported by the linker.
        let full_relro = RelroLevel::Full == relro_level;
        // If user didn't explicitly forced us to use / skip the PLT,
        // then try to skip it where possible.
        dbg_opts.plt.unwrap_or(needs_plt || !full_relro)
    }
pub fn needs_plt ( & self ) -> bool { // Check if the current target usually needs PLT to be enabled. // The user can use the command line flag to override it. let needs_plt = self . target . target . options . needs_plt ; let dbg_opts = & self . opts . debugging_opts ; let relro_level = dbg_opts . relro_level . unwrap_or ( self . target . target . options . relro_level ) ; // Only enable this optimization by default if full relro is also enabled. // In this case, lazy binding was already unavailable, so nothing is lost. // This also ensures `-Wl,-z,now` is supported by the linker. let full_relro = RelroLevel :: Full == relro_level ; // If user didn't explicitly forced us to use / skip the PLT, // then try to skip it where possible. dbg_opts . plt . unwrap_or ( needs_plt || ! full_relro ) }
True if we cannot skip the PLT for shared library calls.
True if we cannot skip the PLT for shared library calls .
&self
&self