mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-23 13:21:43 +08:00
* elf32-hppa.c (group_sections): Don't share a stub section if
stubs are for a large section.
This commit is contained in:
parent
acc990f282
commit
00b28bb047
@ -1,5 +1,8 @@
|
||||
2003-02-08 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf32-hppa.c (group_sections): Don't share a stub section if
|
||||
stubs are for a large section.
|
||||
|
||||
* elf32-hppa.c (elf32_hppa_size_stubs): Double the size left for
|
||||
stubs if !stubs_always_before_branch.
|
||||
|
||||
|
@ -2686,12 +2686,15 @@ group_sections (htab, stub_group_size, stubs_always_before_branch)
|
||||
asection *curr;
|
||||
asection *prev;
|
||||
bfd_size_type total;
|
||||
bfd_boolean big_sec;
|
||||
|
||||
curr = tail;
|
||||
if (tail->_cooked_size)
|
||||
total = tail->_cooked_size;
|
||||
else
|
||||
total = tail->_raw_size;
|
||||
big_sec = total >= stub_group_size;
|
||||
|
||||
while ((prev = PREV_SEC (curr)) != NULL
|
||||
&& ((total += curr->output_offset - prev->output_offset)
|
||||
< stub_group_size))
|
||||
@ -2719,8 +2722,11 @@ group_sections (htab, stub_group_size, stubs_always_before_branch)
|
||||
while (tail != curr && (tail = prev) != NULL);
|
||||
|
||||
/* But wait, there's more! Input sections up to 240000
|
||||
bytes before the stub section can be handled by it too. */
|
||||
if (!stubs_always_before_branch)
|
||||
bytes before the stub section can be handled by it too.
|
||||
Don't do this if we have a really large section after the
|
||||
stubs, as adding more stubs increases the chance that
|
||||
branches may not reach into the stub section. */
|
||||
if (!stubs_always_before_branch && !big_sec)
|
||||
{
|
||||
total = 0;
|
||||
while (prev != NULL
|
||||
|
Loading…
Reference in New Issue
Block a user