[OpenBIOS] [PATCH] Darwin/ppc host needs fake int128_t for sparc64
andreas.faerber at web.de
Sun Oct 3 12:00:59 CEST 2010
Am 03.10.2010 um 08:54 schrieb Blue Swirl:
> Thanks, applied as r876.
> On Sun, Sep 19, 2010 at 9:39 AM, Andreas Färber <andreas.faerber at web.de
> > wrote:
>> Otherwise it chokes on ducell in include/kernel/stack.h.
>> Signed-off-by: Andreas Färber <andreas.faerber at web.de>
>> It seems I only mentioned this on the list but never sent a proper
>> Not sure about Linux/ppc or Darwin/x86, so I've limited it to
>> Darwin/ppc for now.
Darwin/x86 was already covered by the pre-existing "if" obviously.
Debian/ppc still doesn't want to install over my SATA controller.
Last night I ran into another related issue though. If I try to
compile a ppc64 version using the regular include/arch/ppc/types.h
cell sizes as indicated on the list, then after this patch and some
ppc64 preparations in config/scripts/switch-arch, include/kernel/
stack.h will try to access .lo and .hi fields although ppc doesn't
define ducell to be of 128-bit width.
My thinking was that we may need to split this up into
HOST_NEEDS_FAKE_128_T and TARGET_DCELL_128_BITS? Or should the ppc
definition be changed? For now I've just removed -DNEED_FAKE_128_T
from my config.mak.
>> config/scripts/switch-arch | 2 ++
>> 1 files changed, 2 insertions(+), 0 deletions(-)
>> diff --git a/config/scripts/switch-arch b/config/scripts/switch-arch
>> index c1158fa..8b6563d 100755
>> --- a/config/scripts/switch-arch
>> +++ b/config/scripts/switch-arch
>> @@ -71,6 +71,8 @@ crosscflags()
>> if test "$host" = "x86" -a "$targetlongbits" = "64"; then
>> cflags="$cflags -DNEED_FAKE_INT128_T"
>> + elif test "$host" = "ppc" -a "$targetlongbits" = "64" -a
>> `uname -s` = "Darwin"; then
>> + cflags="$cflags -DNEED_FAKE_INT128_T"
More information about the OpenBIOS