binutils/

* objcopy.c (localize_hidden): New variable.
	(OPTION_LOCALIZE_HIDDEN): New command_line_switch value.
	(copy_options): Add --localize-hidden.
	(copy_usage): Mention --localize-hidden.
	(is_hidden_symbol): New function.
	(filter_symbols): Handle localize_hidden.
	(copy_object): Call filter_symbols if localize_hidden.
	(copy_main): Handle OPTION_LOCALIZE_HIDDEN.
	* doc/binutils.texi (--localize-hidden): Document new option.

binutils/testsuite/
	* binutils-all/localize-hidden-1.s,
	* binutils-all/localize-hidden-1.d,
	* binutils-all/localize-hidden-2.s,
	* binutils-all/localize-hidden-2.d: New tests.
	* binutils-all/objcopy.exp: Run them.
This commit is contained in:
Richard Sandiford
2006-06-23 16:23:09 +00:00
parent 22a84b5580
commit d58c2e3acd
9 changed files with 124 additions and 1 deletions

View File

@@ -0,0 +1,17 @@
#PROG: objcopy
#readelf: --symbols
#objcopy: --localize-hidden
#name: --localize-hidden test 1
#...
.*: 0+1200 +0 +NOTYPE +LOCAL +HIDDEN +ABS +Lhidden
.*: 0+1300 +0 +NOTYPE +LOCAL +INTERNAL +ABS +Linternal
.*: 0+1400 +0 +NOTYPE +LOCAL +PROTECTED +ABS +Lprotected
.*: 0+1100 +0 +NOTYPE +LOCAL +DEFAULT +ABS +Ldefault
.*: 0+2200 +0 +NOTYPE +LOCAL +HIDDEN +ABS +Ghidden
.*: 0+2300 +0 +NOTYPE +LOCAL +INTERNAL +ABS +Ginternal
.*: 0+3200 +0 +NOTYPE +LOCAL +HIDDEN +ABS +Whidden
.*: 0+3300 +0 +NOTYPE +LOCAL +INTERNAL +ABS +Winternal
.*: 0+2100 +0 +NOTYPE +GLOBAL +DEFAULT +ABS +Gdefault
.*: 0+2400 +0 +NOTYPE +GLOBAL +PROTECTED +ABS +Gprotected
.*: 0+3100 +0 +NOTYPE +WEAK +DEFAULT +ABS +Wdefault
.*: 0+3400 +0 +NOTYPE +WEAK +PROTECTED +ABS +Wprotected

View File

@@ -0,0 +1,36 @@
.globl Gdefault
.globl Ghidden
.globl Ginternal
.globl Gprotected
.weak Wdefault
.weak Whidden
.weak Winternal
.weak Wprotected
.hidden Lhidden
.hidden Ghidden
.hidden Whidden
.internal Linternal
.internal Ginternal
.internal Winternal
.protected Lprotected
.protected Gprotected
.protected Wprotected
.equ Ldefault, 0x1100
.equ Lhidden, 0x1200
.equ Linternal, 0x1300
.equ Lprotected, 0x1400
.equ Gdefault, 0x2100
.equ Ghidden, 0x2200
.equ Ginternal, 0x2300
.equ Gprotected, 0x2400
.equ Wdefault, 0x3100
.equ Whidden, 0x3200
.equ Winternal, 0x3300
.equ Wprotected, 0x3400

View File

@@ -0,0 +1,7 @@
#PROG: objcopy
#nm: -n
#objcopy: --localize-hidden
#name: --localize-hidden test 2
#...
0+100 A G
#pass

View File

@@ -0,0 +1,2 @@
.globl G
.equ G,0x100

View File

@@ -728,3 +728,8 @@ if [is_elf_format] {
run_dump_test "copy-2"
run_dump_test "copy-3"
if [is_elf_format] {
run_dump_test "localize-hidden-1"
}
run_dump_test "localize-hidden-2"