I changed dictionary array cells' relocation expression to a more flexible one and moved the array header so that the ELF section of the array can be adjusted on PPC64. Now all architectures use the same methods.
AMD64-unix, Sparc32, Sparc64, PPC32 and PPC64 seem to work.
Blue Swirl (4): sparc32: avoid runtime relocations sparc64: avoid runtime relocations x86: avoid runtime relocations ppc: avoid runtime relocations
arch/ppc/build.xml | 6 +-- arch/ppc/qemu/kernel.c | 23 +++++++++-- arch/ppc/qemu/ofmem.c | 2 +- arch/ppc64/qemu/ldscript | 7 +++ arch/sparc32/build.xml | 6 +-- arch/sparc32/builtin.c | 12 +++++- arch/sparc32/ofmem_sparc32.c | 2 +- arch/sparc32/openbios.c | 10 ++--- arch/sparc64/build.xml | 6 +-- arch/sparc64/builtin.c | 12 +++++- arch/sparc64/ofmem_sparc64.c | 2 +- arch/sparc64/openbios.c | 10 ++--- arch/x86/build.xml | 6 +-- arch/x86/builtin.c | 12 +++++- arch/x86/openbios.c | 12 ++---- include/libopenbios/sys_info.h | 2 + kernel/bootstrap.c | 82 ++++++++++++++++++++++++++++++++++++---- 17 files changed, 150 insertions(+), 62 deletions(-)