OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [gold/] [layout.cc] - Diff between revs 159 and 163

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 159 Rev 163
Line 408... Line 408...
    incremental_inputs_(NULL),
    incremental_inputs_(NULL),
    record_output_section_data_from_script_(false),
    record_output_section_data_from_script_(false),
    script_output_section_data_list_(),
    script_output_section_data_list_(),
    segment_states_(NULL),
    segment_states_(NULL),
    relaxation_debug_check_(NULL),
    relaxation_debug_check_(NULL),
 
    section_order_map_(),
    input_section_position_(),
    input_section_position_(),
    input_section_glob_(),
    input_section_glob_(),
    incremental_base_(NULL),
    incremental_base_(NULL),
    free_list_()
    free_list_()
{
{
Line 896... Line 897...
Layout::init_fixed_output_section(const char* name,
Layout::init_fixed_output_section(const char* name,
                                  elfcpp::Shdr<size, big_endian>& shdr)
                                  elfcpp::Shdr<size, big_endian>& shdr)
{
{
  unsigned int sh_type = shdr.get_sh_type();
  unsigned int sh_type = shdr.get_sh_type();
 
 
  // We preserve the layout of PROGBITS, NOBITS, and NOTE sections.
  // We preserve the layout of PROGBITS, NOBITS, INIT_ARRAY, FINI_ARRAY,
 
  // PRE_INIT_ARRAY, and NOTE sections.
  // All others will be created from scratch and reallocated.
  // All others will be created from scratch and reallocated.
  if (sh_type != elfcpp::SHT_PROGBITS
  if (!can_incremental_update(sh_type))
      && sh_type != elfcpp::SHT_NOBITS
 
      && sh_type != elfcpp::SHT_NOTE)
 
    return NULL;
    return NULL;
 
 
  typename elfcpp::Elf_types<size>::Elf_Addr sh_addr = shdr.get_sh_addr();
  typename elfcpp::Elf_types<size>::Elf_Addr sh_addr = shdr.get_sh_addr();
  typename elfcpp::Elf_types<size>::Elf_Off sh_offset = shdr.get_sh_offset();
  typename elfcpp::Elf_types<size>::Elf_Off sh_offset = shdr.get_sh_offset();
  typename elfcpp::Elf_types<size>::Elf_WXword sh_size = shdr.get_sh_size();
  typename elfcpp::Elf_types<size>::Elf_WXword sh_size = shdr.get_sh_size();
Line 1440... Line 1440...
      && order != ORDER_INIT
      && order != ORDER_INIT
      && order != ORDER_PLT
      && order != ORDER_PLT
      && order != ORDER_FINI
      && order != ORDER_FINI
      && order != ORDER_RELRO_LAST
      && order != ORDER_RELRO_LAST
      && order != ORDER_NON_RELRO_FIRST
      && order != ORDER_NON_RELRO_FIRST
 
      && strcmp(name, ".eh_frame") != 0
      && strcmp(name, ".ctors") != 0
      && strcmp(name, ".ctors") != 0
      && strcmp(name, ".dtors") != 0
      && strcmp(name, ".dtors") != 0
      && strcmp(name, ".jcr") != 0)
      && strcmp(name, ".jcr") != 0)
    {
    {
      os->set_is_patch_space_allowed();
      os->set_is_patch_space_allowed();
Line 2973... Line 2974...
  if ((flags1 & elfcpp::PF_R) != (flags2 & elfcpp::PF_R))
  if ((flags1 & elfcpp::PF_R) != (flags2 & elfcpp::PF_R))
    return (flags1 & elfcpp::PF_R) == 0;
    return (flags1 & elfcpp::PF_R) == 0;
 
 
  // We shouldn't get here--we shouldn't create segments which we
  // We shouldn't get here--we shouldn't create segments which we
  // can't distinguish.  Unless of course we are using a weird linker
  // can't distinguish.  Unless of course we are using a weird linker
  // script.
  // script or overlapping --section-start options.
  gold_assert(this->script_options_->saw_phdrs_clause());
  gold_assert(this->script_options_->saw_phdrs_clause()
 
              || parameters->options().any_section_start());
  return false;
  return false;
}
}
 
 
// Increase OFF so that it is congruent to ADDR modulo ABI_PAGESIZE.
// Increase OFF so that it is congruent to ADDR modulo ABI_PAGESIZE.
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.