Subject: kernel compile: big endian not recognized properly
To: None <tech-toolchain@netbsd.org>
From: Hubert Feyrer <hubert.feyrer@informatik.fh-regensburg.de>
List: tech-toolchain
Date: 10/26/2001 17:55:13
The following is from a fresh -current (today's sources) kernel compile. I
made sure that there are no old object files/libs left on the systemm:
ld -EB -Ttext 0x88002000 -e start -G 0 -T ../../../../arch/mips/conf/kern.ldscript --oformat elf32-littlemips -x -o netbsd ${SYSTEM_OBJ} vers.o
ld: locore.o: compiled for a big endian system and target is little endian
File in wrong format: failed to merge target specific data of file locore.o
This is because the following test in the generated
(compile/INDY/)Makefile doesn't fire:
.if (${ENDIAN} == "-EB")
This in turn can be fixed by setting ENDIAN to -EB (-EL) instead of
"-EB" ("-EL") - just remove the quotes:
--- Makefile.BAK Fri Oct 26 17:52:47 2001
+++ Makefile Fri Oct 26 17:53:00 2001
@@ -22,9 +22,9 @@
.include <bsd.own.mk>
.if ${MACHINE_ARCH} == "mipsel"
-ENDIAN="-EL"
+ENDIAN=-EL
.elif ${MACHINE_ARCH} == "mipseb"
-ENDIAN="-EB"
+ENDIAN=-EB
.else
.BEGIN:
@echo "MACHINE_ARCH ${MACHINE_ARCH} is invalid"
I don't know where the source for this is (config(8)?), but I guess this
problem will show on all big-endian MIPS platforms, so if someone could
please have a look...? Thanks!
- Hubert
--
Want to get a clue on IPv6 but don't know where to start? Try this:
* Basics -> http://www.onlamp.com/pub/a/onlamp/2001/05/24/ipv6_tutorial.html
* Setup -> http://www.onlamp.com/pub/a/onlamp/2001/06/01/ipv6_tutorial.html
Of course with your #1 IPv6 ready operating system -> http://www.NetBSD.org/