ld/
2005-06-05 H.J. Lu <hongjiu.lu@intel.com> * ldexp.c (exp_mark_used_section): Set SEC_KEEP on current section only if the symbol will be defined. ld/testsuite/ 2005-06-05 H.J. Lu <hongjiu.lu@intel.com> * ld-cris/hiddef1.d: Undo the last change. * ld-cris/libdso-10.d: Likewise. * ld-cris/libdso-2.d: Likewise.
This commit is contained in:
parent
9ee913b8a0
commit
18b7982923
6 changed files with 48 additions and 32 deletions
|
@ -1,3 +1,8 @@
|
|||
2005-06-05 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ldexp.c (exp_mark_used_section): Set SEC_KEEP on current
|
||||
section only if the symbol will be defined.
|
||||
|
||||
2005-06-04 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR 992
|
||||
|
|
27
ld/ldexp.c
27
ld/ldexp.c
|
@ -1247,24 +1247,33 @@ exp_mark_used_section (etree_type *tree, asection *current_section)
|
|||
if (tree->assign.dst[0] != '.' || tree->assign.dst[1] != 0)
|
||||
{
|
||||
etree_value_type result;
|
||||
bfd_boolean create = tree->type.node_class == etree_assign;
|
||||
struct bfd_link_hash_entry *h;
|
||||
|
||||
result = exp_fold_tree_1 (tree->assign.src,
|
||||
current_section,
|
||||
lang_allocating_phase_enum,
|
||||
dot, &dot, TRUE);
|
||||
if (current_section != bfd_abs_section_ptr)
|
||||
|
||||
/* We mark the current section SEC_KEEP only if the symbol
|
||||
will be defined. */
|
||||
if (!create)
|
||||
h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst,
|
||||
create, FALSE, TRUE);
|
||||
else
|
||||
h = NULL;
|
||||
|
||||
if ((create || h)
|
||||
&& current_section != bfd_abs_section_ptr)
|
||||
current_section->flags |= SEC_KEEP;
|
||||
|
||||
if (result.valid_p)
|
||||
{
|
||||
bfd_boolean create;
|
||||
struct bfd_link_hash_entry *h;
|
||||
|
||||
if (tree->type.node_class == etree_assign)
|
||||
create = TRUE;
|
||||
else
|
||||
create = FALSE;
|
||||
h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst,
|
||||
create, FALSE, TRUE);
|
||||
if (create)
|
||||
h = bfd_link_hash_lookup (link_info.hash,
|
||||
tree->assign.dst, create,
|
||||
FALSE, TRUE);
|
||||
if (h == NULL)
|
||||
{
|
||||
if (create)
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2005-06-05 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-cris/hiddef1.d: Undo the last change.
|
||||
* ld-cris/libdso-10.d: Likewise.
|
||||
* ld-cris/libdso-2.d: Likewise.
|
||||
|
||||
2005-06-04 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-cris/hiddef1.d: Updated.
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# and sections change, make sure that there's no .plt and that
|
||||
# dsofn is hidden (not exported as a dynamic symbol).
|
||||
|
||||
There are 12 section headers, starting at offset 0x[0-9a-f]+:
|
||||
There are 11 section headers, starting at offset 0x[0-9a-f]+:
|
||||
#...
|
||||
\[[ 0-9]+\] \.got PROGBITS [0-9a-f]+ [0-9a-f]+ 0+10 04 WA 0 0 4
|
||||
#...
|
||||
|
@ -24,5 +24,5 @@ Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
|
|||
#...
|
||||
Symbol table '\.dynsym' contains 9 entries:
|
||||
#...
|
||||
Symbol table '\.symtab' contains 20 entries:
|
||||
Symbol table '\.symtab' contains 19 entries:
|
||||
#pass
|
||||
|
|
|
@ -35,7 +35,5 @@ Idx Name Size VMA LMA File off Algn
|
|||
CONTENTS, ALLOC, LOAD, DATA
|
||||
5 \.got 0+c 0+21e0 0+21e0 0+1e0 2\*\*2
|
||||
CONTENTS, ALLOC, LOAD, DATA
|
||||
6 \.data 0+ 0+21ec 0+21ec 0+1ec 2\*\*0
|
||||
CONTENTS, ALLOC, LOAD, DATA
|
||||
7 \.bss 0+14 0+21ec 0+21ec 0+1ec 2\*\*0
|
||||
6 \.bss 0+14 0+21ec 0+21ec 0+1ec 2\*\*0
|
||||
ALLOC
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# entries. This formerly SEGV:ed because .rela.got was created
|
||||
# too late to have it mapped to an output section.
|
||||
|
||||
There are 15 section headers.*
|
||||
There are 14 section headers.*
|
||||
#...
|
||||
\[ 1\] \.hash HASH .*
|
||||
\[ 2\] \.dynsym DYNSYM .*
|
||||
|
@ -21,11 +21,10 @@ There are 15 section headers.*
|
|||
\[ 7\] \.text PROGBITS .*
|
||||
\[ 8\] \.dynamic DYNAMIC .*
|
||||
\[ 9\] \.got PROGBITS .*
|
||||
\[10\] \.data PROGBITS .*
|
||||
\[11\] \.bss NOBITS .*
|
||||
\[12\] \.shstrtab STRTAB .*
|
||||
\[13\] \.symtab SYMTAB .*
|
||||
\[14\] \.strtab STRTAB .*
|
||||
\[10\] \.bss NOBITS .*
|
||||
\[11\] \.shstrtab STRTAB .*
|
||||
\[12\] \.symtab SYMTAB .*
|
||||
\[13\] \.strtab STRTAB .*
|
||||
#...
|
||||
Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
|
||||
#...
|
||||
|
@ -35,12 +34,12 @@ Symbol table '\.dynsym' contains 6 entries:
|
|||
Num: Value Size Type Bind Vis Ndx Name
|
||||
0: 0+ 0 NOTYPE LOCAL DEFAULT UND
|
||||
1: [0-9a-f]+ 0 SECTION LOCAL DEFAULT 7
|
||||
2: [0-9a-f]+ 0 SECTION LOCAL DEFAULT 10
|
||||
3: [0-9a-f]+ 0 SECTION LOCAL DEFAULT 11
|
||||
2: [0-9a-f]+ 0 NOTYPE LOCAL DEFAULT UND
|
||||
3: [0-9a-f]+ 0 SECTION LOCAL DEFAULT 10
|
||||
4: 0+ 0 OBJECT GLOBAL DEFAULT ABS TST1
|
||||
5: 0+188 0 FUNC GLOBAL DEFAULT 7 export_1@@TST1
|
||||
|
||||
Symbol table '\.symtab' contains 23 entries:
|
||||
Symbol table '\.symtab' contains 22 entries:
|
||||
Num: Value Size Type Bind Vis Ndx Name
|
||||
0: 0+ 0 NOTYPE LOCAL DEFAULT UND
|
||||
1: [0-9a-f]+ 0 SECTION LOCAL DEFAULT 1
|
||||
|
@ -56,12 +55,11 @@ Symbol table '\.symtab' contains 23 entries:
|
|||
11: [0-9a-f]+ 0 SECTION LOCAL DEFAULT 11
|
||||
12: [0-9a-f]+ 0 SECTION LOCAL DEFAULT 12
|
||||
13: [0-9a-f]+ 0 SECTION LOCAL DEFAULT 13
|
||||
14: [0-9a-f]+ 0 SECTION LOCAL DEFAULT 14
|
||||
15: 0+2198 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
|
||||
16: 0+2230 0 NOTYPE LOCAL DEFAULT ABS __bss_start
|
||||
17: 0+2230 0 NOTYPE LOCAL DEFAULT ABS _edata
|
||||
18: 0+2220 0 OBJECT LOCAL HIDDEN ABS _GLOBAL_OFFSET_TABLE_
|
||||
19: 0+2240 0 NOTYPE LOCAL DEFAULT ABS _end
|
||||
20: 0+184 0 FUNC LOCAL DEFAULT 7 dsofn
|
||||
21: 0+ 0 OBJECT GLOBAL DEFAULT ABS TST1
|
||||
22: 0+188 0 FUNC GLOBAL DEFAULT 7 export_1
|
||||
14: 0+2198 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
|
||||
15: 0+2230 0 NOTYPE LOCAL DEFAULT ABS __bss_start
|
||||
16: 0+2230 0 NOTYPE LOCAL DEFAULT ABS _edata
|
||||
17: 0+2220 0 OBJECT LOCAL HIDDEN ABS _GLOBAL_OFFSET_TABLE_
|
||||
18: 0+2240 0 NOTYPE LOCAL DEFAULT ABS _end
|
||||
19: 0+184 0 FUNC LOCAL DEFAULT 7 dsofn
|
||||
20: 0+ 0 OBJECT GLOBAL DEFAULT ABS TST1
|
||||
21: 0+188 0 FUNC GLOBAL DEFAULT 7 export_1
|
||||
|
|
Loading…
Reference in a new issue