The library uses the hypervisor instruction HVC, which is only
available on ARMv7-A with Hypervisor extensions. This is limited to
Cortex-A{7,12,15,17}.
In addition the build unconditionally passes -marm so it also needs
ARM instructions to be available, but that is already implied by the
CPU selection.
Implicitly fixes
http://autobuild.buildroot.net/results/53d109fd9055fd20387bb857aced5f89cf3086fd
though it is still not clear why ld doesn't accept the -Ttext=...
option there.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Thomas: A12 and A17 also have the virtualization extensions.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The configure script uses this to set the -mcpu option. If nothing is
passed, it defaults to -mcpu=cortex-a15 for arm, and -mcpu=cortex-a57
for aarch64, which may conflict with the actual architecture.
The --processor option is only really used for arm and aarch64, but it
doesn't hurt to also pass it for the other arches.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The kvm-unit-tests package defines a KVM_UNIT_TESTS_ARCH variable, but
never used it. Due to this, on PowerPC64, we were passing an incorrect
value, causing a build failure.
In addition, once the KVM_UNIT_TESTS_ARCH is used, it appeared that
its value for x86_64 was incorrect, due a typo: it was x86_84 instead
of x86_64.
Fixes:
http://autobuild.buildroot.net/results/16836c02f4d1ab5df6b2e21a4fcdbbf4a7542f22/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
On x86 (both i386 and x86_64), the kvm-unit-tests code uses
__builtin_reachable, which appeared in gcc 4.5. This commit adds the
relevant dependencies to kvm-unit-tests:
- on i386, we need gcc 4.5 as the target compiler
- on x86-64, we need gcc 4.5 as the host compiler, because we use the
host compiler to build kvm-unit-tests for this architecture
Fixes:
http://autobuild.buildroot.net/results/21340a7e6494e23adb2fe8dc6253ab220c380fec/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This version bump includes several fixes for x86 and a significant fix
to powerpc transactional memory tests.
Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
kvm-unit-tests requires a multilib compiler for x86_64 as it compiles
32bit boot code.
This patch uses the BR2_HOSTARCH_NEEDS_IA32_COMPILER option to enforce
this and avoids using TARGET_CROSS for x86_64 targets and uses the host
32bit (and 64bit) capable compiler.
Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
[Thomas: reword comment in .mk file.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Most importantly this version includes a change to kvm-unit-tests which
means it will stop looking attempting to include host headers. This
change should fix build breakage on i386.
"ERROR: unsafe header/library path used in cross-compilation: '-I'
'/lib/modules/3.13.0-042stab111.12/build/include'"
The new version also includes more powerpc tests.
Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The unit tests are tiny guest operating systems that generally execute
only tens of lines of C and assembler test code in order to obtain its
PASS/FAIL result. Unit tests provide KVM and virt hardware functional
testing by targeting the features through minimal implementations of
their use per the hardware specification. The simplicity of unit tests
make them easy to verify they are correct, easy to maintain, and easy
to use in timing measurements. Unit tests are also often used for
quick and dirty bug reproducers. The reproducers may then be kept as
regression tests. It's strongly encouraged that patches implementing
new KVM features are submitted with accompanying unit tests.
Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
[Thomas:
- order architecture dependencies in Config.in alphabetically.
- rewrap Config.in help text, lines were too long
- add an empty line between the package description and the upstream
project URL in the Config.in help text
- don't make KVM_UNIT_TESTS_ARCH default to $(ARCH). This was not
correct for i386 for example. Instead, just handle the few
architectures that the package supports.
- remove useless double quotes in variable definitions.
- remove --prefix="$(TARGET_DIR)" from CONF_OPTS. It was installing
everything in /share/ and not /usr/share/, and setting the prefix to
TARGET_DIR at configure time is not good. Instead, pass DESTDIR at
installation time.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>