[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gold/16085] gold assumes STT_NOTYPE symbols are not thumb
From: |
vries at gcc dot gnu.org |
Subject: |
[Bug gold/16085] gold assumes STT_NOTYPE symbols are not thumb |
Date: |
Fri, 25 Oct 2013 12:36:54 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=16085
Tom de Vries <vries at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |vries at gcc dot gnu.org
--- Comment #2 from Tom de Vries <vries at gcc dot gnu.org> ---
FWIW, when using -Wl,--debug,all, I run into:
...
ld: internal error in thumb_branch_common, at gold/arm.cc:4101
...
which is this assert:
...
if (stub_type != arm_stub_none)
{
Stub_table<big_endian>* stub_table =
object->stub_table(relinfo->data_shndx);
gold_assert(stub_table != NULL);
...
So printing debug info changes the trigger for an assert.
I've tracked the difference down to this code:
...
// Return true if target wants to perform relaxation.
bool
may_relax() const
{
// Run the dummy relaxation pass twice if relaxation debugging is enabled.
if (is_debugging_enabled(DEBUG_RELAXATION))
return true;
return this->do_may_relax();
}
// Perform a relaxation pass. Return true if layout may be changed.
bool
relax(int pass, const Input_objects* input_objects, Symbol_table* symtab,
Layout* layout, const Task* task)
{
// Run the dummy relaxation pass twice if relaxation debugging is enabled.
if (is_debugging_enabled(DEBUG_RELAXATION))
return pass < 2;
return this->do_relax(pass, input_objects, symtab, layout, task);
}
...
I'm a bit surprised that printing debug info by design changes the way the
program is run...
--
You are receiving this mail because:
You are on the CC list for the bug.