Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Oct 2017 10:44:55 +0100
From:      Tijl Coosemans <tijl@FreeBSD.org>
To:        Andreas Tobler <andreast-list@fgznet.ch>
Cc:        Konstantin Belousov <kostikbel@gmail.com>, freebsd-current@FreeBSD.org, gerald@FreeBSD.org
Subject:   Re: Segfault in _Unwind_* code called from pthread_exit
Message-ID:  <20171031104455.48dd7c3c@kalimero.tijl.coosemans.org>
In-Reply-To: <9468430e-fda4-10f4-b6a0-aa40d7d64f5b@fgznet.ch>
References:  <20170823163707.096f93ab@kalimero.tijl.coosemans.org> <20170824154235.GD1700@kib.kiev.ua> <20170824180830.199885b0@kalimero.tijl.coosemans.org> <20170825173851.09116ddc@kalimero.tijl.coosemans.org> <20170825234442.GO1700@kib.kiev.ua> <20170826202813.1240a1ef@kalimero.tijl.coosemans.org> <20170826184034.GR1700@kib.kiev.ua> <20171029182351.502f53cf@kalimero.tijl.coosemans.org> <20171029191358.GU2566@kib.kiev.ua> <9a724da4-70f1-4330-9a77-619739008a14@fgznet.ch> <20171030153207.15a42a1e@kalimero.tijl.coosemans.org> <9468430e-fda4-10f4-b6a0-aa40d7d64f5b@fgznet.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 30 Oct 2017 22:54:05 +0100 Andreas Tobler <andreast-list@fgznet.ch> wrote:
> On 30.10.17 15:32, Tijl Coosemans wrote:
>> On Sun, 29 Oct 2017 20:40:46 +0100 Andreas Tobler <andreast-list@fgznet.ch> wrote:  
>>> Attached what I have for libgcc. It can be applied to gcc5-8, should
>>> give no issues. The mentioned tc from this thread and mine,
>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82635 do pass.
>>>
>>> What do you think?  
>> 
>> Like I said before the return address can be anything.  It could for
>> instance point to some instruction in a random function and then the
>> stack unwinder will think thread_start was called from that function.
>> There's no check you can add to libgcc to distinguish that from a
>> normal valid return address.
>
> Maybe not, and most probably I do not understand what is happening. But 
> with my modification I survive the test case.
> 
> If no objections from your or Konstantin's side come up I will commit it 
> to the gcc repo. It will not 'fix' the issue, but it will improve the 
> gcc behavior.

The patch looks good to me.  KERN_PROC_SIGTRAMP was added in 9.3 it
seems.  If gcc wants to support older versions you may have to use an
#ifdef like Konstantin did in his first reply in this thread.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20171031104455.48dd7c3c>