[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 UTC 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