On 25/03/15 00:03, Justin Cormack wrote:
As a diversion I tried a few different architectures, to get some new problems.
Arm: works other than need to work around some eabi symbol alias
conflicts. Should be simple to resolve.
Powerpc: Fails to build libc on Linux as wchar_t on linux is a long
while on NetBSD it is an int. Solution is probably to use NetBSD on
ppc32, or to build a compiler with different wchar... or find an
option to stop it complaining. ppc64 should be ok, will try that at
some point.
Is it a printf thing or something else? There's already a -Wno-format
hook in buildrump.sh in case there's a size_t confusion for 32bit targets.
mips: runs fine apart from my fiber switching code is broken, will fix it.
See mips run for not very long if it can't context switch ;)
Hijacking this thread a bit, some time ago there was discussion about
how you should tell the target architecture to build-rr.sh in rumprun.
Due to last week's toolchain wrapper work, I think the answer is now
manifest. Target architecture selection can work exactly the same way
as it works for buildrump.sh: inferred from the compiler.
So if you do "CC=i386-whatever-gcc ./build-rr.sh xen", you get a i386
version of rumprun for xen, and if you do "CC=arm-whatever-cc
./build-rr.sh baremetal" you get an error, since there's no such thing
as a generic arm board. So we probably need some switch like -b(oard).
But that becomes relevant only when support for the first ARM board
hits /baremental.
Also, summarizing the proposed terminology:
architecture = CPU ISA
platform = the layer above architecture (baremetal, frankenlibc, xen)
board = specific hardware configuration (probably valid only for
/baremetal?)