diff options
-rw-r--r-- | bfd/ChangeLog | 14 | ||||
-rw-r--r-- | bfd/ecoff.c | 4 | ||||
-rw-r--r-- | bfd/elf32-m32r.c | 2 | ||||
-rw-r--r-- | bfd/elf32-score.c | 2 | ||||
-rw-r--r-- | bfd/elf32-score7.c | 2 | ||||
-rw-r--r-- | bfd/elf32-tic6x.c | 2 | ||||
-rw-r--r-- | bfd/elf32-v850.c | 7 | ||||
-rw-r--r-- | bfd/elfxx-mips.c | 2 | ||||
-rw-r--r-- | bfd/syms.c | 6 |
9 files changed, 28 insertions, 13 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ef077c4..85fb618 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,17 @@ +2020-08-15 Alan Modra <amodra@gmail.com> + + PR 26389 + * syms.c (bfd_decode_symclass): Choose 'c' for commons only when + SEC_SMALL_DATA. + * elf32-m32r.c (_bfd_m32r_elf_symbol_processing): Set SEC_SMALL_DATA + on small common section. + * elf32-score.c (s3_bfd_score_elf_symbol_processing): Likewise. + * elf32-score7.c (s7_bfd_score_elf_symbol_processing): Likewise. + * elf32-tic6x.c (elf32_tic6x_symbol_processing): Likewise. + * elf32-v850.c (v850_elf_symbol_processing): Likewise. + * elfxx-mips.c (_bfd_mips_elf_symbol_processing): Likewise. + * ecoff.c (ecoff_set_symbol_info, ecoff_link_add_externals): Likewise. + 2020-08-14 Alan Modra <amodra@gmail.com> * hash.c (bfd_hash_set_default_size): Use higher_prime_number diff --git a/bfd/ecoff.c b/bfd/ecoff.c index dcded6f..2e4bf88 100644 --- a/bfd/ecoff.c +++ b/bfd/ecoff.c @@ -791,7 +791,7 @@ ecoff_set_symbol_info (bfd *abfd, { /* Initialize the small common section. */ ecoff_scom_section.name = SCOMMON; - ecoff_scom_section.flags = SEC_IS_COMMON; + ecoff_scom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; ecoff_scom_section.output_section = &ecoff_scom_section; ecoff_scom_section.symbol = &ecoff_scom_symbol; ecoff_scom_section.symbol_ptr_ptr = &ecoff_scom_symbol_ptr; @@ -3404,7 +3404,7 @@ ecoff_link_add_externals (bfd *abfd, { /* Initialize the small common section. */ ecoff_scom_section.name = SCOMMON; - ecoff_scom_section.flags = SEC_IS_COMMON; + ecoff_scom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; ecoff_scom_section.output_section = &ecoff_scom_section; ecoff_scom_section.symbol = &ecoff_scom_symbol; ecoff_scom_section.symbol_ptr_ptr = &ecoff_scom_symbol_ptr; diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c index 2eae00b..ea8e337 100644 --- a/bfd/elf32-m32r.c +++ b/bfd/elf32-m32r.c @@ -1354,7 +1354,7 @@ _bfd_m32r_elf_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED, asymbol *asym) { /* Initialize the small common section. */ m32r_elf_scom_section.name = ".scommon"; - m32r_elf_scom_section.flags = SEC_IS_COMMON; + m32r_elf_scom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; m32r_elf_scom_section.output_section = &m32r_elf_scom_section; m32r_elf_scom_section.symbol = &m32r_elf_scom_symbol; m32r_elf_scom_section.symbol_ptr_ptr = &m32r_elf_scom_symbol_ptr; diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c index d1a910f..4be6561 100644 --- a/bfd/elf32-score.c +++ b/bfd/elf32-score.c @@ -3035,7 +3035,7 @@ s3_bfd_score_elf_symbol_processing (bfd *abfd, asymbol *asym) { /* Initialize the small common section. */ score_elf_scom_section.name = ".scommon"; - score_elf_scom_section.flags = SEC_IS_COMMON; + score_elf_scom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; score_elf_scom_section.output_section = &score_elf_scom_section; score_elf_scom_section.symbol = &score_elf_scom_symbol; score_elf_scom_section.symbol_ptr_ptr = &score_elf_scom_symbol_ptr; diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c index ab5e32a..c974690 100644 --- a/bfd/elf32-score7.c +++ b/bfd/elf32-score7.c @@ -2840,7 +2840,7 @@ s7_bfd_score_elf_symbol_processing (bfd *abfd, asymbol *asym) { /* Initialize the small common section. */ score_elf_scom_section.name = ".scommon"; - score_elf_scom_section.flags = SEC_IS_COMMON; + score_elf_scom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; score_elf_scom_section.output_section = &score_elf_scom_section; score_elf_scom_section.symbol = &score_elf_scom_symbol; score_elf_scom_section.symbol_ptr_ptr = &score_elf_scom_symbol_ptr; diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c index 9984c05..a37ae29 100644 --- a/bfd/elf32-tic6x.c +++ b/bfd/elf32-tic6x.c @@ -2974,7 +2974,7 @@ elf32_tic6x_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED, asymbol *asym) { /* Initialize the small common section. */ tic6x_elf_scom_section.name = ".scommon"; - tic6x_elf_scom_section.flags = SEC_IS_COMMON; + tic6x_elf_scom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; tic6x_elf_scom_section.output_section = &tic6x_elf_scom_section; tic6x_elf_scom_section.symbol = &tic6x_elf_scom_symbol; tic6x_elf_scom_section.symbol_ptr_ptr = &tic6x_elf_scom_symbol_ptr; diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index 0235044..c1e959e 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -3001,7 +3001,8 @@ v850_elf_symbol_processing (bfd *abfd, asymbol *asym) { /* Initialize the small common section. */ v850_elf_scom_section.name = ".scommon"; - v850_elf_scom_section.flags = SEC_IS_COMMON | SEC_ALLOC | SEC_DATA; + v850_elf_scom_section.flags + = SEC_IS_COMMON | SEC_SMALL_DATA | SEC_ALLOC | SEC_DATA; v850_elf_scom_section.output_section = & v850_elf_scom_section; v850_elf_scom_section.symbol = & v850_elf_scom_symbol; v850_elf_scom_section.symbol_ptr_ptr = & v850_elf_scom_symbol_ptr; @@ -3019,7 +3020,7 @@ v850_elf_symbol_processing (bfd *abfd, asymbol *asym) { /* Initialize the tcommon section. */ v850_elf_tcom_section.name = ".tcommon"; - v850_elf_tcom_section.flags = SEC_IS_COMMON; + v850_elf_tcom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; v850_elf_tcom_section.output_section = & v850_elf_tcom_section; v850_elf_tcom_section.symbol = & v850_elf_tcom_symbol; v850_elf_tcom_section.symbol_ptr_ptr = & v850_elf_tcom_symbol_ptr; @@ -3037,7 +3038,7 @@ v850_elf_symbol_processing (bfd *abfd, asymbol *asym) { /* Initialize the zcommon section. */ v850_elf_zcom_section.name = ".zcommon"; - v850_elf_zcom_section.flags = SEC_IS_COMMON; + v850_elf_zcom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; v850_elf_zcom_section.output_section = & v850_elf_zcom_section; v850_elf_zcom_section.symbol = & v850_elf_zcom_symbol; v850_elf_zcom_section.symbol_ptr_ptr = & v850_elf_zcom_symbol_ptr; diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 7cfce13..5b985a4 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -7113,7 +7113,7 @@ _bfd_mips_elf_symbol_processing (bfd *abfd, asymbol *asym) { /* Initialize the small common section. */ mips_elf_scom_section.name = ".scommon"; - mips_elf_scom_section.flags = SEC_IS_COMMON; + mips_elf_scom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; mips_elf_scom_section.output_section = &mips_elf_scom_section; mips_elf_scom_section.symbol = &mips_elf_scom_symbol; mips_elf_scom_section.symbol_ptr_ptr = &mips_elf_scom_symbol_ptr; @@ -653,10 +653,10 @@ bfd_decode_symclass (asymbol *symbol) if (symbol->section && bfd_is_com_section (symbol->section)) { - if (symbol->section == bfd_com_section_ptr) - return 'C'; - else + if (symbol->section->flags & SEC_SMALL_DATA) return 'c'; + else + return 'C'; } if (bfd_is_und_section (symbol->section)) { |