[OpenBIOS] [commit] r969 - in trunk/openbios-devel/arch: ppc/qemu ppc64/qemu

Blue Swirl blauwirbel at gmail.com
Sat Nov 27 11:22:23 CET 2010


On Sat, Nov 27, 2010 at 1:16 AM, Andreas Färber <andreas.faerber at 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 at 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



More information about the OpenBIOS mailing list