From 4193f2292e5a003332da93c3292274c742a29716 Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Sun, 4 May 2014 13:52:22 +0200 Subject: [PATCH] fix for ld.so @ bitcode build ld.so linked with gold didn't work - gold was not generating the _DYNAMIC ptr in the first GOT entry, leaving it zero, causing mayhem for ld.so. . patch for gold: always generate _DYNAMIC ptr. submitted upstream, more info here: https://sourceware.org/bugzilla/show_bug.cgi?id=16900 . revert "REMOVE ME: Static tests for now" - we can link tests dynamically This reverts commit 3e0a3993deb831eb5abcd1c1a2cb1246b43f8d1d. Change-Id: I4f2910ec2592c31bbd14a85d8a6045497fcaf4e3 --- .../gpl3/binutils/patches/0006-gold-plt.patch | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 external/gpl3/binutils/patches/0006-gold-plt.patch diff --git a/external/gpl3/binutils/patches/0006-gold-plt.patch b/external/gpl3/binutils/patches/0006-gold-plt.patch new file mode 100644 index 000000000..f7fe9f6d6 --- /dev/null +++ b/external/gpl3/binutils/patches/0006-gold-plt.patch @@ -0,0 +1,21 @@ +commit 31245c9b262fa983d9711f7795b35ad31c3a6618 +Author: Ben Gras +Date: Sat May 3 19:40:19 2014 +0200 + + plt + +diff --git a/gold/i386.cc b/gold/i386.cc +index a2f7522..f06d60d 100644 +--- a/gold/i386.cc ++++ b/gold/i386.cc +@@ -2543,6 +2543,10 @@ Target_i386::do_finalize_sections( + Symbol* sym = this->global_offset_table_; + if (sym != NULL) + { ++ // create a plt ++ if (this->plt_ == NULL) ++ this->make_plt_section(symtab, layout); ++ + uint32_t data_size = this->got_plt_->current_data_size(); + symtab->get_sized_symbol<32>(sym)->set_symsize(data_size); + }