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.
> 

Reply via email to