Add -fprofile-update option juggling
authorMartin Liska <mliska@suse.cz>
Thu, 6 Oct 2016 07:34:23 +0000 (09:34 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Thu, 6 Oct 2016 07:34:23 +0000 (07:34 +0000)
* gcc.c: Set -fprofile-update=atomic when profiling is
enabled and -pthread is set.  Warn when one combines
-pthread and -fprofile-update=single for an app using
profiling code.

From-SVN: r240828

gcc/ChangeLog
gcc/gcc.c

index 965f54d925462e2780eeacee70ca1f02ed74c6fc..aa41f37050c192968d9f3f45b9fba27d16897d85 100644 (file)
@@ -1,3 +1,10 @@
+2016-10-06  Martin Liska  <mliska@suse.cz>
+
+       * gcc.c: Set -fprofile-update=atomic when profiling is
+       enabled and -pthread is set.  Warn when one combines
+       -pthread and -fprofile-update=single for an app using
+       profiling code.
+
 2016-10-06  Martin Liska  <mliska@suse.cz>
 
        PR bootstrap/77788
index fd2b182edc690015dcb8cffc4c50cefdbcdbcb79..5213cb0fafaf4f68d6b284bac4626bc6e865f84f 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -1141,7 +1141,14 @@ static const char *cc1_options =
  %{-help=*:--help=%*}\
  %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
  %{fsyntax-only:-o %j} %{-param*}\
- %{coverage:-fprofile-arcs -ftest-coverage}";
+ %{coverage:-fprofile-arcs -ftest-coverage}\
+ %{fprofile-arcs|fprofile-generate*|coverage:\
+   %{!fprofile-update=single:\
+     %{pthread:-fprofile-update=atomic}}}\
+ %{fprofile-update=single:\
+   %{fprofile-arcs|fprofile-generate*|coverage:\
+     %{pthread:%n-fprofile-update=atomic should be used\
+ for a multithreaded application}}}";
 
 static const char *asm_options =
 "%{-target-help:%:print-asm-header()} "