On Sat, Nov 27, 2010 at 1:16 AM, Andreas Färber andreas.faerber@web.de wrote:
Am 26.11.2010 um 20:52 schrieb Blue Swirl:
On Thu, Nov 25, 2010 at 10:04 PM, Andreas Färber andreas.faerber@web.de wrote:
Starting with [r969],
qemu-system-ppc64 -bios .../obj-ppc64/openbios-qemu.elf -prom-env 'auto-boot?=false'
should take you to the Forth prompt.
I still get this: GEN bootstrap.dict panic: segmentation violation at 0x9034862c dict=0x2aae90348010 here=0x2aae90348638(dict+0x628) pc=0x0(dict+0x6fcb7ff0) dstackcnt=0 rstackcnt=0 instruction=deadbeef dstack: 0x0 rstack: 0x0 Writing dictionary core file
This happens on a 64 bit host, but not on a 32 bit host.
So I guess it might be an issue with the HOST_EQUALS_NATIVE_BITWIDTH path? The addresses are not confined to lower 32 bits so cannot be saved in ucells.
I built forthstrap on a 32 bit host to get further, but then I got: LINK openbios-qemu.elf libqemu.a(init.o): In function `go': /src/openbios-devel/obj-ppc64/../arch/ppc/qemu/init.c:533: undefined reference to `.call_elf'
[snip]
Sounds as if -m32 or the like is being passed to powerpc64-linux-ld? Dotted symbols only get generated for ppc64 target.
No, LINK equals to (with V=1):
powerpc64-linux-ld --warn-common -N -T ../arch/ppc64/qemu/ldscript -o openbios-qemu.elf.nostrip --whole-archive target/arch/ppc/qemu/start.o target/arch/ppc/timebase.o libqemu.a libbootstrap.a libopenbios.a libpackages.a libdrivers.a libfs.a liblibc.a libgcc.a
This is with powerpc64-linux-gcc compiler: $ powerpc64-linux-gcc -v Using built-in specs. COLLECT_GCC=powerpc64-linux-gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/powerpc64-linux/4.6.0/lto-wrapper Target: powerpc64-linux Configured with: ../configure --target=powerpc64-linux --enable-targets=powerpc64-linux --disable-nls --disable-threads --enable-languages=c --disable-shared --disable-libssp --disable-multilib --disable-decimal-float Thread model: single gcc version 4.6.0 20100925 (experimental) (GCC)
I used:
$ powerpc64-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=powerpc64-linux-gnu-gcc COLLECT_LTO_WRAPPER=/Users/andreas/QEMU/OpenBIOS/bin/libexec/gcc/powerpc64-linux-gnu/4.5.1/lto-wrapper Target: powerpc64-linux-gnu Configured with: ../gcc-4.5.1/configure --prefix=/Users/andreas/QEMU/OpenBIOS/bin --target=powerpc64-linux-gnu --enable-targets=all --disable-nls --disable-threads --enable-languages=c --disable-shared --disable-libssp --disable-decimal-float --disable-libmudflap --disable-libgomp --without-headers --enable-checking=release --with-gmp=/Users/andreas/QEMU/OpenBIOS/bin --with-mpfr=/Users/andreas/QEMU/OpenBIOS/bin Thread model: single gcc version 4.5.1 (GCC)
Same with powerpc64-linux-gcc 4.5.1 on Darwin/x86. binutils are 2.20.1.
$ powerpc64-linux-ld -V GNU ld (GNU Binutils) 2.20.1.20100303 Supported emulations: elf64ppc elf32ppclinux elf32ppc elf32ppcsim