aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-11-20 08:52:46 +1030
committerAlan Modra <amodra@gmail.com>2014-11-20 08:57:31 +1030
commitf9dffbf0863b9010a5eece87bd6b36e38c09ffb0 (patch)
treea110ce314701063a764a1b563e525ddb381ca215
parent3f9034c204cf1845d2f2d94f906a8573183831ba (diff)
downloadgdb-f9dffbf0863b9010a5eece87bd6b36e38c09ffb0.zip
gdb-f9dffbf0863b9010a5eece87bd6b36e38c09ffb0.tar.gz
gdb-f9dffbf0863b9010a5eece87bd6b36e38c09ffb0.tar.bz2
Default powerpc64 to --plt-thread-safe for Go
Go is multi-threaded, so use thread-safe plt stubs. __go_go doesn't actually start threads, but is a convenient libgo function with a reasonably unique name that is called by all Go executables. (Threads are started by a static function of libgo, runtime_newosproc, called by a whole lot of global functions, including runtime_starttheworld and runtime_main.) bfd/ * elf64-ppc.c (ppc64_elf_size_stubs): Add __go_go to thread_starters. gold/ * powerpc.cc (Target_powerpc::do_relax): Add __go_go to thread_starters.
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/elf64-ppc.c2
-rw-r--r--gold/ChangeLog4
-rw-r--r--gold/powerpc.cc2
4 files changed, 12 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 579cca2..2657306 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2014-11-20 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_size_stubs): Add __go_go to thread_starters.
+
2014-11-18 H.J. Lu <hongjiu.lu@intel.com>
PR ld/17618
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 0b65ab1..901a88d 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -11979,6 +11979,8 @@ ppc64_elf_size_stubs (struct bfd_link_info *info)
"GOMP_parallel_loop_runtime_start",
"GOMP_parallel_sections",
"GOMP_parallel_sections_start",
+ /* libgo */
+ "__go_go",
};
unsigned i;
diff --git a/gold/ChangeLog b/gold/ChangeLog
index ec76ab9..20ace5b 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,7 @@
+2014-11-20 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (Target_powerpc::do_relax): Add __go_go to thread_starters.
+
2014-11-13 H.J. Lu <hongjiu.lu@intel.com>
* x86_64.cc (Target_x86_64<size>::Scan::global): Don't make PLT
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index 828bc16..500be1f 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -2720,6 +2720,8 @@ Target_powerpc<size, big_endian>::do_relax(int pass,
"GOMP_parallel_loop_runtime_start",
"GOMP_parallel_sections",
"GOMP_parallel_sections_start",
+ /* libgo */
+ "__go_go",
};
if (parameters->options().shared())