Implement ELF linker -z global option

ld/

	* ld.texinfo: Document "-z global".

	* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Support
	"-z global".
	(gld${EMULATION_NAME}_list_options): Likewise.

ld/testsuite/

	* ld-elf/global1.d: New file.
This commit is contained in:
H.J. Lu 2012-11-20 22:16:05 +00:00
parent ace2195744
commit b039ef0457
5 changed files with 30 additions and 0 deletions

View file

@ -1,3 +1,11 @@
2012-11-20 H.J. Lu <hongjiu.lu@intel.com>
* ld.texinfo: Document "-z global".
* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Support
"-z global".
(gld${EMULATION_NAME}_list_options): Likewise.
2012-11-15 Maxim Kuvyrkov <maxim@codesourcery.com>
Port lib32 arrangement from Debian.

View file

@ -2300,6 +2300,8 @@ fragment <<EOF
EOF
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
else if (strcmp (optarg, "global") == 0)
link_info.flags_1 |= (bfd_vma) DF_1_GLOBAL;
else if (strcmp (optarg, "initfirst") == 0)
link_info.flags_1 |= (bfd_vma) DF_1_INITFIRST;
else if (strcmp (optarg, "interpose") == 0)
@ -2419,6 +2421,9 @@ EOF
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
fprintf (file, _("\
-z global Make symbols in DSO available for subsequently\n\
loaded objects\n"));
fprintf (file, _("\
-z initfirst Mark DSO to be initialized first at runtime\n"));
fprintf (file, _("\
-z interpose Mark object to interpose all DSOs but executable\n"));

View file

@ -1024,6 +1024,11 @@ shared libraries are still allowed.
@item execstack
Marks the object as requiring executable stack.
@item global
This option is only meaningful when building a shared object. It makes
the symbols defined by this shared object available for symbol resolution
of subsequently loaded libraries.
@item initfirst
This option is only meaningful when building a shared object.
It marks the object so that its runtime initialization will occur

View file

@ -1,3 +1,7 @@
2012-11-20 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/global1.d: New file.
2012-11-07 James Murray <jsm@jsm-net.demon.co.uk>
* ld-m68hc11/movw.d: New test for 16bit relocate.

View file

@ -0,0 +1,8 @@
#source: start.s
#ld: -shared -z global
#readelf: -d
#target: *-*-linux* *-*-gnu*
#...
0x0*6ffffffb \(FLAGS_1\) *Flags: GLOBAL
#pass