[gold][aarch64]Give informative error message when stub-group-size is too large

H.J. Lu hjl.tools@gmail.com
Sun Dec 14 15:02:00 GMT 2014


On Wed, Dec 10, 2014 at 3:11 PM, Cary Coutant <ccoutant@google.com> wrote:
>> 2014-12-10  Jing Yu  <jingyu@google.com>
>>
>>       * aarch64.cc (Target_aarch64): Add new variable: stub_group_size_.
>>       (AArch64_relocate_functions::maybe_apply_stub): Add new parameter.
>>       Update error message.
>>       (Target_aarch64::do_relax): Use absolute value of option
>> stub_group_size. Replace local variable with class member
>> stub_group_size_.
>
> This is OK. Thanks!
>
> -cary

This failed on 32-bit host:

/export/linux/src/binutils/binutils/gold/target-select.h:39:7:
required from here
/export/linux/src/binutils/binutils/gold/aarch64.cc:4208:27: error:
format ‘%lx’ expects argument of type ‘long unsigned int’, but
argument 2 has type ‘gold::section_size_type {aka unsigned int}’
[-Werror=format=]
cc1plus: all warnings being treated as errors
make[6]: *** [aarch64.o] Error 1

I am checking in this as an obvious fix.

-- 
H.J.
----
    Cast current_group_size to unsigned long

    * aarch64.cc (AArch64_relocate_functions::maybe_apply_stub):
    Cast current_group_size to unsigned long when reporting error.

diff --git a/gold/ChangeLog b/gold/ChangeLog
index 5c32168..8f56043 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,8 @@
+2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+ * aarch64.cc (AArch64_relocate_functions::maybe_apply_stub):
+ Cast current_group_size to unsigned long when reporting error.
+
 2014-12-10  Jing Yu  <jingyu@google.com>

  * aarch64.cc (Target_aarch64): Add new variable stub_group_size_.
diff --git a/gold/aarch64.cc b/gold/aarch64.cc
index f2505d6..05933e0 100644
--- a/gold/aarch64.cc
+++ b/gold/aarch64.cc
@@ -4205,7 +4205,7 @@ maybe_apply_stub(unsigned int r_type,
   if (status != This::STATUS_OKAY)
     gold_error(_("Stub is too far away, try a smaller value "
  "for '--stub-group-size'. The current value is 0x%lx."),
-       current_group_size);
+       static_cast<unsigned long>(current_group_size));
   return true;
 }



More information about the Binutils mailing list