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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [gas/] [config/] [obj-elf.c] - Diff between revs 160 and 166

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

Rev 160 Rev 166
Line 1... Line 1...
/* ELF object file format
/* ELF object file format
   Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
   Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
   Free Software Foundation, Inc.
   Free Software Foundation, Inc.
 
 
   This file is part of GAS, the GNU Assembler.
   This file is part of GAS, the GNU Assembler.
 
 
   GAS is free software; you can redistribute it and/or modify
   GAS is free software; you can redistribute it and/or modify
Line 739... Line 739...
  md_elf_section_change_hook ();
  md_elf_section_change_hook ();
#endif
#endif
}
}
 
 
static bfd_vma
static bfd_vma
obj_elf_parse_section_letters (char *str, size_t len, bfd_boolean *clone)
obj_elf_parse_section_letters (char *str, size_t len, bfd_boolean *is_clone)
{
{
  bfd_vma attr = 0;
  bfd_vma attr = 0;
  *clone = FALSE;
  *is_clone = FALSE;
 
 
  while (len > 0)
  while (len > 0)
    {
    {
      switch (*str)
      switch (*str)
        {
        {
Line 773... Line 773...
          break;
          break;
        case 'T':
        case 'T':
          attr |= SHF_TLS;
          attr |= SHF_TLS;
          break;
          break;
        case '?':
        case '?':
          *clone = TRUE;
          *is_clone = TRUE;
          break;
          break;
        /* Compatibility.  */
        /* Compatibility.  */
        case 'm':
        case 'm':
          if (*(str - 1) == 'a')
          if (*(str - 1) == 'a')
            {
            {
Line 976... Line 976...
          SKIP_WHITESPACE ();
          SKIP_WHITESPACE ();
        }
        }
 
 
      if (*input_line_pointer == '"')
      if (*input_line_pointer == '"')
        {
        {
          bfd_boolean clone;
          bfd_boolean is_clone;
 
 
          beg = demand_copy_C_string (&dummy);
          beg = demand_copy_C_string (&dummy);
          if (beg == NULL)
          if (beg == NULL)
            {
            {
              ignore_rest_of_line ();
              ignore_rest_of_line ();
              return;
              return;
            }
            }
          attr |= obj_elf_parse_section_letters (beg, strlen (beg), &clone);
          attr |= obj_elf_parse_section_letters (beg, strlen (beg), &is_clone);
 
 
          SKIP_WHITESPACE ();
          SKIP_WHITESPACE ();
          if (*input_line_pointer == ',')
          if (*input_line_pointer == ',')
            {
            {
              char c;
              char c;
Line 1036... Line 1036...
            {
            {
              as_warn (_("entity size for SHF_MERGE not specified"));
              as_warn (_("entity size for SHF_MERGE not specified"));
              attr &= ~SHF_MERGE;
              attr &= ~SHF_MERGE;
            }
            }
 
 
          if ((attr & SHF_GROUP) != 0 && clone)
          if ((attr & SHF_GROUP) != 0 && is_clone)
            {
            {
              as_warn (_("? section flag ignored with G present"));
              as_warn (_("? section flag ignored with G present"));
              clone = FALSE;
              is_clone = FALSE;
            }
            }
          if ((attr & SHF_GROUP) != 0 && *input_line_pointer == ',')
          if ((attr & SHF_GROUP) != 0 && *input_line_pointer == ',')
            {
            {
              ++input_line_pointer;
              ++input_line_pointer;
              group_name = obj_elf_section_name ();
              group_name = obj_elf_section_name ();
Line 1061... Line 1061...
            {
            {
              as_warn (_("group name for SHF_GROUP not specified"));
              as_warn (_("group name for SHF_GROUP not specified"));
              attr &= ~SHF_GROUP;
              attr &= ~SHF_GROUP;
            }
            }
 
 
          if (clone)
          if (is_clone)
            {
            {
              const char *now_group = elf_group_name (now_seg);
              const char *now_group = elf_group_name (now_seg);
              if (now_group != NULL)
              if (now_group != NULL)
                {
                {
                  group_name = xstrdup (now_group);
                  group_name = xstrdup (now_group);
Line 1700... Line 1700...
    {
    {
      const struct elf_backend_data *bed;
      const struct elf_backend_data *bed;
 
 
      bed = get_elf_backend_data (stdoutput);
      bed = get_elf_backend_data (stdoutput);
      if (!(bed->elf_osabi == ELFOSABI_GNU
      if (!(bed->elf_osabi == ELFOSABI_GNU
 
            || bed->elf_osabi == ELFOSABI_FREEBSD
            /* GNU is still using the default value 0.  */
            /* GNU is still using the default value 0.  */
            || bed->elf_osabi == ELFOSABI_NONE))
            || bed->elf_osabi == ELFOSABI_NONE))
        as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
        as_bad (_("symbol type \"%s\" is supported only by GNU and FreeBSD targets"),
                type_name);
                type_name);
      type = BSF_FUNCTION | BSF_GNU_INDIRECT_FUNCTION;
      type = BSF_FUNCTION | BSF_GNU_INDIRECT_FUNCTION;
    }
    }
  else if (strcmp (type_name, "gnu_unique_object") == 0)
  else if (strcmp (type_name, "gnu_unique_object") == 0)
    {
    {

powered by: WebSVN 2.1.0

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