static segT debug_section;
if (!debug_section)
{
- CONST asymbol *s;
+ const asymbol *s;
s = bfd_make_debug_symbol (stdoutput, (char *) 0, 0);
assert (s != 0);
debug_section = s->section;
/* intentional fallthrough */
case C_FCN:
{
- CONST char *name;
+ const char *name;
S_SET_SEGMENT (def_symbol_in_progress, text_section);
name = S_GET_NAME (def_symbol_in_progress);
}
symbolS *coff_last_function;
+#ifndef OBJ_XCOFF
static symbolS *coff_last_bf;
+#endif
void
coff_frob_symbol (symp, punt)
bfd_map_over_sections (stdoutput, coff_adjust_section_syms, (char*) 0);
}
-/*
- * implement the .section pseudo op:
- * .section name {, "flags"}
- * ^ ^
- * | +--- optional flags: 'b' for bss
- * | 'i' for info
- * +-- section name 'l' for lib
- * 'n' for noload
- * 'o' for over
- * 'w' for data
- * 'd' (apparently m88k for data)
- * 'x' for text
- * 'r' for read-only data
- * 's' for shared data (PE)
- * But if the argument is not a quoted string, treat it as a
- * subsegment number.
- */
+/* Implement the .section pseudo op:
+ .section name {, "flags"}
+ ^ ^
+ | +--- optional flags: 'b' for bss
+ | 'i' for info
+ +-- section name 'l' for lib
+ 'n' for noload
+ 'o' for over
+ 'w' for data
+ 'd' (apparently m88k for data)
+ 'x' for text
+ 'r' for read-only data
+ 's' for shared data (PE)
+ But if the argument is not a quoted string, treat it as a
+ subsegment number.
+
+ Note the 'a' flag is silently ignored. This allows the same
+ .section directive to be parsed in both ELF and COFF formats. */
void
obj_coff_section (ignore)
{
case 'b': flags |= SEC_ALLOC; flags &=~ SEC_LOAD; break;
case 'n': flags &=~ SEC_LOAD; flags |= SEC_NEVER_LOAD; break;
+
+ case 's': flags |= SEC_SHARED; /* fall through */
case 'd': flags |= SEC_DATA | SEC_LOAD; /* fall through */
case 'w': flags &=~ SEC_READONLY; break;
+
+ case 'a': break; /* For compatability with ELF. */
case 'x': flags |= SEC_CODE | SEC_LOAD; break;
case 'r': flags |= SEC_READONLY; break;
- case 's': flags |= SEC_SHARED; break;
case 'i': /* STYP_INFO */
case 'l': /* STYP_LIB */
subseg_set (frchain_ptr->frch_seg, frchain_ptr->frch_subseg);
- alignment = SUB_SEGMENT_ALIGN (now_seg, frchain_ptr)
+ alignment = SUB_SEGMENT_ALIGN (now_seg, frchain_ptr);
#ifdef md_do_align
md_do_align (alignment, (char *) NULL, 0, 0, alignment_done);
#if 0
/* Recent changes to write need this, but where it should
go is up to Ken.. */
- if (bfd_close_all_done (abfd) == false)
+ if (!bfd_close_all_done (abfd))
as_fatal (_("Can't close %s: %s"), out_file_name,
bfd_errmsg (bfd_get_error ()));
#else
static void
fixup_mdeps (frags, h, this_segment)
- fragS * frags;
- object_headers * h;
+ fragS *frags;
+ object_headers *h ATTRIBUTE_UNUSED;
segT this_segment;
{
subseg_change (this_segment, 0);
#endif
{"version", s_ignore, 0},
{"ABORT", s_abort, 0},
-#ifdef TC_M88K
- /* The m88k uses sdef instead of def. */
+#if defined( TC_M88K ) || defined ( TC_TIC4X )
+ /* The m88k and tic4x uses sdef instead of def. */
{"sdef", obj_coff_def, 0},
#endif
{NULL, NULL, 0} /* end sentinel */
coff_frob_symbol,
0, /* frob_file */
0, /* frob_file_before_adjust */
+ 0, /* frob_file_before_fix */
coff_frob_file_after_relocs,
0, /* s_get_size */
0, /* s_set_size */