[openfirmware] Problem compiling OpenFirmware for ppc

Christian Johansson christ64 at gmail.com
Thu Nov 19 13:39:30 CET 2009


Hi!

Thank you for your answer.
Let me start by saying that this project is just for my own amusement.

Well, what I'm trying to do is to use openfirmware as firmware for
qemu-system-ppc(64).

The far-far end of this project is trying to get AIX to boot somehow ...
(Really doubt it myself, but anyway ...)


After doing extreme amounts of violence on wrapper.c,
(there is some sort of mixup with AIX - macros)
i got forth to compile cleanly on AIX 32-bits.

Unfortunately, now the build process bails out with:

./build basefw.dic
--- Rebuilding kernel.dic
--- Cmd: ${HOSTDIR}/forth ${HOSTDIR}/../build/builder.dic ../kernel.bth
${BP}/forth/kernel/meta1.fth:62: tag-file ?
${BP}/forth/kernel/meta1.fth:62: tag-file ?
${BP}/forth/kernel/meta1.fth:64: tag-file ?
${BP}/cpu/ppc/metainit.fth:27: Undefined word encountered
make: *** [basefw.dic] Error 1

HOSTDIR is ~/openfirmware/cpu/ppc/AIX, which contains the forth-binary.

Any ideas what can cause this?

//Br





//Br

2009/11/16 Mitch Bradley <wmb at laptop.org>

> The last time I got anywhere near a 64-bit PPC machine was something like
> 13 years ago, so I'm afraid I know almost nothing at all about how things
> work on powerpc64-*-linux.
>
> You might try gdb to see where it's dying.
>
> I'm not surprised that it doesn't work.  I'm not sure the OFW build system
> for PPC has ever been adapted to 64-bit Linux.  When FirmWorks was last
> working with 64 bit PPC machines, the customer was using AIX.  PPC Linux
> only came out towards the end of that project, and probably didn't run on
> 64-bit systems, as few were available then.
>
> If I recall correctly, on 64-bit systems like the 620 processor, we ran OFW
> with 32-bit stacks, with the ability to access data in the 64-bit address
> space.  If powerpc64-suse-linux is a full 64-bit execution environment,
> that's probably not going to play well with a 32-bit Forth kernel.  The ppc
> kernel code appears to be parameterized so it could be extended to 64-bit
> stacks with some effort (as was the SPARC kernel), but I don't see any
> evidence in my archived source trees that a 64-bit PPC Forth kernel was ever
> built.
>
> Apple and IBM made it pretty difficult for FirmWorks to make any money in
> the PowerPC market, by either giving away or bundle-licensing their own
> internally-developed OFW implementations.  As a result, FirmWorks had to
> abandon the PPC market and focus on other processors.  FirmWorks' core OFW
> implementation on PowerPC had reached a high level of stability by that
> point, but since then there has been very little further development,
> especially in the area of support for more current build environments.  We
> did port the builder to mklinux, for use in an embedded project that
> targeted MPC823, but development sort of stalled after that.
>
> What is your intended application?  If this is a project with commercial
> implications, I am available for consulting help.  If it's just for
> curiosity, I can perhaps give you some pointers, but can't spend a lot of
> time on it.
>
> Mitch Bradley
>
>
> Christian Johansson wrote:
>
>> Hi!
>> I'm trying to compile of, rev. 1484 on Linux-ppc64, but after 'forth' has
>> been built,
>> it segfaults when running "./build basefw.dic"
>>
>> First try, i got:
>>
>> Can't find environment variable HOSTDIR in ${HOSTDIR}/../build/builder.dic
>> forth: Can't open dictionary file ${HOSTDIR}/../build/builder.dic
>> make: *** [basefw.dic] Error 1
>>
>> So I'd set HOSTDIR=$HOME/of2/openfirmware/cpu/ppc/Linux
>>
>> After this, I'm just getting:
>> ./build basefw.dic
>> forth: Segmentation fault
>> make: *** [basefw.dic] Quit
>>
>> When running make in $HOME/of2/openfirmware/cpu/ppc/build
>>
>> I'm using:
>>  chjo at op5p1:~/of/of2/openfirmware/cpu/ppc/build> gcc --v
>> Using built-in specs.
>> Target: powerpc64-suse-linux
>> Configured with: ../configure --enable-threads=posix --prefix=/usr
>> --with-local-prefix=/usr/local --infodir=/usr/share/info
>> --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib
>> --enable-languages=c,c++,objc,fortran,obj-c++,java,ada
>> --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.2.1
>> --enable-ssp --disable-libssp --disable-libgcj --with-slibdir=/lib
>> --with-system-zlib --enable-shared --enable-__cxa_atexit
>> --enable-libstdcxx-allocator=new --disable-libstdcxx-pch
>> --program-suffix=-4.2 --enable-version-specific-runtime-libs
>> --without-system-libunwind --with-cpu=default32 --enable-secureplt
>> --with-long-double-128 --host=powerpc64-suse-linux
>> Thread model: posix
>> gcc version 4.2.1 (SUSE Linux)
>>
>> Any advice how to proceed?
>>
>> //Br
>> ------------------------------------------------------------------------
>>
>>
>> _______________________________________________
>> openfirmware mailing list
>> openfirmware at openfirmware.info
>> https://openfirmware.info/mailman/listinfo/openfirmware
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openfirmware.info/pipermail/openfirmware/attachments/20091119/5d833c70/attachment.htm>


More information about the openfirmware mailing list