From owner-freebsd-arm@freebsd.org Tue Feb 7 18:47:06 2017 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9409CD41D9 for ; Tue, 7 Feb 2017 18:47:06 +0000 (UTC) (envelope-from freebsd.contact@marino.st) Received: from shepard.synsport.com (mail.synsport.com [208.69.230.148]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B4C6D1627 for ; Tue, 7 Feb 2017 18:47:06 +0000 (UTC) (envelope-from freebsd.contact@marino.st) Received: from [127.0.0.1] (ip72-204-83-236.fv.ks.cox.net [72.204.83.236]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by shepard.synsport.com (Postfix) with ESMTP id 1EC1143CC8; Tue, 7 Feb 2017 12:45:22 -0600 (CST) To: freebsd-arm@freebsd.org Reply-To: marino@freebsd.org From: John Marino Subject: ARM64: PC/IP not saved in signal frame Cc: Andreas Tobler Message-ID: <530c18cd-d50d-4709-a0ca-22324a0cb592@marino.st> Date: Tue, 7 Feb 2017 12:47:01 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 X-Antivirus: avast! (VPS 170206-3, 02/06/2017), Outbound message X-Antivirus-Status: Clean Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Feb 2017 18:47:06 -0000 Hi guys, I've been struggling to provide unwind support on the aarch64-*-freebsd* target of FreeBSD. The only working example on this arch is aarch64-linux (attached). I think I'm 99% done with the freebsd version (attached) but the last value that needs to be pass to the _Unwind_FrameState is the program counter offset. I know the PC is not register-based on aarch64. Linux still saves the value in the signal context, but AFAICT FreeBSD does not. Can somebody A) confirm that the program counter is missing from the saved signal context B) confirm that it needs to be added for proper signal frame unwinding? Alternatively, maybe somebody can figure out a solution given the current freebsd structures, but I'm losing hope on that one. (line 99) Regards, John