This commit adds the core of a new testing infrastructure that allows to
perform runtime testing of Buildroot generated systems. This
infrastructure uses the Python unittest logic as its foundation.
This core infrastructure commit includes the following aspects:
- A base test class, called BRTest, defined in
support/testing/infra/basetest.py. This base test class inherited
from the Python provided unittest.TestCase, and must be subclassed by
all Buildroot test cases.
Its main purpose is to provide the Python unittest setUp() and
tearDown() methods. In our case, setUp() takes care of building the
Buildroot system described in the test case, and instantiate the
Emulator object in case runtime testing is needed. The tearDown()
method simply cleans things up (stop the emulator, remove the output
directory).
- A Builder class, defined in support/testing/infra/builder.py, simply
responsible for building the Buildroot system in each test case.
- An Emulator class, defined in support/testing/infra/emulator.py,
responsible for running the generated system under Qemu, allowing
each test case to run arbitrary commands inside the emulated system.
- A run-tests script, which is the entry point to start the tests.
Even though I wrote the original version of this small infrastructure, a
huge amount of rework and improvement has been done by Maxime
Hadjinlian, and squashed into this patch. So many thanks to Maxime for
cleaning up and improving my Python code!
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The main reason why vcdbg is only available on ARM is the fact that this is
a prebuilt ARM binary rather than the rpi-userland dependency, so adjust the
comment to clarify.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
In c2c06a6de0, cmake version was bumped and a new dependency on libuv
was added, but it did not propagate all the dependencies of libuv,
missing sync_4 (probably because sync_4 was added after the patch was
sent on the list, but before it was applied to the tree).
Fix that, which fixes unmet dependencies.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Currently, vcdbg is only supported in 32-bit mode. Furthermore, vcdbg
needs rpi-userland, which we currently only support in 32-bit mode.
Add a dependency on BR2_arm.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
connman no longer triggers a conflict of userspace and kernel headers since
commit 69ced96355 (musl: workaround kernel if_ether.h header conflict). The
real blocker for musl build (besides a few missing includes here and there)
is the missing res_ninit() implementation. Update the comment accordingly.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
sunxi-mali userspace drivers (libMali.so) for r2p4 Mali kernel modules
are linked against libUMP.so.2 but libump package in Buildroot only
provide libUMP.so.3.
In upstream commit 1c5063f43cdc9de341c0d63b2e3921cab86c7742 [1], library
versioning was added. For the r3p* libraries, libUMP.so.3 is used (and
provided by Buildroot libump package), but for the r2p* libraries,
libUMP.so.2 is used (and not provided by Buildroot libump package).
Due to this any program or library trying to link with -lGLESv2 or -lEGL
will fail with the following error:
arm-none-linux-gnueabi/bin/ld: warning: libUMP.so.2, needed by output/host/usr/arm-buildroot-linux-gnueabi/sysroot/armv4t/usr/lib/libMali.so, not found (try using -rpath or -rpath-link)
output/host/usr/arm-buildroot-linux-gnueabi/sysroot/armv4t/usr/lib/libEGL.so: undefined reference to `ump_close'
output/host/usr/arm-buildroot-linux-gnueabi/sysroot/armv4t/usr/lib/libEGL.so: undefined reference to `ump_mapped_pointer_get'
output/host/usr/arm-buildroot-linux-gnueabi/sysroot/armv4t/usr/lib/libEGL.so: undefined reference to `ump_secure_id_get'
output/host/usr/arm-buildroot-linux-gnueabi/sysroot/armv4t/usr/lib/libEGL.so: undefined reference to `ump_mapped_pointer_release'
output/host/usr/arm-buildroot-linux-gnueabi/sysroot/armv4t/usr/lib/libMali.so: undefined reference to `ump_reference_add'
output/host/usr/arm-buildroot-linux-gnueabi/sysroot/armv4t/usr/lib/libMali.so: undefined reference to `ump_size_get'
output/host/usr/arm-buildroot-linux-gnueabi/sysroot/armv4t/usr/lib/libEGL.so: undefined reference to `ump_reference_release'
output/host/usr/arm-buildroot-linux-gnueabi/sysroot/armv4t/usr/lib/libEGL.so: undefined reference to `ump_open'
collect2: error: ld returned 1 exit status
Since nothing provides libUMP.so.2, this commit removes the
BR2_PACKAGE_SUNXI_MALI_R2P4 option and adds the BR2_ARM_EABIHF
dependency directly to sunxi-mali package.
Fixes:
http://autobuild.buildroot.net/results/8d0/8d0b78798abf0c4ca124952d0d0455da6f8fa14f/
[1] 1c5063f43c
[2] http://lists.busybox.net/pipermail/buildroot/2017-February/183500.html
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Francois Perrad <francois.perrad@gadz.org>
[Thomas: fix conflicts when applying on master, tweak commit log.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This bumps the version of triggerhappy to 0.5.0
The systemd unit supplied by buildroot assumed that filename
globbing was supported by thd. But this was just recently
added. So with this version bump usage of "/dev/input/event*"
is now possible. Systemd Unit is adjusted accordingly.
eventtable.h patch was removed as this was patched upstream.
This patch fixes bug #9836.
Signed-off-by: Michael Heinemann <posted@heine.so>
Instead of duplicating the architecture dependency between the main
option and the Config.in comment, add a
BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS hidden option.
This is done in preparation to enabling libseccomp on ARM.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Even with an upstream patch from protobuf v3.3 [1], the build fail with another issue:
In file included from google/protobuf/dynamic_message.cc:80:
./google/protobuf/map_field.h: In member function 'void google::protobuf::internal::MapField<Key, T, key_wire_type, value_wire_type, default_enum_value>::Swap(google::protobuf::internal::MapFieldLite<Key, T, kKeyFieldType, kValueFieldType, default_enum_value>*)':
./google/protobuf/map_field.h:139: error: object missing in reference to 'google::protobuf::internal::MapFieldBase::repeated_field_'
./google/protobuf/map_field_inl.h:342: error: from this location
./google/protobuf/map_field.h:150: error: object missing in reference to 'google::protobuf::internal::MapFieldBase::state_'
./google/protobuf/map_field_inl.h:344: error: from this location
Add a dependency on gcc >= 4.5.
[1] a83ac8663f
Fixes:
http://autobuild.buildroot.org/results/77d/77dbb6bbbc0ea9e9bcdd22b10011ef9728c20d54http://autobuild.buildroot.org/results/21f/21f5e1ea4f37e1d174604d6da78c0e916c89f1e3http://autobuild.buildroot.org/results/24e/24e880086c87d40b5d79a90d805acc75b33d484c
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Mario J. Rugiero <mrugiero@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The BR2_TOOLCHAIN_BUILDROOT_INET_RPC has been removed in commit
98f7de8796, following the removal from
upstream uClibc-ng of the RPC support.
However, armadeus_apf9328_defconfig was selecting this option, causing a
build failure due to the selection of a legacy option. We simply remove
it as anyway defconfigs should not needlessly enable toolchain options.
Fixes:
https://gitlab.com/buildroot.org/buildroot/builds/15762159
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Back when galileo_defconfig was added, an explicit binutils version was
used, because only binutils >= 2.25 had support for the
-momit-lock-prefix option, necessary to workaround a CPU issue.
Support for binutils 2.25 has now been removed from Buildroot, and
therefore the option no longer exists, causing a build failure. The
oldest binutils version that can be selected in Buildroot is binutils
2.26, which has support for -momit-lock-prefix. Therefore, we simply
remove the explicit binutils version selection.
Fixes:
https://gitlab.com/buildroot.org/buildroot/builds/15762201
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
As in upstream Linux zebu_hs_smp_defconfig was renamed to
haps_hs_smp_defconfig we update Linux kernel defconfig name
respectively.
Also it fixes build failure, pointed us by Arnout:
https://gitlab.com/buildroot.org/buildroot/builds/14419271
Signed-off-by: Vlad Zakharov <vzakhar@synopsys.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since the bump of OpenOCD from 0.9.0 to 0.10.0 in commit
3b6c74d708, stm32f469_disco_defconfig
fails to build:
- 0001-add-config.patch was merged in upstream OpenOCD (commit
26045588f462476cee356d15a24944d6c26befb4).
- 0002-flash-nor.patch was merged in upstream OpenOCD (commit
3e219648c80a27f0519003f3b088cbb846e255d8)
Therefore, this commit removes the two patches that are no longer
necessary.
Fixes:
https://gitlab.com/buildroot.org/buildroot/builds/15762279
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since commit c6bca8cef0 removed autocalculation of the ext2 filesystem
size, the default size is now set to 60MB. However, this is too small
for pc_x86_64_efi_defconfig. Indeed, the ext2 filesystem contains the
kernel (4MB), the wireless modules (4MB), all firmware for wireless
modules (40MB), and the wifi userspace (9MB) and the udev hwdb (5MB)
which brings the total to 70MB.
Increase the filesystem size to 120000K, which is a nice and round
number and leaves enough space for overhead on a 128MB flash drive.
Fixes:
https://gitlab.com/buildroot.org/buildroot/builds/15762234
This commit is identical to 9c393ad2fd
from Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>, except it
is done for pc_x86_64_efi_defconfig.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
In commit 4b2440b7dc ("beaglebone: add DT
for BeagleBone Green"), both beaglebone_defconfig and
beaglebone_qt5_defconfig were updated to add "am335x-bonegreen" to the
list of Device Tree files to be produced.
However, beaglebone_qt5_defconfig uses an older kernel version than
beaglebone_defconfig, in which am335x-bonegreen doesn't exist.
Therefore, revert the change on beaglebone_qt5_defconfig.
Fixes:
https://gitlab.com/buildroot.org/buildroot/builds/15762182
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The LUAPATH variable is only used when installing the lua module, and
cmake knows very well how to do out-of-tree isntalls, so there is no
reason to include the staging path in LUAPATH, which will cause our
post-install sanity checks to kick in and whine:
libubox: installs files in /home/lhk/workspace/orangepi/host/usr/a
rm-buildroot-linux-gnueabihf/sysroot//home/lhk/workspace/orangepi
As for libuci, just pass the runtime LUAPATH.
Fixes#9856
Reported-by: linhuikui@gmail.com
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The ltp-testsuite now builds fine with our default uClibc
configuration, so remove the Config.in comment and the part of the
Config.in help text related to building with uClibc.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
There was already a post-build hook to delete the /var/lib/dbus symlink
created by buildroot after the package's own installation, to prevent
a dbus installation error during "make dbus-rebuild". However, this
misses the case for when one might delete the .stamp_target_installed
file manually, outside of dbus-rebuild. This can be fixed by changing
the post-build hook to a pre-install hook. This seems appropriate,
since it is really addressing an installation issue, not a build issue.
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This options was recently removed and made it to legacy (in 815f713773)
but miraclecast still selects it.
miraclecast builds fine without it, it seems, so just drop the select
altogether.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Cc: Ryan Barnett <rjbarnet@rockwellcollins.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
lutok is a lua module, so it depends on ! static libs. However, the
dependency is implicit, being done because the lua modules are sourced
globally under an if-block, and thus it is not easy to find that
dependency.
Propagate that dependency to kyua, which was missing it (because it is
not a lua module, so was missing the dependency).
[Peter: also update toolchain comment]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit reverts cdf63517de "gmp: disable assembly for arc"
as in GMP v6.1.2 there's already a proper fix for ASM constraints, see
https://gmplib.org/repo/gmp/rev/58879634af3ci
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The midi profile was introduced in BlueZ 5.44.
Cc: Marcin Bis <marcin@bis.org.pl>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Disregard to increase just minor version BlueZ 5.44 is drastically different in
a way what plugins that used to be enabled by the --enable-experimental
configure option, now have their own option.
Extend Buildroot package to cover these plugins.
Cc: Marcin Bis <marcin@bis.org.pl>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
In BlueZ 5.44 the --enable-experimental configure option only controls the
build of the Nokia OBEX PC Suite plugin. Correct the option prompt and help
text.
Cc: Marcin Bis <marcin@bis.org.pl>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
binutils 2.27 triggers a segfault in elf2flt on ARM/noMMU. While Arnout
has identified a binutils 2.28 commit that can be backported on 2.27,
this commit is huge and we don't clearly understand the impact.
Since both binutils 2.26 and 2.28 are unaffected by this issue, we
simply disallow the selection of binutils 2.27 on ARM/noMMU, and default
to binutils 2.28.
Fixes:
http://autobuild.buildroot.net/results/e14cadb290b0b86cac12c4bfb681eb6eee9e6dea/
and lots of other similar ARM/Cortex-M4 failures
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
libunwind use sigreturn() and setcontext() while building for x86 [1]
but this function is not available with musl [2].
This throw a warning during libunwind build:
In file included from x86/Los-linux.c:4:0:
x86/Gos-linux.c: In function ‘_ULx86_local_resume’:
x86/Gos-linux.c:298:7: warning: implicit declaration of function ‘sigreturn’ [-Wimplicit-function-declaration]
sigreturn (sc);
^
But any program trying to link against libunwind-generic.so or
libunwind.so fail to build:
[...]/usr/lib/libunwind-generic.so: undefined reference to `sigreturn'
[...]/usr/lib/libunwind-generic.so: undefined reference to `setcontext'
collect2: error: ld returned 1 exit status
Disable libunwind for x86 target when musl is used.
Reported upstream by Waldemar [3]
[1] http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=blob;f=src/x86/Gos-linux.c;h=17aebc2974af50eb0bf8292689b2ed22a4c97866;hb=HEAD#l299
[2] http://openwall.com/lists/musl/2016/02/04/3
[3] http://lists.nongnu.org/archive/html/libunwind-devel/2017-04/msg00030.html
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Waldemar Brodkorb <wbx@openadk.org>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since aubio 0.4.4, the libsamplerate support require fftw
single precision mode [1].
[1] 8be88e77f5
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
BR2_ARM_CPU_HAS_ARM already embeddeds the fact that this is an ARM chip,
so (BR2_arm || BR2_armeb) is forcibly true when BR2_ARM_CPU_HAS_ARM is.
In other words, BR2_ARM_CPU_HAS_ARM can't be true unless either BR2_arm
or BR2_armeb itslef is true.
Simplify the logic accordingly.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Romain Naour <romain.naour@openwide.fr>
Acked-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
libnvidia-egl-wayland.so was renamed in upstream archive.
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Since uClibc-ng v1.0.20 we can force libc to either use llock/scond
instructions for atomic ops or if those are missing use kernel-assisted
emulation. By default atomics are used so we disable that feature in
libc if we build for a target without LLSC.
This allows us to build and use NPTL on ARC750 for example which was not
possible before.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
spidev_test has further evolved after kernel version 3.15, which
is the most recent version that could be built in this package.
This change allows to build the latest version of spidev_test if
the toolchain's kernel header version allows it. In this way, when
building with a newer toolchain, we are able to benefit from the
added functionality offered by the newest version of the tool.
Signed-off-by: Joeri Barbarien <joeri.barbarien@nokia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
We usually have empty lines around multi-line variable definitions.
Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>