[binutils-gdb] gold/arm.cc: Output mapping symbol for PLT code

Will Newton willnewton@sourceware.org
Wed Feb 11 07:19:00 GMT 2015


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

commit 07f107f306e422497915e62f6c3d3d6d7b20e8e1
Author: Will Newton <will.newton@linaro.org>
Date:   Mon Feb 9 17:11:54 2015 +0800

    gold/arm.cc: Output mapping symbol for PLT code
    
    Output an ARM state mapping symbol at the start of the PLT. With the
    current code objdump will fail to disassemble the PLT that gold
    creates.
    
    gold/ChangeLog:
    
    2015-02-11  Will Newton  <will.newton@linaro.org>
    
    	PR gold/13321
    	* arm.cc (Target_arm::make_plt_section): Create an ARM
    	state mapping symbol at the start of the PLT.

Diff:
---
 gold/ChangeLog | 6 ++++++
 gold/arm.cc    | 7 +++++++
 2 files changed, 13 insertions(+)

diff --git a/gold/ChangeLog b/gold/ChangeLog
index 87900ad..17b7f44 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-11  Will Newton  <will.newton@linaro.org>
+
+	PR gold/13321
+	* arm.cc (Target_arm::make_plt_section): Create an ARM
+	state mapping symbol at the start of the PLT.
+
 2015-02-09  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* testsuite/Makefile.am (two_file_shared_2_pic_1_test_DEPENDENCIES):
diff --git a/gold/arm.cc b/gold/arm.cc
index be2294c..f1d4fe9 100644
--- a/gold/arm.cc
+++ b/gold/arm.cc
@@ -7938,6 +7938,13 @@ Target_arm<big_endian>::make_plt_section(
 				      (elfcpp::SHF_ALLOC
 				       | elfcpp::SHF_EXECINSTR),
 				      this->plt_, ORDER_PLT, false);
+      symtab->define_in_output_data("$a", NULL,
+				    Symbol_table::PREDEFINED,
+				    this->plt_,
+				    0, 0, elfcpp::STT_NOTYPE,
+				    elfcpp::STB_LOCAL,
+				    elfcpp::STV_DEFAULT, 0,
+				    false, false);
     }
 }



More information about the Binutils-cvs mailing list