Mark global with hidden attribute
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 22 Jul 2015 10:35:47 +0000 (03:35 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 22 Jul 2015 10:37:50 +0000 (03:37 -0700)
GCC 5 will generate a relocation for protected symbol:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248

when compiling for a shared library.  It is undefined to access protected
symbol in IFUNC selector function inside a shared library.

PR gold/18628
* testsuite/ifuncdep2.c (global): Change protected to hidden.
* testsuite/ifuncmod1.c (global): Likewise.
* testsuite/ifuncmod5.c (global): Likewise.

gold/ChangeLog
gold/testsuite/ifuncdep2.c
gold/testsuite/ifuncmod1.c
gold/testsuite/ifuncmod5.c

index cd52db08956d9b9641cdb8a22b780d469198ba49..45daaa573a028f8b49e59d05181338872a5ab353 100644 (file)
@@ -1,3 +1,10 @@
+2015-07-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gold/18628
+       * testsuite/ifuncdep2.c (global): Change protected to hidden.
+       * testsuite/ifuncmod1.c (global): Likewise.
+       * testsuite/ifuncmod5.c (global): Likewise.
+
 2015-07-22  Alan Modra  <amodra@gmail.com>
 
        * aarch64.cc (try_fix_erratum_843419_optimized): Warning fix.
index 758bae1932e493583d145005b323091af8da7a8a..f2a11f175c8f3be627fadc6cdb7b74e8a175cadc 100644 (file)
@@ -2,7 +2,7 @@
 
 #include "ifunc-sel.h"
 
-int global __attribute__ ((visibility ("protected"))) = -1;
+int global __attribute__ ((visibility ("hidden"))) = -1;
 
 static int
 one (void)
index e3b37cb5ab0cd065ac333760a5cb857b786de29f..8ee11f1448fd6d273e29e924ce8e18645b494f62 100644 (file)
@@ -6,7 +6,7 @@
  */
 #include "ifunc-sel.h"
 
-int global __attribute__ ((visibility ("protected"))) = -1;
+int global __attribute__ ((visibility ("hidden"))) = -1;
 
 static int
 one (void)
index 9a08e8cf53c471c8f0fc998673cc46a2eccdb399..1fd815ba7be0a52fce8df16d030a93cb9f368568 100644 (file)
@@ -1,7 +1,7 @@
 /* Test STT_GNU_IFUNC symbols without direct function call.  */
 #include "ifunc-sel.h"
 
-int global __attribute__ ((visibility ("protected"))) = -1;
+int global __attribute__ ((visibility ("hidden"))) = -1;
 
 static int
 one (void)