This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Add gcc-4.9 libgomp symbols requiring --plt-thread-safe for power7
- From: Alan Modra <amodra at gmail dot com>
- To: binutils at sourceware dot org
- Date: Wed, 22 Oct 2014 08:15:21 +1030
- Subject: Re: Add gcc-4.9 libgomp symbols requiring --plt-thread-safe for power7
- Authentication-results: sourceware.org; auth=none
- References: <20141021065300 dot GZ4267 at bubble dot grove dot modra dot org>
On Tue, Oct 21, 2014 at 05:23:00PM +1030, Alan Modra wrote:
> Found when investigating some intermittent mainline gcc libgomp test
> failures.
>
> powerpc64 ld builds plt call stubs with a read barrier to provide
> thread safety on lazy plt updates, necessary on multi-threaded apps
> with power7 or later, weakly ordered memory. gcc-4.9 libgomp
> introduced more functions that could call pthread_create, which means
> we have more functions that if referenced in an executable should
> cause a default of --plt-thread-safe.
This of course is needed for gold too. Committed 80272b8c.
* powerpc.cc (do_relax): Add gcc-4.9 libgomp functions to
thread_starter.
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index 0a9ab7d..828bc16 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -2708,11 +2708,17 @@ Target_powerpc<size, big_endian>::do_relax(int pass,
/* libanl */
"getaddrinfo_a",
/* libgomp */
+ "GOMP_parallel",
"GOMP_parallel_start",
+ "GOMP_parallel_loop_static",
"GOMP_parallel_loop_static_start",
+ "GOMP_parallel_loop_dynamic",
"GOMP_parallel_loop_dynamic_start",
+ "GOMP_parallel_loop_guided",
"GOMP_parallel_loop_guided_start",
+ "GOMP_parallel_loop_runtime",
"GOMP_parallel_loop_runtime_start",
+ "GOMP_parallel_sections",
"GOMP_parallel_sections_start",
};
--
Alan Modra
Australia Development Lab, IBM