From patchwork Tue May 1 19:48:21 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [3/8] linux-user: Fix undefined HOST_LONG_SIZE on PPC hosts From: Alexander Graf X-Patchwork-Id: 156196 Message-Id: <6AE2C3A0-C56C-43D9-86CB-9DB62087AD67@suse.de> To: Peter Maydell Cc: blauwirbel@gmail.com, qemu-ppc@nongnu.org, =?iso-8859-1?Q?Andreas_F=E4rber?= , qemu-devel Developers Date: Tue, 1 May 2012 21:48:21 +0200 On 01.05.2012, at 21:11, Peter Maydell wrote: > On 1 May 2012 19:54, Alexander Graf wrote: >> >> On 01.05.2012, at 20:32, Andreas Färber wrote: >> >>> Am 01.05.2012 10:58, schrieb Alexander Graf: >>>> On my PPC host, HOST_LONG_SIZE is not defined even after >>>> running configure. Use the normal C way of determining the >>>> long size instead. >>>> >>>> Signed-off-by: Alexander Graf >>>> --- >>>> thunk.h | 2 +- >>>> 1 files changed, 1 insertions(+), 1 deletions(-) >>>> >>>> diff --git a/thunk.h b/thunk.h >>>> index 5be8f91..87025c3 100644 >>>> --- a/thunk.h >>>> +++ b/thunk.h >>>> @@ -113,7 +113,7 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host) >>>> defined(HOST_PARISC) || defined(HOST_SPARC64) >>>> return 4; >>>> #elif defined(HOST_PPC) >>>> - return HOST_LONG_SIZE; >>>> + return sizeof(void *); >>> >>> malc has committed a different fix (TARGET_ABI_BITS / 8) - thanks for >>> fixing the build - but this PULL will now conflict. >> >> :(. >> >> Removed from my queue. > > We need to put out a patch which converts commit b754e4fc1 to > the fix as reviewed on the mailing list, because b754e4fc1 is > incorrect: it is returning the size of a target type when it > should be returning the size of a host type. Yes, you're right. Added the below patch onto the queue. Sending a new pull request now. Alex >From ddf1ddcf65866e2dd8e5d515bc636617fb2e15ee Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Mon, 30 Apr 2012 22:58:55 +0000 Subject: [PATCH 8/8] linux-user: Fix invalid TARGET_ABI_BITS usage on ppc hosts When trying to evaluate the size of the _host_ type size for olddev_t, we need to expose the host's pointer size, not the guest pointer size. This usage got introduced accidently in commit b754e4fc1. Fix things by not using TARGET_.*, but rather use host sizeof() information, which gives us the correct size. Reported-by: Peter Maydell Signed-off-by: Alexander Graf --- thunk.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/thunk.h b/thunk.h index c295766..87025c3 100644 --- a/thunk.h +++ b/thunk.h @@ -113,7 +113,7 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host) defined(HOST_PARISC) || defined(HOST_SPARC64) return 4; #elif defined(HOST_PPC) - return TARGET_ABI_BITS / 8; + return sizeof(void *); #else return 2; #endif