> >>
> >>> I built that on opensolaris (so sparc64) with gcc 4.5.2. No
> >>> cross-compiler needed, although the config script thinks I'm using one.
> >>
> >> Ah that will probably be the problem - config/script/switch-arch contains
> >> the logic which detects how NATIVE_BITWIDTH_EQUALS_HOST_BITWIDTH and
> >> SWAP_ENDIANNESS should be set and adds them to CFLAGS in Makefile.target as
> >> appropriate.
> >>
> > OK. I'll start looking to see how to change that for by build environment.
>
> What does 'uname -m' report on your machine? We only check for
> sun4u/sparc64 or sparc/sparc32.
>

nathan@valhalla:/export/home/nathan/$ uname -m
sun4u
nathan@valhalla:/export/home/nathan/$ uname -mpi
sun4u sparc sun4u

From SVN, the switch-arch script thinks it has to use a cross-compiler:

nathan@valhalla:/export/home/nathan/openbios-devel$ env LANG=C sh -x ./config/scripts/switch\-arch sparc32
+ MOLPATH=/export/home/nathan//mol-0.9.71
+ [ xsparc32 = x -o sparc32 = -help ]
+ test -f utils/dist/debian/rules
+ chmod 755 utils/dist/debian/rules
+ chmod 755 config/scripts/switch-arch
+ chmod 755 config/scripts/reldir
+ test x = x
+ archname
+ + head VERSION
VERSION=1.0
+ echo Configuring OpenBIOS on sparc64 for sparc32
Configuring OpenBIOS on sparc64 for sparc32
+ target_list=
+ target_list= builtin-sparc32 unix-sparc32
+ arch_list=
+ + echo builtin-sparc32
+ sed s/.*-//g
arch=sparc32
+ test -f config/examples/sparc32_config.xml
+ grep -q sparc32
+ echo
+ arch_list= sparc32
+ + echo unix-sparc32
+ sed s/.*-//g
arch=sparc32
+ test -f config/examples/sparc32_config.xml
+ grep -q sparc32
+ echo sparc32
+ unix=no
+ builtin=no
+ plain=no
+ mol=no
+ briq=no
+ pearpc=no
+ qemu=no
+ xbox=no
+ cross=no
+ :
+ builtin=yes
+ :
+ [ sparc32 != sparc64 ]
+ continue
+ BASEARCH=sparc32
+ select_prefix sparc
ERROR: no sparc cross-compiler found !

I got around that by adding the suffix my build of gcc is using:

--- config/scripts/switch-arch  Thu Apr 28 17:18:40 2011
+++ config/scripts/switch-arch-works    Sat Apr 23 20:21:29 2011
@@ -97,7 +101,7 @@

 select_prefix()
 {
-    for TARGET in ${1}-linux-gnu- ${1}-linux- ${1}-elf- ${1}-eabi-
+    for TARGET in ${1}-linux-gnu- ${1}-linux- ${1}-elf- ${1}-eabi- ${1}-sun-solaris2.11-
     do
         if type ${TARGET}gcc > /dev/null 2>&1
         then

I'm not sure if that is the best way to get it to use the native compiler. I can't think of a reason my sparc64 build tools couldn't build the sparc32 image.

Thanks,
Nathan