On Thu, 27 May 2010 14:34:09 -0700, David Daney <david.s.daney@xxxxxxxxx>
wrote:
On 05/27/2010 09:29 AM, octane indice wrote:
Response to Dmitri Vorobiev<dmitri.vorobiev@xxxxxxxxx> :
Just checked that the following steps result in a successful
build of a vanilla 2.6.34 vmlinux:
Thanks for taking the time to do it.
http://ftp.gnu.org/gnu/gcc/gcc-4.4.4/gcc-core-4.4.4.tar.bz2
tar jxf gcc-core-4.4.4.tar.bz2
cd ../build
../src/gcc-4.4.4/configure --target=mips64-unknown-linux-gnu
--prefix=/work/tmp/zoo --disable-threads --disable-shared
--disable-multilib --disable-libgcc --disable-libmudflap
--disable-libssp --disable-libgomp
make
It fails here with something related to stdc++. With adding a
--enable-language=c it works. So the configure line I used is:
../gcc-4.4.4/configure --target=mips64-unknown-linux-gnu
--prefix=/var/samba/mips --disable-threads --disable-shared
--disable-multilib --disable-libgcc --disable-libmudflap
--disable-libssp
--disable-libgomp --enable-languages=c
make ARCH=mips cavium-octeon_defconfig
make ARCH=mips
CROSS_COMPILE=/work/tmp/zoo/bin/mips64-unknown-linux-gnu- vmlinux
Hope that helps.
It helped me a lot, thank you. The kernel compiles fine.
The kernel is very huge: 39MBytes (!).
After a mips64-unknown-linux-gnu-strip, it downsized to 3.3MBytes.
But that kernel doesn't boot.
The system in the board I have uses in U-boot:
ext2load ide 0 4000000 vmlinux
bootoctlinux 4000000 (other args..)
But when I replace the vmlinux file with mine called 'mips', it says:
RSEC-K1# ext2load ide 0 4000000 mips
3362840 bytes read
WARNING: Data loaded outside of the reserved load area, memory
corruption
may occur.
WARNING: Please refer to the bootloader memory map documentation for
more
information.
RSEC-K1# bootoctlinux 4000000
ELF file is 64 bit
Attempting to allocate memory for ELF segment: addr: 0xffffffff81100000
(adjusted to: 0x0000000001100000), size 0x355c00
Allocated memory for ELF segment: addr: 0xffffffff81100000, size
0x355c00
Attempting to allocate memory for ELF segment: addr: 0xffffffff81343da0
(adjusted to: 0x0000000001343da0), size 0x24
Error allocating memory for elf image!
## ERROR loading File!
RSEC-K1#
Early Octeon bootloaders cannot handle PT_NOTE program headers, I think
that is what is biting you here.
If you can upgrade to an SDK-1.9 or later bootloader, I would recommend
that. Otherwise remove the PT_NOTE from your kernel image (the
technique for doing this is left as an excise for the reader, but I have
found that emacs hexl mode works well).
In the top level Makefile, you'll find this:
# Use --build-id when available.
LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
$(call cc-ldoption, -Wl$(comma)--build-id,))
Comment that out and it should fix you up.
Phil
David Daney
--
Phil Staub, Senior Member of Technical Staff, Wind River
Direct: 702.290.0470 Fax: 702.982.0085