From: Sergio Durigan Junior Date: Mon, 21 Jan 2019 20:36:41 +0000 (-0500) Subject: Fix GCC9 warning on elf32-arm.c:elf32_arm_final_link_relocate X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=453f8e1e4918171bc12e4d03aab7ee8360dfcfef;p=binutils-gdb.git 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 * elf32-arm.c (elf32_arm_final_link_relocate): Use 'llabs' instead of 'labs' (and fix GCC warning). --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 69fa844cf71..5547cd26b9b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2019-01-21 Sergio Durigan Junior + + * elf32-arm.c (elf32_arm_final_link_relocate): Use 'llabs' instead + of 'labs' (and fix GCC warning). + 2019-01-25 Nick Clifton * po/ru.po: Updated Russian translation. diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 53baea269bd..28ee9d55a85 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;