Re: cross-compiling kernel
Hi, Valery Ushakov wrote: Is building an x86 a "full cross compile"? I suppose yes and I >followef the NetBSD build for sparc, just with x86. Yes, it's full cross compilation. Fine, I followed this: https://www.netbsd.org/docs/guide/en/chap-build.html just with"i386" instead of sparc64 Also, it is not that different from what you and Maya suggested. I just update cvs src and then retried.. and now it apparently worked. It is compiling... now I only need to be patient to the kernel :) RIccardo
Re: cross-compiling kernel
Hi, Valery Ushakov wrote: This is strange. Anything in your /etc/mk.conf or environment? You can look at the /usr/obj/tooldir.NetBSD-8.99.1-amd64/bin/nbmake-i386 make wrapper script and check what does it set TOOLDIR too. I have this in mk.conf : CFLAGS+= -march=core2 CXXFLcoAGS += -march=core2 MAKE_JOBS = 3 could this affect cross-compilation? I hope not. What should build my 486 gcc? I suppose the run of "./build.sh -U -m i386 -u tools ", or not? Riccardo
Re: cross-compiling kernel
On Fri, Aug 04, 2017 at 14:18:36 +0200, Riccardo Mottola wrote: > Is building an x86 a "full cross compile"? I suppose yes and I > followef the NetBSD build for sparc, just with x86. Yes, it's full cross compilation. > I want to use the standard kernel GENERIC, thus I did: > > ./build.sh -U -m i386 -u tools > > I don't get a full x86 toolchain though, in /usr/obj I find: > $ ls /usr/obj/ > sys tools > tooldir.NetBSD-8.99.1-amd64 > > I expected instead something like: > /usr/obj/tooldir.NetBSD-8.99.1-i386 [...] > ===> TOOLDIR path: /usr/src/obj/tooldir.NetBSD-8.99.1-amd64 [...] > so it is expected apparently. TOOLDIR defaults to tooldir.${host_ostype}, so it reflects your os. > although I find inside multiple binaries, e.g. : > /usr/obj/tooldir.NetBSD-8.99.1-amd64/bin/nbmake > /usr/obj/tooldir.NetBSD-8.99.1-amd64/bin/nbmake-amd64 > /usr/obj/tooldir.NetBSD-8.99.1-amd64/bin/nbmake-i386 > > I thus tried: > $ /usr/obj/tooldir.NetBSD-8.99.1-amd64/bin/nbmake-i386 depend > > but this fails: > /usr/src/obj/tooldir.NetBSD-8.99.1-amd64/bin/nbgenassym: > /usr/src/obj/tooldir.NetBSD-8.99.1-amd64/bin/i486--netbsdelf-gcc: not found > > I have several i486 tools, but not all: > /usr/obj/tooldir.NetBSD-8.99.1-amd64/bin/i486--netbsdelf-dbsym > /usr/obj/tooldir.NetBSD-8.99.1-amd64/bin/i486--netbsdelf-fdisk > /usr/obj/tooldir.NetBSD-8.99.1-amd64/bin/i486--netbsdelf-install > /usr/obj/tooldir.NetBSD-8.99.1-amd64/bin/i486--netbsdelf-mdsetimage This is strange. Anything in your /etc/mk.conf or environment? You can look at the /usr/obj/tooldir.NetBSD-8.99.1-amd64/bin/nbmake-i386 make wrapper script and check what does it set TOOLDIR too. -uwe
Re: cross-compiling kernel
Hi, co...@sdf.org wrote: ./build.sh -U -u -m i386 kernel=CONFNAME doesn't work? no it doesn't work: it fails with the same issue of nbmake-i386 depend: it wants an i486 gcc! Should I have it? should it have been built by the official amd64 tools or the i386 tools I tried to build? disc$ ./build.sh -U -u -m i386 kernel=GENERIC ===> build.sh command:./build.sh -U -u -m i386 kernel=GENERIC ===> build.sh started:Fri Aug 4 19:42:34 CEST 2017 ===> NetBSD version: 8.99.1 ===> MACHINE: i386 ===> MACHINE_ARCH:i386 ===> Build platform: NetBSD 8.99.1 amd64 ===> HOST_SH: /bin/sh ===> MAKECONF file: /etc/mk.conf #objdir /usr/obj/ ===> TOOLDIR path: /usr/src/obj/tooldir.NetBSD-8.99.1-amd64 ===> DESTDIR path:/usr/src/obj/destdir.i386 ===> RELEASEDIR path: /usr/src/obj/releasedir ===> Updated makewrapper: /usr/src/obj/tooldir.NetBSD-8.99.1-amd64/bin/nbmake-i386 ===> Building kernel without building new tools #objdir /usr/obj/sys/arch/i386/compile ===> Building kernel: GENERIC ===> Build directory: /usr/src/sys/arch/i386/compile/obj/GENERIC Build directory is /usr/src/sys/arch/i386/compile/obj/GENERIC Don't forget to run "make depend" depending the kern library objects #create kern/__main.d CC=/usr/src/obj/tooldir.NetBSD-8.99.1-amd64/bin/i486--netbsdelf-gcc /usr/src/obj/tooldir.NetBSD-8.99.1-amd64/bin/nbmkdep -f __main.d.tmp -- -std=gnu99 --sysroot=/usr/src/obj/destdir.i386 -I/usr/src/sys/lib/libkern/arch/i386 --sysroot=/usr/src/obj/destdir.i386 -Di386 -I../../. -I/usr/src/sys/external/bsd/acpica/dist -I/usr/src/sys/../common/lib/libx86emu -I/usr/src/sys/../common/include -I/usr/src/sys/arch -I/usr/src/sys -nostdinc -DDIAGNOSTIC -D_KERNEL -D_KERNEL_OPT -std=gnu99 -I/usr/src/sys/lib/libkern/../../../common/lib/libc/quad -I/usr/src/sys/lib/libkern/../../../common/lib/libc/string -I/usr/src/sys/lib/libkern/../../../common/lib/libc/arch/i386/string -D_FORTIFY_SOURCE=2 -I/usr/src/sys/external/bsd/ipf -I/usr/src/sys/external/isc/atheros_hal/dist -I/usr/src/sys/external/isc/atheros_hal/ic -I/usr/src/sys/external/bsd/common/include -I/usr/src/sys/external/bsd/drm2/include -I/usr/src/sys/external/bsd/common/include -I/usr/src/sys/external/bsd/drm2/include -I/usr/src/sys/external/bsd/drm2/include/drm -I/usr/src/sys/external/bsd/drm2/dist -I/usr/src/sys/external/bsd/drm2/dist/include -I/usr/src/sys/external/bsd/drm2/dist/include/drm -I/usr/src/sys/external/bsd/drm2/dist/uapi -I/usr/src/sys/external/bsd/common/include -D__KERNEL__ -DCONFIG_FB=0 -DCONFIG_BACKLIGHT_CLASS_DEVICE=0 -DCONFIG_BACKLIGHT_CLASS_DEVICE_MODULE=0 -I/usr/src/sys/../common/include -DCONFIG_AGP -I/usr/src/sys/external/bsd/drm2/dist/drm/i915 -I/usr/src/sys/external/bsd/drm2/i915drm -DCONFIG_DRM_I915_FBDEV=1 -DCONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=0 -I/usr/src/sys/external/bsd/drm2/dist/drm/radeon -I/usr/src/sys/external/bsd/drm2/include/radeon -I/usr/src/sys/external/bsd/drm2/radeon -I/usr/src/sys/external/bsd/drm2/dist/drm/nouveau -I/usr/src/sys/external/bsd/drm2/dist/drm/nouveau/core -I/usr/src/sys/external/bsd/drm2/dist/drm/nouveau/core/include -I/usr/src/sys/external/bsd/drm2/nouveau -DCONFIG_NOUVEAU_DEBUG=5 -DCONFIG_NOUVEAU_DEBUG_DEFAULT=3 -I/usr/src/sys/external/bsd/acpica/dist/include -I/usr/src/sys/lib/libkern/../../../common/lib/libc/quad -I/usr/src/sys/lib/libkern/../../../common/lib/libc/string -I/usr/src/sys/lib/libkern/../../../common/lib/libc/arch/i386/string -I/usr/src/sys/lib/libkern/../../../common/include /usr/src/sys/lib/libkern/__main.c && mv __main.d.tmp __main.d nbmkdep: /usr/src/obj/tooldir.NetBSD-8.99.1-amd64/bin/i486--netbsdelf-gcc: not found: No such file or directory
Re: cross-compiling kernel
./build.sh -U -u -m i386 kernel=CONFNAME doesn't work?