aboutsummaryrefslogtreecommitdiff
path: root/gold/defstd.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2006-11-06 22:46:08 +0000
committerIan Lance Taylor <iant@google.com>2006-11-06 22:46:08 +0000
commitf6ce93d6e999d1a0c450c5e71c5b3468e6217f0a (patch)
tree945ecd482d35d1c2a590645ef3d5f41fb83dcc4b /gold/defstd.cc
parent8d9455b422d98d97f090923445aa2680e6882f20 (diff)
downloadfsf-binutils-gdb-f6ce93d6e999d1a0c450c5e71c5b3468e6217f0a.zip
fsf-binutils-gdb-f6ce93d6e999d1a0c450c5e71c5b3468e6217f0a.tar.gz
fsf-binutils-gdb-f6ce93d6e999d1a0c450c5e71c5b3468e6217f0a.tar.bz2
Split Object into Dynobj and Relobj, incorporate elfcpp swapping changes.
Diffstat (limited to 'gold/defstd.cc')
-rw-r--r--gold/defstd.cc116
1 files changed, 114 insertions, 2 deletions
diff --git a/gold/defstd.cc b/gold/defstd.cc
index 29fd2cd..50a977a 100644
--- a/gold/defstd.cc
+++ b/gold/defstd.cc
@@ -94,9 +94,121 @@ const int in_section_count = sizeof in_section / sizeof in_section[0];
const Define_symbol_in_segment in_segment[] =
{
{
+ "__executable_start", // name
+ elfcpp::PT_LOAD, // segment_type
+ elfcpp::PF(0), // segment_flags_set
+ elfcpp::PF(0), // segment_flags_clear
+ 0, // value
+ 0, // size
+ elfcpp::STT_NOTYPE, // type
+ elfcpp::STB_GLOBAL, // binding
+ elfcpp::STV_DEFAULT, // visibility
+ 0, // nonvis
+ Symbol::SEGMENT_START, // offset_from_base
+ true // only_if_ref
+ },
+ {
+ "etext", // name
+ elfcpp::PT_LOAD, // segment_type
+ elfcpp::PF_X, // segment_flags_set
+ elfcpp::PF_W, // segment_flags_clear
+ 0, // value
+ 0, // size
+ elfcpp::STT_NOTYPE, // type
+ elfcpp::STB_GLOBAL, // binding
+ elfcpp::STV_DEFAULT, // visibility
+ 0, // nonvis
+ Symbol::SEGMENT_END, // offset_from_base
+ true // only_if_ref
+ },
+ {
+ "_etext", // name
+ elfcpp::PT_LOAD, // segment_type
+ elfcpp::PF_X, // segment_flags_set
+ elfcpp::PF_W, // segment_flags_clear
+ 0, // value
+ 0, // size
+ elfcpp::STT_NOTYPE, // type
+ elfcpp::STB_GLOBAL, // binding
+ elfcpp::STV_DEFAULT, // visibility
+ 0, // nonvis
+ Symbol::SEGMENT_END, // offset_from_base
+ true // only_if_ref
+ },
+ {
+ "__etext", // name
+ elfcpp::PT_LOAD, // segment_type
+ elfcpp::PF_X, // segment_flags_set
+ elfcpp::PF_W, // segment_flags_clear
+ 0, // value
+ 0, // size
+ elfcpp::STT_NOTYPE, // type
+ elfcpp::STB_GLOBAL, // binding
+ elfcpp::STV_DEFAULT, // visibility
+ 0, // nonvis
+ Symbol::SEGMENT_END, // offset_from_base
+ true // only_if_ref
+ },
+ {
+ "_edata", // name
+ elfcpp::PT_LOAD, // segment_type
+ elfcpp::PF_X, // segment_flags_set
+ elfcpp::PF(0), // segment_flags_clear
+ 0, // value
+ 0, // size
+ elfcpp::STT_NOTYPE, // type
+ elfcpp::STB_GLOBAL, // binding
+ elfcpp::STV_DEFAULT, // visibility
+ 0, // nonvis
+ Symbol::SEGMENT_BSS, // offset_from_base
+ false // only_if_ref
+ },
+ {
+ "edata", // name
+ elfcpp::PT_LOAD, // segment_type
+ elfcpp::PF_X, // segment_flags_set
+ elfcpp::PF(0), // segment_flags_clear
+ 0, // value
+ 0, // size
+ elfcpp::STT_NOTYPE, // type
+ elfcpp::STB_GLOBAL, // binding
+ elfcpp::STV_DEFAULT, // visibility
+ 0, // nonvis
+ Symbol::SEGMENT_BSS, // offset_from_base
+ true // only_if_ref
+ },
+ {
+ "__bss_start", // name
+ elfcpp::PT_LOAD, // segment_type
+ elfcpp::PF_X, // segment_flags_set
+ elfcpp::PF(0), // segment_flags_clear
+ 0, // value
+ 0, // size
+ elfcpp::STT_NOTYPE, // type
+ elfcpp::STB_GLOBAL, // binding
+ elfcpp::STV_DEFAULT, // visibility
+ 0, // nonvis
+ Symbol::SEGMENT_BSS, // offset_from_base
+ false // only_if_ref
+ },
+ {
"_end", // name
elfcpp::PT_LOAD, // segment_type
- elfcpp::PF_W, // segment_flags_set
+ elfcpp::PF_X, // segment_flags_set
+ elfcpp::PF(0), // segment_flags_clear
+ 0, // value
+ 0, // size
+ elfcpp::STT_NOTYPE, // type
+ elfcpp::STB_GLOBAL, // binding
+ elfcpp::STV_DEFAULT, // visibility
+ 0, // nonvis
+ Symbol::SEGMENT_START, // offset_from_base
+ false // only_if_ref
+ },
+ {
+ "end", // name
+ elfcpp::PT_LOAD, // segment_type
+ elfcpp::PF_X, // segment_flags_set
elfcpp::PF(0), // segment_flags_clear
0, // value
0, // size
@@ -104,7 +216,7 @@ const Define_symbol_in_segment in_segment[] =
elfcpp::STB_GLOBAL, // binding
elfcpp::STV_DEFAULT, // visibility
0, // nonvis
- Symbol::SEGMENT_START, // offset_from_bas
+ Symbol::SEGMENT_START, // offset_from_base
false // only_if_ref
}
};