Currently, our clean-json macro does two things:
- remove excessive commas before a closing list or dictionary;
- escape the backslash.
We are going to need the comma-drop feature of clean-json, but on a
JSON blurb where all the characters, backslash included, are already
all properly escaped, so that we do not need further escape.
So, we drop the backslash escaping from clean-json, and use the newly
introduced mk-json-str helper in every locations where we turn a
Makefile variable into a JSON string.
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
In quite a few places, we need to generate string that are proper JSON
values or keys.
However, JSON is very strict on what constitute a string, and most JSON
parsers (like jq or python3's json module) are very picky when parsing a
string; any deviation from the spec is immediately sanctioned by a hard
error (jq aborts, python3's json module raise an exception).
Introduce a macro that properly prepares a Makefile value into a valid
JSON string:
- backslash '\' must be escaped;
- double-quotes need to be escaped of course, as they are the string
delimiter in JSON;
- anything in the range [0x00..0x1F] must be escaped; in practice, we
only ever need to escape \n, \t, and ESC (we could add more in the
future if need be);
- finally, we also escape the space, \x20, so that we can call
$(strip) on a JSON blurb (like we do for example do build a
comma-separated list, or when we sanitise the JSON) without losing
multiple spaces where they make sense.
It would have been nice if we had been able to split the macro on
multiple lines, but spaces creep in from everywhere in that case, and
getting rid of them is getting quite nasty... We could introduce
intermediate macros, but meh...
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Currently, we have two functions that build a comma-separated list
of items; one is double-quoting the items, while the other is
single-quoting them. Their naming is not very consistent.
Besides, in a followup change, we will need to build a comma-separated
list of items that are already double-quoted.
Introduce a macro that does just build a comma-separated list, and
use that in the two other macros; rename the existing macro so the
naming is consistent.
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Similarly to what we just did for conditionally-set-empty variables,
unconditionally setting empty variables serves no purpose in Makefiles,
as unset variables are just expanded as empty...
Even though we have numerous python packages, the speed gain was not
measurable, with delta much less than the noise.
Still, for consistency, we just do not set those variables.
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Setting an unset variable to an empty value is useless in make; an unset
variable just expands to an empty string anyway. So what we do currently
has no side effect:
variable set and not empty -> variable not modified
variable set and empty -> variable not modified
variable unset -> set to an empty string
However, additional variables do have an impact on the parsing time of
the Makefiles, and the more variables, the more collisions in the hash
table used internally by make, which slows down the parsing.
By dropping those conditionally-set-empty variables, we gain about 3%:
Run Before After
1 5.572 5.325
2 5.434 5.354
3 5.490 5.320
4 5.525 5.330
5 5.476 5.330
6 5.511 5.434
7 5.498 5.388
8 5.524 5.371
9 5.479 5.346
10 5.637 5.324
Mean: 5.515 5.352
Yeah, 0.163s does not look like much, and this does not make
autocompletion any more usable. Still, that 3% gain is not to be
ashamed of either.
Note that there are 3 others case where we do set empty variables, but
those are unconditional and serve other purposes:
- pkg-virtual: this is done on purpose to avoid a bug when the
environment may have TOOLCHAIN_VERSION or _SOURCE set, and we really
want those to be empty, so the assignment is not conditional;
- pkg-python: the reason for setting those to empty is dubious at
best; it's been there since the inception of the python infra, back
in 2013; still, the case is different than this patch addresses;
- pkg-toolchain-external: this is the case for a toolchain already
installed, so indeed we want to set _SOURCE and _VERSION to empty.
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This package build failure has been fixed by using -mcmodel=large that is
now available in external toolchains as well as buildroot toolchains. So
we can drop its dependency on binutils 21464.
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Fix the following build failure raised since bump to version 0.18 in
commit 81d14a8625:
aclocal: error: couldn't open directory 'm4': No such file or directory
Fixes:
- http://autobuild.buildroot.org/results/f8e26416e38c83e27e7945343f497a6c9310bfcf
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This allows building and running a full-scale JVM in purely
interpretive mode on ARCv2 processors.
Once JIT'ed version is available for ARC we'll obviously switch to it
to gain a faster execution.
This is only supported for OpenJDK17, so we make OpenJDK11 unavailable
on ARC. However, there was a dependency difference between OpenJDK17
and OpenJDK11 (on host gcc >= 4.9). To avoid any potential
complexities if a package ever needs to "select BR2_PACKAGE_OPENJDK",
this commit moves this host gcc >= 4.9 dependency to
BR2_PACKAGE_OPENJDK itself.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Adam Duskett <aduskett@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Following the releases of 2021.11 Bootlin toolchains, this commit
represents the result of re-running the gen-bootlin-toolchains script.
The only part that isn't auto-generated are the contents of
Config.in.legacy, which account for the replacement of the RISC-V LP64
toolchain by RISC-V LP64D toolchains.
The complete set of runtime test cases was verified on Gitlab CI:
https://gitlab.com/tpetazzoni/buildroot/-/pipelines/437767674
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
toolchains.bootlin.com no longer provides a LP64 RISC-V 64-bit
toolchain, but a more useful LP64D RISC-V 64-bit toolchain. Of course,
the old tarballs remain available, but no new versions of the LP64
toolchain will be produced.
This commit reflects this change in the gen-bootlin-toolchains script.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Already supported:
- Pushing a branch called "<foo>-defconfigs" tests all defconfigs.
- Pushing a branch called "<foo>-defconfig-<defconfig-name>" will
test one particular defconfig
This commit adds support for:
- Pushing a branch called "<foo>-defconfigs-<pattern>" which will
test all defconfigs whose name start with the pattern. For example
"<foo>-defconfigs-qemu_" will test all Qemu defconfigs
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
The BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_V4L2CODECS option has a
dependency on BR2_PACKAGE_HAS_UDEV, but no Config.in comment was added
about this dependency. This commit addresses that.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
No included package depends on those programs.
Signed-off-by: Moritz Bitsch <moritz@h6t.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Add option to disable code for Intel Gen8 GPUs, reduces size of
iHD_drv_video.so from 36M to 33M.
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Update to that latest version of the PRU software support [1]. Since
v5.9.0, the examples have been updated, kernel header references have
been bumped to v5.10, and some minor bug fixes added.
[1]
https://git.ti.com/cgit/pru-softward-support-package/pru-software-support-package
Signed-off-by: Ash Charles <ashcharles@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Commit 4ac4d6879b (package/supertuxkart: bump to version 1.3)
introduced a circular dependency chain in Kconfig:
package/openssl/Config.in:4:error: recursive dependency detected!
package/openssl/Config.in:4: symbol BR2_PACKAGE_OPENSSL is selected by BR2_PACKAGE_MBEDTLS
package/mbedtls/Config.in:1: symbol BR2_PACKAGE_MBEDTLS is selected by BR2_PACKAGE_OPENSSL
Fix by selecting openssl if mbedtls is not enabled.
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Some U-Boot platforms (e.g. rockchip) can bundle OPTEE's tee.elf
into the U-Boot image. This patch brings the necessary changes to
enable this feature.
Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit creates a symlink that ensures fontconfig will find the
fonts installed by the font-awesome package.
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Fixes:
radeon_present.c: In function ‘radeon_present_check_flip’:
radeon_present.c:281:21: error: invalid use of undefined type ‘struct radeon_pixmap’
281 | if (priv && priv->fb_failed)
| ^~
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Fixes:
In file included from radeon_textured_video.c:37:
radeon.h: In function ‘radeon_master_screen’:
radeon.h:187:15: error: ‘struct _Screen’ has no member named ‘current_master’
187 | if (screen->current_master)
| ^~
The API/ABI have changed in xserver 21.0 due to "some badly named variables/APIs" [1].
[1] ea47af87f6
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Backport from upstream.
Fixes:
minetest-5.4.1/src/clientiface.h:444:36: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
444 | ClientInterface(const std::shared_ptr<con::Connection> &con);
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Combination of cryptolib=openssl and dns-over-tls=gnutls is disallowed
since version 250 and
e37ad765c8
resulting in the following build failure since commit
e9fb26cbb8:
../output-1/build/systemd-250/meson.build:1482:16: ERROR: Problem encountered: Sorry, -Ddns-over-tls=gnutls is not supported when openssl is used as the cryptolib
Fixes:
- http://autobuild.buildroot.org/results/2fcd4ad64b32cc4835866c9d99e05ab8c9bc794a
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
argp is needed for SSH plugin to avoid the following build failure
raised since bump to version 2.4.2 in commit
b537fe1433:
configure: error: You need argp library.
Fixes:
- http://autobuild.buildroot.org/results/6740792920a28c91f4f82a8f8c2fb525ed80410a
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
python2 support has been dropped since version 2.0.0 and
3a9f92d67b
resulting in the following build failure since bump to version 2.1.1 in
commit bcb85b2e59:
error: File "/usr/lib/python2.7/site-packages/enumfields/fields.py", line 134
*super().check(**kwargs),
^
SyntaxError: invalid syntax
Fixes:
- http://autobuild.buildroot.org/results/3fd79ed7bbcad202fc7ac07252cdf57c599dac30
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>