[binutils-gdb] bfd/ELF: nds32_convert_{16_to_32, 32_to_16}() are exposed to gas

Jan Beulich jbeulich@sourceware.org
Fri Nov 14 08:05:52 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=fdcdfdbb821c01948eadf14f92e51c910638df29

commit fdcdfdbb821c01948eadf14f92e51c910638df29
Author: Jan Beulich <jbeulich@suse.com>
Date:   Fri Nov 14 09:03:25 2025 +0100

    bfd/ELF: nds32_convert_{16_to_32,32_to_16}() are exposed to gas
    
    As non-private functions, they should come with full disambiguating
    prefixes - add bfd_elf_ to both. Hence commit bf4128d0cc6d2 ("bfd/ELF:
    mark internal NDS32 functions hidden") also wrongly added ATTRIBUTE_HIDDEN
    to them.

Diff:
---
 bfd/elf32-nds32.c     |  8 ++++----
 bfd/elf32-nds32.h     |  8 ++++----
 gas/config/tc-nds32.c | 10 ++++++----
 3 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c
index 92e3bc796eb..02c6ced7e1f 100644
--- a/bfd/elf32-nds32.c
+++ b/bfd/elf32-nds32.c
@@ -7728,8 +7728,8 @@ nds32_convert_32_to_16_alu2 (bfd *abfd, uint32_t insn, uint16_t *pinsn16,
 }
 
 int
-nds32_convert_32_to_16 (bfd *abfd, uint32_t insn, uint16_t *pinsn16,
-			int *pinsn_type)
+bfd_elf_nds32_convert_32_to_16 (bfd *abfd, uint32_t insn, uint16_t *pinsn16,
+				int *pinsn_type)
 {
   int op6;
   uint16_t insn16 = 0;
@@ -8236,7 +8236,7 @@ special_convert_32_to_16 (unsigned long insn, uint16_t *pinsn16,
    Return non-zero on successful.  Otherwise 0 is returned.  */
 
 int
-nds32_convert_16_to_32 (bfd *abfd, uint16_t insn16, uint32_t *pinsn)
+bfd_elf_nds32_convert_16_to_32 (bfd *abfd, uint16_t insn16, uint32_t *pinsn)
 {
   uint32_t insn = 0xffffffff;
   unsigned long mach = bfd_get_mach (abfd);
@@ -8772,7 +8772,7 @@ is_convert_32_to_16 (bfd *abfd, asection *sec,
     return false;
   insn = bfd_getb32 (contents + offset);
 
-  if (nds32_convert_32_to_16 (abfd, insn, insn16, NULL))
+  if (bfd_elf_nds32_convert_32_to_16 (abfd, insn, insn16, NULL))
     convert_type = NORMAL_32_TO_16;
   else if (special_convert_32_to_16 (insn, insn16, reloc))
     convert_type = SPECIAL_32_TO_16;
diff --git a/bfd/elf32-nds32.h b/bfd/elf32-nds32.h
index f18cc90c2d5..6c8defeadfa 100644
--- a/bfd/elf32-nds32.h
+++ b/bfd/elf32-nds32.h
@@ -98,10 +98,10 @@ extern int elf32_nds32_unify_relax_group
 extern int nds32_elf_unify_tls_model
   (bfd *, asection *, bfd_byte *, struct bfd_link_info *) ATTRIBUTE_HIDDEN;
 
-extern int nds32_convert_32_to_16
-  (bfd *, uint32_t, uint16_t *, int *) ATTRIBUTE_HIDDEN;
-extern int nds32_convert_16_to_32
-  (bfd *, uint16_t, uint32_t *) ATTRIBUTE_HIDDEN;
+extern int bfd_elf_nds32_convert_32_to_16
+  (bfd *, uint32_t, uint16_t *, int *);
+extern int bfd_elf_nds32_convert_16_to_32
+  (bfd *, uint16_t, uint32_t *);
 extern void	   bfd_elf32_nds32_set_target_option (struct bfd_link_info *,
 						      int, int, FILE *,
 						      int, int, int);
diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c
index d107555e373..b251087648f 100644
--- a/gas/config/tc-nds32.c
+++ b/gas/config/tc-nds32.c
@@ -6483,9 +6483,11 @@ md_assemble (char *str)
     }
   else if (!relaxing && enable_16bit && (optimize || optimize_for_space)
 	   && ((!fld && !verbatim && insn.opcode->isize == 4
-		&& nds32_convert_32_to_16 (stdoutput, insn.insn, &insn_16, NULL))
+		&& bfd_elf_nds32_convert_32_to_16 (stdoutput, insn.insn,
+						   &insn_16, NULL))
 	       || (insn.opcode->isize == 2
-		   && nds32_convert_16_to_32 (stdoutput, insn.insn, NULL))))
+		   && bfd_elf_nds32_convert_16_to_32 (stdoutput, insn.insn,
+						      NULL))))
     {
       /* Record this one is relaxable.  */
       expressionS *pexp = insn.info;
@@ -7073,7 +7075,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec, fragS *fragP)
       if (fragP->tc_frag_data.flag & NDS32_FRAG_RELAXED)
 	{
 	  insn_16 = fragP->tc_frag_data.insn;
-	  nds32_convert_16_to_32 (stdoutput, insn_16, &insn);
+	  bfd_elf_nds32_convert_16_to_32 (stdoutput, insn_16, &insn);
 	  fr_buffer = fragP->fr_literal + fr_where;
 	  fragP->fr_fix += 2;
 	  exp.X_op = O_symbol;
@@ -7089,7 +7091,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec, fragS *fragP)
       if (fragP->tc_frag_data.opcode->isize == 2)
 	{
 	  insn_16 = fragP->tc_frag_data.insn;
-	  nds32_convert_16_to_32 (stdoutput, insn_16, &insn);
+	  bfd_elf_nds32_convert_16_to_32 (stdoutput, insn_16, &insn);
 	}
       else
 	insn = fragP->tc_frag_data.insn;


More information about the Binutils-cvs mailing list