[vbox-dev] VirtualBox-5.1.20a fails to compile - linux 32-bit
John Frankish
john.frankish at outlook.com
Thu Apr 27 12:53:08 GMT 2017
> > >After adjusting src/libs/xpcom18a4/Makefile.kmk to look for libIDL-config-2, compiling vbox fails with:
> > >
> > > kBuild: bin2c iPxeBiosBin - /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/iPxeBiosBin/iPxeBiosBin.rom =>
> > > /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/iPxeBiosBin/iPxeBiosBin.c
> > > /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/bin2c/bin2c -min 32 -max 56 -mask 0x1ff -export
> > > NetBiosBinary /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/iPxeBiosBin/iPxeBiosBin.rom
> > > /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/iPxeBiosBin/iPxeBiosBin.c
> > > /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/bin2c/bin2c: size=54171 - Not aligned!
> > > kmk: *** [/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/iPxeBiosBin/iPxeBiosBin.c] Error 1
> > >
> > Is it possible to perform this step manually with different parameters to fix things?
> >
> could you do the following:
>
> $ rm /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/iPxeBiosBin/iPxeBiosBin.rom
> $ kmk KBUILD_VERBOSE=2 -j1
>
> and post the output? The error you get shouldn't be possible because the .rom image is
> 512-byte-aligned by calling
>
> src/VBox/Devices/PC/ipxe/src/util/padimg.pl --blksize=512 --byte=0xff path_to_/iPxeBiosBin.rom
>
Ah-ha, the first line of padimg.pl contains /usr/bin/perl - after changing it to /usr/bin/env perl that error disappears.
I am still getting many substitution errors, most of which can be cured by copy/pasting the failed command onto one line in the terminal, but the last one cannot be fixed this way - I wonder if this is something to do with bash, my system normally uses busybox.
/usr/src/VirtualBox-5.1.20/kBuild/bin/linux.x86/kmk_sed \
-e 's/@VBOX_API_VERSION@/5_1/' \
< /usr/src/VirtualBox-5.1.20/src/VBox/Main/cbinding/VBoxCAPIGlue.h.in > /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/CAPIHeaders/VBoxCAPIGlue.h
/etc/init.d/tc-functions: 72: Syntax error: Bad substitution
kmk: *** [/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/CAPIHeaders/VBoxCAPIGlue.h] Error 2
/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/ipxezbin/ipxezbin \
/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/iPxeBiosBin/iPxeBaseBin.rom.bin \
/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/iPxeBiosBin/iPxeBaseBin.rom.zinfo \
> /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/iPxeBiosBin/iPxeBiosBin.rom
/etc/init.d/tc-functions: 72: Syntax error: Bad substitution
kmk: *** [/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/iPxeBiosBin/iPxeBiosBin.rom] Error 2
/usr/src/VirtualBox-5.1.20/kBuild/bin/linux.x86/kmk_sed -e "s/<NL>/\n/g" \
--output /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/VBoxDD/vboxssdt-cpuhotplug.hex.pre1 /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/VBoxDD/vboxssdt-cpuhotplug.hex.pre
/etc/init.d/tc-functions: 72: Syntax error: Bad substitution
kmk: *** [/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/VBoxDD/vboxssdt-cpuhotplug.hex] Error 2
For the one above I had to remove the offending line from src/VBox/Devices/Makefile.kmk
if readelf -S /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/tstLdrObjR0/tstLdrObjR0.r0|grep -q "[cd]tors"; then echo "Found ctors/dtors in /usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/tstLdrObjR0/tstLdrObjR0.r0!"; exit 1; fi
/etc/init.d/tc-functions: 72: Syntax error: Bad substitution
kmk: *** [/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/tstLdrObjR0/tstLdrObjR0.r0] Error 2
kmk: *** Deleting file `/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/tstLdrObjR0/tstLdrObjR0.r0'
kmk: *** [/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/tstLdrObjR0/tstLdrObjR0.r0] Deleting file `/usr/src/VirtualBox-5.1.20/out/linux.x86/release/obj/tstLdrObjR0/tstLdrObjR0.debug'
I have not been able to fix the one above.
More information about the vbox-dev
mailing list