Out toolchain for android-arm32 build has not updated for a while.
While the kernel requires newer gcc, the recent build on cirecle CI
reports like this:
***
*** Compiler is too old.
*** Your GCC version: 4.9.0
*** Minimum GCC version: 5.1.0
***
This commit fixes this issue by disabling android-arm32 build on CI.
Fixes: aec6c60a01 ("kbuild: check the minimum compiler version in
Kconfig")
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
Update the docker image to pin down the ubuntu cloud image we are
using for qemu to avoid mismatches with the docker environment.
Signed-off-by: Octavian Purdila <tavip@google.com>
Check for both : and / host termination when looking for remotes.
Also simplify a bit the checkpath.sh script and assume that we do have
a LKL upstream remote - not useful running this script without one.
Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
LKL is now able to manage PCI devices by itself like DPDK!
This commit implements a PCI bus driver and PCI device interface.
The commit also includes a vfio-pci backend driver as a reference
implementation, thus no extra kernel modules is needed if
the PCI device is assigned to VFIO.
I believe the vfio backend driver fulfills the need of most cases,
but users can inject wrapper functions for another userspace PCI
framework such as uio-pci-generic or a handmade kernel module.
In either case, the framework should provide physically contiguous memory
for DMA, because the kernel and some drivers (e.g. NVMe) assume its memory
as physically contiguous.
Signed-off-by: Shinichi Awamoto <shinichi.awamoto@gmail.com>
Current linux-headers on circle ci, based on linux 4.15.0, doesn't allow
us to build dpdk-17.02 and needs to bump the dpdk version to more recent
one. But it's not trivial to upgrade this thus temporary disabled for a
while.
The specific compilation error of dpdk-17.02 is:
error: implicit declaration of function 'pci_enable_msix'
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
This is a dirty workaround to clear a cache on cirecleci: in 1.0
circleci, we can invalidate a cache by UI but with 2.0 we have no way to
do the job.
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
If package 'linux-headers-`uname -r`' is missing, use pre-installed one
of lkldocker/circleci-x86_64 by creating a symlink at /lib/modules/.
This is required when circleci doesn't update a host kernel *and* ubuntu
packages are deleted.
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
This commit fixes an issue of `make install` which was dependent on
$(ALL_LIBRARIES) and $(ALL_PROGRAMS) variables, which are no longer
available after the build system improvement.
It also adds a test for make install.
Fixes: 2030bf6e0e ("lkl tools: improve the build system")
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
An update with circleci test over qemu (no-kvm) instance. ssh/scp are
used to copy required files for tests. net-test only partially work file
(with loopback, tap, and pipe) while raw socket needs more work.
currently, hijack-test.sh and lklfuse.sh are skipped, which clearly need
more effort to support.
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
The 30mins timeout isn't sometime enough so increase to 90 mins. The
junit xml collection process was also broken on valgrind tests. This
fixes those issues.
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
The commit recovers the timeout variable of an execution of valgrind
session (30mins) so that long execution of valgrind will be waited by
the end of tests.
Additionally net pipe test is skipped due to long duration of test
preparation.
And the valgrind-installed image is also used from docker hub.
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
In order to improve build time for the case where the docker image is
not cached on the current container we split the docker image into
multiple smaller ones.
Also, the images are now generated from the LKL docker hub
organization (https://hub.docker.com/r/lkldocker/) and the docker
files are stored in a separate gihub repo in the LKL github
organization (https://github.com/lkl).
Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
Swtiching to shallow trees brakes checkpatch tests since we need the
full history in order to check each patch individually.
So create a separate build for checkpatch that does a full clone.
Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
For pull requests we can't use $CIRCLE_CI branch since pull requests
are not branches. To get the pull request we need to do use a refs
spec and we can onlu do that with fetches.
Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
Instead of duplicating the whole step block for each build, define a
common block and reuse it for all builds.
Note: unfortunately yaml does not support appending lists, otherwise
we could have had multiple blocks like checkout, build, test to make
it easier to understand what is going on. It would have also allowed
use to get rid the the ifs in the common block and put them into
specific builds.
Signed-off-by: Octavian Purdila <tavi@cs.pub.ro>
This migration enables us to test android-aarch64 with proper qemu
binary. So make test in all targets (x86_64, mingw32, android-arm32,
android-aarch64) should work fine.
This also shorten the test time because most of installation steps are
now in a LKL specific docker image
(https://github.com/thehajime/lkl-docker).
Android test of LKL_HIJACK_BOOT_CMDLINE is skipped due to
non-deterministic result of the test.
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>