From 2300b5a1414ecb820aa042a30a08928cfcba620b Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 21 Oct 2014 17:06:01 +1030 Subject: [PATCH] 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. * elf64-ppc.c (ppc64_elf_size_stubs): Add gcc-4.9 libgomp functions to thread_starter. --- bfd/ChangeLog | 5 +++++ bfd/elf64-ppc.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1abdeac..04e60a8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +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 diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index efd86a2..e3c06eb 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; -- 2.7.4