From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57863) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XEMph-0002nF-RL for qemu-devel@nongnu.org; Mon, 04 Aug 2014 14:18:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XEMpY-0007oc-QE for qemu-devel@nongnu.org; Mon, 04 Aug 2014 14:18:05 -0400 Message-ID: <53DFCE47.6050003@gmail.com> Date: Mon, 04 Aug 2014 13:17:43 -0500 From: Tom Musta MIME-Version: 1.0 References: <1407170739-12237-1-git-send-email-tommusta@gmail.com> <1407170739-12237-11-git-send-email-tommusta@gmail.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 10/12] linux-user: clock_nanosleep errno Handling on PPC List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Riku Voipio , "qemu-ppc@nongnu.org" , QEMU Developers , Alexander Graf On 8/4/2014 12:43 PM, Peter Maydell wrote: > On 4 August 2014 17:45, Tom Musta wrote: >> The clock_nanosleep syscall is unusual in that it returns positive >> numbers in error handling situations, versus returning -1 and setting >> errno, or returning a negative errno value. On POWER, the kernel will >> set the SO bit of CR0 to indicate failure in a syscall. QEMU has >> generic handling to do this for syscalls with standard return values. >> >> Add special case code for clock_nanosleep to handle CR0 properly. >> >> Signed-off-by: Tom Musta >> >> diff --git a/linux-user/syscall.c b/linux-user/syscall.c >> index 95cee0b..5660520 100644 >> --- a/linux-user/syscall.c >> +++ b/linux-user/syscall.c >> @@ -8993,6 +8993,14 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, >> ret = get_errno(clock_nanosleep(arg1, arg2, &ts, arg4 ? &ts : NULL)); >> if (arg4) >> host_to_target_timespec(arg4, &ts); >> + >> +#if defined(TARGET_PPC) || defined(TARGET_PPC64) > > ...isn't TARGET_PPC always defined if TARGET_PPC64 is? > (ie second condition in the || is unnecessary) > > -- PMM > You are correct. I was thinking "TARGET_PPC" was a euphemism for 32 bit Power (since --target=ppc-softmmy,ppc-linux-user are used to configure 32 bit implementations). But I see now in config-target.h that this is not the case.