Detect ppc64 as Big Endian and 64-bit. Reuse arch/ppc/ wherever possible.
Signed-off-by: Andreas Färber andreas.faerber@web.de --- The -m64 is not yet working in my gcc configuration. Using -mcpu=powerpc64 instead, the C files compiled but despite tweaking the linker script and adding -melf64ppc to LD there was a mismatch:
powerpc-elf-ld: powerpc:common64 architecture of input file `target/arch/ppc/qemu/start.o' is incompatible with powerpc:common output [...]
config/scripts/switch-arch | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/config/scripts/switch-arch b/config/scripts/switch-arch index 60782e9..027632d 100755 --- a/config/scripts/switch-arch +++ b/config/scripts/switch-arch @@ -38,6 +38,7 @@ crosscflags() fi
if test "$target" = "powerpc" -o "$target" = "ppc" \ + -o "$target" = "powerpc64" -o "$target" = "ppc64" \ -o "$target" = "mips" -o "$target" = "s390" \ -o "$target" = "sparc32" -o "$target" = "sparc64" \ -o "$target" = "m68k" -o "$target" = "armv4b"; then @@ -49,6 +50,7 @@ crosscflags() # target long bits test if test "$target" = "sparc64" -o "$target" = "ia64" \ -o "$target" = "amd64" -o "$target" = "x86_64" \ + -o "$target" = "powerpc64" -o "$target" = "ppc64" \ -o "$target" = "alpha"; then targetlongbits="64" else @@ -139,6 +141,12 @@ for RULES_ARCH in $*; do AS_FLAGS= ;;
+ ppc64) + select_prefix powerpc + CFLAGS="-Wa,-a64 -m64 -msoft-float -fno-builtin-bcopy -fno-builtin-log2" + AS_FLAGS="-Wa,-a64" + ;; + sparc32) select_prefix sparc CFLAGS="-Wa,-xarch=v8 -Wa,-32 -m32 -mcpu=supersparc -fno-builtin" @@ -192,9 +200,15 @@ for RULES_ARCH in $*; do mkdir -p $OBJDIR/host/include mkdir -p $OBJDIR/host/kernel mkdir -p $OBJDIR/forth - ln -s ../../../include/arch/$ARCH $OBJDIR/target/include/asm + + INCLUDEARCH=$ARCH + if test "$ARCH" = "ppc64"; then + INCLUDEARCH=ppc + fi + ln -s ../../../include/arch/$INCLUDEARCH $OBJDIR/target/include/asm #compile the host binary with target settings instead #ln -s ../../../include/arch/$HOSTARCH $OBJDIR/host/include/asm + echo "ok."
cd $OBJDIR