This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Fix GCC9 warning on elf32-arm.c:elf32_arm_final_link_relocate


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

commit 453f8e1e4918171bc12e4d03aab7ee8360dfcfef
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date:   Mon Jan 21 15:36:41 2019 -0500

    Fix GCC9 warning on elf32-arm.c:elf32_arm_final_link_relocate
    
    Fedora Rawhide has just switched to GCC9, and now GDB doesn't compile
    because of a BFD warning:
    
      BUILDSTDERR: ../../bfd/elf32-arm.c: In function 'elf32_arm_final_link_relocate':
      BUILDSTDERR: ../../bfd/elf32-arm.c:10907:10: error: absolute value function 'labs' given an argument of type 'bfd_signed_vma' {aka 'long long int'} but has parameter of type 'long int' which may cause truncation of value [-Werror=absolute-value]
      BUILDSTDERR: 10907 |  value = labs (relocation);
      BUILDSTDERR:       |          ^~~~
    
    You can take a look at the full build log here:
    
      https://kojipkgs.fedoraproject.org//work/tasks/4828/32174828/build.log
    
    The fix is (apparently) simple: instead of using 'labs', we should use
    'llabs', since we're passing a 'bfd_signed_vma' to it, which is at
    least a 'long long int', as far as I have checked.  This is what this
    patch does.
    
    bfd/ChangeLog:
    2019-01-25  Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* elf32-arm.c (elf32_arm_final_link_relocate): Use 'llabs' instead
    	of 'labs' (and fix GCC warning).

Diff:
---
 bfd/ChangeLog   | 5 +++++
 bfd/elf32-arm.c | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 69fa844..5547cd2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2019-01-21  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* elf32-arm.c (elf32_arm_final_link_relocate): Use 'llabs' instead
+	of 'labs' (and fix GCC warning).
+
 2019-01-25  Nick Clifton  <nickc@redhat.com>
 
 	* po/ru.po: Updated Russian translation.
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 53baea2..28ee9d5 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -10904,7 +10904,7 @@ elf32_arm_final_link_relocate (reloc_howto_type *	    howto,
 
 	/* PR 21523: Use an absolute value.  The user of this reloc will
 	   have already selected an ADD or SUB insn appropriately.  */
-	value = labs (relocation);
+	value = llabs (relocation);
 
 	if (value >= 0x1000)
 	  return bfd_reloc_overflow;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]