1 // defstd.cc -- define standard symbols for gold.
8 // This is a simple file which defines the standard symbols like
16 const Define_symbol_in_section in_section[] =
19 "__preinit_array_start", // name
20 ".preinit_array", // output_section
23 elfcpp::STT_NOTYPE, // type
24 elfcpp::STB_GLOBAL, // binding
25 elfcpp::STV_HIDDEN, // visibility
27 false, // offset_is_from_end
31 "__preinit_array_end", // name
32 ".preinit_array", // output_section
35 elfcpp::STT_NOTYPE, // type
36 elfcpp::STB_GLOBAL, // binding
37 elfcpp::STV_HIDDEN, // visibility
39 true, // offset_is_from_end
43 "__init_array_start", // name
44 ".init_array", // output_section
47 elfcpp::STT_NOTYPE, // type
48 elfcpp::STB_GLOBAL, // binding
49 elfcpp::STV_HIDDEN, // visibility
51 false, // offset_is_from_end
55 "__init_array_end", // name
56 ".init_array", // output_section
59 elfcpp::STT_NOTYPE, // type
60 elfcpp::STB_GLOBAL, // binding
61 elfcpp::STV_HIDDEN, // visibility
63 true, // offset_is_from_end
67 "__fini_array_start", // name
68 ".fini_array", // output_section
71 elfcpp::STT_NOTYPE, // type
72 elfcpp::STB_GLOBAL, // binding
73 elfcpp::STV_HIDDEN, // visibility
75 false, // offset_is_from_end
79 "__fini_array_end", // name
80 ".fini_array", // output_section
83 elfcpp::STT_NOTYPE, // type
84 elfcpp::STB_GLOBAL, // binding
85 elfcpp::STV_HIDDEN, // visibility
87 true, // offset_is_from_end
92 const int in_section_count = sizeof in_section / sizeof in_section[0];
94 const Define_symbol_in_segment in_segment[] =
98 elfcpp::PT_LOAD, // segment_type
99 elfcpp::PF_W, // segment_flags_set
100 elfcpp::PF(0), // segment_flags_clear
103 elfcpp::STT_NOTYPE, // type
104 elfcpp::STB_GLOBAL, // binding
105 elfcpp::STV_DEFAULT, // visibility
107 Symbol::SEGMENT_START, // offset_from_bas
112 const int in_segment_count = sizeof in_segment / sizeof in_segment[0];
114 } // End anonymous namespace.
120 define_standard_symbols(Symbol_table* symtab, const Layout* layout,
123 symtab->define_symbols(layout, target, in_section_count, in_section);
124 symtab->define_symbols(layout, target, in_segment_count, in_segment);
127 } // End namespace gold.