Subject: Re: cross compiling from Solaris x86 is busted .... again...
To: None <tech-toolchain@NetBSD.org>
From: Alan Barrett <apb@cequrux.com>
List: tech-toolchain
Date: 09/03/2006 20:45:24
On Sun, 03 Sep 2006, Garrett D'Amore wrote:
> >    Cross compiling tools from Solaris x86 using
> >    ./build.sh -T ${TOOLSDIR} -m i386 tools kernel=GENERIC
> >    fails bootstrapping tools.

Did you ensure that a POSIX-compliant shell is the first in the PATH,
as suggested in comments in build.sh?  For example, ensure that
/usr/xpg4/bin appears before /bin in the PATH.

You could also try something like

	SHELL=/usr/xpg4/bin/sh \
	HOST_SHELL=/usr/xpg4/bin/sh \
	/usr/xpg4/bin/sh ./build.sh blah blah

> echo 'SYSTEM_HEADER_DIR="'"`echo
> /import/meteor/tools/SunOS-i386/lib/gcc/i386--n
> etbsdelf/4.1.2/../../../../i386--netbsdelf/sys-include | sed -e :a -e
> "s,[^/]*/\
> .\.\/,," -e ta`"'"' \
>         >
> /import/meteor/tools/SunOS-i386/lib/gcc/i386--netbsdelf/4.1.2/install-
> tools/mkheaders.conf
> sed: command garbled: s,[
> /bin/sh: : cannot execute
> /bin/sh: /]*/../,, -e ta: not found

At this point in the build, it is using /bin/sh, not /usr/xpg4/bin/sh.
Is that because you didn't set your PATH to prefer /usr/xpg4/bin, or
because of a bug in the build process?

/bin/sh seems to think that "^" behaves like "|".  There might also be
some weirdness related to nesting of "..." inside `...` inside "..." --
the relevant Makefile or script should probably be changed to use $(...)
instead of `...`.

--apb (Alan Barrett)