Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from buildroot:master #166

Merged
merged 17 commits into from
Sep 5, 2024
Merged

[pull] master from buildroot:master #166

merged 17 commits into from
Sep 5, 2024

Conversation

pull[bot]
Copy link

@pull pull bot commented Sep 4, 2024

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

jacmet and others added 17 commits September 2, 2024 17:32
The defconfig has failed to build since May with the change to GCC 13.x,
E.G.:

https://gitlab.com/buildroot.org/buildroot/-/jobs/6865597768

I no longer have access to a pandaboard.  Pandaboard/omap4 support has
recently been dropped from u-boot:
https://lists.denx.de/pipermail/u-boot/2024-July/558846.html

And (part of) the kernel support is also getting removed:
https://patchwork.kernel.org/project/linux-media/patch/[email protected]/

So drop the defconfig here as well.

Signed-off-by: Peter Korsgaard <[email protected]>
Signed-off-by: Yann E. MORIN <[email protected]>
The original WebKitGTK-based Midori is no longer maintained and doesn't build
since WebKitGTK moved to libsoup3 as of commit 38a098d.

Last WebKitGTK based release: https://github.com/midori-browser/core/tree/v9.0.
New browser, based on Gecko/Firefox: https://github.com/goastian/midori-desktop.

The intention is also to start migrating WebKitGTK to GTK4, as this is now the default
version. See: https://webkitgtk.org/2024/03/27/webkigit-2.44.html.

Signed-off-by: Thomas Devoogdt <[email protected]>
Signed-off-by: Yann E. MORIN <[email protected]>
According to a commit in Linux[1], the upstream of aer-inject changed to
https://github.com/intel/aer-inject.

[1]: https://git.kernel.org/linus/a29e5290e3566ae4db4e6fe5f31caf23118c82b6

Signed-off-by: J. Neuschäfer <[email protected]>
Signed-off-by: Yann E. MORIN <[email protected]>
Fix download URL. Tarball is renamed, too.

Fixes:

 http://autobuild.buildroot.org/results/950/950688493021c12c4dea98ac4b220355d917ff69

Signed-off-by: Waldemar Brodkorb <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
As reported in [1], version 1.9.2 has been moved to another archive, and
it is recommended to use https://github.com/jech/babeld as the official
repository.

The use of the github macro:

$(call github,jech,babeld,babeld-$(BABELD_VERSION))

would have downloaded a file with the same name (e.g. babeld-1.9.2.tar.gz)
but with a different hash from the one downloaded from the previous URL,
creating unacceptable backward compatibility issues.
Therefore, it was decided to download the package via the git method. In
this way, the downloaded file is babeld-babeld-1.9.2-git4.tar.gz, thus
with a different name, to which its SHA can be associated without side
effects, except for breaking the release monitoring process.
Unfortunately, for now, we will have to live with this limitation.

Particularly interesting are the explanations provided by Yann E. Morin,
which you can find in [2], that guided the creation of this patch.

Fixes:
- http://autobuild.buildroot.org/results/2447060c86acf1bd8d6ee0bcf8f9b6adcdfc50c9

[1] https://alioth-lists.debian.net/pipermail/babel-users/2024-August/004187.html
[2] https://patchwork.ozlabs.org/project/buildroot/patch/[email protected]/

Co-Developed-by: Yann E. MORIN <[email protected]>
Signed-off-by: Yann E. MORIN <[email protected]>
Signed-off-by: Dario Binacchi <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Dario Binacchi <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
Hardware offload in Linux macsec driver is enabled in compile time if
libnl version is >= v3.6. However this is not enough for successful
build since enum 'macsec_offload' has been added to Linux headers only
since Linux >= v5.7.

Add upstream commit that extends compile time condition for the
enablement of the macsec hardware offload adding Linux headers version
check.

Fixes:
- http://autobuild.buildroot.net/results/b59d5bc5bd17683a3a1e3577c40c802e81911f84/

Signed-off-by: Sergey Matyukevich <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
The imx8mqevk_defconfig is failing to build the arm-trusted-firmware
package, with the error message:

    plat/imx/imx8m/hab.c: In function 'imx_hab_handler':
    plat/imx/imx8m/hab.c:65:57: error: array subscript 0 is outside array bounds of 'uint32_t[0]' {aka 'unsigned int[]'} [-Werror=array-bounds=]
       65 | #define HAB_RVT_CHECK_TARGET_ARM64      ((unsigned long)*(uint32_t *)(HAB_RVT_BASE + 0x18))
          |                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This is happening since commit dc0f721 "package/gcc: switch to 13.x
as default".

This commit fixes this build failure by updating the TF-A, U-Boot and
Linux Kernel. Note: this imx8mqevk_defconfig uses the upstream Kernel
(in contrast of the freescale_imx8mqevk_defconfig which is using the NXP
BSP Kernel version).

Also, this new uboot version needs gnutls and openssl, so the
corresponding options are added to the defconfig.

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/7691701411

Signed-off-by: Julien Olivain <[email protected]>
Reviewed-by: Fabio Estevam <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
The commit adds a backported upstream patch to fix the following build
failure:

build/gerbera-1.12.1/src/cds/cds_objects.cc: In static member function 'static std::string CdsObject::mapFlags(int)':
build/gerbera-1.12.1/src/cds/cds_objects.cc:174:35: error: 'join' is not a member of 'fmt'

Upstreaming the patch was added in version 2.2.0.

Fixes:
 - http://autobuild.buildroot.org/results/aaf054b0bb336d45203b0d869ec6f9e00528ec8e

Signed-off-by: Dario Binacchi <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
Following an email exchange with Conrad Sand, one of the maintainers of
the project, I learned that version 9.900.2 has been moved to
https://sourceforge.net/projects/arma/files/retired/.

This patch fixes the package download error, waiting for a subsequent
patch that will restore the previous URL to bump to a more recent
version.

Adding the .RETIRED suffix to the downloaded tarball generated the
following error:

armadillo-9.900.2.tar.xz.RETIRED: OK (sha256: d78658c9442addf7f718eb05881150ee3ec25604d06dd3af4942422b3ce26d05)
>>> armadillo 9.900.2 Extracting
buildroot/dl/armadillo/armadillo-9.900.2.tar.xz.RETIRED | buildroot/output/host/bin/tar --strip-components=1 -C buildroot/output/build/armadillo-9.900.2   -xf -
/bin/bash: line 1: buildroot/dl/armadillo/armadillo-9.900.2.tar.xz.RETIRED: Permission denied
buildroot/output/host/bin/tar: This does not look like a tar archive
buildroot/output/host/bin/tar: Exiting with failure status due to previous errors
make[1]: *** [package/pkg-generic.mk:213: buildroot/output/build/armadillo-9.900.2/.stamp_extracted] Error 2

which required the addition of ARMADILLO_EXTRACT_CMDS to be fixed.

Finally, it was also necessary to modify the tarball's hash.

Fixes:
- http://autobuild.buildroot.org/results/d4e9e7b453960a4f62a199344b30b729a4f235bc

Signed-off-by: Dario Binacchi <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Dario Binacchi <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Roy Kollen Svendsen <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
Project moved to Github. Update download URL and hash.
License file got renamed, but it is still GPLv2.

Fixes:

 http://autobuild.buildroot.org/results/6e0/6e0e34c342fe712d5314de80488a2d034a2f5983/

Signed-off-by: Waldemar Brodkorb <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
Following error is seen with gcc 14.x:
/home/autobuild/autobuild/instance-0/output-1/host/bin/armeb-buildroot-linux-uclibcgnueabi-gcc -DHAVE_CONFIG_H -I. -I. -I..   -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -O2 -fomit-frame-pointer -s -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os -g0  -c `test -f 'main.c' || echo './'`main.c
main.c: In function 'main':
main.c:82:49: error: passing argument 4 of 'Options_parse' from incompatible pointer type [-Wincompatible-pointer-types]
   82 |   if( Options_parse( opt_template, &opts, argc, argv ) != 0 )
      |                                                 ^~~~
      |                                                 |
      |                                                 char **
In file included from main.c:17:
options.h:32:83: note: expected 'const char **' but argument is of type 'char **'
   32 | int Options_parse( const OptionTemplate *tmplt, void *opts, int argc, const char *argv[] );
      |                                                                       ~~~~~~~~~~~~^~~~~~
make[3]: *** [Makefile:240: main.o] Error 1
make[3]: Leaving directory '/home/autobuild/autobuild/instance-0/output-1/build/fbdump-0.4.2/src'
make[2]: *** [Makefile:201: all-recursive] Error 1
make[2]: Leaving directory '/home/autobuild/autobuild/instance-0/output-1/build/fbdump-0.4.2'
make[1]: *** [Makefile:156: all] Error 2
make[1]: Leaving directory '/home/autobuild/autobuild/instance-0/output-1/build/fbdump-0.4.2'

Fixes:

  http://autobuild.buildroot.net/results/3a0/3a0abff75023e257f3d6048688485a380b72fbb3

Signed-off-by: Waldemar Brodkorb <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
Arm Trusted Firmware (TF-A) v2.11 fails to build in some situations
with the error message:

    ld: build/qemu/release/bl1/bl1.elf: error: PHDR segment not covered by LOAD segment

This error can be reproduced with the commands:

    make qemu_aarch64_ebbr_defconfig
    utils/config --set-str BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE v2.11
    make olddefconfig
    make

This issue was reported in [1].

This error is coming from a check that was made more strict since
binutils ld 2.34. This error message is normally related to dynamic
linker, so it should normally not apply to a package like TF-A.

When BR2_SHARED_LIBS=y (shared libraries only) and BR2_PIC_PIE=y
(Build code with PIC/PIE), the Buildroot toolchain-wrapper will try
to enable position-independent code/executables. See [2]. This
configuration is a common default.

Arm Trusted Firmware (TF-A) build system, on its side, tries to detect
if the toolchain enables PIE automatically. It does so by checking if
--enable-default-pie is in the output of "$(CC) -v". If found, the TF-A
build system tries to disable PIE globally (it can be explicitly
enabled again with the ENABLE_PIE=1 build variable, in some specific
configurations). This detection mechanism is not working with the
Buildroot toolchain wrapper which is enabling PIE silently. See [3].

Commit 1061ed6 "boot/arm-trusted-firmware: add -fno-PIE to CFLAGS"
added the option -fno-PIE in CFLAGS for that reason. See [4].
TF-A >= v2.11 now needs the same treatment for LDFLAGS. This is
because TF-A switched the default linker from "ld" to "gcc", in
upstream commit [5]. This change makes the Buildroot toolchain wrapper
to enable PIE at link, without passing the "--no-dynamic-linker" option
that would normally avoids this ld error.

Also, even if there is no defconfigs using the
BR2_TARGET_ARM_TRUSTED_FIRMWARE_LATEST_VERSION config directive, it is
worth mentioning that the Buildroot TF-A "latest version" was updated
to v2.11 in commit 9c50759 "boot/arm-trusted-firmware: bump to
v2.11". See [6]. This latest version is the default choice. So
Buildroot is subject to generate this build failure. This can be
reproduced with the commands:

    cat <<EOF >.config
    BR2_aarch64=y
    BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
    BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="qemu"
    BR2_TOOLCHAIN_EXTERNAL=y
    EOF
    make olddefconfig
    make arm-trusted-firmware

This commit fixes the issue by adding the option "-no-pie" in LDFLAGS.
This will prevent the Buildroot toolchain wrapper to enable PIE, for
versions using "gcc" as a linker. This change should also remain
compatible with older TF-A < 2.11 using "ld" as a linker, since
"-no-pie" is also a valid ld option.

Fixes:

    ld: build/qemu/release/bl1/bl1.elf: error: PHDR segment not covered by LOAD segment

[1] TrustedFirmware-A/trusted-firmware-a#26
[2] https://gitlab.com/buildroot.org/buildroot/-/blob/2024.08-rc3/toolchain/toolchain-wrapper.c?ref_type=tags#L403
[3] https://git.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a.git/+/refs/tags/v2.11.0/Makefile#711
[4] https://gitlab.com/buildroot.org/buildroot/-/commit/1061ed6c6273e90618b05ddc0cb66be17364da33
[5] https://git.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a.git/+/2f1c5e7eb1775b252fa4998e10093b8ac34ca699%5E%21/
[6] https://gitlab.com/buildroot.org/buildroot/-/commit/9c50759cd1677e1739078239a1e86fb1d62e33e8

Reported-by: Vincent Stehlé <[email protected]>
Tested-by: Vincent Stehlé <[email protected]>
Signed-off-by: Julien Olivain <[email protected]>
Signed-off-by: Yann E. MORIN <[email protected]>
Buildroot commit 623d3bb disables
engine support when BR2_PACKAGE_LIBOPENSSL_ENGINES is not set.

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/7717334889
http://autobuild.buildroot.org/results/818/818f8c156311010d03d2f64b42231f486b543837

Signed-off-by: Romain Naour <[email protected]>
Signed-off-by: Yann E. MORIN <[email protected]>
@pull pull bot merged commit efd5f1a into mir-one:master Sep 5, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants