[OpenBIOS] powerpc64-elf (was: starting)

Andreas Färber andreas.faerber at web.de
Mon Oct 4 00:36:08 CEST 2010


Am 03.10.2010 um 16:07 schrieb Blue Swirl:

> In theory, adding powerpc64-elf support to GCC should be a matter of
> adding a target Makefile fragment (t-elf64) to gcc/config/rs6000,
> maybe some other small changes.

Here's what I tried so far based on the 4.4 branch and t-linux64:

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 6f72224..794655a 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1816,6 +1816,14 @@ powerpc-*-elf*)
         extra_options="${extra_options} rs6000/sysv4.opt"
         tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t- 
ppcgas rs6000/t-ppccomm"
         ;;
+powerpc64-*-elf*)
+       tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd- 
spec.h rs6000/sysv4.h"
+       test x$with_cpu != x || cpu_is_64bit=yes
+       test x$cpu_is_64bit != xyes || tm_file="${tm_file} rs6000/ 
default64.h"
+       tm_file="rs6000/biarch64.h ${tm_file}"
+       extra_options="${extra_options} rs6000/sysv4.opt"
+       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t- 
ppcgas rs6000/t-ppccomm rs6000/t-elf64"
+       ;;
  powerpc-*-eabialtivec*)
         tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h  
rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabialtivec.h"
         extra_options="${extra_options} rs6000/sysv4.opt"
diff --git a/gcc/config/rs6000/t-elf64 b/gcc/config/rs6000/t-elf64
new file mode 100644
index 0000000..b95a291
--- /dev/null
+++ b/gcc/config/rs6000/t-elf64
@@ -0,0 +1,26 @@
+
+#rs6000/t-elf64
+
+LIB2FUNCS_EXTRA += tramp.S $(srcdir)/config/rs6000/ppc64-fp.c \
+       $(srcdir)/config/rs6000/darwin-ldouble.c
+LIB2FUNCS_EXTRA := $(sort $(LIB2FUNCS_EXTRA))
+
+TARGET_LIBGCC2_CFLAGS += -mno-minimal-toc
+
+# On Debian, Ubuntu and other derivative distributions, the 32bit  
libraries
+# are found in /lib32 and /usr/lib32, /lib64 and /usr/lib64 are  
symlinks to
+# /lib and /usr/lib, while other distributions install libraries  
into /lib64
+# and /usr/lib64.  The LSB does not enforce the use of /lib64 and / 
usr/lib64,
+# it doesn't tell anything about the 32bit libraries on those  
systems.  Set
+# MULTILIB_OSDIRNAMES according to what is found on the target.
+
+MULTILIB_OPTIONS        = m64/m32 msoft-float
+MULTILIB_DIRNAMES       = 64 32 nof
+MULTILIB_EXTRA_OPTS     = fPIC mstrict-align
+MULTILIB_EXCEPTIONS     = m64/msoft-float
+MULTILIB_EXCLUSIONS     = m64/!m32/msoft-float
+MULTILIB_OSDIRNAMES    = ../lib64 ../lib nof
+MULTILIB_MATCHES        = $(MULTILIB_MATCHES_FLOAT)
+
+softfp_wrap_start := '\#ifndef __powerpc64__'
+softfp_wrap_end := '\#endif'


Result:

Configuring in powerpc64-elf/libgcc
configure: creating cache ./config.cache
checking for --enable-version-specific-runtime-libs... no
checking for a BSD-compatible install... /usr/bin/install -c
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking build system type... powerpc-apple-darwin9.8.0
checking host system type... powerpc64-unknown-elf
checking for powerpc64-elf-ar... /Users/andreas/QEMU/OpenBIOS/bin/ 
powerpc64-elf/bin/ar
checking for powerpc64-elf-lipo... powerpc64-elf-lipo
checking for powerpc64-elf-nm... /Users/andreas/QEMU/OpenBIOS/gcc- 
ppc64/./gcc/nm
checking for powerpc64-elf-ranlib... /Users/andreas/QEMU/OpenBIOS/bin/ 
powerpc64-elf/bin/ranlib
checking for powerpc64-elf-strip... /Users/andreas/QEMU/OpenBIOS/bin/ 
powerpc64-elf/bin/strip
checking whether ln -s works... yes
checking for powerpc64-elf-gcc... /Users/andreas/QEMU/OpenBIOS/gcc- 
ppc64/./gcc/xgcc -B/Users/andreas/QEMU/OpenBIOS/gcc-ppc64/./gcc/ -B/ 
Users/andreas/QEMU/OpenBIOS/bin/powerpc64-elf/bin/ -B/Users/andreas/ 
QEMU/OpenBIOS/bin/powerpc64-elf/lib/ -isystem /Users/andreas/QEMU/ 
OpenBIOS/bin/powerpc64-elf/include -isystem /Users/andreas/QEMU/ 
OpenBIOS/bin/powerpc64-elf/sys-include
checking for suffix of object files... configure: error: in `/Users/ 
andreas/QEMU/OpenBIOS/gcc-ppc64/powerpc64-elf/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[1]: *** [configure-target-libgcc] Error 1
make: *** [all] Error 2


Andreas



More information about the OpenBIOS mailing list