From 334efb9a97018d8b2f508e5c22e5acb7b824cc76 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 21 Oct 2014 17:06:01 +1030 Subject: Add gcc-4.9 libgomp symbols requiring --plt-thread-safe for power7 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. bfd/ * elf64-ppc.c (ppc64_elf_size_stubs): Add gcc-4.9 libgomp functions to thread_starter. gold/ * powerpc.cc (do_relax): Add gcc-4.9 libgomp functions to thread_starter. --- bfd/ChangeLog | 4 ++++ bfd/elf64-ppc.c | 6 ++++++ 2 files changed, 10 insertions(+) (limited to 'bfd') diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9e32bc616da..35cc99142c3 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,6 +1,10 @@ 2014-10-28 Alan Modra Apply trunk patches + 2014-10-21 Alan Modra + * elf64-ppc.c (ppc64_elf_size_stubs): Add gcc-4.9 libgomp functions + to thread_starter. + 2014-10-18 Alan Modra * elf64-ppc.c (ppc64_elf_add_symbol_hook): If function code section for function symbols defined in .opd is discarded, let diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index efd86a2ac75..e3c06eb00b4 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -11964,11 +11964,17 @@ ppc64_elf_size_stubs (struct bfd_link_info *info) /* 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", }; unsigned i; -- cgit v1.2.3