mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 14:00:30 +00:00
Replace __attribute__((visibility("protected")))
With copy relocation, address of protected data defined in the shared library may be external. Compiler shouldn't asssume protected data will be local. But due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248 __attribute__((visibility("protected"))) doesn't work correctly, we need to use asm (".protected xxx") instead. * elf/ifuncdep2.c (global): Replace __attribute__((visibility("protected"))) with asm (".protected global"). * elf/ifuncmod1.c (global): Likewise. * elf/ifuncmod5.c (global): Likewise.
This commit is contained in:
parent
0b3467b344
commit
e0ed2fb40a
@ -1,3 +1,11 @@
|
||||
2015-03-06 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elf/ifuncdep2.c (global): Replace
|
||||
__attribute__((visibility("protected"))) with
|
||||
asm (".protected global").
|
||||
* elf/ifuncmod1.c (global): Likewise.
|
||||
* elf/ifuncmod5.c (global): Likewise.
|
||||
|
||||
2015-03-06 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* soft-fp/soft-fp.h [!_LIBC && __KERNEL__]: Include
|
||||
|
@ -2,7 +2,13 @@
|
||||
|
||||
#include "ifunc-sel.h"
|
||||
|
||||
int global __attribute__ ((visibility ("protected"))) = -1;
|
||||
int global = -1;
|
||||
/* Can't use __attribute__((visibility("protected"))) until the GCC bug:
|
||||
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248
|
||||
|
||||
is fixed. */
|
||||
asm (".protected global");
|
||||
|
||||
static int
|
||||
one (void)
|
||||
|
@ -6,7 +6,13 @@
|
||||
*/
|
||||
#include "ifunc-sel.h"
|
||||
|
||||
int global __attribute__ ((visibility ("protected"))) = -1;
|
||||
int global = -1;
|
||||
/* Can't use __attribute__((visibility("protected"))) until the GCC bug:
|
||||
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248
|
||||
|
||||
is fixed. */
|
||||
asm (".protected global");
|
||||
|
||||
static int
|
||||
one (void)
|
||||
|
@ -1,7 +1,13 @@
|
||||
/* Test STT_GNU_IFUNC symbols without direct function call. */
|
||||
#include "ifunc-sel.h"
|
||||
|
||||
int global __attribute__ ((visibility ("protected"))) = -1;
|
||||
int global = -1;
|
||||
/* Can't use __attribute__((visibility("protected"))) until the GCC bug:
|
||||
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65248
|
||||
|
||||
is fixed. */
|
||||
asm (".protected global");
|
||||
|
||||
static int
|
||||
one (void)
|
||||
|
Loading…
Reference in New Issue
Block a user