* config/tc-alpha.c (alpha_elf_section_letter): New.
authorRichard Henderson <rth@redhat.com>
Tue, 11 Sep 2001 18:26:04 +0000 (18:26 +0000)
committerRichard Henderson <rth@redhat.com>
Tue, 11 Sep 2001 18:26:04 +0000 (18:26 +0000)
        (alpha_elf_section_flags): New.
        * config/tc-alpha.h (md_elf_section_letter): New.
        (md_elf_section_flags): New.
        * config/tc-ia64.c (ia64_elf_section_letter): New.
        * config/tc-ia64.h (md_elf_section_letter): New.

gas/ChangeLog
gas/config/tc-alpha.c
gas/config/tc-alpha.h
gas/config/tc-ia64.c
gas/config/tc-ia64.h

index 2bc26284e20cebb923b93f00af2c5f2dd6a1a7c8..3f0dab798680ce41359b1e2d82da5f7516918180 100644 (file)
@@ -1,3 +1,12 @@
+2001-09-11  Richard Henderson  <rth@redhat.com>
+
+       * config/tc-alpha.c (alpha_elf_section_letter): New.
+       (alpha_elf_section_flags): New.
+       * config/tc-alpha.h (md_elf_section_letter): New.
+       (md_elf_section_flags): New.
+       * config/tc-ia64.c (ia64_elf_section_letter): New.
+       * config/tc-ia64.h (md_elf_section_letter): New.
+
 2001-09-11  Jakub Jelinek  <jakub@redhat.com>
 
        * config/obj-elf.c (obj_elf_parse_section_letters): Use 'M' instead
index 834186a4925e3e741a768763da244df8ad31b7a5..7a8c04c4ac6d72f7fe4758f70d51e23ce34cde41 100644 (file)
@@ -5399,6 +5399,34 @@ select_gp_value ()
 }
 #endif /* OBJ_ECOFF */
 
+#ifdef OBJ_ELF
+/* Map 's' to SHF_ALPHA_GPREL.  */
+
+int
+alpha_elf_section_letter (letter, ptr_msg)
+     int letter;
+     char **ptr_msg;
+{
+  if (letter == 's')
+    return SHF_ALPHA_GPREL;
+
+  *ptr_msg = _("Bad .section directive: want a,s,w,x,M,S in string");
+  return 0;
+}
+
+/* Map SHF_ALPHA_GPREL to SEC_SMALL_DATA.  */
+
+flagword
+alpha_elf_section_flags (flags, attr, type)
+     flagword flags;
+     int attr, type ATTRIBUTE_UNUSED;
+{
+  if (attr & SHF_ALPHA_GPREL)
+    flags |= SEC_SMALL_DATA;
+  return flags;
+}
+#endif /* OBJ_ELF */
+
 /* Called internally to handle all alignment needs.  This takes care
    of eliding calls to frag_align if'n the cached current alignment
    says we've already got it, as well as taking care of the auto-align
index 1eabfd028cdb0e1e0dc42b8050f07c76fb58dee6..b5121d236ce29eb8e1d76acd292d8058b1b7e258 100644 (file)
@@ -108,6 +108,11 @@ extern void alpha_frob_file_before_adjust PARAMS ((void));
 #define ELF_TC_SPECIAL_SECTIONS \
   { ".sdata",   SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL  }, \
   { ".sbss",    SHT_NOBITS,     SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL  },
+
+#define md_elf_section_letter          alpha_elf_section_letter
+extern int alpha_elf_section_letter PARAMS ((int, char **));
+#define md_elf_section_flags           alpha_elf_section_flags
+extern flagword alpha_elf_section_flags PARAMS ((flagword, int, int));
 #endif
 
 /* Whether to add support for explict !relocation_op!sequence_number.  At the
index d811aa987b342c1f2e30406c8bde6c91f07731a7..c7b0ec9b59083657e18f2bdf4ebf7e6ee47e6348 100644 (file)
@@ -916,6 +916,20 @@ set_section (name)
   input_line_pointer = saved_input_line_pointer;
 }
 
+/* Map 's' to SHF_IA_64_SHORT.  */
+
+int
+ia64_elf_section_letter (letter, ptr_msg)
+     int letter;
+     char **ptr_msg;
+{
+  if (letter == 's')
+    return SHF_IA_64_SHORT;
+
+  *ptr_msg = _("Bad .section directive: want a,s,w,x,M,S in string");
+  return 0;
+}
+
 /* Map SHF_IA_64_SHORT to SEC_SMALL_DATA.  */
 
 flagword
index eaeca1c86c4ec2f1d8f0c3329d9b691981af8883..d87b205846863d13093bf84e62871dc69dc83776 100644 (file)
@@ -81,6 +81,7 @@ extern void ia64_cons_fix_new PARAMS ((fragS *f, int where, int nbytes,
                                       expressionS *exp));
 extern void ia64_validate_fix PARAMS ((struct fix *fix));
 extern char * ia64_canonicalize_symbol_name PARAMS ((char *));
+extern int ia64_elf_section_letter PARAMS ((int, char **));
 extern flagword ia64_elf_section_flags PARAMS ((flagword, int, int));
 extern int ia64_elf_section_type PARAMS ((const char *, size_t len));
 extern long ia64_pcrel_from_section PARAMS ((struct fix *fix, segT sec));
@@ -104,6 +105,7 @@ extern void ia64_handle_align PARAMS ((fragS *f));
                                        as_fatal ("ia64_create_short_jump")
 #define md_estimate_size_before_relax(f,s) \
                        (as_fatal ("ia64_estimate_size_before_relax"), 1)
+#define md_elf_section_letter          ia64_elf_section_letter
 #define md_elf_section_flags           ia64_elf_section_flags
 #define TC_FIX_TYPE                    struct ia64_fix
 #define TC_INIT_FIX_DATA(f)            { f->tc_fix_data.opnd = 0; }