Otherwise it chokes on ducell in include/kernel/stack.h.
Signed-off-by: Andreas Färber andreas.faerber@web.de --- It seems I only mentioned this on the list but never sent a proper patch. http://www.openfirmware.info/pipermail/openbios/2009-November/004192.html
Not sure about Linux/ppc or Darwin/x86, so I've limited it to Darwin/ppc for now.
Regards, Andreas
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" fi
CROSSCFLAGS=$cflags
Thanks, applied as r876.
On Sun, Sep 19, 2010 at 9:39 AM, Andreas Färber andreas.faerber@web.de wrote:
Otherwise it chokes on ducell in include/kernel/stack.h.
Signed-off-by: Andreas Färber andreas.faerber@web.de
It seems I only mentioned this on the list but never sent a proper patch. http://www.openfirmware.info/pipermail/openbios/2009-November/004192.html
Not sure about Linux/ppc or Darwin/x86, so I've limited it to Darwin/ppc for now.
Regards, Andreas
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"
fi
CROSSCFLAGS=$cflags
1.7.0.4
-- OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you
Am 03.10.2010 um 08:54 schrieb Blue Swirl:
Thanks, applied as r876.
Thanks.
On Sun, Sep 19, 2010 at 9:39 AM, Andreas Färber <andreas.faerber@web.de
wrote: Otherwise it chokes on ducell in include/kernel/stack.h.
Signed-off-by: Andreas Färber andreas.faerber@web.de
It seems I only mentioned this on the list but never sent a proper patch. http://www.openfirmware.info/pipermail/openbios/2009-November/004192.html
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.
Andreas
Regards, Andreas
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"
fi
CROSSCFLAGS=$cflags
-- 1.7.0.4
On Sun, Oct 3, 2010 at 10:00 AM, Andreas Färber andreas.faerber@web.de wrote:
Am 03.10.2010 um 08:54 schrieb Blue Swirl:
Thanks, applied as r876.
Thanks.
On Sun, Sep 19, 2010 at 9:39 AM, Andreas Färber andreas.faerber@web.de wrote:
Otherwise it chokes on ducell in include/kernel/stack.h.
Signed-off-by: Andreas Färber andreas.faerber@web.de
It seems I only mentioned this on the list but never sent a proper patch.
http://www.openfirmware.info/pipermail/openbios/2009-November/004192.html
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.
I'm not sure what the real solution is. So far the fake stuff was only limited to host forthstrap.
Perhaps we should add a library with arbitrary precision arithmetic and use that explicitly for ducell math, maybe even for other cases to avoid any libgcc use.