From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30752 invoked by alias); 10 Oct 2011 11:27:58 -0000 Received: (qmail 30730 invoked by uid 22791); 10 Oct 2011 11:27:56 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,TW_BJ,TW_IB X-Spam-Check-By: sourceware.org Received: from einhorn.in-berlin.de (HELO einhorn.in-berlin.de) (192.109.42.8) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 10 Oct 2011 11:27:43 +0000 X-Envelope-From: doko@ubuntu.com Received: from [192.168.42.213] (dslb-088-073-080-013.pools.arcor-ip.net [88.73.80.13]) (authenticated bits=0) by einhorn.in-berlin.de (8.13.6/8.13.6/Debian-1) with ESMTP id p9ABRaD8024451; Mon, 10 Oct 2011 13:27:36 +0200 Message-ID: <4E92D68A.6080308@ubuntu.com> Date: Mon, 10 Oct 2011 11:27:00 -0000 From: Matthias Klose User-Agent: Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 MIME-Version: 1.0 To: Andrew Haley CC: Paul Brook , gcc-patches@gcc.gnu.org, GCC Java , Nicola Pero Subject: Re: [patch] C6X unwinding/exception handling References: <201108041531.58790.paul@codesourcery.com> <201109131348.13087.paul@codesourcery.com> <4E9180F5.3050203@ubuntu.com> <4E92C9D0.10106@redhat.com> In-Reply-To: <4E92C9D0.10106@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact java-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-owner@gcc.gnu.org X-SW-Source: 2011-10/txt/msg00003.txt.bz2 On 10/10/2011 12:32 PM, Andrew Haley wrote: > On 10/09/2011 12:09 PM, Matthias Klose wrote: >> This did break libobjc and libjava on arm-linux-gnueabi. >> >> libobjc now has an undefined reference to _Unwind_decode_target2, which can be >> avoided with with this patch, the libobjc testsuite results looks as before this change. >> >> --- libobjc/exception.c.orig 2011-07-21 15:33:57.000000000 +0000 >> +++ libobjc/exception.c 2011-10-09 10:53:12.554940776 +0000 >> @@ -182,7 +182,7 @@ >> _Unwind_Ptr ptr; >> >> ptr = (_Unwind_Ptr) (info->TType - (i * 4)); >> - ptr = _Unwind_decode_target2 (ptr); >> + ptr = _Unwind_decode_typeinfo_ptr (info->ttype_base, (_Unwind_Word) ptr); >> >> /* NULL ptr means catch-all. Note that if the class is not found, >> this will abort the program. */ >> >> libjava fails to build, the same change doesn't work for libjava/exception.cc, >> because the struct lsda_header_info in exception.cc is missing the ttype_base >> member. Any suggestions? > > Is this fixable without backing out Paul Brooks' patch? currently testing Index: libjava/exception.cc =================================================================== --- libjava/exception.cc (revision 179739) +++ libjava/exception.cc (working copy) @@ -135,6 +135,7 @@ { _Unwind_Ptr Start; _Unwind_Ptr LPStart; + _Unwind_Ptr ttype_base; const unsigned char *TType; const unsigned char *action_table; unsigned char ttype_encoding; @@ -184,7 +185,7 @@ _Unwind_Ptr ptr; ptr = (_Unwind_Ptr) (info->TType - (i * 4)); - ptr = _Unwind_decode_target2(ptr); + ptr = _Unwind_decode_typeinfo_ptr (info->ttype_base, (_Unwind_Word) ptr); return reinterpret_cast(ptr); } @@ -325,6 +326,7 @@ // Parse the LSDA header. p = parse_lsda_header (context, language_specific_data, &info); + info.ttype_base = base_of_encoded_value (info.ttype_encoding, context); #ifdef HAVE_GETIPINFO ip = _Unwind_GetIPInfo (context, &ip_before_insn); #else