| pub mod linux { |
| use syn::Ident; |
| |
| pub fn section(ident: &Ident) -> String { |
| format!("linkme_{}", ident) |
| } |
| |
| pub fn section_start(ident: &Ident) -> String { |
| format!("__start_linkme_{}", ident) |
| } |
| |
| pub fn section_stop(ident: &Ident) -> String { |
| format!("__stop_linkme_{}", ident) |
| } |
| } |
| |
| pub mod bsd { |
| use syn::Ident; |
| |
| pub fn section(ident: &Ident) -> String { |
| format!("linkme_{}", ident) |
| } |
| |
| pub fn section_start(ident: &Ident) -> String { |
| format!("__start_linkme_{}", ident) |
| } |
| |
| pub fn section_stop(ident: &Ident) -> String { |
| format!("__stop_linkme_{}", ident) |
| } |
| } |
| |
| pub mod macho { |
| use syn::Ident; |
| |
| pub fn section(ident: &Ident) -> String { |
| format!( |
| "__DATA,__linkme{},regular,no_dead_strip", |
| crate::hash(ident), |
| ) |
| } |
| |
| pub fn section_start(ident: &Ident) -> String { |
| format!("\x01section$start$__DATA$__linkme{}", crate::hash(ident)) |
| } |
| |
| pub fn section_stop(ident: &Ident) -> String { |
| format!("\x01section$end$__DATA$__linkme{}", crate::hash(ident)) |
| } |
| } |
| |
| pub mod windows { |
| use syn::Ident; |
| |
| pub fn section(ident: &Ident) -> String { |
| format!(".linkme_{}$b", ident) |
| } |
| |
| pub fn section_start(ident: &Ident) -> String { |
| format!(".linkme_{}$a", ident) |
| } |
| |
| pub fn section_stop(ident: &Ident) -> String { |
| format!(".linkme_{}$c", ident) |
| } |
| } |
| |
| pub mod illumos { |
| use syn::Ident; |
| |
| pub fn section(ident: &Ident) -> String { |
| format!("set_linkme_{}", ident) |
| } |
| |
| pub fn section_start(ident: &Ident) -> String { |
| format!("__start_set_linkme_{}", ident) |
| } |
| |
| pub fn section_stop(ident: &Ident) -> String { |
| format!("__stop_set_linkme_{}", ident) |
| } |
| } |