diff options
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-m32r.c | 4 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 6 | ||||
-rw-r--r-- | gas/config/tc-score.c | 28 | ||||
-rw-r--r-- | gas/config/tc-score7.c | 39 |
4 files changed, 22 insertions, 55 deletions
diff --git a/gas/config/tc-m32r.c b/gas/config/tc-m32r.c index bee0571..824f67c 100644 --- a/gas/config/tc-m32r.c +++ b/gas/config/tc-m32r.c @@ -713,7 +713,8 @@ md_begin (void) /* This is copied from perform_an_assembly_pass. */ applicable = bfd_applicable_section_flags (stdoutput); - bfd_set_section_flags (sbss_section, applicable & SEC_ALLOC); + bfd_set_section_flags (sbss_section, + applicable & (SEC_ALLOC | SEC_SMALL_DATA)); subseg_set (seg, subseg); @@ -721,6 +722,7 @@ md_begin (void) but with the name .scommon. */ scom_section = *bfd_com_section_ptr; scom_section.name = ".scommon"; + scom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; scom_section.output_section = & scom_section; scom_section.symbol = & scom_symbol; scom_section.symbol_ptr_ptr = & scom_section.symbol; diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index a00c69b..9f78b5a 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -16365,8 +16365,8 @@ s_change_sec (int sec) case 's': seg = subseg_new (".sdata", (subsegT) get_absolute_expression ()); - bfd_set_section_flags (seg, - SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA); + bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_RELOC + | SEC_DATA | SEC_SMALL_DATA)); if (strncmp (TARGET_OS, "elf", 3) != 0) record_alignment (seg, 4); demand_empty_rest_of_line (); @@ -16374,7 +16374,7 @@ s_change_sec (int sec) case 'B': seg = subseg_new (".sbss", (subsegT) get_absolute_expression ()); - bfd_set_section_flags (seg, SEC_ALLOC); + bfd_set_section_flags (seg, SEC_ALLOC | SEC_SMALL_DATA); if (strncmp (TARGET_OS, "elf", 3) != 0) record_alignment (seg, 4); demand_empty_rest_of_line (); diff --git a/gas/config/tc-score.c b/gas/config/tc-score.c index 8376d0b..80c4cbf 100644 --- a/gas/config/tc-score.c +++ b/gas/config/tc-score.c @@ -5569,14 +5569,16 @@ s3_s_change_sec (int sec) { case 'r': seg = subseg_new (s3_RDATA_SECTION_NAME, (subsegT) get_absolute_expression ()); - bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA)); + bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY + | SEC_RELOC | SEC_DATA)); if (strcmp (TARGET_OS, "elf") != 0) record_alignment (seg, 4); demand_empty_rest_of_line (); break; case 's': seg = subseg_new (".sdata", (subsegT) get_absolute_expression ()); - bfd_set_section_flags (seg, SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA); + bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_RELOC + | SEC_DATA | SEC_SMALL_DATA)); if (strcmp (TARGET_OS, "elf") != 0) record_alignment (seg, 4); demand_empty_rest_of_line (); @@ -5685,17 +5687,10 @@ s3_s_score_ent (int aent) if (ISDIGIT (*input_line_pointer) || *input_line_pointer == '-') s3_get_number (); -#ifdef BFD_ASSEMBLER if ((bfd_section_flags (now_seg) & SEC_CODE) != 0) maybe_text = 1; else maybe_text = 0; -#else - if (now_seg != data_section && now_seg != bss_section) - maybe_text = 1; - else - maybe_text = 0; -#endif if (!maybe_text) as_warn (_(".ent or .aent not in text section.")); if (!aent && s3_cur_proc_ptr) @@ -5794,17 +5789,10 @@ s3_s_score_end (int x ATTRIBUTE_UNUSED) else p = NULL; -#ifdef BFD_ASSEMBLER if ((bfd_section_flags (now_seg) & SEC_CODE) != 0) maybe_text = 1; else maybe_text = 0; -#else - if (now_seg != data_section && now_seg != bss_section) - maybe_text = 1; - else - maybe_text = 0; -#endif if (!maybe_text) as_warn (_(".end not in text section")); @@ -6132,11 +6120,9 @@ s3_s_score_lcomm (int bytes_p) { bss_seg = subseg_new (".sbss", 1); seg_info (bss_seg)->bss = 1; -#ifdef BFD_ASSEMBLER - if (!bfd_set_section_flags (bss_seg, SEC_ALLOC)) + if (!bfd_set_section_flags (bss_seg, SEC_ALLOC | SEC_SMALL_DATA)) as_warn (_("error setting flags for \".sbss\": %s"), bfd_errmsg (bfd_get_error ())); -#endif } } #endif @@ -6215,12 +6201,8 @@ s3_s_score_lcomm (int bytes_p) if ( #if (defined (OBJ_AOUT) || defined (OBJ_MAYBE_AOUT)) -#ifdef BFD_ASSEMBLER (OUTPUT_FLAVOR != bfd_target_aout_flavour || (S_GET_OTHER (symbolP) == 0 && S_GET_DESC (symbolP) == 0)) && -#else - (S_GET_OTHER (symbolP) == 0 && S_GET_DESC (symbolP) == 0) && -#endif #endif (S_GET_SEGMENT (symbolP) == bss_seg || (!S_IS_DEFINED (symbolP) && S_GET_VALUE (symbolP) == 0))) { diff --git a/gas/config/tc-score7.c b/gas/config/tc-score7.c index 3b49f87..c3b6e97 100644 --- a/gas/config/tc-score7.c +++ b/gas/config/tc-score7.c @@ -5422,14 +5422,16 @@ s7_s_change_sec (int sec) { case 'r': seg = subseg_new (s7_RDATA_SECTION_NAME, (subsegT) get_absolute_expression ()); - bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA)); + bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY + | SEC_RELOC | SEC_DATA)); if (strcmp (TARGET_OS, "elf") != 0) record_alignment (seg, 4); demand_empty_rest_of_line (); break; case 's': seg = subseg_new (".sdata", (subsegT) get_absolute_expression ()); - bfd_set_section_flags (seg, SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA); + bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_RELOC + | SEC_DATA | SEC_SMALL_DATA)); if (strcmp (TARGET_OS, "elf") != 0) record_alignment (seg, 4); demand_empty_rest_of_line (); @@ -5539,17 +5541,10 @@ s7_s_score_ent (int aent) if (ISDIGIT (*input_line_pointer) || *input_line_pointer == '-') s7_get_number (); -#ifdef BFD_ASSEMBLER if ((bfd_section_flags (now_seg) & SEC_CODE) != 0) maybe_text = 1; else maybe_text = 0; -#else - if (now_seg != data_section && now_seg != bss_section) - maybe_text = 1; - else - maybe_text = 0; -#endif if (!maybe_text) as_warn (_(".ent or .aent not in text section.")); if (!aent && s7_cur_proc_ptr) @@ -5649,17 +5644,10 @@ s7_s_score_end (int x ATTRIBUTE_UNUSED) else p = NULL; -#ifdef BFD_ASSEMBLER if ((bfd_section_flags (now_seg) & SEC_CODE) != 0) maybe_text = 1; else maybe_text = 0; -#else - if (now_seg != data_section && now_seg != bss_section) - maybe_text = 1; - else - maybe_text = 0; -#endif if (!maybe_text) as_warn (_(".end not in text section")); @@ -5989,14 +5977,13 @@ s7_s_score_lcomm (int bytes_p) { /* For Score and Alpha ECOFF or ELF, small objects are put in .sbss. */ if ((unsigned) temp <= bfd_get_gp_size (stdoutput)) - { - bss_seg = subseg_new (".sbss", 1); - seg_info (bss_seg)->bss = 1; -#ifdef BFD_ASSEMBLER - if (!bfd_set_section_flags (bss_seg, SEC_ALLOC)) - as_warn (_("error setting flags for \".sbss\": %s"), bfd_errmsg (bfd_get_error ())); -#endif - } + { + bss_seg = subseg_new (".sbss", 1); + seg_info (bss_seg)->bss = 1; + if (!bfd_set_section_flags (bss_seg, SEC_ALLOC | SEC_SMALL_DATA)) + as_warn (_("error setting flags for \".sbss\": %s"), + bfd_errmsg (bfd_get_error ())); + } } #endif @@ -6074,12 +6061,8 @@ s7_s_score_lcomm (int bytes_p) if ( #if (defined (OBJ_AOUT) || defined (OBJ_MAYBE_AOUT)) -#ifdef BFD_ASSEMBLER (OUTPUT_FLAVOR != bfd_target_aout_flavour || (S_GET_OTHER (symbolP) == 0 && S_GET_DESC (symbolP) == 0)) && -#else - (S_GET_OTHER (symbolP) == 0 && S_GET_DESC (symbolP) == 0) && -#endif #endif (S_GET_SEGMENT (symbolP) == bss_seg || (!S_IS_DEFINED (symbolP) && S_GET_VALUE (symbolP) == 0))) { |