ld/ChangeLog:
* ldlang.c (IGNORE_SECTION): Remove check for zero size. (lang_check_section_addresses): Ignore zero size sections here. ld/testsuite/ChangeLog: * ld-scripts/empty-orphan.d, ld-scripts/empty-orphan.exp, ld-scripts/empty-orphan.s, ld-scripts/emtpy-orphan.t: New test.
This commit is contained in:
parent
2115ce97f8
commit
de7f8cc8e0
7 changed files with 70 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
|||
2005-03-16 David Heine <dlheine@tensilica.com>
|
||||
Bob Wilson <bob.wilson@acm.org>
|
||||
|
||||
* ldlang.c (IGNORE_SECTION): Remove check for zero size.
|
||||
(lang_check_section_addresses): Ignore zero size sections here.
|
||||
|
||||
2005-03-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* emultempl/elf32.em (gld${EMULATION_NAME}_finish): Remove
|
||||
|
|
|
@ -3300,8 +3300,7 @@ size_input_section
|
|||
((s->flags & SEC_NEVER_LOAD) != 0 \
|
||||
|| (s->flags & SEC_ALLOC) == 0 \
|
||||
|| ((s->flags & SEC_THREAD_LOCAL) != 0 \
|
||||
&& (s->flags & SEC_LOAD) == 0) \
|
||||
|| s->size == 0)
|
||||
&& (s->flags & SEC_LOAD) == 0))
|
||||
|
||||
/* Check to see if any allocated sections overlap with other allocated
|
||||
sections. This can happen if a linker script specifies the output
|
||||
|
@ -3318,7 +3317,7 @@ lang_check_section_addresses (void)
|
|||
asection *os;
|
||||
|
||||
/* Ignore sections which are not loaded or which have no contents. */
|
||||
if (IGNORE_SECTION (s))
|
||||
if (IGNORE_SECTION (s) || s->size == 0)
|
||||
continue;
|
||||
|
||||
/* Once we reach section 's' stop our seach. This prevents two
|
||||
|
@ -3332,7 +3331,7 @@ lang_check_section_addresses (void)
|
|||
bfd_vma os_end;
|
||||
|
||||
/* Only consider loadable sections with real contents. */
|
||||
if (IGNORE_SECTION (os))
|
||||
if (IGNORE_SECTION (os) || os->size == 0)
|
||||
continue;
|
||||
|
||||
/* We must check the sections' LMA addresses not their
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2005-03-16 David Heine <dlheine@tensilica.com>
|
||||
Bob Wilson <bob.wilson@acm.org>
|
||||
|
||||
* ld-scripts/empty-orphan.d, ld-scripts/empty-orphan.exp,
|
||||
ld-scripts/empty-orphan.s, ld-scripts/emtpy-orphan.t: New test.
|
||||
|
||||
2005-03-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-cris/hiddef1.d: Updated for empty section removal.
|
||||
|
|
3
ld/testsuite/ld-scripts/empty-orphan.d
Normal file
3
ld/testsuite/ld-scripts/empty-orphan.d
Normal file
|
@ -0,0 +1,3 @@
|
|||
#source: empty-orphan.s
|
||||
#ld: -T empty-orphan.t
|
||||
#error: no memory region specified for loadable section
|
27
ld/testsuite/ld-scripts/empty-orphan.exp
Normal file
27
ld/testsuite/ld-scripts/empty-orphan.exp
Normal file
|
@ -0,0 +1,27 @@
|
|||
# Make sure orphan sections do not lead to huge output files.
|
||||
# By David Heine, Tensilica, Inc.
|
||||
# Copyright 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
# PHDRS is only meaningful for ELF.
|
||||
if ![is_elf_format] {
|
||||
return
|
||||
}
|
||||
|
||||
set testname "empty-orphan"
|
||||
|
||||
run_dump_test empty-orphan
|
4
ld/testsuite/ld-scripts/empty-orphan.s
Normal file
4
ld/testsuite/ld-scripts/empty-orphan.s
Normal file
|
@ -0,0 +1,4 @@
|
|||
.section .orphan_data, "a"
|
||||
# empty but defined
|
||||
.section .data
|
||||
.word 0x1111
|
21
ld/testsuite/ld-scripts/empty-orphan.t
Normal file
21
ld/testsuite/ld-scripts/empty-orphan.t
Normal file
|
@ -0,0 +1,21 @@
|
|||
MEMORY
|
||||
{
|
||||
default_mem : ORIGIN = 0x0, LENGTH = 0x100000
|
||||
text_mem : ORIGIN = 0x60000000, LENGTH = 0x100
|
||||
data_mem : ORIGIN = 0x70000000, LENGTH = 0x100
|
||||
}
|
||||
|
||||
PHDRS
|
||||
{
|
||||
default_phdr PT_LOAD;
|
||||
text_phdr PT_LOAD;
|
||||
data_phdr PT_LOAD;
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.text : { *(.text) } > text_mem : text_phdr
|
||||
.data : { *(.data) } > data_mem : data_phdr
|
||||
.bss : { *(.bss) } > data_mem : data_phdr
|
||||
/* .orphan_data is an orphan */
|
||||
}
|
Loading…
Reference in a new issue