On 06.01.2014 14:50, Eugene Grosbein wrote:> Hi!
>
> For long time I was building NanoBSD for i386 using amd64 box with success,
> just adding NANO_ARCH=i386, TARGET=i386 and TARGET_ARCH=i386 to CONF_BUILD
flags
> used to create custom make.conf.
>
> But for recent 9.2-STABLE that seems to be broken:
>
> --------------------------------------------------------------
>>>> stage 3.1: making dependencies
> --------------------------------------------------------------
> cd /usr/obj/nanobsd.gw//i386.i386/usr/local/src/sys/GW;
MAKEOBJDIRPREFIX=/usr/obj/nanobsd.gw//i386.i386 MACHINE_ARCH=i386 MACHINE=i386
CPUTYPE= _SHLIBDIRPREFIX=/usr/obj/nanobsd.gw//i386.i
> 386/usr/local/src/tmp _LDSCRIPTROOT= VERSION="FreeBSD 9.2-STABLE
amd64 902504" INSTALL="sh /usr/local/src/tools/install.sh"
PATH=/usr/obj/nanobsd.gw//i386.i386/usr/local/src/tmp/legacy/us
>
r/sbin:/usr/obj/nanobsd.gw//i386.i386/usr/local/src/tmp/legacy/usr/bin:/usr/obj/nanobsd.gw//i386.i386/usr/local/src/tmp/legacy/usr/games:/usr/obj/nanobsd.gw//i386.i386/usr/local/src/tmp/legac
>
y/bin:/usr/obj/nanobsd.gw//i386.i386/usr/local/src/tmp/usr/sbin:/usr/obj/nanobsd.gw//i386.i386/usr/local/src/tmp/usr/bin:/usr/obj/nanobsd.gw//i386.i386/usr/local/src/tmp/usr/games:/sbin:/bin:
> /usr/sbin:/usr/bin COMPILER_TYPE=gcc
/usr/obj/nanobsd.gw//usr/local/src/make.amd64/make -j 3
__MAKE_CONF=/usr/obj/nanobsd.gw//make.conf.build KERNCONFDIR=/home/nanobsd/gw
KERNCONF=GW -m /usr
> /local/src/share/mk TARGET=i386 TARGET_ARCH=i386 KERNEL=kernel depend
-DNO_MODULES_OBJ
> machine -> /usr/local/src/sys/i386/include
> x86 -> /usr/local/src/sys/x86/include
> awk -f /usr/local/src/sys/tools/vnode_if.awk
/usr/local/src/sys/kern/vnode_if.src -p
> awk -f /usr/local/src/sys/tools/vnode_if.awk
/usr/local/src/sys/kern/vnode_if.src -q
> cc -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs
-Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual
-Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs
-fdiagnostics-show-option -nostdinc -I. -I/usr/local/src/sys
-I/usr/local/src/sys/contrib/altq -I/usr/local/src/sys/contrib/ipfilter
-I/usr/local/src/sys/contrib/pf -I/usr/local/src/sys/dev/ath
-I/usr/local/src/sys/dev/ath/ath_hal -I/usr/local/src/sys/contrib/ngatm
-I/usr/local/src/sys/dev/twa -I/usr/local/src/sys/gnu/fs/xfs/FreeBSD
-I/usr/local/src/sys/gnu/fs/xfs/FreeBSD/support -I/usr/local/src/sys/gnu/fs/xfs
-I/usr/local/src/sys/dev/cxgb -I/usr/local/src/sys/dev/cxgbe -D_KERNEL
-DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -finline-limit=8000 --param
inline-unit-growth=100 --param large-function-growth=1000
-mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse
-msoft-float -ffreestanding -fstack-protector -c
/usr/local/src/sys/i386/linux/li!
nu!> x_genassym
> .c
> awk -f /usr/local/src/sys/tools/miidevs2h.awk
/usr/local/src/sys/dev/mii/miidevs
> awk -f /usr/local/src/sys/tools/pccarddevs2h.awk
/usr/local/src/sys/dev/pccard/pccarddevs
> /usr/local/src/sys/i386/linux/linux_genassym.c:1: error:
-mpreferred-stack-boundary=2 is not between 4 and 12
> *** [linux_genassym.o] Error code 1
> 1 error
> *** [buildkernel] Error code 2
> 1 error
> *** [buildkernel] Error code 2
> 1 error
>
> It seems, gcc now thinks it builds code for amd64, insisting on long word
stack alignment.
>
> Please help to unbreak this.
It seems, make buildkernel fails in this case if obj directory does not contain
results of make buildworld. The problem is solved running make buildworld
before buildkernel. Sorry for noise.
Eugene Grosbein