Re: compact frame descriptions incompatible with DWARF2 .eh_frame

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mason wrote:

> Ian Lance Taylor wrote:
> 
>> Mason wrote:
>>
>>> I'm running a mips-linux-gnu system, using
>>> gcc version 4.6.3 (Sourcery CodeBench Lite 2012.03-63)
>>>
>>> mips-linux-gnu/bin/ld:
>>>   compact frame descriptions incompatible with DWARF2 .eh_frame
>>
>> I don't see this error message anywhere in the GNU ld sources, and I
>> don't know what it refers to.  Assuming that is indeed the linker you
>> got from CodeSourcery, I think you will have to check with them.
> 
> Well, this would explain why I came up empty when I searched for
> the error string on the web :-)
> 
> I'm downloading the source tarball right now.
> https://sourcery.mentor.com/GNUToolchain/release2190

For the record, the error message comes from
static void gld${EMULATION_NAME}_after_open(void)
in binutils-2012.03/ld/emultempl/elf32.em

The relevant code:

    for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
    {
      int type = 0;
      for (s = abfd->sections; s && type < 2 ; s = s->next)
      {
	const char *name = bfd_get_section_name (abfd, s);

	if (bfd_is_abs_section (s->output_section))
	continue;

	if (CONST_STRNEQ (name, ".eh_frame_entry"))
	type = 2;
	else if (strcmp (name, ".eh_frame") == 0
	       && s->size > 8)
	type = 1;
      }

      if (type != 0)
      {
	if (seen_type == 0)
	seen_type = type;
	else if (seen_type != type)
	{
	  einfo (_("%P%F: compact frame descriptions incompatible with"
	       " DWARF2 .eh_frame from %B\n"),
	       type == 1 ? abfd : elfbfd);
	  break;
	}

	if (!elfbfd && (type == 2 || link_info.eh_frame_hdr))
	{
	  if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
	    elfbfd = abfd;

	  warn_eh_frame = TRUE;
	}
      }
    }

I was able to work around the problem by downgrading the tool-chain
to "gcc version 4.3.2 (Sourcery G++ Lite 4.3-51)" which is what the
libraries had been compiled with.

Is it even supported to compile some source files with gcc 4.3.2, and
some with gcc 4.6.3, when some source files are written in C++? Is the
C++ ABI stable over several releases?

-- 
Regards.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux