From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 93020 invoked by alias); 11 Dec 2015 13:20:39 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 93009 invoked by uid 89); 11 Dec 2015 13:20:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 11 Dec 2015 13:20:37 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id E60B732C414; Fri, 11 Dec 2015 13:20:35 +0000 (UTC) Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tBBDKY7r029888; Fri, 11 Dec 2015 08:20:35 -0500 Message-ID: <566ACDA2.1060200@redhat.com> Date: Fri, 11 Dec 2015 13:20:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Antoine Tremblay , Yao Qi CC: gdb-patches@sourceware.org Subject: Re: [PATCH v7 3/8] Use xml-syscall to compare syscall numbers in arm_linux_sigreturn_return-addr. References: <1449583641-18156-1-git-send-email-antoine.tremblay@ericsson.com> <1449583641-18156-4-git-send-email-antoine.tremblay@ericsson.com> <86io45ql3x.fsf@gmail.com> <566ABA91.5000508@redhat.com> <566ABB44.3080004@gmail.com> <566ABC0C.10101@redhat.com> <566AC23B.6060800@ericsson.com> <566AC5EA.4090204@redhat.com> <566AC9F2.8090906@ericsson.com> In-Reply-To: <566AC9F2.8090906@ericsson.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2015-12/txt/msg00228.txt.bz2 On 12/11/2015 01:04 PM, Antoine Tremblay wrote: > > > On 12/11/2015 07:47 AM, Pedro Alves wrote: >> On 12/11/2015 12:31 PM, Antoine Tremblay wrote: >>> >>> >>> On 12/11/2015 07:05 AM, Pedro Alves wrote: >>>> On 12/11/2015 12:02 PM, Yao Qi wrote: >>>>> On 11/12/15 11:59, Pedro Alves wrote: >>>>>> but then you might as well just do: >>>>>> >>>>>> #define ARM_SIGRETURN 119 >>>>> >>>>> How about using __NR_sigreturn and __NR_rt_sigreturn directly? like >>>>> what patch #6 does. >>>> >>>> Those are host/native macros. Only make sense for the running host. >>>> Can't use that in a tdep file, like arm-linux-tdep.c. Otherwise, e.g., >>>> a x86-hosted cross debugger would be using the x86 __NR_sigreturn, etc. >>>> >>> >>> Exactly that's why I use those only in GDBServer. >> >> Hmm, actually, that sounds wrong. >> >> What about Aarch64 gdbserver debugging Aarch32? >> >> I see that the new code in question in patch #6 is in gdbserver/linux-arm-low.c, >> which is not built on Aarch64, but, shouldn't that new arm_sigreturn_next_pc >> code be used in the biarch scenario as well? >> > > This is only used if we need software single stepping, I think in that > case hardware single stepping will be used on aarch64 even if stepping > over an arm32 program, Yao can confirm ? Ah, I think you're right. > > >> If you just made that 32-bit-specific code compile on Aarch64 it would >> be compiling against Aarch64's __NR_sigreturn, which I'd assume is wrong for Aarch32. >> >>> > > Looking at the kernel code in linux/arch/arm64 I see : > > include/asm/unistd.h:#define __NR_compat_sigreturn 119 > include/asm/unistd.h:#define __NR_compat_rt_sigreturn 173 > > include/asm/unistd32.h:#define __NR_sigreturn 119 > include/asm/unistd32.h:__SYSCALL(__NR_sigreturn, > compat_sys_sigreturn_wrapper) > > include/asm/unistd32.h:#define __NR_rt_sigreturn 173 > include/asm/unistd32.h:__SYSCALL(__NR_rt_sigreturn, > compat_sys_rt_sigreturn_wrapper) > > So I think it's ok... but I can't compile on aarch64 at the moment. >From that, it seems to be that Aarch64 64-bit doesn't even have __NR_sigreturn. The one we see above is in unistd32.h, which should mean it's only included when compiling 32-bit code. So it seems like if you tried to reference __NR_sigreturn on Aarch64, you'd get a build failure. Note there are Aarch64 Ubuntu machines on the gcc compile farm. But, it's moot if we do hardware stepping. Thanks, Pedro Alves