bug-binutils
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]