boot/uboot: rename TI_K3_DM option to cover further TI K3 SoCs support
BR2_TARGET_UBOOT_NEEDS_TI_K3_DM option has been introduced initially to
support certain TI K3 devices such as AM62x and AM62Ax that require a
Device Manager (DM) firmware.
This option needs to be renamed to use a more generic name in order
to cover further TI K3 SoCs support along with the new u-boot binman
tool that will be added in followup patch. With binman enabled in
u-boot on TI K3 SoC, ti-k3-boot-firmware is needed at buildtime to
provide ti-sysfw (System Firmware) for all TI K3 SoC along with Device
Manager (DM) firmware for AM62x and AM62Ax devices.
With binman support enabled, we don't need to provide the path of the
Device Manager firmware anymore (see [2]).
We can remove DM="<DM firmware>.xer5f" from UBOOT_MAKE_OPTS.
It also means that we can also remove BR2_TARGET_UBOOT_TI_K3_DM_SOCNAME
used to define DM path.
For now, keep BR2_TARGET_UBOOT_TI_K3_DM_SOCNAME and DM only when
ti-k3-image-gen is used. We need to update ti_am62x_sk_defconfig
to use binman before removing them along with ti-k3-image-gen.
We are going to enable BR2_DOWNLOAD_FORCE_CHECK_HASHES by default
to enforce downloads to have at least one valid hash including
those that use a custom version.
boot/ti-k3-r5-loader: drop hash for version 2022.10
The patch removes the hash for version 2022.10 of ti-k3-r5-loader
(i. e. U-Boot). Instead, it is added to a custom hash file in the
global patch dir of the ti_am6{2,4]x_sk_defconfig configurations.
In file included from ../src/basic/macro.h:446,
from ../src/basic/alloc-util.h:10,
from ../src/shared/install.c:12:
../src/shared/install.c: In function ‘install_changes_dump’:
../src/shared/install.c:444:64: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
444 | err = log_error_errno(changes[i].type, "Failed to %s unit, unit %s does not exist.",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Fix a potential denial of service caused by accepting arbitrary
length primes as potential elliptic curve parameters in ASN.1
encodings. With very large inputs the primality verification
can become computationally expensive. Now any prime field larger
than 1024 bits is rejected immediately.
Vulnerabilities
- [High] CVE-2024-0901 Potential denial of service and out of bounds
read. Affects TLS 1.3 on the server side when accepting a connection
from a malicious TLS 1.3 client. If using TLS 1.3 on the server side
it is recommended to update the version of wolfSSL used.
- [Med] CVE-2024-1545 Fault Injection vulnerability in
RsaPrivateDecryption function that potentially allows an attacker
that has access to the same system with a victims process to perform
a Rowhammer fault injection.
- [Med] Fault injection attack with EdDSA signature operations. This
affects ed25519 sign operations where the system could be susceptible
to Rowhammer attacks.
No official tarball provided so switch to github and set autoreconf
Fix the following build failure with kernel >= 6.8:
/home/autobuild/autobuild/instance-8/output-1/build/dahdi-linux-3.3.0/drivers/dahdi/xpp/card_global.c: In function ‘parse_chip_command’:
/home/autobuild/autobuild/instance-8/output-1/build/dahdi-linux-3.3.0/drivers/dahdi/xpp/card_global.c:345:9: error: implicit declaration of function ‘strlcpy’; did you mean ‘strscpy’? [-Werror=implicit-function-declaration]
345 | strlcpy(buf, cmdline, MAX_PROC_WRITE); /* Save a copy */
| ^~~~~~~
| strscpy
The LIBS environment variable is ignored since bump to version 1.0.1 and
switch to cmake build system in commit 203725a46bc6b61ed7e4fdb3d76f62327d3e47fa resulting in the following
build failure:
/home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-musleabihf/12.3.0/../../../../arm-buildroot-linux-musleabihf/bin/ld: CMakeFiles/clamonacc.dir/inotif/hash.c.o: in function `onas_ht_add_hierarchy':
hash.c:(.text+0xa84): undefined reference to `fts_open'
In file included from /home/buildroot/autobuild/run/instance-1/output-1/host/opt/ext-toolchain/mips-linux-gnu/include/c++/5.3.0/cstdint:35:0,
from ../cpp/INIReader.h:17,
from ../cpp/INIReader.cpp:16:
/home/buildroot/autobuild/run/instance-1/output-1/host/opt/ext-toolchain/mips-linux-gnu/include/c++/5.3.0/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
^
SSLeay.c: In function 'XS_Net__SSLeay_X509_policy_tree_free':
SSLeay.c:17730:9: error: unknown type name 'X509_POLICY_TREE'
17730 | X509_POLICY_TREE * tree = INT2PTR(X509_POLICY_TREE *,SvIV(ST(0)))
| ^~~~~~~~~~~~~~~~
Andreas Naumann [Wed, 6 Mar 2024 11:12:12 +0000 (12:12 +0100)]
package/imx-gpu-viv: fix masking fb option
Only the 32bit ARM blob provides the framebuffer backend. This is
apparently independent of which imx8 derivate is used, so changed
the condition for the config option accordingly.
resulting in the following build failure with musl >= 1.2.4 and
https://github.com/bminor/musl/commit/25e6fee27f4a293728dd15b659170e7b9c7db9bc
because _LARGEFILE64_SOURCE is not set:
/home/autobuild/autobuild/instance-3/output-1/host/lib/gcc/sh4a-buildroot-linux-musl/12.3.0/../../../../sh4a-buildroot-linux-musl/bin/ld: misc/file.o: in function `rw_file':
file.c:(.text+0x150): undefined reference to `lseek64'
To fix this issue, pass TARGET_CONFIGURE_OPTS through DMRAID_MAKE_OPTS
sortGrid()'s handling of git hashes and other large hex numbers
has been inconsistent, they can be detected as strings or numbers
depending on what type of character they start with.
This patch fixes the behaviour by using a regex to capture everything
that looks like a big hex number and treat it as a string.
This means when you sort by current version ascending all the version
strings with big hex numbers should show up first, sorted 0-9,a-f.
First we check for a string length >= 39, and then apply a regex
to return an array with every char from that string that matched
the regex. If the length of this array is still >= 39 we can assume
we are looking at something containing a git hash.
The reason why the length is defined as ">= 39" and not "40" or
"39 or 40" is twofold:
Firstly, 39 was chosen as a minimum to match stuff with 39 char git
hashes, like the rockchip-mali package.
Secondly, there is no max because we actually want to catch not
just explicitly git hashes, but any verson string with big gnarly
hex numbers in it.
Stuff like: "1.4.2-168-ged3039cdbeeb28fc0011c3585d8f7dfb91038292"
Why? Well, the idea is less about git hashes and sorting
and more about grouping similarly formatted version strings.
It would be impossble (or at least annoyingly complicated) and of
dubious utility to get a real sequential sort out of the
current version column, so the attempt here is to at the very
least collect all the similarly formatted things together.
This isn't perfect, but it's a (arguably) more useful sorted
output than before.
A demo is available here:
https://sen-h.codeberg.page/pkg-stats-demos/@pages/fix-improve-git-hash-sorting.html
Sen Hastings [Sun, 25 Feb 2024 22:05:44 +0000 (14:05 -0800)]
support/scripts/pkg-stats: fix bug when sorting by hashfile
Because the div_class variable was not reassigned a value,
cells in the latest_version column were still being assigned
hash_file classes and so were being picked up as elements in
the hash_file sort. This lead to execessive grid gap elements
stacking up and creating huge blank spaces at the top of the page.
This is very noticable on pages with a large number of packages,
like the ones the autobuilder creates.
original behaviour(click the "Hash file" column label twice):
http://autobuild.buildroot.org/stats/master.html
demo of fixed behaviour:
https://sen-h.codeberg.page/pkg-stats-demos/@pages/fix-bug-when-sorting-by-hash-file.html
/home/buildroot/autobuild/run/instance-1/output-1/build/tcf-agent-1.8.0/agent/tcf/services/tcf_elf.c: In function 'unpack_elf_symbol_info':
/home/buildroot/autobuild/run/instance-1/output-1/build/tcf-agent-1.8.0/agent/tcf/services/tcf_elf.c:2079:27: error: 'STT_ARM_16BIT' undeclared (first use in this function)
2079 | if (info->type == STT_ARM_16BIT) {
| ^~~~~~~~~~~~~
/home/buildroot/autobuild/run/instance-1/output-1/build/tcf-agent-1.8.0/agent/tcf/services/tcf_elf.c:2079:27: note: each undeclared identifier is reported only once for each function it appears in
/home/buildroot/autobuild/run/instance-1/output-1/build/tcf-agent-1.8.0/agent/tcf/services/tcf_elf.c: In function 'create_symbol_addr_search_index':
/home/buildroot/autobuild/run/instance-1/output-1/build/tcf-agent-1.8.0/agent/tcf/services/tcf_elf.c:2228:78: error: 'STT_ARM_16BIT' undeclared (first use in this function)
2228 | if (type == STT_FUNC || type == STT_ARM_TFUNC || type == STT_ARM_16BIT) {
| ^~~~~~~~~~~~~
../utest/tracefs-utest.c: In function 'test_uprobes_instance':
../utest/tracefs-utest.c:2492:19: error: 'PATH_MAX' undeclared (first use in this function)
2492 | char self[PATH_MAX] = { 0 };
| ^~~~~~~~
[100%] Linking CXX executable oatppAllTests
/home/buildroot/instance-0/output-1/per-package/oatpp/host/opt/ext-toolchain/m68k-buildroot-uclinux-uclibc/bin/ld.real: cannot find -latomic: No such file or directory
/home/buildroot/autobuild/run/instance-1/output-1/host/lib/gcc/arc-buildroot-linux-gnu/13.1.1/../../../../arc-buildroot-linux-gnu/bin/ld: auth.o: in function `cupsdAuthorize':
auth.c:(.text+0xdba): undefined reference to `crypt'
/home/buildroot/autobuild/instance-0/output-1/host/lib/gcc/powerpc-buildroot-linux-gnu/13.2.0/../../../../powerpc-buildroot-linux-gnu/bin/ld: src/util.o: in function `Util_checkCredentials':
util.c:(.text+0x32e8): undefined reference to `crypt'
/home/autobuild/autobuild/instance-14/output-1/host/lib/gcc/arm-buildroot-linux-gnueabi/12.3.0/../../../../arm-buildroot-linux-gnueabi/bin/ld: libhttpd.o: in function `auth_check2':
libhttpd.c:(.text+0x3d50): undefined reference to `crypt'
/home/autobuild/autobuild/instance-5/output-1/host/lib/gcc/mipsel-buildroot-linux-gnu/12.3.0/../../../../mipsel-buildroot-linux-gnu/bin/ld: cannot find -lcrypt: No such file or directory
/home/autobuild/autobuild/instance-12/output-1/host/lib/gcc/s390x-buildroot-linux-gnu/13.2.0/../../../../s390x-buildroot-linux-gnu/bin/ld: modules/mod_auth_file.o: in function `authfile_chkpass':
mod_auth_file.c:(.text+0x3aa): undefined reference to `crypt'
In file included from src/core/ngx_config.h:26,
from src/core/nginx.c:8:
src/os/unix/ngx_linux_config.h:55:10: fatal error: crypt.h: No such file or directory
55 | #include <crypt.h>
| ^~~~~~~~~
/home/autobuild/autobuild/instance-13/output-1/host/lib/gcc/riscv32-buildroot-linux-gnu/12.3.0/../../../../riscv32-buildroot-linux-gnu/bin/ld: local.o: in function `auth_local':
local.c:(.text+0xe8): undefined reference to `crypt'
/home/autobuild/autobuild/instance-15/output-1/per-package/policycoreutils/host/bin/../lib/gcc/powerpc-buildroot-linux-gnu/12.3.0/../../../../powerpc-buildroot-linux-gnu/bin/ld: cannot find -lcrypt: No such file or directory
/home/autobuild/autobuild/instance-14/output-1/host/lib/gcc/i686-buildroot-linux-gnu/12.3.0/../../../../i686-buildroot-linux-gnu/bin/ld: cannot find -lcrypt: No such file or directory
toolchain/toolchain-external/toolchain-external-bootlin: bump to 2024.02
2024.02 Bootlin toolchains have been released, so let's update the
support in Buildroot. Notable changes:
- Bleeding edge toolchains now use binutils 2.42, and stable
toolchains use binutils 2.41. This fixes binutils bug 27597
for both.
- glibc has been updated to 2.39
- musl has been updated to 1.2.5, which brings 32-bit RISC-V
support. Due to this, 2 new toolchain variants are added: 32-bit
RISC-V stable, 32-bit RISC-V bleeding edge.
- Bleeding edge toolchains now use 5.15 kernel headers, and stable
toolchains now use 4.19 kernel headers
- Fortran support has been disabled on Microblaze, as the libgfortran
build at -O2 causes an internal compiler error.
All runtime tests are passing, except the ones for the new RISC-V
32-bit musl toolchain, for which Busybox fails to build due to an
interaction between musl-specific code in Busybox and musl. This issue
has been reported:
https://www.openwall.com/lists/musl/2024/03/03/2
The runtime tests are nevertheless included, with the hope that this
issue will reasonably quickly be resolved.
License file changed name from LICENCE to LICENSE but is otherwise
unchanged.
There is a new directory "synaptics", install this one as well.
A lot of the files are symlinks. "install" creates copies for these,
which consumes a lot of unnecessary space. Instead of individually
restoring the links, using `cp --remove-destination --no-dereference`
and `chmod` instead of `install`.
Michael Fischer [Mon, 4 Mar 2024 07:52:30 +0000 (08:52 +0100)]
package/sdl2: bump version to 2.30.0
Update the license hash because of a change in copyright year:
- Copyright (C) 1997-2023 Sam Lantinga <[email protected]>
+ Copyright (C) 1997-2024 Sam Lantinga <[email protected]>
This is a minor corrective release over GDB 14.1, fixing the following issues:
PR symtab/31112 (DLL export forwarding is broken)
PR c++/31128 (gdb crashes when trying to print a global variable stub without a running inferior)
PR tdep/31254 ([gdb/tdep, arm] FAIL: gdb.threads/staticthreads.exp: up 10)
PR gdb/31256 (Crash with basic 'list .')
PR python/31366 (Frame.static_link() segfaults)
/home/autobuild/autobuild/instance-12/output-1/host/lib/gcc/riscv32-buildroot-linux-gnu/12.3.0/../../../../riscv32-buildroot-linux-gnu/bin/ld: cannot find -lcrypt: No such file or directory
/home/autobuild/autobuild/instance-10/output-1/host/lib/gcc/nios2-buildroot-linux-gnu/12.3.0/../../../../nios2-buildroot-linux-gnu/bin/ld: cannot find -lcrypt: No such file or directory
/home/autobuild/autobuild/instance-7/output-1/host/lib/gcc/aarch64_be-buildroot-linux-gnu/12.3.0/../../../../aarch64_be-buildroot-linux-gnu/bin/ld: cannot find -lcrypt: No such file or directory
/home/autobuild/autobuild/instance-13/output-1/host/lib/gcc/mips-buildroot-linux-gnu/11.4.0/../../../../mips-buildroot-linux-gnu/bin/ld: CMakeFiles/hiawatha.dir/src/httpauth.c.o: in function `basic_http_authentication':
/home/autobuild/autobuild/instance-13/output-1/build/hiawatha-11.2/src/httpauth.c:334:(.text+0x614): undefined reference to `crypt'
/home/autobuild/autobuild/instance-6/output-1/per-package/linux-pam/host/bin/../lib/gcc/or1k-buildroot-linux-gnu/13.2.0/../../../../or1k-buildroot-linux-gnu/bin/ld: .libs/pam_pwhistory_la-opasswd.o: in function `compare_password':
opasswd.c:(.text+0x26c): undefined reference to `crypt'
/home/autobuild/autobuild/instance-4/output-1/host/lib/gcc/armeb-buildroot-linux-gnueabi/12.3.0/../../../../armeb-buildroot-linux-gnueabi/bin/ld: CMakeFiles/uhttpd.dir/main.c.o: in function `main':
/home/autobuild/autobuild/instance-4/output-1/build/uhttpd-15346de8d3ba422002496526ee24c62a3601ab8c/main.c:437:(.text.startup+0x628): undefined reference to `crypt'
/home/autobuild/autobuild/instance-5/output-1/per-package/dante/host/bin/../lib/gcc/sparc64-buildroot-linux-gnu/12.3.0/../../../../sparc64-buildroot-linux-gnu/bin/ld: auth_password.o: in function `passwordcheck':
/home/autobuild/autobuild/instance-5/output-1/build/dante-1.4.3/sockd/auth_password.c:126:(.text+0xc4): undefined reference to `crypt'
package/arm-gnu-toolchain: bump version to 13.2-rel1
The arm-gnu-toolchain is used by TI's K3 generation of devices to
compile the first stage bootloader (tiboot3.bin) which will run on the
32bit R5 MCU.
The 10.3-2021.10 version of this toolchain is no longer publicized as
being downloadable (and it's fairly old) on ARM's website. Let's upgrade
to the latest version of the toolchain ARM (13.2-rel1)
Vincent Stehlé [Sat, 6 Apr 2024 14:58:02 +0000 (16:58 +0200)]
configs/bananapi_m2_zero: bump Linux to 6.8.4 and U-Boot to 2024.04
Necessary adaptations:
- The SD card is now called mmcblk1; adapt Linux boot command accordingly.
- The DTB is now under the allwinner/ folder.
- U-Boot needs OpenSSL to build.
Peter Korsgaard [Thu, 4 Apr 2024 15:34:37 +0000 (17:34 +0200)]
package/tiff: explicitly disable jbig support for host and target
BR2_PACKAGE_TIFF_JBIG did actually not do anything, as no explicit
--enable-jbig was passed to configure and there is no libjbig in Buildroot,
so drop it and instead explicitly disable jbig support.
Also add --disable-jbig for the host build, which was missed when host
support was added in commit 91b16fbbf9db (tiff: add host variant).
As the TIFF_JBIG option was a noop, do not add legacy handling for it.
bcc is a front-end tool for eBPF:
https://github.com/iovisor/bcc/blob/master/README.md
eBPF is the most powerful Linux tracer, and bcc allows writing eBPF
scripts in C and PYTHON3.
bcc can help to troubleshoot issues quickly on embedded systems (as long
as Linux kernel version >= 4.1).
bcc can also make it easy to create observabilty tools, SDN
configuration, ddos mitigation, intrusion detection and secure
containers. More information is available at: https://ebpf.io/
BCC can be tested on the target :
$ mount -t debugfs none /sys/kernel/debug
$ cd /usr/share/bcc/tools
$ ./execsnoop
Due to a significant api change as well as more recent kernel version
requirements, we introduce a separate package for version 2.0 and higher.
The new package is incompatible to libgpiod 1.x. This allows for iteratively
updating all dependent packages without breaking anything as a result.
For now we will have libgpiod2 depend on !libgpiod. However, in the
future, it might be preferable to have it the other way around,
such that packages, which select libgpiod2 don't have to also add the
the !libgpiod dependency.
Python bindings fail to build, so they are unconditionally disabled.
setup.py when called from Makefile tries to do native compilation
instead of cross-compilation, which fails at link time with
/usr/bin/ld: skipping incompatible ../../lib/.libs//libgpiod.so when searching for -lgpiod
Note that this package does not correspond to the debian libgpiod2 package,
which currently uses only version 1.6.3
Norbert Lange [Tue, 16 Jan 2024 11:00:02 +0000 (12:00 +0100)]
package/psplash: fix systemd unit ordering and dependencies
Fix a typo in the dependencies, and switch the type to 'exec'.
This ensures that the psplash-systemd service will find the
FIFO created by psplash.
Change the psplash-systemd dependency to BindsTo, so stopping
psplash itself will also end this service and free resources.
psplash-start service need to start early, otherwise it might try
to compete/take away the framebuffer from the final graphical
stack. Order it before sysinit.target.
Francois Dugast [Wed, 15 Nov 2023 13:38:21 +0000 (13:38 +0000)]
package/libdrm/intel: Remove dependency to x86
BR2_PACKAGE_LIBDRM_INTEL was dependent on BR2_i386
or BR2_x86_64, which made sense for integrated GPUs.
This is no longer valid with discrete GPUs so remove
this dependency to allow building on other CPU
architectures.