1pub mod linux {
2 use syn::Ident;
3
4 pub fn section(ident: &Ident) -> String {
5 format!("linkme_{}", ident)
6 }
7
8 pub fn section_start(ident: &Ident) -> String {
9 format!("__start_linkme_{}", ident)
10 }
11
12 pub fn section_stop(ident: &Ident) -> String {
13 format!("__stop_linkme_{}", ident)
14 }
15}
16
17pub mod bsd {
18 use syn::Ident;
19
20 pub fn section(ident: &Ident) -> String {
21 format!("linkme_{}", ident)
22 }
23
24 pub fn section_start(ident: &Ident) -> String {
25 format!("__start_linkme_{}", ident)
26 }
27
28 pub fn section_stop(ident: &Ident) -> String {
29 format!("__stop_linkme_{}", ident)
30 }
31}
32
33pub mod macho {
34 use syn::Ident;
35
36 pub fn section(ident: &Ident) -> String {
37 format!(
38 "__DATA,__linkme{},regular,no_dead_strip",
39 crate::hash(ident),
40 )
41 }
42
43 pub fn section_start(ident: &Ident) -> String {
44 format!("\x01section$start$__DATA$__linkme{}", crate::hash(ident))
45 }
46
47 pub fn section_stop(ident: &Ident) -> String {
48 format!("\x01section$end$__DATA$__linkme{}", crate::hash(ident))
49 }
50}
51
52pub mod windows {
53 use syn::Ident;
54
55 pub fn section(ident: &Ident) -> String {
56 format!(".linkme_{}$b", ident)
57 }
58
59 pub fn section_start(ident: &Ident) -> String {
60 format!(".linkme_{}$a", ident)
61 }
62
63 pub fn section_stop(ident: &Ident) -> String {
64 format!(".linkme_{}$c", ident)
65 }
66}
67
68pub mod illumos {
69 use syn::Ident;
70
71 pub fn section(ident: &Ident) -> String {
72 format!("set_linkme_{}", ident)
73 }
74
75 pub fn section_start(ident: &Ident) -> String {
76 format!("__start_set_linkme_{}", ident)
77 }
78
79 pub fn section_stop(ident: &Ident) -> String {
80 format!("__stop_set_linkme_{}", ident)
81 }
82}