[vbox-dev] Cannot compile VirtualBox 5.1.30 without access to kernel sources (regression since 5.1.12)
Ulrich Gemkow
ulrich.gemkow at ikr.uni-stuttgart.de
Tue Jan 9 11:31:48 UTC 2018
Hello Michael,
On Tuesday 09 January 2018, Michael Thayer wrote:
> Hello Ulrich,
>
> Could you try applying the following patch to configure? It is against
> trunk, but I checked that it applies against 5.1. The quick explanation
> is that we switched from doing kernel module test builds as part of the
> build process to doing them as test cases. One reason for reworking
> them was that the old way did not work with Linux 4.9 and later, which
> is the reason for most of the removed lines below. However we also
> changed the Make variables which controlled it and clearly forgot to
> update configure.
Thanks! This patch fixes the problem.
> Regards from the other side of Stuttgart.
Best regards and best wishes to your side of Stuttgart :-)
Ulrich
> Michael
>
> Index: configure
> ===================================================================
> --- configure (revision 120097)
> +++ configure (working copy)
> @@ -1766,31 +1766,7 @@
> fail
> else
> if test_execute; then
> - cat > $ODIR.tmp_src.c << EOF
> -#include <linux/version.h>
> -int printf(const char *format, ...);
> -int main(void)
> -{
> - return LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0) ? 1 : 0;
> -}
> -EOF
> - echo "compiling the following source file:" >> $LOG
> - cat $ODIR.tmp_src.c >> $LOG
> - echo "using the following command line:" >> $LOG
> - echo "$CC -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c -nostdinc
> -I$LINUX/include " \
> - "-I$LINUX/include/generated/uapi" >> $LOG
> - $CC -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c -nostdinc
> -I$LINUX/include \
> - -I$LINUX/include/generated/uapi >> $LOG 2>&1
> - if [ $? -eq 0 ]; then
> - $ODIR.tmp_out
> - if [ $? -ne 0 ]; then
> - cnf_append "VBOX_WITH_VBOXDRV" ""
> - cnf_append "VBOX_WITH_ADDITION_DRIVERS" ""
> - echo "Detected Linux >= 4.8 -- disabling compiling of Linux
> kernel modules."
> - else
> - cnf_append "VBOX_LINUX_SRC" "`cd $LINUX ; pwd`"
> - fi
> - fi
> + cnf_append "VBOX_LINUX_SRC" "`cd $LINUX ; pwd`"
> fi
> fi
> }
> @@ -2822,8 +2798,7 @@
> check_linux
> else
> cnf_append "VBOX_LINUX_SRC" ""
> - cnf_append "VBOX_WITH_VBOXDRV" ""
> - cnf_append "VBOX_WITH_ADDITION_DRIVERS" ""
> + cnf_append "VBOX_WITHOUT_LINUX_TEST_BUILDS" "1"
> fi
> if [ $ONLY_ADDITIONS -eq 0 ]; then
> if [ $WITH_ALSA -eq 1 ]; then
>
> 06.01.2018 13:55, Ulrich Gemkow wrote:
> > Hello,
> >
> > On Saturday 06 January 2018, "Sérgio" Basto wrote:
> >> On Fri, 2018-01-05 at 20:10 +0100, Ulrich Gemkow wrote:
> >>> Hello,
> >>>
> >>> VirtualBox 5.1.30 can no longer be compiled when the kernel sources
> >>> are not available during the build. The compile fails with the error
> >>>
> >>> -- kBuild: Installing /lnc/build/apps/make/VirtualBox-
> >>> 5.1.30/out/linux.amd64/release/misc-staging/rdesktop-1.8.3-
> >>> vrdp/include/iprt/linux/sysfs.h
> >>> kBuild: Installing /lnc/build/apps/make/VirtualBox-
> >>> 5.1.30/out/linux.amd64/release/misc-staging/rdesktop-1.8.3-
> >>> vrdp/include/iprt/list.h
> >>> /lnc/build/apps/make/VirtualBox-
> >>> 5.1.30/out/linux.amd64/release/obj/tstguest_mod/vboxguest/Makefile.in
> >>> clude.header:112: *** Error: unable to find the sources of your
> >>> current Linux kernel. Specify KERN_DIR=<directory> and run Make
> >>> again. Stop.
> >>> make[1]: Leaving directory '/lnc/build/apps/make/VirtualBox-
> >>> 5.1.30/out/linux.amd64/release/obj/tstguest_mod/vboxguest'
> >> ^^^^^^^
> >>
> >> I checked my configuration and do not have kernel sources but I also
> >> disable testcases [1] . Seems to me the regression it is in tst (test
> >> cases) .
> >>
> >>
> >> [1]
> >> kmk VBOX_WITH_TESTCASES=
> >>
> >
> > Thanks! This fixes this problem. Maybe building this test should
> > be excluded by configure when --disable-kmods is set.
> >
> > Thanks again and best regards
> >
> > Ulrich
> >
> >>> kBuild: Installing /lnc/build/apps/make/VirtualBox-
> >>> 5.1.30/out/linux.amd64/release/misc-staging/rdesktop-1.8.3-
> >>> vrdp/include/iprt/lockvalidator.h
> >>
> >>
> >>
> >>> Makefile:30: recipe for target 'all' failed
> >>>
> >>> configure is called with the following parameters:
> >>>
> >>> ./configure --disable-kmods --disable-pulse --disable-alsa --disable-
> >>> hardening --disable-opengl --disable-dbus --disable-docs --disable-
> >>> python --disable-java --disable-libvpx
> >>>
> >>> The compile host is a modified Ubuntu 16.04 with a vanilla kernel
> >>> Linux 4.9.
> >>>
> >>> The error did not happen when compiling 5.1.12 in exact the
> >>> same configuration, so this is a regression.
> >>>
> >>> IMHO it should be possible to compile VirtualBox without access
> >>> to the kernel sources when --disable-kmods is given - not only
> >>> for security reasons.
> >>
> >>
> >>
> >>> Thanks and best regards
> >>>
> >>> Ulrich
> >>>
> >
>
--
Ulrich Gemkow
University of Stuttgart
Institute of Communication Networks and Computer Engineering (IKR)
More information about the vbox-dev
mailing list