[Bug 951] New: libgcc_s incorrect "header" information

[email protected]
Newsgroups gmane.linux.lsb.specification
Message-ID <[email protected]>
OtherBugsDependingO 611
             nThis:


The data structure _UnwindException does not match the "C++ ABI".  Ours:

typedef unsigned int _Unwind_Ptr;
typedef unsigned int _Unwind_Word;
. . .
struct _Unwind_Exception
{
  _Unwind_Exception_Class;
  _Unwind_Exception_Cleanup_Fn;
  _Unwind_Word;
  _Unwind_Word;
}

This is an incomplete definition since we don't define types
_Unwind_Exception_Class or _Unwind_Exception_Cleanup_Fn. Also, the C++ ABI
requires the first, third and fourth members to be 64-bit, thus the "typedef
unsigned int" should be "typedef unsigned long". Here's the clip:

 Exception Header

The unwind interface uses a pointer to an exception header object as its
representation of an exception being thrown. In general, the full representation
of an exception object is language- and implementation-specific, but it will be
prefixed by a header understood by the unwind interface, defined as follows:

    typedef void (*_Unwind_Exception_Cleanup_Fn)
		(_Unwind_Reason_Code reason,
		 struct _Unwind_Exception *exc);

    struct _Unwind_Exception {
	    uint64			 exception_class;
	    _Unwind_Exception_Cleanup_Fn exception_cleanup;
	    uint64			 private_1;
	    uint64			 private_2;
    };

An _Unwind_Exception object must be double-word aligned. The first two fields
are set by user code prior to raising the exception, and the latter two should
never be touched except by the runtime.   
 
--    
Configure bugmail: http://bugs.linuxbase.org/userprefs.cgi?tab=email   
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.