Subject: build.sh and Solaris
To: None <current-users@netbsd.org, tech-toolchain@netbsd.org>
From: Ian Fry <Ian.Fry@sophos.com>
List: tech-toolchain
Date: 11/30/2001 14:47:19
Now that build.sh seems to be capable of consistently cross building (I've
successfully used it to cross build the arm26 port from my i386 machine), I
thought I'd try building the sparc64 port from a Solaris 8 machine.

I've trimmed most of the paths in what follows for clarity - I don't think
they're important. Here is the command I was trying to run (at first, I
thought I'd just try to get the host tools built, before trying a complete
make build):

 ./build.sh -m sparc64 -O <objdir path> -D <destdir path> -T <tooldir path> -t

My setup:

NetBSD-i386 machine, running 1.5.2, NFS exporting the -current source tree
Sun Ultra 1 machine running Solaris 8, source tree mounted read only.

The Solaris install is pretty minimal, apart from installing gcc 2.95.3 from
sunfreeware.com.

The first problem I encounterd was having to set HOST_CC and HOST_CFLAGS in
order to get nbmake to build. I had to use these settings:

   HOST_CC=/usr/local/bin/gcc
   HOST_CFLAGS=-DMACHINE=\"sparc64\"

Then, build.sh bombs out with 'can't unset IFS', so I tried ksh instead, and
that allows build.sh to compile nbmake, and generate the nbmake wrapper
script. However, mkdep fails to build, due to some missing header files:

dependall ===> mkdep
touch .depend
/usr/local/bin/gcc -DMACHINE="sparc64" -include /mnt/source/current/tools/mkdep/../compat/compat_netbsd.h -Wall    -c -o mkdep.lo /mnt/source/current/tools/mkdep/../../usr.bin/mkdep/mkdep.c
/mnt/source/current/tools/mkdep/../../usr.bin/mkdep/mkdep.c:39: sys/cdefs.h: No such file or directory
/mnt/source/current/tools/mkdep/../../usr.bin/mkdep/mkdep.c:53: err.h: No such file or directory
/mnt/source/current/tools/mkdep/../../usr.bin/mkdep/mkdep.c:55: paths.h: No such file or directory
*** Error code 1

Stop.
nbmake: stopped in /mnt/source/current/tools/mkdep
*** Error code 1

Stop.
nbmake: stopped in /mnt/source/current/tools/mkdep
*** Error code 1

Stop.
nbmake: stopped in /mnt/source/current/tools

I didn't have enough time to try to resolve this myself - should I send-pr
it?

I did a few more experiments, and nbmake-sparc64 obj runs all the way
through, and creates the obj directories, and cleandir runs through too,
although I spotted one oddity - make clean seems to try to remove tags files
from source tree, not the obj tree:

...
rm -f .depend /mnt/source/current/tools/mklocale/tags 
...

I did a search of my source tree (which has been built recently), and there
are no tags files at all, but searching the obj directories turned up quite a
lot.

All in all, it's looking quite promising. I'll keep trying this periodically
to see how thing progress.

Ian.