From 7ae9ad19d14982b07de904c2362896d36c41d5e4 Mon Sep 17 00:00:00 2001
From: Rahul Chaudhry <rahulchaudhry@google.com>
Date: Fri, 14 Jul 2017 13:16:08 -0700
Subject: [PATCH 05/14] gas: enable -mshared by default.

From gas help:
  -mshared        disable branch optimization for shared code.

The default behavior is to optimize out non-PLT relocations against
defined non-weak global branch targets with default visibility. This
optimization has been a source of many issues during testing of new
binutils:
  - https://bugs.chromium.org/p/chromium/issues/detail?id=738283
  - https://bugs.chromium.org/p/chromium/issues/detail?id=723906

[Adrian Ratiu: rebased from v2.27 to v2.36.1]

Change-Id: Iced04054a7dfd18eef6b42c21f92c34286c215b4
---
 gas/config/tc-i386.c                    | 10 +++++++++-
 gas/testsuite/gas/i386/relax-4.d        |  1 +
 gas/testsuite/gas/i386/x86-64-relax-3.d |  1 +
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 9a2dfc92281..eb2bb1ba4c4 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -601,7 +601,7 @@ static int use_big_obj = 0;
 
 #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
 /* 1 if generating code for a shared library.  */
-static int shared = 0;
+static int shared = 1;
 #endif
 
 /* 1 for intel syntax,
@@ -12887,6 +12887,7 @@ const char *md_shortopts = "qnO::";
 #define OPTION_MLFENCE_AFTER_LOAD (OPTION_MD_BASE + 31)
 #define OPTION_MLFENCE_BEFORE_INDIRECT_BRANCH (OPTION_MD_BASE + 32)
 #define OPTION_MLFENCE_BEFORE_RET (OPTION_MD_BASE + 33)
+#define OPTION_MNO_SHARED (OPTION_MD_BASE + 34)
 
 struct option md_longopts[] =
 {
@@ -12898,6 +12899,7 @@ struct option md_longopts[] =
 #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
   {"x32", no_argument, NULL, OPTION_X32},
   {"mshared", no_argument, NULL, OPTION_MSHARED},
+  {"mno-shared", no_argument, NULL, OPTION_MNO_SHARED},
   {"mx86-used-note", required_argument, NULL, OPTION_X86_USED_NOTE},
 #endif
   {"divide", no_argument, NULL, OPTION_DIVIDE},
@@ -12978,6 +12980,10 @@ md_parse_option (int c, const char *arg)
       shared = 1;
       break;
 
+    case OPTION_MNO_SHARED:
+      shared = 0;
+      break;
+
     case OPTION_X86_USED_NOTE:
       if (strcasecmp (arg, "yes") == 0)
         x86_used_note = 1;
@@ -13665,6 +13671,8 @@ md_show_usage (FILE *stream)
   fprintf (stream, _("\
   -mshared                disable branch optimization for shared code\n"));
   fprintf (stream, _("\
+  -mno-shared             enable branch optimization\n"));
+  fprintf (stream, _("\
   -mx86-used-note=[no|yes] "));
   if (DEFAULT_X86_USED_NOTE)
     fprintf (stream, _("(default: yes)\n"));
diff --git a/gas/testsuite/gas/i386/relax-4.d b/gas/testsuite/gas/i386/relax-4.d
index 20392512252..2de4d92fc31 100644
--- a/gas/testsuite/gas/i386/relax-4.d
+++ b/gas/testsuite/gas/i386/relax-4.d
@@ -1,4 +1,5 @@
 #source: relax-3.s
+#as: -mno-shared
 #objdump: -dwr
 
 .*: +file format .*
diff --git a/gas/testsuite/gas/i386/x86-64-relax-3.d b/gas/testsuite/gas/i386/x86-64-relax-3.d
index 01df9ef340e..f9ec1dcee5b 100644
--- a/gas/testsuite/gas/i386/x86-64-relax-3.d
+++ b/gas/testsuite/gas/i386/x86-64-relax-3.d
@@ -1,4 +1,5 @@
 #source: relax-3.s
+#as: -mno-shared
 #objdump: -dwr
 #notarget: *-*-solaris*
 
-- 
2.32.0

