Add gcc-4.9 libgomp symbols requiring --plt-thread-safe for power7
authorAlan Modra <amodra@gmail.com>
Tue, 21 Oct 2014 06:36:01 +0000 (17:06 +1030)
committerAlan Modra <amodra@gmail.com>
Tue, 28 Oct 2014 06:23:13 +0000 (16:53 +1030)
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
bfd/elf64-ppc.c
gold/ChangeLog
gold/powerpc.cc

index 9e32bc6..35cc991 100644 (file)
@@ -1,6 +1,10 @@
 2014-10-28  Alan Modra  <amodra@gmail.com>
 
        Apply trunk patches
+       2014-10-21  Alan Modra  <amodra@gmail.com>
+       * elf64-ppc.c (ppc64_elf_size_stubs): Add gcc-4.9 libgomp functions
+       to thread_starter.
+
        2014-10-18  Alan Modra  <amodra@gmail.com>
        * elf64-ppc.c (ppc64_elf_add_symbol_hook): If function code
        section for function symbols defined in .opd is discarded, let
index efd86a2..e3c06eb 100644 (file)
@@ -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;
index f636afa..88dd58f 100644 (file)
@@ -1,3 +1,10 @@
+2014-10-28  Alan Modra  <amodra@gmail.com>
+
+       Apply trunk patches
+       2014-10-22  Alan Modra  <amodra@gmail.com>
+       * powerpc.cc (do_relax): Add gcc-4.9 libgomp functions to
+       thread_starter.
+
 2014-09-30  Cary Coutant  <ccoutant@google.com>
 
        PR gold/17432
index 0a9ab7d..828bc16 100644 (file)
@@ -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",
            };