Hi Everyone As I saw a mail from Madhu Kiran with regard of forming a final image as part of the Kernel (i.e. dictionary part of the Kenel build). I knew this since openbios.full has kernel and dictionary built to-gether its correct right. The answer corresponds to the answer given by Stefan Reinauer.
I'm cross compiling Kernel-1.1 for my embedded processor still I havent updated my BSP part but I'll do it later once the dictionary and kernel independent part is built properly. Is it ok to go in this Way.
So while cross compiling kernel-1.1 using cross compiler on Linux based machine was able to compile Kernel part and the unix folder (Host) with changes done in the Makefile. The steps doing so are as follows:
1. In kernel-1.1 arch Documentation forth include kernel Makefile plugins README Rules.make Util
In Makefile
ARCH := $(shell uname -m | sed -e s/i.86/mips/)
Commented forth.html and plugins since I dint want .html to be formed and plugins since is was giving some error When compiled for x86.
all: main unix dictionary $(ARCH) # forth.html plugins
2. In directory /util
types.sh changes are
if [ -z "$CC" ]; then CC=mips_fp_le-gcc # cross compiler option for Target Board fi
#echo "void *pointersize;" > types.c #$CC -c -o types.o types.c #PTRSIZE=$(( 8 * 0x`nm types.o| grep pointersize | cut -f1 -d\ ` )) #rm -f types.c types.o
PTRSIZE=32 # since my Target is 32-bit processor
3. In arch/unix I made the chages with the following line added as per the little endian option
CC := mips_fp_le-gcc
include $(TOPDIR)/Rules.make
Can we do this ....
It even compiles the unix directory with the cross compiler option.
4. It gives problems with dictionary file what may be the problem with the following error code
[root@localhost kernel-1.1]# make
Welcome to OpenBIOS..
Creating build directory /home/viswa/kernel-1.1/obj-mips Checking types... Checkings in types.sh updated by SoCrates found 32bit platform, creating "types.h"
Building common core files for architecture mips compiling primitives.c... ok In Rules.make Compiler Used mips_fp_le-gcc compiling stack.c... ok In Rules.make Compiler Used mips_fp_le-gcc compiling dict.c... ok In Rules.make Compiler Used mips_fp_le-gcc compiling lib.c... ok In Rules.make Compiler Used mips_fp_le-gcc compiling openbios.c... ok In Rules.make Compiler Used mips_fp_le-gcc
Building files for unix hosted bootstrap compiling unix.c... ok In Rules.make Compiler Used mips_fp_le-gcc compiling plugins.c... ok [root@localhost obj-mips]# cd .. [root@localhost kernel-1.1]# make clean Cleaning up architecture mips [root@localhost kernel-1.1]# make
Welcome to OpenBIOS..
Creating build directory /home/viswa/kernel-1.1/obj-mips Checking types... Checkings in types.sh updated by SoCrates found 32bit platform, creating "types.h"
Building common core files for architecture mips compiling primitives.c... ok In Rules.make Compiler Used mips_fp_le-gcc compiling stack.c... ok In Rules.make Compiler Used mips_fp_le-gcc compiling dict.c... ok In Rules.make Compiler Used mips_fp_le-gcc compiling lib.c... ok In Rules.make Compiler Used mips_fp_le-gcc compiling openbios.c... ok In Rules.make Compiler Used mips_fp_le-gcc
Building files for unix hosted bootstrap compiling unix.c... ok In Rules.make Compiler Used mips_fp_le-gcc compiling plugins.c... ok In Rules.make Compiler Used mips_fp_le-gcc linking unix bootstrap... -rdynamic -ldl ok Bootstrapping dictionary.../bin/sh: ./unix: cannot execute binary file make[1]: *** [bootstrap.dict] Error 126 make: *** [dictionary] Error 2
This error is due to since we are trying to execute on different architecture to form the dictionary File.
Is there anyway to bypass or use Host compiler for dictionary forming and finally use this later along With the final image formation.
5. Is the image openbios.full a binary image or elf format and how to link to ROM i.e using ld sript to Map for the Target ROM address.
6. But with x86 was able to compile the kernel-1.1 without compiler option of forth.html and plugins Which could not find some ./config file what is the correction for it and why the plugins are needed.
In advance Thanks Viswa