On 2016/03/17 19:26, Michael McConville wrote: > Jiri B wrote: > > I'm working on to make grub2 work on OpenBSD to replace > > pxelinux on my netinstall server and I have this question - > > - why is there 'ONLY_FOR_ARCHS= i386' in our old grub? > > Try building. You get the following during configure: > > > checking whether the C compiler works... configure: error: cannot run C > > compiled programs. > > If you meant to cross compile, use `--host'. > > See `config.log' for more details. > > *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2700 > > '/usr/ports/pobj/grub-0.97/.configure_done': @for d in > > /usr/ports/pobj/grub-...) > > *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:1923 > > '/usr/ports/packages/amd64/all/grub-0.97p6.tgz') > > *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2465 > > '_internal-package') > > *** Error 1 in /usr/ports/sysutils/grub > > (/usr/ports/infrastructure/mk/bsd.port.mk:2445 'package') > > I recall finding a better explanation (or coming up with one myself) > when I originally tried this a few months ago, but I've since forgotten. > Considering that PIE broke it when introduced, I wouldn't be surprised > if some of our linking features are related.
It's testing that it can run programs built with the compiler flags. config.log has this: configure:2424: cc -m32 -ftrampolines -fno-stack-protector -fno-pie -nopie conftest.c >&5 /usr/bin/ld: warning: i386 architecture of input file `/tmp//ccNKPoep.o' is incompatible with i386:x86-64 output This (producing i386 code on amd64) is basically a cross-compile situation. > > I'm working on grub2 on amd64, I haven't tested that yet > > but following works on amd64: mmcc is right, grub 0.97 as present in the port does not build on amd64. > > jirib:/tmp > > $ grub-mknetdir --net-directory=/tmp/netboot > > Netboot directory for i386-pc created. Configure your DHCP server to point > > to /tmp/netboot/grub/i386-pc/core.0 > > > > jirib:/tmp > > $ find netboot/ | head > > netboot/ > > netboot/grub > > netboot/grub/i386-pc > > netboot/grub/i386-pc/adler32.mod > > netboot/grub/i386-pc/affs.mod > > netboot/grub/i386-pc/afs.mod > > netboot/grub/i386-pc/ahci.mod > > netboot/grub/i386-pc/all_video.mod > > netboot/grub/i386-pc/aout.mod > > netboot/grub/i386-pc/archelp.mod > > > > Thanks for explanation. >