[Bug gas/16765] Assertion failure in create_unwind_entry

2014-04-02 Thread cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=16765

--- Comment #1 from cvs-commit at gcc dot gnu.org cvs-commit at gcc dot 
gnu.org ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project gdb and binutils.

The branch, master has been updated
   via  cad0da33dc43a207a7c4baf32223831b2d0ac60c (commit)
  from  7a79c51466c30188d49d03d3e3593c87e5a3345e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=cad0da33dc43a207a7c4baf32223831b2d0ac60c

commit cad0da33dc43a207a7c4baf32223831b2d0ac60c
Author: Nick Clifton ni...@redhat.com
Date:   Wed Apr 2 16:29:35 2014 +0100

This fixes an internal error in GAS, triggered by the test case reported in
PR 16765.
The problem was that gcc was generating assembler with missing unwind
directives in it,
so that a gas_assert was being triggered.  The patch replaces the assert
with an error
message.

* config/tc-arm.c (create_unwind_entry): Report an error if an
attempt to recreate an unwind directive is encountered.

---

Summary of changes:
 gas/ChangeLog   |6 ++
 gas/config/tc-arm.c |9 +++--
 2 files changed, 13 insertions(+), 2 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/16765] Assertion failure in create_unwind_entry

2014-04-02 Thread nickc at redhat dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=16765

Nick Clifton nickc at redhat dot com changed:

   What|Removed |Added

 CC||nickc at redhat dot com

--- Comment #2 from Nick Clifton nickc at redhat dot com ---
Created attachment 7520
  -- https://sourceware.org/bugzilla/attachment.cgi?id=7520action=edit
Proposed gcc patch

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/16765] Assertion failure in create_unwind_entry

2014-04-02 Thread nickc at redhat dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=16765

--- Comment #3 from Nick Clifton nickc at redhat dot com ---
Created attachment 7521
  -- https://sourceware.org/bugzilla/attachment.cgi?id=7521action=edit
Applied gas patch

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/16765] Assertion failure in create_unwind_entry

2014-04-02 Thread nickc at redhat dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=16765

Nick Clifton nickc at redhat dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Nick Clifton nickc at redhat dot com ---
Hi Fabian,

  This is a gcc bug, as you guessed.  So you need to report it on the gcc-bugs
mailing list.  When you do, you might like to include the arm.c patch uploaded
here which will fix the problem(*).

  Gas should not be generating an internal error however, even when given bad
assembler input, so I have applied a small patch to replace the assertion with
an error message.

Cheers
  Nick

PS. FYI I was not able to reproduce the bug using the assembler file that you
uploaded but I was able to reproduce it when building a toolchain with the
configuration options you specified.  I was also able to capture the gas
command line and assembler input by adding --save-temps -v to the gcc command
line.

(*) After applying the patches in this PR I tried continuing the build.  It
failed with:

libstdc++-v3/libsupc++/eh_throw.cc: In function 'void
__cxxabiv1::__cxa_throw(void*, std::type_info*, void (*)(void*))':
/work/sources/gcc/current/libstdc++-v3/libsupc++/eh_throw.cc:80:57: error:
'_Unwind_SjLj_RaiseException' was not declared in this scope
   _Unwind_SjLj_RaiseException (header-exc.unwindHeader);
 ^
libstdc++-v3/libsupc++/eh_throw.cc: In function 'void
__cxxabiv1::__cxa_rethrow(...)':
/work/sources/gcc/current/libstdc++-v3/libsupc++/eh_throw.cc:113:60: error:
'_Unwind_SjLj_Resume_or_Rethrow' was not declared in this scope
   _Unwind_SjLj_Resume_or_Rethrow (header-unwindHeader);
^
make[3]: *** [eh_throw.lo] Error 1

I suspect that setjmp/longjmp exception handling support may have bit-rotted. 
At least for the ARM anyway.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/16765] Assertion failure in create_unwind_entry

2014-04-02 Thread fab...@ritter-vogt.de
https://sourceware.org/bugzilla/show_bug.cgi?id=16765

--- Comment #5 from Fabian Vogt fab...@ritter-vogt.de ---
Hi,

(In reply to Nick Clifton from comment #4)
 Hi Fabian,
 
   This is a gcc bug, as you guessed.  So you need to report it on the
 gcc-bugs mailing list.  When you do, you might like to include the arm.c
 patch uploaded here which will fix the problem(*).
I did that simultaneously with this report here. I wrote the bug report a bit
more general so I could just copy-and-paste:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60691

   Gas should not be generating an internal error however, even when given
 bad assembler input, so I have applied a small patch to replace the
 assertion with an error message.
Great, thanks!

 Cheers
   Nick
 
 PS. FYI I was not able to reproduce the bug using the assembler file that
 you uploaded but I was able to reproduce it when building a toolchain with
 the configuration options you specified.  I was also able to capture the gas
 command line and assembler input by adding --save-temps -v to the gcc
 command line.
Yeah, compiling worked if I invoked the command manually...

 (*) After applying the patches in this PR I tried continuing the build.  It
 failed with:
 
 libstdc++-v3/libsupc++/eh_throw.cc: In function 'void
 __cxxabiv1::__cxa_throw(void*, std::type_info*, void (*)(void*))':
 /work/sources/gcc/current/libstdc++-v3/libsupc++/eh_throw.cc:80:57: error:
 '_Unwind_SjLj_RaiseException' was not declared in this scope
_Unwind_SjLj_RaiseException (header-exc.unwindHeader);
  ^
 libstdc++-v3/libsupc++/eh_throw.cc: In function 'void
 __cxxabiv1::__cxa_rethrow(...)':
 /work/sources/gcc/current/libstdc++-v3/libsupc++/eh_throw.cc:113:60: error:
 '_Unwind_SjLj_Resume_or_Rethrow' was not declared in this scope
_Unwind_SjLj_Resume_or_Rethrow (header-unwindHeader);
 ^
 make[3]: *** [eh_throw.lo] Error 1
 
 I suspect that setjmp/longjmp exception handling support may have
 bit-rotted.  At least for the ARM anyway.
AFAIK libgcc provides that symbol. If I can't fix that by myself I'll hope that
the gcc developers are able to and want to fix it.

Bye,
Fabian

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils