Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8fdf9ed8d2 | ||
|
|
324856a3a4 | ||
|
|
98a01c9aca | ||
|
|
5b357927f0 | ||
|
|
4085ca3069 | ||
|
|
c1d85f148a | ||
|
|
7379a1e451 | ||
|
|
48505536f6 | ||
|
|
6dd33c2779 | ||
|
|
d3c48508b2 | ||
|
|
3c1c7d5179 | ||
|
|
fdd59f82c0 | ||
|
|
1dda0987a0 | ||
|
|
4d779a7d2d | ||
|
|
e33e8a43a3 | ||
|
|
4ad66243dc | ||
|
|
1666a565e7 | ||
|
|
29acf56a7c | ||
|
|
5746e5aa3c | ||
|
|
ac7632af83 | ||
|
|
673a38db1c | ||
|
|
4042019fda | ||
|
|
b4e1bc7aa5 | ||
|
|
cd407e89f8 | ||
|
|
bbb0d31406 | ||
|
|
a6c50d8c8d | ||
|
|
9b3d080b62 | ||
|
|
f95260e2dc | ||
|
|
9ddb20f8dc | ||
|
|
9c0891190a | ||
|
|
155038635f | ||
|
|
197a1bd331 | ||
|
|
1891b45694 | ||
|
|
1fc6877fd0 | ||
|
|
6db0e9620f | ||
|
|
2287e900c4 | ||
|
|
4ed78586e8 | ||
|
|
651e8731a7 | ||
|
|
d843e65028 | ||
|
|
4013ba6a42 | ||
|
|
e28f3ba80d | ||
|
|
89767d4a36 | ||
|
|
3e1679f5b6 | ||
|
|
be469ec0cc | ||
|
|
ab5f8362bd | ||
|
|
f54926d256 | ||
|
|
d572e03e26 | ||
|
|
877ddbd1d2 | ||
|
|
7f0ca5419f | ||
|
|
18edcac744 | ||
|
|
f6a04a112a | ||
|
|
5b924c807d | ||
|
|
614ecffacc | ||
|
|
f755df596d | ||
|
|
20bfa70a68 | ||
|
|
2a24d3410d | ||
|
|
be2424f55c | ||
|
|
aa5e307217 | ||
|
|
dd6469fe6e | ||
|
|
7d50fc8679 | ||
|
|
025be41ed3 | ||
|
|
f2e006cc48 | ||
|
|
7fa6645187 | ||
|
|
be7d47d223 | ||
|
|
37e2cdc87e | ||
|
|
e4f86df5f4 | ||
|
|
40746d26e9 | ||
|
|
1e3f5d4245 | ||
|
|
ffebd3cc39 | ||
|
|
84651cf1a3 | ||
|
|
3d5bc4be3c | ||
|
|
3df8909197 | ||
|
|
dcfafeccb6 | ||
|
|
b0d7dc4b6f | ||
|
|
25d4223194 | ||
|
|
6a1cc89d89 | ||
|
|
4c47699fb1 | ||
|
|
78b24e5aef | ||
|
|
a80d930d74 | ||
|
|
c482333df0 | ||
|
|
373e2c22e2 | ||
|
|
f81379d65f | ||
|
|
5afc6a2610 | ||
|
|
29f1efaf0f | ||
|
|
f05a18206f | ||
|
|
61f1fe83bf | ||
|
|
b191388f00 | ||
|
|
4194a9aaec | ||
|
|
5199199456 | ||
|
|
07c2958106 | ||
|
|
def91054e4 | ||
|
|
9362da70d3 | ||
|
|
09c243a834 | ||
|
|
6be96dee22 | ||
|
|
a28afd7d85 | ||
|
|
02e33e9617 | ||
|
|
99257a2d07 | ||
|
|
e8e24d1681 | ||
|
|
70df756ba7 | ||
|
|
eb73d4662e | ||
|
|
aca397828d | ||
|
|
63b400f8f3 | ||
|
|
9f057b8aa5 | ||
|
|
31d2e35cd6 | ||
|
|
c4d2c13286 | ||
|
|
ea9b75f8c2 | ||
|
|
d57bb0b6db | ||
|
|
3710aef80e | ||
|
|
a86ade6082 | ||
|
|
e0a1772d27 | ||
|
|
00118db48c | ||
|
|
a6b1d9fd66 | ||
|
|
48230a4b79 | ||
|
|
4ad263555e | ||
|
|
fdcfa918c6 | ||
|
|
bc7e3a7abb | ||
|
|
279673a337 | ||
|
|
97aa1f9a9b | ||
|
|
7457eb49fc | ||
|
|
477c35f036 | ||
|
|
04dd89947e | ||
|
|
74418bd5fc | ||
|
|
2454bd20a3 | ||
|
|
776cfff2e7 | ||
|
|
c48a818c18 | ||
|
|
55a9825414 | ||
|
|
38bebdea19 | ||
|
|
ffdb6fead2 | ||
|
|
d4dcf36956 | ||
|
|
54721e452c | ||
|
|
0615b31f02 | ||
|
|
e85f37c892 | ||
|
|
207c07d155 | ||
|
|
caaed296b9 | ||
|
|
5698a2b335 | ||
|
|
2216fc1446 | ||
|
|
399f75e636 | ||
|
|
76666f8b69 | ||
|
|
bf7d413339 | ||
|
|
5b9b37bf11 | ||
|
|
5e078a644a | ||
|
|
32a5fc9830 | ||
|
|
fcbe9c41de | ||
|
|
3609b89f71 |
@@ -1315,7 +1315,6 @@ package/waffle/0003-drop-C-dependency.patch lib_patch.Upstream
|
||||
package/wampcc/0001-Add-RISC-V-endian-detection.patch lib_patch.Upstream
|
||||
package/wampcc/0002-include-wampcc-platform.h-fix-build-with-musl-1.2.0.patch lib_patch.Upstream
|
||||
package/wampcc/0003-Broken-build-on-Windows.patch lib_patch.Upstream
|
||||
package/watchdogd/S01watchdogd NotExecutable lib_sysv.Indent
|
||||
package/wget/0001-lib-getrandom.c-fix-build-with-uclibc-1.0.35.patch lib_patch.Upstream
|
||||
package/wilc-driver/0001-cfg80211.c-fix-missing-prandom_u32-with-Linux-6.1.0.patch lib_patch.Upstream
|
||||
package/wilc-driver/0002-spi.c-fix-build-failure-on-remove-callback.patch lib_patch.Upstream
|
||||
|
||||
@@ -1,3 +1,40 @@
|
||||
2024.11.3, released March 24st, 2025
|
||||
|
||||
Important / security related fixes.
|
||||
|
||||
Defconfigs: Octavo osd23mp1: Fix TF-A/Linux compilation after
|
||||
move to newer toolchain versions.
|
||||
|
||||
Updated/fixed packages: compiler-rt, exim, expat, fio, foot,
|
||||
go, jbig2dec, libcamera, libjxl, libopenssl, libxml2, mokutil,
|
||||
musl, optee-os, php, pkgconf, postgresql, prboom,
|
||||
python-typing-extensions, rauc, systemd, util-linux,
|
||||
watchdogd, webkitgtk
|
||||
|
||||
2024.11.2, released February 21st, 2025
|
||||
|
||||
Important / security related fixes.
|
||||
|
||||
Infrastructure: support/script/genimage.sh: exit on errors
|
||||
|
||||
Defconfigs: ti_am62ax_sk: Include PMIC driver to fix boot
|
||||
issue
|
||||
|
||||
Updated/fixed packages: acpica, apache, assimp, asterisk,
|
||||
bind, busybox, clamav, curlpp, dillo, elfutils, fakeroot,
|
||||
ffmpeg, freetype, git, glibc, gnu-efi, gnutls, go, gpsd,
|
||||
heimdal, imagemagick, intel-microcode, kodi, libbsd, libcurl,
|
||||
libopenssl, libtasn1, libxml2, mdnsd, mpg123, musl, nettle,
|
||||
nginx, nodejs, openjpeg, openssh, openvpn, php, pipewire,
|
||||
postgresql, python-django, python3, redis, rsync, socat,
|
||||
swipl, syslinux, tor, tzdata, uclibc, uemacs, unbound,
|
||||
usbutils, util-linux, webkitgtk, xen, zic, zlog, zstd,
|
||||
zxing-cpp
|
||||
|
||||
Issues resolved:
|
||||
- samba4 build failed in master
|
||||
https://gitlab.com/buildroot.org/buildroot/-/issues/86
|
||||
|
||||
2024.11.1, released January 9th, 2025
|
||||
|
||||
Important / security related fixes.
|
||||
|
||||
@@ -6,6 +6,15 @@ config BR2_HAVE_DOT_CONFIG
|
||||
bool
|
||||
default y
|
||||
|
||||
# Hidden symbol kept to false, to temporarily mark a configuration
|
||||
# known to be broken (by depending on it). Ideally, we don't want to
|
||||
# keep broken parts for too long. The intended use of this symbol is
|
||||
# to give some time to a developer to fix the feature. Features marked
|
||||
# as broken will be removed if they are not fixed in a reasonable
|
||||
# amount of time.
|
||||
config BR2_BROKEN
|
||||
bool
|
||||
|
||||
config BR2_VERSION
|
||||
string
|
||||
option env="BR2_VERSION_FULL"
|
||||
|
||||
+12
-5
@@ -177,7 +177,7 @@ F: package/wine/
|
||||
N: Andreas Klinger <ak@it-klinger.de>
|
||||
F: package/ply/
|
||||
|
||||
N: Andreas Naumann <ANaumann@ultratronik.de>
|
||||
N: Andreas Naumann <dev@andin.de>
|
||||
F: package/evemu/
|
||||
F: package/libevdev/
|
||||
F: package/pkg-qmake.mk
|
||||
@@ -589,9 +589,6 @@ F: package/alsa-plugins/
|
||||
N: Changming Huang <jerry.huang@nxp.com>
|
||||
F: package/qoriq-cadence-dp-firmware/
|
||||
|
||||
N: Chris Dimich <chris.dimich@boundarydevices.com>
|
||||
F: package/freescale-imx/imx-vpu-hantro-daemon/
|
||||
|
||||
N: Chris Packham <judge.packham@gmail.com>
|
||||
F: package/coremark/
|
||||
F: package/coremark-pro/
|
||||
@@ -1195,6 +1192,10 @@ N: Frank Vanbever <frank.vanbever@mind.be>
|
||||
F: package/libmodsecurity/
|
||||
F: package/nginx-modsecurity/
|
||||
|
||||
N: Gaël PORTAY <gael.portay+rtone@gmail.com>
|
||||
F: board/raspberrypi/
|
||||
F: configs/raspberrypi*
|
||||
|
||||
N: Gao Xiang <hsiangkao@aol.com>
|
||||
F: package/erofs-utils/
|
||||
|
||||
@@ -1202,6 +1203,7 @@ N: Gary Bisson <bisson.gary@gmail.com>
|
||||
F: board/boundarydevices/
|
||||
F: configs/nitrogen*
|
||||
F: package/freescale-imx/
|
||||
F: package/freescale-imx/imx-vpu-hantro-daemon/
|
||||
F: package/gstreamer1/gst1-imx/
|
||||
F: package/libimxvpuapi/
|
||||
F: package/mfgtools/
|
||||
@@ -1913,6 +1915,7 @@ F: support/testing/tests/package/test_lame.py
|
||||
F: support/testing/tests/package/test_less.py
|
||||
F: support/testing/tests/package/test_libcamera.py
|
||||
F: support/testing/tests/package/test_libcamera/
|
||||
F: support/testing/tests/package/test_libcurl.py
|
||||
F: support/testing/tests/package/test_libgpgme.py
|
||||
F: support/testing/tests/package/test_libjxl.py
|
||||
F: support/testing/tests/package/test_links.py
|
||||
@@ -1954,6 +1957,8 @@ F: support/testing/tests/package/test_ola.py
|
||||
F: support/testing/tests/package/test_ola/
|
||||
F: support/testing/tests/package/test_openblas.py
|
||||
F: support/testing/tests/package/test_parted.py
|
||||
F: support/testing/tests/package/test_patch.py
|
||||
F: support/testing/tests/package/test_patch/
|
||||
F: support/testing/tests/package/test_pciutils.py
|
||||
F: support/testing/tests/package/test_perftest.py
|
||||
F: support/testing/tests/package/test_pigz.py
|
||||
@@ -2001,6 +2006,7 @@ F: support/testing/tests/package/test_usbutils/
|
||||
F: support/testing/tests/package/test_vorbis_tools.py
|
||||
F: support/testing/tests/package/test_weston.py
|
||||
F: support/testing/tests/package/test_weston/
|
||||
F: support/testing/tests/package/test_wget.py
|
||||
F: support/testing/tests/package/test_which.py
|
||||
F: support/testing/tests/package/test_wine.py
|
||||
F: support/testing/tests/package/test_xfsprogs.py
|
||||
@@ -3213,7 +3219,6 @@ F: support/testing/tests/package/test_python_flask_expects_json.py
|
||||
F: support/testing/tests/package/test_python_git.py
|
||||
F: support/testing/tests/package/test_python_unittest_xml_reporting.py
|
||||
F: support/testing/tests/toolchain/test_external_arm.py
|
||||
F: support/testing/tests/toolchain/test_external_synopsys.py
|
||||
F: toolchain/
|
||||
|
||||
N: Timo Ketola <timo.ketola@exertus.fi>
|
||||
@@ -3294,6 +3299,8 @@ F: package/pixz/
|
||||
F: package/zerofree/
|
||||
F: support/testing/tests/package/test_msr_tools*
|
||||
F: support/testing/tests/package/test_pixz.py
|
||||
F: support/testing/tests/package/test_xen.py
|
||||
F: support/testing/tests/package/test_xen/
|
||||
F: support/testing/tests/package/test_zerofree.py
|
||||
|
||||
N: Vinicius Tinti <viniciustinti@gmail.com>
|
||||
|
||||
@@ -92,9 +92,9 @@ all:
|
||||
.PHONY: all
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2024.11.1
|
||||
export BR2_VERSION := 2024.11.3
|
||||
# Actual time the release is cut (for reproducible builds)
|
||||
BR2_VERSION_EPOCH = 1736433000
|
||||
BR2_VERSION_EPOCH = 1742834500
|
||||
|
||||
# Save running make version since it's clobbered by the make package
|
||||
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
|
||||
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
From 0f75b03c008eacb9818af3a56dc088e72a623d17 Mon Sep 17 00:00:00 2001
|
||||
From: Marco Felsch <m.felsch@pengutronix.de>
|
||||
Date: Wed, 9 Nov 2022 12:59:09 +0100
|
||||
Subject: [PATCH] feat(build): add support for new binutils versions
|
||||
|
||||
Users of GNU ld (BPF) from binutils 2.39+ will observe multiple instaces
|
||||
of a new warning when linking the bl*.elf in the form:
|
||||
|
||||
ld.bfd: warning: stm32mp1_helper.o: missing .note.GNU-stack section implies executable stack
|
||||
ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
||||
ld.bfd: warning: bl2.elf has a LOAD segment with RWX permissions
|
||||
ld.bfd: warning: bl32.elf has a LOAD segment with RWX permissions
|
||||
|
||||
These new warnings are enbaled by default to secure elf binaries:
|
||||
- https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
|
||||
- https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=0d38576a34ec64a1b4500c9277a8e9d0f07e6774
|
||||
|
||||
Fix it in a similar way to what the Linux kernel does, see:
|
||||
https://lore.kernel.org/all/20220810222442.2296651-1-ndesaulniers@google.com/
|
||||
|
||||
Following the reasoning there, we set "-z noexecstack" for all linkers
|
||||
(although LLVM's LLD defaults to it) and optional add
|
||||
--no-warn-rwx-segments since this a ld.bfd related.
|
||||
|
||||
Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
|
||||
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
|
||||
Change-Id: I9430f5fa5036ca88da46cd3b945754d62616b617
|
||||
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
|
||||
Upstream: https://github.com/ARM-software/arm-trusted-firmware/commit/1f49db5f25cdd4e43825c9bcc0575070b80f628c
|
||||
---
|
||||
Makefile | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 1ddb7b844..470956b19 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -416,6 +416,8 @@ endif
|
||||
|
||||
GCC_V_OUTPUT := $(shell $(CC) -v 2>&1)
|
||||
|
||||
+TF_LDFLAGS += -z noexecstack
|
||||
+
|
||||
# LD = armlink
|
||||
ifneq ($(findstring armlink,$(notdir $(LD))),)
|
||||
TF_LDFLAGS += --diag_error=warning --lto_level=O1
|
||||
@@ -442,7 +444,10 @@ TF_LDFLAGS += $(subst --,-Xlinker --,$(TF_LDFLAGS_$(ARCH)))
|
||||
|
||||
# LD = gcc-ld (ld) or llvm-ld (ld.lld) or other
|
||||
else
|
||||
-TF_LDFLAGS += --fatal-warnings -O1
|
||||
+# With ld.bfd version 2.39 and newer new warnings are added. Skip those since we
|
||||
+# are not loaded by a elf loader.
|
||||
+TF_LDFLAGS += $(call ld_option, --no-warn-rwx-segments)
|
||||
+TF_LDFLAGS += -O1
|
||||
TF_LDFLAGS += --gc-sections
|
||||
# ld.lld doesn't recognize the errata flags,
|
||||
# therefore don't add those in that case
|
||||
--
|
||||
2.30.2
|
||||
|
||||
+357
@@ -0,0 +1,357 @@
|
||||
From 201719b670b0861f5846ebcda1ad3e4626ae0a33 Mon Sep 17 00:00:00 2001
|
||||
From: Arnd Bergmann <arnd@arndb.de>
|
||||
Date: Sat, 3 Dec 2022 11:54:25 +0100
|
||||
Subject: [PATCH] ata: ahci: fix enum constants for gcc-13
|
||||
|
||||
commit f07788079f515ca4a681c5f595bdad19cfbd7b1d upstream.
|
||||
|
||||
gcc-13 slightly changes the type of constant expressions that are defined
|
||||
in an enum, which triggers a compile time sanity check in libata:
|
||||
|
||||
linux/drivers/ata/libahci.c: In function 'ahci_led_store':
|
||||
linux/include/linux/compiler_types.h:357:45: error: call to '__compiletime_assert_302' declared with attribute error: BUILD_BUG_ON failed: sizeof(_s) > sizeof(long)
|
||||
357 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|
||||
|
||||
The new behavior is that sizeof() returns the same value for the
|
||||
constant as it does for the enum type, which is generally more sensible
|
||||
and consistent.
|
||||
|
||||
The problem in libata is that it contains a single enum definition for
|
||||
lots of unrelated constants, some of which are large positive (unsigned)
|
||||
integers like 0xffffffff, while others like (1<<31) are interpreted as
|
||||
negative integers, and this forces the enum type to become 64 bit wide
|
||||
even though most constants would still fit into a signed 32-bit 'int'.
|
||||
|
||||
Fix this by changing the entire enum definition to use BIT(x) in place
|
||||
of (1<<x), which results in all values being seen as 'unsigned' and
|
||||
fitting into an unsigned 32-bit type.
|
||||
|
||||
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107917
|
||||
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107405
|
||||
Reported-by: Luis Machado <luis.machado@arm.com>
|
||||
Cc: linux-ide@vger.kernel.org
|
||||
Cc: Damien Le Moal <damien.lemoal@opensource.wdc.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Cc: Randy Dunlap <rdunlap@infradead.org>
|
||||
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
||||
Tested-by: Luis Machado <luis.machado@arm.com>
|
||||
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
|
||||
[Backport to linux-4.19.y]
|
||||
Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=4c3ddc06cedb62f2904e58fd95170bf206bee149
|
||||
---
|
||||
drivers/ata/ahci.h | 232 +++++++++++++++++++++++----------------------
|
||||
1 file changed, 117 insertions(+), 115 deletions(-)
|
||||
|
||||
diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
|
||||
index d1f284f0c83d..de1bc374e1b6 100644
|
||||
--- a/drivers/ata/ahci.h
|
||||
+++ b/drivers/ata/ahci.h
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <linux/libata.h>
|
||||
#include <linux/phy/phy.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
+#include <linux/bits.h>
|
||||
|
||||
/* Enclosure Management Control */
|
||||
#define EM_CTRL_MSG_TYPE 0x000f0000
|
||||
@@ -54,12 +55,12 @@ enum {
|
||||
AHCI_PORT_PRIV_FBS_DMA_SZ = AHCI_CMD_SLOT_SZ +
|
||||
AHCI_CMD_TBL_AR_SZ +
|
||||
(AHCI_RX_FIS_SZ * 16),
|
||||
- AHCI_IRQ_ON_SG = (1 << 31),
|
||||
- AHCI_CMD_ATAPI = (1 << 5),
|
||||
- AHCI_CMD_WRITE = (1 << 6),
|
||||
- AHCI_CMD_PREFETCH = (1 << 7),
|
||||
- AHCI_CMD_RESET = (1 << 8),
|
||||
- AHCI_CMD_CLR_BUSY = (1 << 10),
|
||||
+ AHCI_IRQ_ON_SG = BIT(31),
|
||||
+ AHCI_CMD_ATAPI = BIT(5),
|
||||
+ AHCI_CMD_WRITE = BIT(6),
|
||||
+ AHCI_CMD_PREFETCH = BIT(7),
|
||||
+ AHCI_CMD_RESET = BIT(8),
|
||||
+ AHCI_CMD_CLR_BUSY = BIT(10),
|
||||
|
||||
RX_FIS_PIO_SETUP = 0x20, /* offset of PIO Setup FIS data */
|
||||
RX_FIS_D2H_REG = 0x40, /* offset of D2H Register FIS data */
|
||||
@@ -77,37 +78,37 @@ enum {
|
||||
HOST_CAP2 = 0x24, /* host capabilities, extended */
|
||||
|
||||
/* HOST_CTL bits */
|
||||
- HOST_RESET = (1 << 0), /* reset controller; self-clear */
|
||||
- HOST_IRQ_EN = (1 << 1), /* global IRQ enable */
|
||||
- HOST_MRSM = (1 << 2), /* MSI Revert to Single Message */
|
||||
- HOST_AHCI_EN = (1 << 31), /* AHCI enabled */
|
||||
+ HOST_RESET = BIT(0), /* reset controller; self-clear */
|
||||
+ HOST_IRQ_EN = BIT(1), /* global IRQ enable */
|
||||
+ HOST_MRSM = BIT(2), /* MSI Revert to Single Message */
|
||||
+ HOST_AHCI_EN = BIT(31), /* AHCI enabled */
|
||||
|
||||
/* HOST_CAP bits */
|
||||
- HOST_CAP_SXS = (1 << 5), /* Supports External SATA */
|
||||
- HOST_CAP_EMS = (1 << 6), /* Enclosure Management support */
|
||||
- HOST_CAP_CCC = (1 << 7), /* Command Completion Coalescing */
|
||||
- HOST_CAP_PART = (1 << 13), /* Partial state capable */
|
||||
- HOST_CAP_SSC = (1 << 14), /* Slumber state capable */
|
||||
- HOST_CAP_PIO_MULTI = (1 << 15), /* PIO multiple DRQ support */
|
||||
- HOST_CAP_FBS = (1 << 16), /* FIS-based switching support */
|
||||
- HOST_CAP_PMP = (1 << 17), /* Port Multiplier support */
|
||||
- HOST_CAP_ONLY = (1 << 18), /* Supports AHCI mode only */
|
||||
- HOST_CAP_CLO = (1 << 24), /* Command List Override support */
|
||||
- HOST_CAP_LED = (1 << 25), /* Supports activity LED */
|
||||
- HOST_CAP_ALPM = (1 << 26), /* Aggressive Link PM support */
|
||||
- HOST_CAP_SSS = (1 << 27), /* Staggered Spin-up */
|
||||
- HOST_CAP_MPS = (1 << 28), /* Mechanical presence switch */
|
||||
- HOST_CAP_SNTF = (1 << 29), /* SNotification register */
|
||||
- HOST_CAP_NCQ = (1 << 30), /* Native Command Queueing */
|
||||
- HOST_CAP_64 = (1 << 31), /* PCI DAC (64-bit DMA) support */
|
||||
+ HOST_CAP_SXS = BIT(5), /* Supports External SATA */
|
||||
+ HOST_CAP_EMS = BIT(6), /* Enclosure Management support */
|
||||
+ HOST_CAP_CCC = BIT(7), /* Command Completion Coalescing */
|
||||
+ HOST_CAP_PART = BIT(13), /* Partial state capable */
|
||||
+ HOST_CAP_SSC = BIT(14), /* Slumber state capable */
|
||||
+ HOST_CAP_PIO_MULTI = BIT(15), /* PIO multiple DRQ support */
|
||||
+ HOST_CAP_FBS = BIT(16), /* FIS-based switching support */
|
||||
+ HOST_CAP_PMP = BIT(17), /* Port Multiplier support */
|
||||
+ HOST_CAP_ONLY = BIT(18), /* Supports AHCI mode only */
|
||||
+ HOST_CAP_CLO = BIT(24), /* Command List Override support */
|
||||
+ HOST_CAP_LED = BIT(25), /* Supports activity LED */
|
||||
+ HOST_CAP_ALPM = BIT(26), /* Aggressive Link PM support */
|
||||
+ HOST_CAP_SSS = BIT(27), /* Staggered Spin-up */
|
||||
+ HOST_CAP_MPS = BIT(28), /* Mechanical presence switch */
|
||||
+ HOST_CAP_SNTF = BIT(29), /* SNotification register */
|
||||
+ HOST_CAP_NCQ = BIT(30), /* Native Command Queueing */
|
||||
+ HOST_CAP_64 = BIT(31), /* PCI DAC (64-bit DMA) support */
|
||||
|
||||
/* HOST_CAP2 bits */
|
||||
- HOST_CAP2_BOH = (1 << 0), /* BIOS/OS handoff supported */
|
||||
- HOST_CAP2_NVMHCI = (1 << 1), /* NVMHCI supported */
|
||||
- HOST_CAP2_APST = (1 << 2), /* Automatic partial to slumber */
|
||||
- HOST_CAP2_SDS = (1 << 3), /* Support device sleep */
|
||||
- HOST_CAP2_SADM = (1 << 4), /* Support aggressive DevSlp */
|
||||
- HOST_CAP2_DESO = (1 << 5), /* DevSlp from slumber only */
|
||||
+ HOST_CAP2_BOH = BIT(0), /* BIOS/OS handoff supported */
|
||||
+ HOST_CAP2_NVMHCI = BIT(1), /* NVMHCI supported */
|
||||
+ HOST_CAP2_APST = BIT(2), /* Automatic partial to slumber */
|
||||
+ HOST_CAP2_SDS = BIT(3), /* Support device sleep */
|
||||
+ HOST_CAP2_SADM = BIT(4), /* Support aggressive DevSlp */
|
||||
+ HOST_CAP2_DESO = BIT(5), /* DevSlp from slumber only */
|
||||
|
||||
/* registers for each SATA port */
|
||||
PORT_LST_ADDR = 0x00, /* command list DMA addr */
|
||||
@@ -129,24 +130,25 @@ enum {
|
||||
PORT_DEVSLP = 0x44, /* device sleep */
|
||||
|
||||
/* PORT_IRQ_{STAT,MASK} bits */
|
||||
- PORT_IRQ_COLD_PRES = (1 << 31), /* cold presence detect */
|
||||
- PORT_IRQ_TF_ERR = (1 << 30), /* task file error */
|
||||
- PORT_IRQ_HBUS_ERR = (1 << 29), /* host bus fatal error */
|
||||
- PORT_IRQ_HBUS_DATA_ERR = (1 << 28), /* host bus data error */
|
||||
- PORT_IRQ_IF_ERR = (1 << 27), /* interface fatal error */
|
||||
- PORT_IRQ_IF_NONFATAL = (1 << 26), /* interface non-fatal error */
|
||||
- PORT_IRQ_OVERFLOW = (1 << 24), /* xfer exhausted available S/G */
|
||||
- PORT_IRQ_BAD_PMP = (1 << 23), /* incorrect port multiplier */
|
||||
-
|
||||
- PORT_IRQ_PHYRDY = (1 << 22), /* PhyRdy changed */
|
||||
- PORT_IRQ_DEV_ILCK = (1 << 7), /* device interlock */
|
||||
- PORT_IRQ_CONNECT = (1 << 6), /* port connect change status */
|
||||
- PORT_IRQ_SG_DONE = (1 << 5), /* descriptor processed */
|
||||
- PORT_IRQ_UNK_FIS = (1 << 4), /* unknown FIS rx'd */
|
||||
- PORT_IRQ_SDB_FIS = (1 << 3), /* Set Device Bits FIS rx'd */
|
||||
- PORT_IRQ_DMAS_FIS = (1 << 2), /* DMA Setup FIS rx'd */
|
||||
- PORT_IRQ_PIOS_FIS = (1 << 1), /* PIO Setup FIS rx'd */
|
||||
- PORT_IRQ_D2H_REG_FIS = (1 << 0), /* D2H Register FIS rx'd */
|
||||
+ PORT_IRQ_COLD_PRES = BIT(31), /* cold presence detect */
|
||||
+ PORT_IRQ_TF_ERR = BIT(30), /* task file error */
|
||||
+ PORT_IRQ_HBUS_ERR = BIT(29), /* host bus fatal error */
|
||||
+ PORT_IRQ_HBUS_DATA_ERR = BIT(28), /* host bus data error */
|
||||
+ PORT_IRQ_IF_ERR = BIT(27), /* interface fatal error */
|
||||
+ PORT_IRQ_IF_NONFATAL = BIT(26), /* interface non-fatal error */
|
||||
+ PORT_IRQ_OVERFLOW = BIT(24), /* xfer exhausted available S/G */
|
||||
+ PORT_IRQ_BAD_PMP = BIT(23), /* incorrect port multiplier */
|
||||
+
|
||||
+ PORT_IRQ_PHYRDY = BIT(22), /* PhyRdy changed */
|
||||
+ PORT_IRQ_DEV_ILCK = BIT(7), /* device interlock */
|
||||
+ PORT_IRQ_DMPS = BIT(7), /* mechanical presence status */
|
||||
+ PORT_IRQ_CONNECT = BIT(6), /* port connect change status */
|
||||
+ PORT_IRQ_SG_DONE = BIT(5), /* descriptor processed */
|
||||
+ PORT_IRQ_UNK_FIS = BIT(4), /* unknown FIS rx'd */
|
||||
+ PORT_IRQ_SDB_FIS = BIT(3), /* Set Device Bits FIS rx'd */
|
||||
+ PORT_IRQ_DMAS_FIS = BIT(2), /* DMA Setup FIS rx'd */
|
||||
+ PORT_IRQ_PIOS_FIS = BIT(1), /* PIO Setup FIS rx'd */
|
||||
+ PORT_IRQ_D2H_REG_FIS = BIT(0), /* D2H Register FIS rx'd */
|
||||
|
||||
PORT_IRQ_FREEZE = PORT_IRQ_HBUS_ERR |
|
||||
PORT_IRQ_IF_ERR |
|
||||
@@ -162,34 +164,34 @@ enum {
|
||||
PORT_IRQ_PIOS_FIS | PORT_IRQ_D2H_REG_FIS,
|
||||
|
||||
/* PORT_CMD bits */
|
||||
- PORT_CMD_ASP = (1 << 27), /* Aggressive Slumber/Partial */
|
||||
- PORT_CMD_ALPE = (1 << 26), /* Aggressive Link PM enable */
|
||||
- PORT_CMD_ATAPI = (1 << 24), /* Device is ATAPI */
|
||||
- PORT_CMD_FBSCP = (1 << 22), /* FBS Capable Port */
|
||||
- PORT_CMD_ESP = (1 << 21), /* External Sata Port */
|
||||
- PORT_CMD_HPCP = (1 << 18), /* HotPlug Capable Port */
|
||||
- PORT_CMD_PMP = (1 << 17), /* PMP attached */
|
||||
- PORT_CMD_LIST_ON = (1 << 15), /* cmd list DMA engine running */
|
||||
- PORT_CMD_FIS_ON = (1 << 14), /* FIS DMA engine running */
|
||||
- PORT_CMD_FIS_RX = (1 << 4), /* Enable FIS receive DMA engine */
|
||||
- PORT_CMD_CLO = (1 << 3), /* Command list override */
|
||||
- PORT_CMD_POWER_ON = (1 << 2), /* Power up device */
|
||||
- PORT_CMD_SPIN_UP = (1 << 1), /* Spin up device */
|
||||
- PORT_CMD_START = (1 << 0), /* Enable port DMA engine */
|
||||
-
|
||||
- PORT_CMD_ICC_MASK = (0xf << 28), /* i/f ICC state mask */
|
||||
- PORT_CMD_ICC_ACTIVE = (0x1 << 28), /* Put i/f in active state */
|
||||
- PORT_CMD_ICC_PARTIAL = (0x2 << 28), /* Put i/f in partial state */
|
||||
- PORT_CMD_ICC_SLUMBER = (0x6 << 28), /* Put i/f in slumber state */
|
||||
+ PORT_CMD_ASP = BIT(27), /* Aggressive Slumber/Partial */
|
||||
+ PORT_CMD_ALPE = BIT(26), /* Aggressive Link PM enable */
|
||||
+ PORT_CMD_ATAPI = BIT(24), /* Device is ATAPI */
|
||||
+ PORT_CMD_FBSCP = BIT(22), /* FBS Capable Port */
|
||||
+ PORT_CMD_ESP = BIT(21), /* External Sata Port */
|
||||
+ PORT_CMD_HPCP = BIT(18), /* HotPlug Capable Port */
|
||||
+ PORT_CMD_PMP = BIT(17), /* PMP attached */
|
||||
+ PORT_CMD_LIST_ON = BIT(15), /* cmd list DMA engine running */
|
||||
+ PORT_CMD_FIS_ON = BIT(14), /* FIS DMA engine running */
|
||||
+ PORT_CMD_FIS_RX = BIT(4), /* Enable FIS receive DMA engine */
|
||||
+ PORT_CMD_CLO = BIT(3), /* Command list override */
|
||||
+ PORT_CMD_POWER_ON = BIT(2), /* Power up device */
|
||||
+ PORT_CMD_SPIN_UP = BIT(1), /* Spin up device */
|
||||
+ PORT_CMD_START = BIT(0), /* Enable port DMA engine */
|
||||
+
|
||||
+ PORT_CMD_ICC_MASK = (0xfu << 28), /* i/f ICC state mask */
|
||||
+ PORT_CMD_ICC_ACTIVE = (0x1u << 28), /* Put i/f in active state */
|
||||
+ PORT_CMD_ICC_PARTIAL = (0x2u << 28), /* Put i/f in partial state */
|
||||
+ PORT_CMD_ICC_SLUMBER = (0x6u << 28), /* Put i/f in slumber state */
|
||||
|
||||
/* PORT_FBS bits */
|
||||
PORT_FBS_DWE_OFFSET = 16, /* FBS device with error offset */
|
||||
PORT_FBS_ADO_OFFSET = 12, /* FBS active dev optimization offset */
|
||||
PORT_FBS_DEV_OFFSET = 8, /* FBS device to issue offset */
|
||||
PORT_FBS_DEV_MASK = (0xf << PORT_FBS_DEV_OFFSET), /* FBS.DEV */
|
||||
- PORT_FBS_SDE = (1 << 2), /* FBS single device error */
|
||||
- PORT_FBS_DEC = (1 << 1), /* FBS device error clear */
|
||||
- PORT_FBS_EN = (1 << 0), /* Enable FBS */
|
||||
+ PORT_FBS_SDE = BIT(2), /* FBS single device error */
|
||||
+ PORT_FBS_DEC = BIT(1), /* FBS device error clear */
|
||||
+ PORT_FBS_EN = BIT(0), /* Enable FBS */
|
||||
|
||||
/* PORT_DEVSLP bits */
|
||||
PORT_DEVSLP_DM_OFFSET = 25, /* DITO multiplier offset */
|
||||
@@ -197,45 +199,45 @@ enum {
|
||||
PORT_DEVSLP_DITO_OFFSET = 15, /* DITO offset */
|
||||
PORT_DEVSLP_MDAT_OFFSET = 10, /* Minimum assertion time */
|
||||
PORT_DEVSLP_DETO_OFFSET = 2, /* DevSlp exit timeout */
|
||||
- PORT_DEVSLP_DSP = (1 << 1), /* DevSlp present */
|
||||
- PORT_DEVSLP_ADSE = (1 << 0), /* Aggressive DevSlp enable */
|
||||
+ PORT_DEVSLP_DSP = BIT(1), /* DevSlp present */
|
||||
+ PORT_DEVSLP_ADSE = BIT(0), /* Aggressive DevSlp enable */
|
||||
|
||||
/* hpriv->flags bits */
|
||||
|
||||
#define AHCI_HFLAGS(flags) .private_data = (void *)(flags)
|
||||
|
||||
- AHCI_HFLAG_NO_NCQ = (1 << 0),
|
||||
- AHCI_HFLAG_IGN_IRQ_IF_ERR = (1 << 1), /* ignore IRQ_IF_ERR */
|
||||
- AHCI_HFLAG_IGN_SERR_INTERNAL = (1 << 2), /* ignore SERR_INTERNAL */
|
||||
- AHCI_HFLAG_32BIT_ONLY = (1 << 3), /* force 32bit */
|
||||
- AHCI_HFLAG_MV_PATA = (1 << 4), /* PATA port */
|
||||
- AHCI_HFLAG_NO_MSI = (1 << 5), /* no PCI MSI */
|
||||
- AHCI_HFLAG_NO_PMP = (1 << 6), /* no PMP */
|
||||
- AHCI_HFLAG_SECT255 = (1 << 8), /* max 255 sectors */
|
||||
- AHCI_HFLAG_YES_NCQ = (1 << 9), /* force NCQ cap on */
|
||||
- AHCI_HFLAG_NO_SUSPEND = (1 << 10), /* don't suspend */
|
||||
- AHCI_HFLAG_SRST_TOUT_IS_OFFLINE = (1 << 11), /* treat SRST timeout as
|
||||
- link offline */
|
||||
- AHCI_HFLAG_NO_SNTF = (1 << 12), /* no sntf */
|
||||
- AHCI_HFLAG_NO_FPDMA_AA = (1 << 13), /* no FPDMA AA */
|
||||
- AHCI_HFLAG_YES_FBS = (1 << 14), /* force FBS cap on */
|
||||
- AHCI_HFLAG_DELAY_ENGINE = (1 << 15), /* do not start engine on
|
||||
- port start (wait until
|
||||
- error-handling stage) */
|
||||
- AHCI_HFLAG_NO_DEVSLP = (1 << 17), /* no device sleep */
|
||||
- AHCI_HFLAG_NO_FBS = (1 << 18), /* no FBS */
|
||||
+ AHCI_HFLAG_NO_NCQ = BIT(0),
|
||||
+ AHCI_HFLAG_IGN_IRQ_IF_ERR = BIT(1), /* ignore IRQ_IF_ERR */
|
||||
+ AHCI_HFLAG_IGN_SERR_INTERNAL = BIT(2), /* ignore SERR_INTERNAL */
|
||||
+ AHCI_HFLAG_32BIT_ONLY = BIT(3), /* force 32bit */
|
||||
+ AHCI_HFLAG_MV_PATA = BIT(4), /* PATA port */
|
||||
+ AHCI_HFLAG_NO_MSI = BIT(5), /* no PCI MSI */
|
||||
+ AHCI_HFLAG_NO_PMP = BIT(6), /* no PMP */
|
||||
+ AHCI_HFLAG_SECT255 = BIT(8), /* max 255 sectors */
|
||||
+ AHCI_HFLAG_YES_NCQ = BIT(9), /* force NCQ cap on */
|
||||
+ AHCI_HFLAG_NO_SUSPEND = BIT(10), /* don't suspend */
|
||||
+ AHCI_HFLAG_SRST_TOUT_IS_OFFLINE = BIT(11), /* treat SRST timeout as
|
||||
+ link offline */
|
||||
+ AHCI_HFLAG_NO_SNTF = BIT(12), /* no sntf */
|
||||
+ AHCI_HFLAG_NO_FPDMA_AA = BIT(13), /* no FPDMA AA */
|
||||
+ AHCI_HFLAG_YES_FBS = BIT(14), /* force FBS cap on */
|
||||
+ AHCI_HFLAG_DELAY_ENGINE = BIT(15), /* do not start engine on
|
||||
+ port start (wait until
|
||||
+ error-handling stage) */
|
||||
+ AHCI_HFLAG_NO_DEVSLP = BIT(17), /* no device sleep */
|
||||
+ AHCI_HFLAG_NO_FBS = BIT(18), /* no FBS */
|
||||
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
- AHCI_HFLAG_MULTI_MSI = (1 << 20), /* per-port MSI(-X) */
|
||||
+ AHCI_HFLAG_MULTI_MSI = BIT(20), /* per-port MSI(-X) */
|
||||
#else
|
||||
/* compile out MSI infrastructure */
|
||||
AHCI_HFLAG_MULTI_MSI = 0,
|
||||
#endif
|
||||
- AHCI_HFLAG_WAKE_BEFORE_STOP = (1 << 22), /* wake before DMA stop */
|
||||
- AHCI_HFLAG_YES_ALPM = (1 << 23), /* force ALPM cap on */
|
||||
- AHCI_HFLAG_NO_WRITE_TO_RO = (1 << 24), /* don't write to read
|
||||
- only registers */
|
||||
- AHCI_HFLAG_IS_MOBILE = (1 << 25), /* mobile chipset, use
|
||||
+ AHCI_HFLAG_WAKE_BEFORE_STOP = BIT(22), /* wake before DMA stop */
|
||||
+ AHCI_HFLAG_YES_ALPM = BIT(23), /* force ALPM cap on */
|
||||
+ AHCI_HFLAG_NO_WRITE_TO_RO = BIT(24), /* don't write to read
|
||||
+ only registers */
|
||||
+ AHCI_HFLAG_IS_MOBILE = BIT(25), /* mobile chipset, use
|
||||
SATA_MOBILE_LPM_POLICY
|
||||
as default lpm_policy */
|
||||
AHCI_HFLAG_SUSPEND_PHYS = (1 << 26), /* handle PHYs during
|
||||
@@ -258,22 +260,22 @@ enum {
|
||||
EM_MAX_RETRY = 5,
|
||||
|
||||
/* em_ctl bits */
|
||||
- EM_CTL_RST = (1 << 9), /* Reset */
|
||||
- EM_CTL_TM = (1 << 8), /* Transmit Message */
|
||||
- EM_CTL_MR = (1 << 0), /* Message Received */
|
||||
- EM_CTL_ALHD = (1 << 26), /* Activity LED */
|
||||
- EM_CTL_XMT = (1 << 25), /* Transmit Only */
|
||||
- EM_CTL_SMB = (1 << 24), /* Single Message Buffer */
|
||||
- EM_CTL_SGPIO = (1 << 19), /* SGPIO messages supported */
|
||||
- EM_CTL_SES = (1 << 18), /* SES-2 messages supported */
|
||||
- EM_CTL_SAFTE = (1 << 17), /* SAF-TE messages supported */
|
||||
- EM_CTL_LED = (1 << 16), /* LED messages supported */
|
||||
+ EM_CTL_RST = BIT(9), /* Reset */
|
||||
+ EM_CTL_TM = BIT(8), /* Transmit Message */
|
||||
+ EM_CTL_MR = BIT(0), /* Message Received */
|
||||
+ EM_CTL_ALHD = BIT(26), /* Activity LED */
|
||||
+ EM_CTL_XMT = BIT(25), /* Transmit Only */
|
||||
+ EM_CTL_SMB = BIT(24), /* Single Message Buffer */
|
||||
+ EM_CTL_SGPIO = BIT(19), /* SGPIO messages supported */
|
||||
+ EM_CTL_SES = BIT(18), /* SES-2 messages supported */
|
||||
+ EM_CTL_SAFTE = BIT(17), /* SAF-TE messages supported */
|
||||
+ EM_CTL_LED = BIT(16), /* LED messages supported */
|
||||
|
||||
/* em message type */
|
||||
- EM_MSG_TYPE_LED = (1 << 0), /* LED */
|
||||
- EM_MSG_TYPE_SAFTE = (1 << 1), /* SAF-TE */
|
||||
- EM_MSG_TYPE_SES2 = (1 << 2), /* SES-2 */
|
||||
- EM_MSG_TYPE_SGPIO = (1 << 3), /* SGPIO */
|
||||
+ EM_MSG_TYPE_LED = BIT(0), /* LED */
|
||||
+ EM_MSG_TYPE_SAFTE = BIT(1), /* SAF-TE */
|
||||
+ EM_MSG_TYPE_SES2 = BIT(2), /* SES-2 */
|
||||
+ EM_MSG_TYPE_SGPIO = BIT(3), /* SGPIO */
|
||||
};
|
||||
|
||||
struct ahci_cmd_hdr {
|
||||
--
|
||||
2.34.1
|
||||
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
From 0f75b03c008eacb9818af3a56dc088e72a623d17 Mon Sep 17 00:00:00 2001
|
||||
From: Marco Felsch <m.felsch@pengutronix.de>
|
||||
Date: Wed, 9 Nov 2022 12:59:09 +0100
|
||||
Subject: [PATCH] feat(build): add support for new binutils versions
|
||||
|
||||
Users of GNU ld (BPF) from binutils 2.39+ will observe multiple instaces
|
||||
of a new warning when linking the bl*.elf in the form:
|
||||
|
||||
ld.bfd: warning: stm32mp1_helper.o: missing .note.GNU-stack section implies executable stack
|
||||
ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
|
||||
ld.bfd: warning: bl2.elf has a LOAD segment with RWX permissions
|
||||
ld.bfd: warning: bl32.elf has a LOAD segment with RWX permissions
|
||||
|
||||
These new warnings are enbaled by default to secure elf binaries:
|
||||
- https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
|
||||
- https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=0d38576a34ec64a1b4500c9277a8e9d0f07e6774
|
||||
|
||||
Fix it in a similar way to what the Linux kernel does, see:
|
||||
https://lore.kernel.org/all/20220810222442.2296651-1-ndesaulniers@google.com/
|
||||
|
||||
Following the reasoning there, we set "-z noexecstack" for all linkers
|
||||
(although LLVM's LLD defaults to it) and optional add
|
||||
--no-warn-rwx-segments since this a ld.bfd related.
|
||||
|
||||
Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
|
||||
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
|
||||
Change-Id: I9430f5fa5036ca88da46cd3b945754d62616b617
|
||||
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
|
||||
Upstream: https://github.com/ARM-software/arm-trusted-firmware/commit/1f49db5f25cdd4e43825c9bcc0575070b80f628c
|
||||
---
|
||||
Makefile | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 1ddb7b844..470956b19 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -416,6 +416,8 @@ endif
|
||||
|
||||
GCC_V_OUTPUT := $(shell $(CC) -v 2>&1)
|
||||
|
||||
+TF_LDFLAGS += -z noexecstack
|
||||
+
|
||||
# LD = armlink
|
||||
ifneq ($(findstring armlink,$(notdir $(LD))),)
|
||||
TF_LDFLAGS += --diag_error=warning --lto_level=O1
|
||||
@@ -442,7 +444,10 @@ TF_LDFLAGS += $(subst --,-Xlinker --,$(TF_LDFLAGS_$(ARCH)))
|
||||
|
||||
# LD = gcc-ld (ld) or llvm-ld (ld.lld) or other
|
||||
else
|
||||
-TF_LDFLAGS += --fatal-warnings -O1
|
||||
+# With ld.bfd version 2.39 and newer new warnings are added. Skip those since we
|
||||
+# are not loaded by a elf loader.
|
||||
+TF_LDFLAGS += $(call ld_option, --no-warn-rwx-segments)
|
||||
+TF_LDFLAGS += -O1
|
||||
TF_LDFLAGS += --gc-sections
|
||||
# ld.lld doesn't recognize the errata flags,
|
||||
# therefore don't add those in that case
|
||||
--
|
||||
2.30.2
|
||||
|
||||
+357
@@ -0,0 +1,357 @@
|
||||
From 201719b670b0861f5846ebcda1ad3e4626ae0a33 Mon Sep 17 00:00:00 2001
|
||||
From: Arnd Bergmann <arnd@arndb.de>
|
||||
Date: Sat, 3 Dec 2022 11:54:25 +0100
|
||||
Subject: [PATCH] ata: ahci: fix enum constants for gcc-13
|
||||
|
||||
commit f07788079f515ca4a681c5f595bdad19cfbd7b1d upstream.
|
||||
|
||||
gcc-13 slightly changes the type of constant expressions that are defined
|
||||
in an enum, which triggers a compile time sanity check in libata:
|
||||
|
||||
linux/drivers/ata/libahci.c: In function 'ahci_led_store':
|
||||
linux/include/linux/compiler_types.h:357:45: error: call to '__compiletime_assert_302' declared with attribute error: BUILD_BUG_ON failed: sizeof(_s) > sizeof(long)
|
||||
357 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|
||||
|
||||
The new behavior is that sizeof() returns the same value for the
|
||||
constant as it does for the enum type, which is generally more sensible
|
||||
and consistent.
|
||||
|
||||
The problem in libata is that it contains a single enum definition for
|
||||
lots of unrelated constants, some of which are large positive (unsigned)
|
||||
integers like 0xffffffff, while others like (1<<31) are interpreted as
|
||||
negative integers, and this forces the enum type to become 64 bit wide
|
||||
even though most constants would still fit into a signed 32-bit 'int'.
|
||||
|
||||
Fix this by changing the entire enum definition to use BIT(x) in place
|
||||
of (1<<x), which results in all values being seen as 'unsigned' and
|
||||
fitting into an unsigned 32-bit type.
|
||||
|
||||
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107917
|
||||
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107405
|
||||
Reported-by: Luis Machado <luis.machado@arm.com>
|
||||
Cc: linux-ide@vger.kernel.org
|
||||
Cc: Damien Le Moal <damien.lemoal@opensource.wdc.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Cc: Randy Dunlap <rdunlap@infradead.org>
|
||||
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
||||
Tested-by: Luis Machado <luis.machado@arm.com>
|
||||
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
|
||||
[Backport to linux-4.19.y]
|
||||
Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=4c3ddc06cedb62f2904e58fd95170bf206bee149
|
||||
---
|
||||
drivers/ata/ahci.h | 232 +++++++++++++++++++++++----------------------
|
||||
1 file changed, 117 insertions(+), 115 deletions(-)
|
||||
|
||||
diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
|
||||
index d1f284f0c83d..de1bc374e1b6 100644
|
||||
--- a/drivers/ata/ahci.h
|
||||
+++ b/drivers/ata/ahci.h
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <linux/libata.h>
|
||||
#include <linux/phy/phy.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
+#include <linux/bits.h>
|
||||
|
||||
/* Enclosure Management Control */
|
||||
#define EM_CTRL_MSG_TYPE 0x000f0000
|
||||
@@ -54,12 +55,12 @@ enum {
|
||||
AHCI_PORT_PRIV_FBS_DMA_SZ = AHCI_CMD_SLOT_SZ +
|
||||
AHCI_CMD_TBL_AR_SZ +
|
||||
(AHCI_RX_FIS_SZ * 16),
|
||||
- AHCI_IRQ_ON_SG = (1 << 31),
|
||||
- AHCI_CMD_ATAPI = (1 << 5),
|
||||
- AHCI_CMD_WRITE = (1 << 6),
|
||||
- AHCI_CMD_PREFETCH = (1 << 7),
|
||||
- AHCI_CMD_RESET = (1 << 8),
|
||||
- AHCI_CMD_CLR_BUSY = (1 << 10),
|
||||
+ AHCI_IRQ_ON_SG = BIT(31),
|
||||
+ AHCI_CMD_ATAPI = BIT(5),
|
||||
+ AHCI_CMD_WRITE = BIT(6),
|
||||
+ AHCI_CMD_PREFETCH = BIT(7),
|
||||
+ AHCI_CMD_RESET = BIT(8),
|
||||
+ AHCI_CMD_CLR_BUSY = BIT(10),
|
||||
|
||||
RX_FIS_PIO_SETUP = 0x20, /* offset of PIO Setup FIS data */
|
||||
RX_FIS_D2H_REG = 0x40, /* offset of D2H Register FIS data */
|
||||
@@ -77,37 +78,37 @@ enum {
|
||||
HOST_CAP2 = 0x24, /* host capabilities, extended */
|
||||
|
||||
/* HOST_CTL bits */
|
||||
- HOST_RESET = (1 << 0), /* reset controller; self-clear */
|
||||
- HOST_IRQ_EN = (1 << 1), /* global IRQ enable */
|
||||
- HOST_MRSM = (1 << 2), /* MSI Revert to Single Message */
|
||||
- HOST_AHCI_EN = (1 << 31), /* AHCI enabled */
|
||||
+ HOST_RESET = BIT(0), /* reset controller; self-clear */
|
||||
+ HOST_IRQ_EN = BIT(1), /* global IRQ enable */
|
||||
+ HOST_MRSM = BIT(2), /* MSI Revert to Single Message */
|
||||
+ HOST_AHCI_EN = BIT(31), /* AHCI enabled */
|
||||
|
||||
/* HOST_CAP bits */
|
||||
- HOST_CAP_SXS = (1 << 5), /* Supports External SATA */
|
||||
- HOST_CAP_EMS = (1 << 6), /* Enclosure Management support */
|
||||
- HOST_CAP_CCC = (1 << 7), /* Command Completion Coalescing */
|
||||
- HOST_CAP_PART = (1 << 13), /* Partial state capable */
|
||||
- HOST_CAP_SSC = (1 << 14), /* Slumber state capable */
|
||||
- HOST_CAP_PIO_MULTI = (1 << 15), /* PIO multiple DRQ support */
|
||||
- HOST_CAP_FBS = (1 << 16), /* FIS-based switching support */
|
||||
- HOST_CAP_PMP = (1 << 17), /* Port Multiplier support */
|
||||
- HOST_CAP_ONLY = (1 << 18), /* Supports AHCI mode only */
|
||||
- HOST_CAP_CLO = (1 << 24), /* Command List Override support */
|
||||
- HOST_CAP_LED = (1 << 25), /* Supports activity LED */
|
||||
- HOST_CAP_ALPM = (1 << 26), /* Aggressive Link PM support */
|
||||
- HOST_CAP_SSS = (1 << 27), /* Staggered Spin-up */
|
||||
- HOST_CAP_MPS = (1 << 28), /* Mechanical presence switch */
|
||||
- HOST_CAP_SNTF = (1 << 29), /* SNotification register */
|
||||
- HOST_CAP_NCQ = (1 << 30), /* Native Command Queueing */
|
||||
- HOST_CAP_64 = (1 << 31), /* PCI DAC (64-bit DMA) support */
|
||||
+ HOST_CAP_SXS = BIT(5), /* Supports External SATA */
|
||||
+ HOST_CAP_EMS = BIT(6), /* Enclosure Management support */
|
||||
+ HOST_CAP_CCC = BIT(7), /* Command Completion Coalescing */
|
||||
+ HOST_CAP_PART = BIT(13), /* Partial state capable */
|
||||
+ HOST_CAP_SSC = BIT(14), /* Slumber state capable */
|
||||
+ HOST_CAP_PIO_MULTI = BIT(15), /* PIO multiple DRQ support */
|
||||
+ HOST_CAP_FBS = BIT(16), /* FIS-based switching support */
|
||||
+ HOST_CAP_PMP = BIT(17), /* Port Multiplier support */
|
||||
+ HOST_CAP_ONLY = BIT(18), /* Supports AHCI mode only */
|
||||
+ HOST_CAP_CLO = BIT(24), /* Command List Override support */
|
||||
+ HOST_CAP_LED = BIT(25), /* Supports activity LED */
|
||||
+ HOST_CAP_ALPM = BIT(26), /* Aggressive Link PM support */
|
||||
+ HOST_CAP_SSS = BIT(27), /* Staggered Spin-up */
|
||||
+ HOST_CAP_MPS = BIT(28), /* Mechanical presence switch */
|
||||
+ HOST_CAP_SNTF = BIT(29), /* SNotification register */
|
||||
+ HOST_CAP_NCQ = BIT(30), /* Native Command Queueing */
|
||||
+ HOST_CAP_64 = BIT(31), /* PCI DAC (64-bit DMA) support */
|
||||
|
||||
/* HOST_CAP2 bits */
|
||||
- HOST_CAP2_BOH = (1 << 0), /* BIOS/OS handoff supported */
|
||||
- HOST_CAP2_NVMHCI = (1 << 1), /* NVMHCI supported */
|
||||
- HOST_CAP2_APST = (1 << 2), /* Automatic partial to slumber */
|
||||
- HOST_CAP2_SDS = (1 << 3), /* Support device sleep */
|
||||
- HOST_CAP2_SADM = (1 << 4), /* Support aggressive DevSlp */
|
||||
- HOST_CAP2_DESO = (1 << 5), /* DevSlp from slumber only */
|
||||
+ HOST_CAP2_BOH = BIT(0), /* BIOS/OS handoff supported */
|
||||
+ HOST_CAP2_NVMHCI = BIT(1), /* NVMHCI supported */
|
||||
+ HOST_CAP2_APST = BIT(2), /* Automatic partial to slumber */
|
||||
+ HOST_CAP2_SDS = BIT(3), /* Support device sleep */
|
||||
+ HOST_CAP2_SADM = BIT(4), /* Support aggressive DevSlp */
|
||||
+ HOST_CAP2_DESO = BIT(5), /* DevSlp from slumber only */
|
||||
|
||||
/* registers for each SATA port */
|
||||
PORT_LST_ADDR = 0x00, /* command list DMA addr */
|
||||
@@ -129,24 +130,25 @@ enum {
|
||||
PORT_DEVSLP = 0x44, /* device sleep */
|
||||
|
||||
/* PORT_IRQ_{STAT,MASK} bits */
|
||||
- PORT_IRQ_COLD_PRES = (1 << 31), /* cold presence detect */
|
||||
- PORT_IRQ_TF_ERR = (1 << 30), /* task file error */
|
||||
- PORT_IRQ_HBUS_ERR = (1 << 29), /* host bus fatal error */
|
||||
- PORT_IRQ_HBUS_DATA_ERR = (1 << 28), /* host bus data error */
|
||||
- PORT_IRQ_IF_ERR = (1 << 27), /* interface fatal error */
|
||||
- PORT_IRQ_IF_NONFATAL = (1 << 26), /* interface non-fatal error */
|
||||
- PORT_IRQ_OVERFLOW = (1 << 24), /* xfer exhausted available S/G */
|
||||
- PORT_IRQ_BAD_PMP = (1 << 23), /* incorrect port multiplier */
|
||||
-
|
||||
- PORT_IRQ_PHYRDY = (1 << 22), /* PhyRdy changed */
|
||||
- PORT_IRQ_DEV_ILCK = (1 << 7), /* device interlock */
|
||||
- PORT_IRQ_CONNECT = (1 << 6), /* port connect change status */
|
||||
- PORT_IRQ_SG_DONE = (1 << 5), /* descriptor processed */
|
||||
- PORT_IRQ_UNK_FIS = (1 << 4), /* unknown FIS rx'd */
|
||||
- PORT_IRQ_SDB_FIS = (1 << 3), /* Set Device Bits FIS rx'd */
|
||||
- PORT_IRQ_DMAS_FIS = (1 << 2), /* DMA Setup FIS rx'd */
|
||||
- PORT_IRQ_PIOS_FIS = (1 << 1), /* PIO Setup FIS rx'd */
|
||||
- PORT_IRQ_D2H_REG_FIS = (1 << 0), /* D2H Register FIS rx'd */
|
||||
+ PORT_IRQ_COLD_PRES = BIT(31), /* cold presence detect */
|
||||
+ PORT_IRQ_TF_ERR = BIT(30), /* task file error */
|
||||
+ PORT_IRQ_HBUS_ERR = BIT(29), /* host bus fatal error */
|
||||
+ PORT_IRQ_HBUS_DATA_ERR = BIT(28), /* host bus data error */
|
||||
+ PORT_IRQ_IF_ERR = BIT(27), /* interface fatal error */
|
||||
+ PORT_IRQ_IF_NONFATAL = BIT(26), /* interface non-fatal error */
|
||||
+ PORT_IRQ_OVERFLOW = BIT(24), /* xfer exhausted available S/G */
|
||||
+ PORT_IRQ_BAD_PMP = BIT(23), /* incorrect port multiplier */
|
||||
+
|
||||
+ PORT_IRQ_PHYRDY = BIT(22), /* PhyRdy changed */
|
||||
+ PORT_IRQ_DEV_ILCK = BIT(7), /* device interlock */
|
||||
+ PORT_IRQ_DMPS = BIT(7), /* mechanical presence status */
|
||||
+ PORT_IRQ_CONNECT = BIT(6), /* port connect change status */
|
||||
+ PORT_IRQ_SG_DONE = BIT(5), /* descriptor processed */
|
||||
+ PORT_IRQ_UNK_FIS = BIT(4), /* unknown FIS rx'd */
|
||||
+ PORT_IRQ_SDB_FIS = BIT(3), /* Set Device Bits FIS rx'd */
|
||||
+ PORT_IRQ_DMAS_FIS = BIT(2), /* DMA Setup FIS rx'd */
|
||||
+ PORT_IRQ_PIOS_FIS = BIT(1), /* PIO Setup FIS rx'd */
|
||||
+ PORT_IRQ_D2H_REG_FIS = BIT(0), /* D2H Register FIS rx'd */
|
||||
|
||||
PORT_IRQ_FREEZE = PORT_IRQ_HBUS_ERR |
|
||||
PORT_IRQ_IF_ERR |
|
||||
@@ -162,34 +164,34 @@ enum {
|
||||
PORT_IRQ_PIOS_FIS | PORT_IRQ_D2H_REG_FIS,
|
||||
|
||||
/* PORT_CMD bits */
|
||||
- PORT_CMD_ASP = (1 << 27), /* Aggressive Slumber/Partial */
|
||||
- PORT_CMD_ALPE = (1 << 26), /* Aggressive Link PM enable */
|
||||
- PORT_CMD_ATAPI = (1 << 24), /* Device is ATAPI */
|
||||
- PORT_CMD_FBSCP = (1 << 22), /* FBS Capable Port */
|
||||
- PORT_CMD_ESP = (1 << 21), /* External Sata Port */
|
||||
- PORT_CMD_HPCP = (1 << 18), /* HotPlug Capable Port */
|
||||
- PORT_CMD_PMP = (1 << 17), /* PMP attached */
|
||||
- PORT_CMD_LIST_ON = (1 << 15), /* cmd list DMA engine running */
|
||||
- PORT_CMD_FIS_ON = (1 << 14), /* FIS DMA engine running */
|
||||
- PORT_CMD_FIS_RX = (1 << 4), /* Enable FIS receive DMA engine */
|
||||
- PORT_CMD_CLO = (1 << 3), /* Command list override */
|
||||
- PORT_CMD_POWER_ON = (1 << 2), /* Power up device */
|
||||
- PORT_CMD_SPIN_UP = (1 << 1), /* Spin up device */
|
||||
- PORT_CMD_START = (1 << 0), /* Enable port DMA engine */
|
||||
-
|
||||
- PORT_CMD_ICC_MASK = (0xf << 28), /* i/f ICC state mask */
|
||||
- PORT_CMD_ICC_ACTIVE = (0x1 << 28), /* Put i/f in active state */
|
||||
- PORT_CMD_ICC_PARTIAL = (0x2 << 28), /* Put i/f in partial state */
|
||||
- PORT_CMD_ICC_SLUMBER = (0x6 << 28), /* Put i/f in slumber state */
|
||||
+ PORT_CMD_ASP = BIT(27), /* Aggressive Slumber/Partial */
|
||||
+ PORT_CMD_ALPE = BIT(26), /* Aggressive Link PM enable */
|
||||
+ PORT_CMD_ATAPI = BIT(24), /* Device is ATAPI */
|
||||
+ PORT_CMD_FBSCP = BIT(22), /* FBS Capable Port */
|
||||
+ PORT_CMD_ESP = BIT(21), /* External Sata Port */
|
||||
+ PORT_CMD_HPCP = BIT(18), /* HotPlug Capable Port */
|
||||
+ PORT_CMD_PMP = BIT(17), /* PMP attached */
|
||||
+ PORT_CMD_LIST_ON = BIT(15), /* cmd list DMA engine running */
|
||||
+ PORT_CMD_FIS_ON = BIT(14), /* FIS DMA engine running */
|
||||
+ PORT_CMD_FIS_RX = BIT(4), /* Enable FIS receive DMA engine */
|
||||
+ PORT_CMD_CLO = BIT(3), /* Command list override */
|
||||
+ PORT_CMD_POWER_ON = BIT(2), /* Power up device */
|
||||
+ PORT_CMD_SPIN_UP = BIT(1), /* Spin up device */
|
||||
+ PORT_CMD_START = BIT(0), /* Enable port DMA engine */
|
||||
+
|
||||
+ PORT_CMD_ICC_MASK = (0xfu << 28), /* i/f ICC state mask */
|
||||
+ PORT_CMD_ICC_ACTIVE = (0x1u << 28), /* Put i/f in active state */
|
||||
+ PORT_CMD_ICC_PARTIAL = (0x2u << 28), /* Put i/f in partial state */
|
||||
+ PORT_CMD_ICC_SLUMBER = (0x6u << 28), /* Put i/f in slumber state */
|
||||
|
||||
/* PORT_FBS bits */
|
||||
PORT_FBS_DWE_OFFSET = 16, /* FBS device with error offset */
|
||||
PORT_FBS_ADO_OFFSET = 12, /* FBS active dev optimization offset */
|
||||
PORT_FBS_DEV_OFFSET = 8, /* FBS device to issue offset */
|
||||
PORT_FBS_DEV_MASK = (0xf << PORT_FBS_DEV_OFFSET), /* FBS.DEV */
|
||||
- PORT_FBS_SDE = (1 << 2), /* FBS single device error */
|
||||
- PORT_FBS_DEC = (1 << 1), /* FBS device error clear */
|
||||
- PORT_FBS_EN = (1 << 0), /* Enable FBS */
|
||||
+ PORT_FBS_SDE = BIT(2), /* FBS single device error */
|
||||
+ PORT_FBS_DEC = BIT(1), /* FBS device error clear */
|
||||
+ PORT_FBS_EN = BIT(0), /* Enable FBS */
|
||||
|
||||
/* PORT_DEVSLP bits */
|
||||
PORT_DEVSLP_DM_OFFSET = 25, /* DITO multiplier offset */
|
||||
@@ -197,45 +199,45 @@ enum {
|
||||
PORT_DEVSLP_DITO_OFFSET = 15, /* DITO offset */
|
||||
PORT_DEVSLP_MDAT_OFFSET = 10, /* Minimum assertion time */
|
||||
PORT_DEVSLP_DETO_OFFSET = 2, /* DevSlp exit timeout */
|
||||
- PORT_DEVSLP_DSP = (1 << 1), /* DevSlp present */
|
||||
- PORT_DEVSLP_ADSE = (1 << 0), /* Aggressive DevSlp enable */
|
||||
+ PORT_DEVSLP_DSP = BIT(1), /* DevSlp present */
|
||||
+ PORT_DEVSLP_ADSE = BIT(0), /* Aggressive DevSlp enable */
|
||||
|
||||
/* hpriv->flags bits */
|
||||
|
||||
#define AHCI_HFLAGS(flags) .private_data = (void *)(flags)
|
||||
|
||||
- AHCI_HFLAG_NO_NCQ = (1 << 0),
|
||||
- AHCI_HFLAG_IGN_IRQ_IF_ERR = (1 << 1), /* ignore IRQ_IF_ERR */
|
||||
- AHCI_HFLAG_IGN_SERR_INTERNAL = (1 << 2), /* ignore SERR_INTERNAL */
|
||||
- AHCI_HFLAG_32BIT_ONLY = (1 << 3), /* force 32bit */
|
||||
- AHCI_HFLAG_MV_PATA = (1 << 4), /* PATA port */
|
||||
- AHCI_HFLAG_NO_MSI = (1 << 5), /* no PCI MSI */
|
||||
- AHCI_HFLAG_NO_PMP = (1 << 6), /* no PMP */
|
||||
- AHCI_HFLAG_SECT255 = (1 << 8), /* max 255 sectors */
|
||||
- AHCI_HFLAG_YES_NCQ = (1 << 9), /* force NCQ cap on */
|
||||
- AHCI_HFLAG_NO_SUSPEND = (1 << 10), /* don't suspend */
|
||||
- AHCI_HFLAG_SRST_TOUT_IS_OFFLINE = (1 << 11), /* treat SRST timeout as
|
||||
- link offline */
|
||||
- AHCI_HFLAG_NO_SNTF = (1 << 12), /* no sntf */
|
||||
- AHCI_HFLAG_NO_FPDMA_AA = (1 << 13), /* no FPDMA AA */
|
||||
- AHCI_HFLAG_YES_FBS = (1 << 14), /* force FBS cap on */
|
||||
- AHCI_HFLAG_DELAY_ENGINE = (1 << 15), /* do not start engine on
|
||||
- port start (wait until
|
||||
- error-handling stage) */
|
||||
- AHCI_HFLAG_NO_DEVSLP = (1 << 17), /* no device sleep */
|
||||
- AHCI_HFLAG_NO_FBS = (1 << 18), /* no FBS */
|
||||
+ AHCI_HFLAG_NO_NCQ = BIT(0),
|
||||
+ AHCI_HFLAG_IGN_IRQ_IF_ERR = BIT(1), /* ignore IRQ_IF_ERR */
|
||||
+ AHCI_HFLAG_IGN_SERR_INTERNAL = BIT(2), /* ignore SERR_INTERNAL */
|
||||
+ AHCI_HFLAG_32BIT_ONLY = BIT(3), /* force 32bit */
|
||||
+ AHCI_HFLAG_MV_PATA = BIT(4), /* PATA port */
|
||||
+ AHCI_HFLAG_NO_MSI = BIT(5), /* no PCI MSI */
|
||||
+ AHCI_HFLAG_NO_PMP = BIT(6), /* no PMP */
|
||||
+ AHCI_HFLAG_SECT255 = BIT(8), /* max 255 sectors */
|
||||
+ AHCI_HFLAG_YES_NCQ = BIT(9), /* force NCQ cap on */
|
||||
+ AHCI_HFLAG_NO_SUSPEND = BIT(10), /* don't suspend */
|
||||
+ AHCI_HFLAG_SRST_TOUT_IS_OFFLINE = BIT(11), /* treat SRST timeout as
|
||||
+ link offline */
|
||||
+ AHCI_HFLAG_NO_SNTF = BIT(12), /* no sntf */
|
||||
+ AHCI_HFLAG_NO_FPDMA_AA = BIT(13), /* no FPDMA AA */
|
||||
+ AHCI_HFLAG_YES_FBS = BIT(14), /* force FBS cap on */
|
||||
+ AHCI_HFLAG_DELAY_ENGINE = BIT(15), /* do not start engine on
|
||||
+ port start (wait until
|
||||
+ error-handling stage) */
|
||||
+ AHCI_HFLAG_NO_DEVSLP = BIT(17), /* no device sleep */
|
||||
+ AHCI_HFLAG_NO_FBS = BIT(18), /* no FBS */
|
||||
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
- AHCI_HFLAG_MULTI_MSI = (1 << 20), /* per-port MSI(-X) */
|
||||
+ AHCI_HFLAG_MULTI_MSI = BIT(20), /* per-port MSI(-X) */
|
||||
#else
|
||||
/* compile out MSI infrastructure */
|
||||
AHCI_HFLAG_MULTI_MSI = 0,
|
||||
#endif
|
||||
- AHCI_HFLAG_WAKE_BEFORE_STOP = (1 << 22), /* wake before DMA stop */
|
||||
- AHCI_HFLAG_YES_ALPM = (1 << 23), /* force ALPM cap on */
|
||||
- AHCI_HFLAG_NO_WRITE_TO_RO = (1 << 24), /* don't write to read
|
||||
- only registers */
|
||||
- AHCI_HFLAG_IS_MOBILE = (1 << 25), /* mobile chipset, use
|
||||
+ AHCI_HFLAG_WAKE_BEFORE_STOP = BIT(22), /* wake before DMA stop */
|
||||
+ AHCI_HFLAG_YES_ALPM = BIT(23), /* force ALPM cap on */
|
||||
+ AHCI_HFLAG_NO_WRITE_TO_RO = BIT(24), /* don't write to read
|
||||
+ only registers */
|
||||
+ AHCI_HFLAG_IS_MOBILE = BIT(25), /* mobile chipset, use
|
||||
SATA_MOBILE_LPM_POLICY
|
||||
as default lpm_policy */
|
||||
AHCI_HFLAG_SUSPEND_PHYS = (1 << 26), /* handle PHYs during
|
||||
@@ -258,22 +260,22 @@ enum {
|
||||
EM_MAX_RETRY = 5,
|
||||
|
||||
/* em_ctl bits */
|
||||
- EM_CTL_RST = (1 << 9), /* Reset */
|
||||
- EM_CTL_TM = (1 << 8), /* Transmit Message */
|
||||
- EM_CTL_MR = (1 << 0), /* Message Received */
|
||||
- EM_CTL_ALHD = (1 << 26), /* Activity LED */
|
||||
- EM_CTL_XMT = (1 << 25), /* Transmit Only */
|
||||
- EM_CTL_SMB = (1 << 24), /* Single Message Buffer */
|
||||
- EM_CTL_SGPIO = (1 << 19), /* SGPIO messages supported */
|
||||
- EM_CTL_SES = (1 << 18), /* SES-2 messages supported */
|
||||
- EM_CTL_SAFTE = (1 << 17), /* SAF-TE messages supported */
|
||||
- EM_CTL_LED = (1 << 16), /* LED messages supported */
|
||||
+ EM_CTL_RST = BIT(9), /* Reset */
|
||||
+ EM_CTL_TM = BIT(8), /* Transmit Message */
|
||||
+ EM_CTL_MR = BIT(0), /* Message Received */
|
||||
+ EM_CTL_ALHD = BIT(26), /* Activity LED */
|
||||
+ EM_CTL_XMT = BIT(25), /* Transmit Only */
|
||||
+ EM_CTL_SMB = BIT(24), /* Single Message Buffer */
|
||||
+ EM_CTL_SGPIO = BIT(19), /* SGPIO messages supported */
|
||||
+ EM_CTL_SES = BIT(18), /* SES-2 messages supported */
|
||||
+ EM_CTL_SAFTE = BIT(17), /* SAF-TE messages supported */
|
||||
+ EM_CTL_LED = BIT(16), /* LED messages supported */
|
||||
|
||||
/* em message type */
|
||||
- EM_MSG_TYPE_LED = (1 << 0), /* LED */
|
||||
- EM_MSG_TYPE_SAFTE = (1 << 1), /* SAF-TE */
|
||||
- EM_MSG_TYPE_SES2 = (1 << 2), /* SES-2 */
|
||||
- EM_MSG_TYPE_SGPIO = (1 << 3), /* SGPIO */
|
||||
+ EM_MSG_TYPE_LED = BIT(0), /* LED */
|
||||
+ EM_MSG_TYPE_SAFTE = BIT(1), /* SAF-TE */
|
||||
+ EM_MSG_TYPE_SES2 = BIT(2), /* SES-2 */
|
||||
+ EM_MSG_TYPE_SGPIO = BIT(3), /* SGPIO */
|
||||
};
|
||||
|
||||
struct ahci_cmd_hdr {
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
CONFIG_MFD_TPS6594=y
|
||||
CONFIG_MFD_TPS6594_I2C=y
|
||||
CONFIG_REGULATOR_TPS6594=y
|
||||
@@ -51,7 +51,7 @@ grub-bios-setup does but it works anyway.
|
||||
To test your BIOS image in Qemu
|
||||
-------------------------------
|
||||
|
||||
qemu-system-{i386,x86-64} -hda disk.img
|
||||
qemu-system-{i386,x86_64} -hda disk.img
|
||||
|
||||
Notes on using Grub2 for x86/x86_64 EFI-based platforms
|
||||
=======================================================
|
||||
@@ -93,7 +93,7 @@ To test your i386/x86-64 EFI image in Qemu
|
||||
|
||||
[0] https://github.com/retrage/edk2-nightly
|
||||
|
||||
2. qemu-system-{i386,x86-64} -bios <path-to-OVMF.fd> -hda disk.img
|
||||
2. qemu-system-{i386,x86_64} -bios <path-to-OVMF.fd> -hda disk.img
|
||||
|
||||
Notes on using Grub2 for ARM u-boot-based platforms
|
||||
===================================================
|
||||
|
||||
@@ -10,6 +10,10 @@ ifeq ($(BR2_TARGET_OPTEE_OS_LATEST),y)
|
||||
OPTEE_OS_LICENSE_FILES = LICENSE
|
||||
endif
|
||||
|
||||
OPTEE_OS_CPE_ID_PREFIX = cpe:2.3:o
|
||||
OPTEE_OS_CPE_ID_VENDOR = linaro
|
||||
OPTEE_OS_CPE_ID_PRODUCT = op-tee
|
||||
|
||||
OPTEE_OS_INSTALL_STAGING = YES
|
||||
OPTEE_OS_INSTALL_IMAGES = YES
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From 7f1b68d561dfe615d5cd73d2f4561ac032832802 Mon Sep 17 00:00:00 2001
|
||||
From: Scot Doyle <lkml14@scotdoyle.com>
|
||||
Date: Sat, 7 Feb 2015 13:52:05 -0500
|
||||
Subject: [PATCH] load_linux: correct a type
|
||||
|
||||
Correct base's type to match its initialization from prot_mode_base and
|
||||
passage to syslinux_memmap_find(). Tested with extlinux.
|
||||
|
||||
Signed-off-by: Scot Doyle <lkml14@scotdoyle.com>
|
||||
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
||||
Upstream: https://github.com/geneC/syslinux/commit/83aad4f69065509ba5b1c080edccfed316a4cff0
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
com32/lib/syslinux/load_linux.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c
|
||||
index 06ae2a97..ac737293 100644
|
||||
--- a/com32/lib/syslinux/load_linux.c
|
||||
+++ b/com32/lib/syslinux/load_linux.c
|
||||
@@ -155,8 +155,8 @@ int bios_boot_linux(void *kernel_buf, size_t kernel_size,
|
||||
char *cmdline)
|
||||
{
|
||||
struct linux_header hdr, *whdr;
|
||||
- size_t real_mode_size, prot_mode_size, base;
|
||||
- addr_t real_mode_base, prot_mode_base, prot_mode_max;
|
||||
+ size_t real_mode_size, prot_mode_size;
|
||||
+ addr_t real_mode_base, prot_mode_base, prot_mode_max, base;
|
||||
addr_t irf_size;
|
||||
size_t cmdline_size, cmdline_offset;
|
||||
struct setup_data *sdp;
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
From b9514337ecfc0efaa04a926713188d87a88bb59e Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Date: Sat, 18 Jan 2025 16:03:34 +0100
|
||||
Subject: [PATCH] com32/modules/pxechn.c: use proper type in struct data_area
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Use a size_t for the size field, so that we meet the expectations of
|
||||
the loadfile() function.
|
||||
|
||||
Fixes a build issue with GCC >= 14:
|
||||
|
||||
com32/modules/pxechn.c:985:38: error: passing argument 3 of ‘loadfile’ from incompatible pointer type [-Wincompatible-pointer-types]
|
||||
985 | if (loadfile(pxe.fn, &file.data, &file.size)) {
|
||||
| ^~~~~~~~~~
|
||||
| |
|
||||
| addr_t * {aka unsigned int *}
|
||||
|
||||
In file included from com32/modules/pxechn.c:33:
|
||||
com32/include/syslinux/loadfile.h:11:37: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘addr_t *’ {aka ‘unsigned int *’}
|
||||
11 | int loadfile(const char *, void **, size_t *);
|
||||
| ^~~~~~~~
|
||||
|
||||
Upstream: N/A, dead
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
com32/modules/pxechn.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/com32/modules/pxechn.c b/com32/modules/pxechn.c
|
||||
index e4e21e88..15f008a3 100644
|
||||
--- a/com32/modules/pxechn.c
|
||||
+++ b/com32/modules/pxechn.c
|
||||
@@ -130,7 +130,7 @@ struct pxelinux_opt {
|
||||
struct data_area {
|
||||
void *data;
|
||||
addr_t base;
|
||||
- addr_t size;
|
||||
+ size_t size;
|
||||
};
|
||||
|
||||
/* From chain.c */
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
From 57dddf8d6d1c48aa78b9cdfb2b474aa89c3ae7c7 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Date: Sat, 18 Jan 2025 16:11:36 +0100
|
||||
Subject: [PATCH] com32/chain/chain.h: use proper type in struct data_area
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Fixes build issue with GCC >= 14:
|
||||
|
||||
com32/chain/chain.c:517:44: error: passing argument 3 of ‘loadfile’ from incompatible pointer type [-Wincompatible-pointer-types]
|
||||
517 | if (loadfile(opt.file, &fdat.data, &fdat.size)) {
|
||||
| ^~~~~~~~~~
|
||||
| |
|
||||
| addr_t * {aka unsigned int *}
|
||||
In file included from com32/chain/chain.c:32:
|
||||
com32/include/syslinux/loadfile.h:11:37: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘addr_t *’ {aka ‘unsigned int *’}
|
||||
11 | int loadfile(const char *, void **, size_t *);
|
||||
| ^~~~~~~~
|
||||
|
||||
Upstream: N/A, dead
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
com32/chain/chain.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/com32/chain/chain.h b/com32/chain/chain.h
|
||||
index fb5914b1..dcf43844 100644
|
||||
--- a/com32/chain/chain.h
|
||||
+++ b/com32/chain/chain.h
|
||||
@@ -21,7 +21,7 @@
|
||||
struct data_area {
|
||||
void *data;
|
||||
addr_t base;
|
||||
- addr_t size;
|
||||
+ size_t size;
|
||||
};
|
||||
|
||||
#endif
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
From cbc8a8e25c3548771de5294f5a1eaef6bfe9b5da Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Date: Sat, 18 Jan 2025 17:03:16 +0100
|
||||
Subject: [PATCH] efi/main.c: fix incorrect type of load_error_buf
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
load_error_buf is used as argument of setjmp()/longjmp(), so it should
|
||||
be a "jmp_buf", not a "jmp_buf *". According to the setjmp/longjmp man
|
||||
page:
|
||||
|
||||
int setjmp(jmp_buf env);
|
||||
int sigsetjmp(sigjmp_buf env, int savesigs);
|
||||
|
||||
Fixes build issue with GCC >= 14:
|
||||
|
||||
efi/main.c:1329:21: error: passing argument 1 of ‘setjmp’ from incompatible pointer type [-Wincompatible-pointer-types]
|
||||
1329 | if (!setjmp(load_error_buf))
|
||||
| ^~~~~~~~~~~~~~
|
||||
| |
|
||||
| struct <anonymous> (*)[1]
|
||||
x86_64-buildroot-linux-gnu/sysroot/usr/include/efi/efisetjmp.h:7:29: note: expected ‘struct <anonymous> *’ but argument is of type ‘struct <anonymous> (*)[1]’
|
||||
7 | extern UINTN setjmp(jmp_buf env) __attribute__((returns_twice));
|
||||
| ~~~~~~~~^~~
|
||||
|
||||
Upstream: N/A dead
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
efi/main.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/efi/main.c b/efi/main.c
|
||||
index 7dc7bca7..045dae56 100644
|
||||
--- a/efi/main.c
|
||||
+++ b/efi/main.c
|
||||
@@ -30,7 +30,7 @@ uint32_t timer_irq;
|
||||
__export uint8_t KbdMap[256];
|
||||
char aux_seg[256];
|
||||
|
||||
-static jmp_buf *load_error_buf;
|
||||
+static jmp_buf load_error_buf;
|
||||
|
||||
static inline EFI_STATUS
|
||||
efi_close_protocol(EFI_HANDLE handle, EFI_GUID *guid, EFI_HANDLE agent,
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -10,6 +10,7 @@ BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.10"
|
||||
BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/ti/am62ax-sk/linux.config"
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-am62a7-sk"
|
||||
BR2_TARGET_ROOTFS_EXT2=y
|
||||
|
||||
+5
-5
@@ -1,11 +1,11 @@
|
||||
# From https://www.kernel.org/pub/linux/kernel/v6.x/sha256sums.asc
|
||||
sha256 62148e7e17f54c4a5ab5e75ad4882682c54bee818948be61a5963234fc0849fc linux-6.11.11.tar.xz
|
||||
sha256 283ff410e3f352ceed161ae30c0020301326059db03e86efcb384d46ac5840e2 linux-6.6.68.tar.xz
|
||||
sha256 e892c0b380100b7e6249060282ad07fbded092f0a2ca1d647243d0fbe9ce6e50 linux-6.1.122.tar.xz
|
||||
sha256 894bbbe63b7484a0bc576a1e11a8dbc090fbd476d6424431bdc8435e03c2c208 linux-6.6.83.tar.xz
|
||||
sha256 44caf510603b4cbbe78ef828620099d200536d666e909ddb73bb2938c7de5b16 linux-6.1.131.tar.xz
|
||||
# From https://www.kernel.org/pub/linux/kernel/v5.x/sha256sums.asc
|
||||
sha256 8fd8bbc80e7aae30aaca3b40576b283010b5e84e70f6fea1573589155ce8a9d0 linux-5.15.175.tar.xz
|
||||
sha256 fda44589a438dff8c718082e9a48843b15e5eb82f6cc2f98d48f48226063bef0 linux-5.10.232.tar.xz
|
||||
sha256 876fbae303723bcf9e01ab57b1a0a7d38045aacd481ff865dccc2cc89f591afe linux-5.4.288.tar.xz
|
||||
sha256 9319a47b1e9b5d344ff6015431856d0c9640e4faedc527c87f9129061a27136f linux-5.15.179.tar.xz
|
||||
sha256 953be3931101a94a93a644c1283ca41a7e567447ca87d3069ed4dd712dc1f1cc linux-5.10.235.tar.xz
|
||||
sha256 b3ad64a4476a7c5450b92eab9a888b84ecb64dc613fcb0128f653f58e958ef6e linux-5.4.291.tar.xz
|
||||
# From https://www.kernel.org/pub/linux/kernel/v4.x/sha256sums.asc
|
||||
sha256 607bed7de5cda31a443df4c8a78dbe5e8a9ad31afde2a4d28fe99ab4730e8de1 linux-4.19.325.tar.xz
|
||||
# Locally computed
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# locally computed hash
|
||||
sha256 57988fb55541e694dfa3323bd19db74b65d37e942bebef559ed51e8cd9348b43 acpica-unix-20240927.tar.gz
|
||||
sha256 9dca83cfee390b710485fbdf787048370049c05723b10cc220cfef6e13c31961 acpica-unix-20241212.tar.gz
|
||||
sha256 b28f54dc421531bbe269afd8c28bf6fdfd6affbe50c2831464f777ec1766d4a5 source/include/acpi.h
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ACPICA_VERSION = 20240927
|
||||
ACPICA_VERSION = 20241212
|
||||
ACPICA_SOURCE = acpica-unix-$(ACPICA_VERSION).tar.gz
|
||||
ACPICA_SITE = https://github.com/user-attachments/files/17171019
|
||||
ACPICA_SITE = https://github.com/user-attachments/files/18117992
|
||||
ACPICA_LICENSE = BSD-3-Clause or GPL-2.0
|
||||
ACPICA_LICENSE_FILES = source/include/acpi.h
|
||||
ACPICA_DEPENDENCIES = host-bison host-flex
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From https://downloads.apache.org/httpd/httpd-2.4.62.tar.bz2.{sha256,sha512}
|
||||
sha256 674188e7bf44ced82da8db522da946849e22080d73d16c93f7f4df89e25729ec httpd-2.4.62.tar.bz2
|
||||
sha512 7db1876805d5c0f60f49bcb51f75cdf567120f2ff6349e68f084e9a86ae38265d9f1c67e7fca0082c9db136f3c408a88501ee11f26b1b68724ba240867171d77 httpd-2.4.62.tar.bz2
|
||||
# From https://downloads.apache.org/httpd/httpd-2.4.63.tar.bz2.{sha256,sha512}
|
||||
sha256 88fc236ab99b2864b248de7d49a008ec2afd7551e64dce8b95f58f32f94c46ab httpd-2.4.63.tar.bz2
|
||||
sha512 a804ca564dfee5907fe4ce4f36884815bace0621bc7b8c9aa7c99472a954aa19cb13733f90678ff3d58ab3c76cc0e33a27e1035dc1d8cb597a9622154c59ef48 httpd-2.4.63.tar.bz2
|
||||
# Locally computed
|
||||
sha256 47b8c2b6c3309282a99d4a3001575c790fead690cc14734628c4667d2bbffc43 LICENSE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
APACHE_VERSION = 2.4.62
|
||||
APACHE_VERSION = 2.4.63
|
||||
APACHE_SOURCE = httpd-$(APACHE_VERSION).tar.bz2
|
||||
APACHE_SITE = https://dlcdn.apache.org/httpd
|
||||
APACHE_LICENSE = Apache-2.0
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
From 4024726eca89331503bdab33d0b9186e901bbc45 Mon Sep 17 00:00:00 2001
|
||||
From: Kim Kulling <kimkulling@users.noreply.github.com>
|
||||
Date: Sat, 7 Sep 2024 21:02:34 +0200
|
||||
Subject: [PATCH] Fix leak (#5762)
|
||||
|
||||
* Fix leak
|
||||
|
||||
* Update utLogger.cpp
|
||||
|
||||
Upstream: https://github.com/assimp/assimp/commit/4024726eca89331503bdab33d0b9186e901bbc45
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
code/Common/Assimp.cpp | 13 ++++++---
|
||||
fuzz/assimp_fuzzer.cc | 2 +-
|
||||
test/CMakeLists.txt | 1 +
|
||||
test/unit/Common/utLogger.cpp | 52 +++++++++++++++++++++++++++++++++++
|
||||
4 files changed, 63 insertions(+), 5 deletions(-)
|
||||
create mode 100644 test/unit/Common/utLogger.cpp
|
||||
|
||||
diff --git a/code/Common/Assimp.cpp b/code/Common/Assimp.cpp
|
||||
index ef3ee7b5d..91896e405 100644
|
||||
--- a/code/Common/Assimp.cpp
|
||||
+++ b/code/Common/Assimp.cpp
|
||||
@@ -359,20 +359,25 @@ void CallbackToLogRedirector(const char *msg, char *dt) {
|
||||
s->write(msg);
|
||||
}
|
||||
|
||||
+static LogStream *DefaultStream = nullptr;
|
||||
+
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
ASSIMP_API aiLogStream aiGetPredefinedLogStream(aiDefaultLogStream pStream, const char *file) {
|
||||
aiLogStream sout;
|
||||
|
||||
ASSIMP_BEGIN_EXCEPTION_REGION();
|
||||
- LogStream *stream = LogStream::createDefaultStream(pStream, file);
|
||||
- if (!stream) {
|
||||
+ if (DefaultStream == nullptr) {
|
||||
+ DefaultStream = LogStream::createDefaultStream(pStream, file);
|
||||
+ }
|
||||
+
|
||||
+ if (!DefaultStream) {
|
||||
sout.callback = nullptr;
|
||||
sout.user = nullptr;
|
||||
} else {
|
||||
sout.callback = &CallbackToLogRedirector;
|
||||
- sout.user = (char *)stream;
|
||||
+ sout.user = (char *)DefaultStream;
|
||||
}
|
||||
- gPredefinedStreams.push_back(stream);
|
||||
+ gPredefinedStreams.push_back(DefaultStream);
|
||||
ASSIMP_END_EXCEPTION_REGION(aiLogStream);
|
||||
return sout;
|
||||
}
|
||||
diff --git a/fuzz/assimp_fuzzer.cc b/fuzz/assimp_fuzzer.cc
|
||||
index 8178674e8..91ffd9d69 100644
|
||||
--- a/fuzz/assimp_fuzzer.cc
|
||||
+++ b/fuzz/assimp_fuzzer.cc
|
||||
@@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
using namespace Assimp;
|
||||
|
||||
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t dataSize) {
|
||||
- aiLogStream stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT,NULL);
|
||||
+ aiLogStream stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT, nullptr);
|
||||
aiAttachLogStream(&stream);
|
||||
|
||||
Importer importer;
|
||||
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
|
||||
index 7b7fd850a..1a45adac7 100644
|
||||
--- a/test/CMakeLists.txt
|
||||
+++ b/test/CMakeLists.txt
|
||||
@@ -100,6 +100,7 @@ SET( COMMON
|
||||
unit/Common/utBase64.cpp
|
||||
unit/Common/utHash.cpp
|
||||
unit/Common/utBaseProcess.cpp
|
||||
+ unit/Common/utLogger.cpp
|
||||
)
|
||||
|
||||
SET(Geometry
|
||||
diff --git a/test/unit/Common/utLogger.cpp b/test/unit/Common/utLogger.cpp
|
||||
new file mode 100644
|
||||
index 000000000..932240a7f
|
||||
--- /dev/null
|
||||
+++ b/test/unit/Common/utLogger.cpp
|
||||
@@ -0,0 +1,52 @@
|
||||
+/*
|
||||
+---------------------------------------------------------------------------
|
||||
+Open Asset Import Library (assimp)
|
||||
+---------------------------------------------------------------------------
|
||||
+
|
||||
+Copyright (c) 2006-2024, assimp team
|
||||
+
|
||||
+All rights reserved.
|
||||
+
|
||||
+Redistribution and use of this software in source and binary forms,
|
||||
+with or without modification, are permitted provided that the following
|
||||
+conditions are met:
|
||||
+
|
||||
+* Redistributions of source code must retain the above
|
||||
+copyright notice, this list of conditions and the
|
||||
+following disclaimer.
|
||||
+
|
||||
+* Redistributions in binary form must reproduce the above
|
||||
+copyright notice, this list of conditions and the
|
||||
+following disclaimer in the documentation and/or other
|
||||
+materials provided with the distribution.
|
||||
+
|
||||
+* Neither the name of the assimp team, nor the names of its
|
||||
+contributors may be used to endorse or promote products
|
||||
+derived from this software without specific prior
|
||||
+written permission of the assimp team.
|
||||
+
|
||||
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
+---------------------------------------------------------------------------
|
||||
+*/
|
||||
+
|
||||
+#include "UnitTestPCH.h"
|
||||
+#include <assimp/Importer.hpp>
|
||||
+
|
||||
+using namespace Assimp;
|
||||
+class utLogger : public ::testing::Test {};
|
||||
+
|
||||
+TEST_F(utLogger, aiGetPredefinedLogStream_leak_test) {
|
||||
+ aiLogStream stream1 = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT, nullptr);
|
||||
+ aiLogStream stream2 = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT, nullptr);
|
||||
+ ASSERT_EQ(stream1.callback, stream2.callback);
|
||||
+}
|
||||
--
|
||||
2.39.5
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From f12e52198669239af525e525ebb68407977f8e34 Mon Sep 17 00:00:00 2001
|
||||
From: tyler92 <tyler92@inbox.ru>
|
||||
Date: Wed, 11 Dec 2024 12:17:14 +0200
|
||||
Subject: [PATCH] Fix use after free in the CallbackToLogRedirector (#5918)
|
||||
|
||||
The heap-use-after-free vulnerability occurs in the
|
||||
CallbackToLogRedirector function. During the process of logging,
|
||||
a previously freed memory region is accessed, leading to a
|
||||
use-after-free condition. This vulnerability stems from incorrect
|
||||
memory management, specifically, freeing a log stream and then
|
||||
attempting to access it later on.
|
||||
|
||||
This patch sets NULL value for The DefaultStream global pointer.
|
||||
|
||||
Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
|
||||
Upstream: https://github.com/assimp/assimp/commit/f12e52198669239af525e525ebb68407977f8e34
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
code/Common/Assimp.cpp | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/code/Common/Assimp.cpp b/code/Common/Assimp.cpp
|
||||
index 91896e405..22e16bd36 100644
|
||||
--- a/code/Common/Assimp.cpp
|
||||
+++ b/code/Common/Assimp.cpp
|
||||
@@ -416,6 +416,10 @@ ASSIMP_API aiReturn aiDetachLogStream(const aiLogStream *stream) {
|
||||
DefaultLogger::get()->detachStream(it->second);
|
||||
delete it->second;
|
||||
|
||||
+ if ((Assimp::LogStream *)stream->user == DefaultStream) {
|
||||
+ DefaultStream = nullptr;
|
||||
+ }
|
||||
+
|
||||
gActiveLogStreams.erase(it);
|
||||
|
||||
if (gActiveLogStreams.empty()) {
|
||||
--
|
||||
2.39.5
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 a07666be71afe1ad4bc008c2336b7c688aca391271188eb9108d0c6db1be53f1 assimp-5.3.1.tar.gz
|
||||
sha256 66dfbaee288f2bc43172440a55d0235dfc7bf885dda6435c038e8000e79582cb assimp-5.4.3.tar.gz
|
||||
sha256 147874443d242b4e2bae97036e26ec9d6b37f706174c1bd5ecfcc8c1294cef51 LICENSE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ASSIMP_VERSION = 5.3.1
|
||||
ASSIMP_VERSION = 5.4.3
|
||||
ASSIMP_SITE = $(call github,assimp,assimp,v$(ASSIMP_VERSION))
|
||||
ASSIMP_LICENSE = BSD-3-Clause
|
||||
ASSIMP_LICENSE_FILES = LICENSE
|
||||
@@ -12,6 +12,10 @@ ASSIMP_CPE_ID_VENDOR = assimp
|
||||
ASSIMP_DEPENDENCIES = zlib
|
||||
ASSIMP_INSTALL_STAGING = YES
|
||||
|
||||
# 0001-Fix-leak-5762.patch
|
||||
# 0002-Fix-use-after-free-in-the-CallbackToLogRedirector-59.patch
|
||||
ASSIMP_IGNORE_CVES += CVE-2024-48423
|
||||
|
||||
# relocation truncated to fit: R_68K_GOT16O. We also need to disable
|
||||
# optimizations to not run into "Error: value -43420 out of range"
|
||||
# assembler issues.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Locally computed
|
||||
sha256 a8162085b7d16f10d5cd16fc2e2cb8399dbe42bd1c321b14eec229fc0ed12570 asterisk-20.10.0.tar.gz
|
||||
sha256 94647b3f887f7dc91df51a4f88dfc3a07cc279bef86b8d05aa72f0c49d187571 asterisk-20.11.1.tar.gz
|
||||
|
||||
# sha1 from: http://downloads.asterisk.org/pub/telephony/sounds/releases
|
||||
# sha256 locally computed
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ASTERISK_VERSION = 20.10.0
|
||||
ASTERISK_VERSION = 20.11.1
|
||||
# Use the github mirror: it's an official mirror maintained by Digium, and
|
||||
# provides tarballs, which the main Asterisk git tree (behind Gerrit) does not.
|
||||
ASTERISK_SITE = $(call github,asterisk,asterisk,$(ASTERISK_VERSION))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Verified from https://ftp.isc.org/isc/bind9/9.18.31/bind-9.18.31.tar.xz.asc
|
||||
# with key 706B6C28620E76F91D11F7DF510A642A06C52CEC
|
||||
sha256 51b258969275c5206ef745a5aac03dbe98f1c8031fefed378d53597e7987b1b3 bind-9.18.31.tar.xz
|
||||
# Verified from https://ftp.isc.org/isc/bind9/9.18.33/bind-9.18.33.tar.xz.asc
|
||||
# with key D99CCEAF879747014F038D63182E23579462EFAA
|
||||
sha256 fb373fac5ebbc41c645160afd5a9fb451918f6c0e69ab1d9474154e2b515de40 bind-9.18.33.tar.xz
|
||||
sha256 9734825d67a3ac967b2c2f7c9a83c9e5db1c2474dbe9599157c3a4188749ebd4 COPYRIGHT
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
BIND_VERSION = 9.18.31
|
||||
BIND_VERSION = 9.18.33
|
||||
BIND_SOURCE= bind-$(BIND_VERSION).tar.xz
|
||||
BIND_SITE = https://ftp.isc.org/isc/bind9/$(BIND_VERSION)
|
||||
# bind does not support parallel builds.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
From ctxnop@gmail.com Sun Jul 21 12:10:52 2024
|
||||
From: ctxnop@gmail.com (Nop)
|
||||
Date: Sun, 21 Jul 2024 14:10:52 +0200
|
||||
From 32949508fe566aee8988cb6d8ee101ecc5e49a65 Mon Sep 17 00:00:00 2001
|
||||
From: ctxnop <ctxnop@gmail.com>
|
||||
Date: Sun, 26 Jan 2025 20:59:20 +0100
|
||||
Subject: [PATCH] menuconfig: GCC failing saying ncurses is not found
|
||||
|
||||
Newer GCC increased diagnostics levels resulting in considering the
|
||||
@@ -17,13 +17,12 @@ Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
|
||||
scripts/kconfig/lxdialog/check-lxdialog.sh | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh
|
||||
b/scripts/kconfig/lxdialog/check-lxdialog.sh
|
||||
index 5075ebf2d..c644d1d48 100755
|
||||
diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
|
||||
index 5075ebf2d..08e4da3de 100755
|
||||
--- a/scripts/kconfig/lxdialog/check-lxdialog.sh
|
||||
+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
|
||||
@@ -45,9 +45,9 @@ trap "rm -f $tmp" 0 1 2 3 15
|
||||
|
||||
|
||||
# Check if we can link to ncurses
|
||||
check() {
|
||||
- $cc -x c - -o $tmp 2>/dev/null <<'EOF'
|
||||
@@ -34,5 +33,6 @@ index 5075ebf2d..c644d1d48 100755
|
||||
EOF
|
||||
if [ $? != 0 ]; then
|
||||
echo " *** Unable to find the ncurses libraries or the" 1>&2
|
||||
--
|
||||
2.45.2
|
||||
--
|
||||
2.47.1
|
||||
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
From 7c73cdaa80faf0046b07c970321557ff04f7da64 Mon Sep 17 00:00:00 2001
|
||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Date: Fri, 26 May 2023 19:36:58 +0200
|
||||
Subject: [PATCH] awk: fix use-after-realloc (CVE-2021-42380), closes 15601
|
||||
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
|
||||
CVE: CVE-2021-42380
|
||||
Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=5dcc443dba039b305a510c01883e9f34e42656ae]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
[Thomas: taken from https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/busybox/busybox/CVE-2021-42380.patch?id=e0ff4813b1cf4df0d851c857d57fb88d7db51bdd]
|
||||
Upstream: https://git.busybox.net/busybox/commit/?id=5dcc443dba039b305a510c01883e9f34e42656ae
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
editors/awk.c | 26 ++++++++++++++++-----
|
||||
testsuite/awk.tests | 55 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 75 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/editors/awk.c b/editors/awk.c
|
||||
index 728ee8685..2af823808 100644
|
||||
--- a/editors/awk.c
|
||||
+++ b/editors/awk.c
|
||||
@@ -555,7 +555,7 @@ struct globals {
|
||||
const char *g_progname;
|
||||
int g_lineno;
|
||||
int nfields;
|
||||
- int maxfields; /* used in fsrealloc() only */
|
||||
+ unsigned maxfields;
|
||||
var *Fields;
|
||||
char *g_pos;
|
||||
char g_saved_ch;
|
||||
@@ -1931,9 +1931,9 @@ static void fsrealloc(int size)
|
||||
{
|
||||
int i, newsize;
|
||||
|
||||
- if (size >= maxfields) {
|
||||
- /* Sanity cap, easier than catering for overflows */
|
||||
- if (size > 0xffffff)
|
||||
+ if ((unsigned)size >= maxfields) {
|
||||
+ /* Sanity cap, easier than catering for over/underflows */
|
||||
+ if ((unsigned)size > 0xffffff)
|
||||
bb_die_memory_exhausted();
|
||||
|
||||
i = maxfields;
|
||||
@@ -2891,6 +2891,7 @@ static var *evaluate(node *op, var *res)
|
||||
uint32_t opinfo;
|
||||
int opn;
|
||||
node *op1;
|
||||
+ var *old_Fields_ptr;
|
||||
|
||||
opinfo = op->info;
|
||||
opn = (opinfo & OPNMASK);
|
||||
@@ -2899,10 +2900,16 @@ static var *evaluate(node *op, var *res)
|
||||
debug_printf_eval("opinfo:%08x opn:%08x\n", opinfo, opn);
|
||||
|
||||
/* execute inevitable things */
|
||||
+ old_Fields_ptr = NULL;
|
||||
if (opinfo & OF_RES1) {
|
||||
if ((opinfo & OF_REQUIRED) && !op1)
|
||||
syntax_error(EMSG_TOO_FEW_ARGS);
|
||||
L.v = evaluate(op1, TMPVAR0);
|
||||
+ /* Does L.v point to $n variable? */
|
||||
+ if ((size_t)(L.v - Fields) < maxfields) {
|
||||
+ /* yes, remember where Fields[] is */
|
||||
+ old_Fields_ptr = Fields;
|
||||
+ }
|
||||
if (opinfo & OF_STR1) {
|
||||
L.s = getvar_s(L.v);
|
||||
debug_printf_eval("L.s:'%s'\n", L.s);
|
||||
@@ -2921,8 +2928,15 @@ static var *evaluate(node *op, var *res)
|
||||
*/
|
||||
if (opinfo & OF_RES2) {
|
||||
R.v = evaluate(op->r.n, TMPVAR1);
|
||||
- //TODO: L.v may be invalid now, set L.v to NULL to catch bugs?
|
||||
- //L.v = NULL;
|
||||
+ /* Seen in $5=$$5=$0:
|
||||
+ * Evaluation of R.v ($$5=$0 expression)
|
||||
+ * made L.v ($5) invalid. It's detected here.
|
||||
+ */
|
||||
+ if (old_Fields_ptr) {
|
||||
+ //if (old_Fields_ptr != Fields)
|
||||
+ // debug_printf_eval("L.v moved\n");
|
||||
+ L.v += Fields - old_Fields_ptr;
|
||||
+ }
|
||||
if (opinfo & OF_STR2) {
|
||||
R.s = getvar_s(R.v);
|
||||
debug_printf_eval("R.s:'%s'\n", R.s);
|
||||
diff --git a/testsuite/awk.tests b/testsuite/awk.tests
|
||||
index bbf0fbff1..ddc51047b 100755
|
||||
--- a/testsuite/awk.tests
|
||||
+++ b/testsuite/awk.tests
|
||||
@@ -485,4 +485,59 @@ testing 'awk assign while test' \
|
||||
"" \
|
||||
"foo"
|
||||
|
||||
+# User-supplied bug (SEGV) example, was causing use-after-realloc
|
||||
+testing 'awk assign while assign' \
|
||||
+ "awk '\$5=\$\$5=\$0'; echo \$?" \
|
||||
+ "\
|
||||
+─ process timing ────────────────────────────────────┬─ ─ process timing ────────────────────────────────────┬─ overall results ────┐ results ────┐
|
||||
+│ run time : │ run time : 0 days, 0 hrs, 0 min, 56 sec │ cycles done : 0 │ days, 0 hrs, 0 min, 56 sec │ cycles done : 0 │
|
||||
+│ last new find │ last new find : 0 days, 0 hrs, 0 min, 1 sec │ corpus count : 208 │ 0 days, 0 hrs, 0 min, 1 sec │ corpus count : 208 │
|
||||
+│last saved crash : │last saved crash : none seen yet │saved crashes : 0 │ seen yet │saved crashes : 0 │
|
||||
+│ last saved hang │ last saved hang : none seen yet │ saved hangs : 0 │ none seen yet │ saved hangs : 0 │
|
||||
+├─ cycle progress ─────────────────────┬─ ├─ cycle progress ─────────────────────┬─ map coverage┴──────────────────────┤ coverage┴──────────────────────┤
|
||||
+│ now processing : │ now processing : 184.1 (88.5%) │ map density : 0.30% / 0.52% │ (88.5%) │ map density : 0.30% / 0.52% │ │ now processing : 184.1 (88.5%) │ map density : 0.30% / 0.52% │
|
||||
+│ runs timed out │ runs timed out : 0 (0.00%) │ count coverage : 2.18 bits/tuple │ 0 (0.00%) │ count coverage : 2.18 bits/tuple │
|
||||
+├─ stage progress ─────────────────────┼─ ├─ stage progress ─────────────────────┼─ findings in depth ─────────────────┤ in depth ─────────────────┤
|
||||
+│ now trying : │ now trying : havoc │ favored items : 43 (20.67%) │ │ favored items : 43 (20.67%) │
|
||||
+│ stage execs : │ stage execs : 11.2k/131k (8.51%) │ new edges on : 52 (25.00%) │ (8.51%) │ new edges on │ stage execs : 11.2k/131k (8.51%) │ new edges on : 52 (25.00%) │ 52 (25.00%) │
|
||||
+│ total execs : │ total execs : 179k │ total crashes : 0 (0 saved) │ │ total crashes : 0 (0 saved) │ │ total execs : 179k │ total crashes : 0 (0 saved) │
|
||||
+│ exec speed : │ exec speed : 3143/sec │ total tmouts : 0 (0 saved) │ │ total tmouts : 0 (0 saved) │ │ exec speed : 3143/sec │ total tmouts : 0 (0 saved) │
|
||||
+├─ fuzzing strategy yields ├─ fuzzing strategy yields ────────────┴─────────────┬─ item geometry ───────┤ item geometry ───────┤
|
||||
+│ bit flips : │ bit flips : 11/648, 4/638, 5/618 │ levels : 4 │ 4/638, 5/618 │ levels : │ bit flips : 11/648, 4/638, 5/618 │ levels : 4 │ │
|
||||
+│ byte flips : │ byte flips : 0/81, 0/71, 0/52 │ pending : 199 │ 0/71, 0/52 │ pending : 199 │
|
||||
+│ arithmetics : 11/4494, │ arithmetics : 11/4494, 0/1153, 0/0 │ pend fav : 35 │ 0/0 │ pend fav : 35 │
|
||||
+│ known ints : 1/448, 0/1986, 0/2288 │ own finds : 207 │ known ints : │ known ints : 1/448, 0/1986, 0/2288 │ own finds : 207 │ 0/1986, 0/2288 │ own finds : 207 │
|
||||
+│ dictionary : 0/0, │ dictionary : 0/0, 0/0, 0/0, 0/0 │ imported : 0 │ 0/0, 0/0 │ imported : 0 │
|
||||
+│havoc/splice : 142/146k, 23/7616 │havoc/splice : 142/146k, 23/7616 │ stability : 100.00% │ stability : 100.00% │
|
||||
+│py/custom/rq : unused, unused, │py/custom/rq : unused, unused, unused, unused ├───────────────────────┘ unused ├───────────────────────┘
|
||||
+│ trim/eff : 57.02%/26, │ trim/eff : 57.02%/26, 0.00% │ [cpu000:100%] │ [cpu000:100%]
|
||||
+└────────────────────────────────────────────────────┘^C └────────────────────────────────────────────────────┘^C
|
||||
+0
|
||||
+" \
|
||||
+ "" \
|
||||
+ "\
|
||||
+─ process timing ────────────────────────────────────┬─ overall results ────┐
|
||||
+│ run time : 0 days, 0 hrs, 0 min, 56 sec │ cycles done : 0 │
|
||||
+│ last new find : 0 days, 0 hrs, 0 min, 1 sec │ corpus count : 208 │
|
||||
+│last saved crash : none seen yet │saved crashes : 0 │
|
||||
+│ last saved hang : none seen yet │ saved hangs : 0 │
|
||||
+├─ cycle progress ─────────────────────┬─ map coverage┴──────────────────────┤
|
||||
+│ now processing : 184.1 (88.5%) │ map density : 0.30% / 0.52% │
|
||||
+│ runs timed out : 0 (0.00%) │ count coverage : 2.18 bits/tuple │
|
||||
+├─ stage progress ─────────────────────┼─ findings in depth ─────────────────┤
|
||||
+│ now trying : havoc │ favored items : 43 (20.67%) │
|
||||
+│ stage execs : 11.2k/131k (8.51%) │ new edges on : 52 (25.00%) │
|
||||
+│ total execs : 179k │ total crashes : 0 (0 saved) │
|
||||
+│ exec speed : 3143/sec │ total tmouts : 0 (0 saved) │
|
||||
+├─ fuzzing strategy yields ────────────┴─────────────┬─ item geometry ───────┤
|
||||
+│ bit flips : 11/648, 4/638, 5/618 │ levels : 4 │
|
||||
+│ byte flips : 0/81, 0/71, 0/52 │ pending : 199 │
|
||||
+│ arithmetics : 11/4494, 0/1153, 0/0 │ pend fav : 35 │
|
||||
+│ known ints : 1/448, 0/1986, 0/2288 │ own finds : 207 │
|
||||
+│ dictionary : 0/0, 0/0, 0/0, 0/0 │ imported : 0 │
|
||||
+│havoc/splice : 142/146k, 23/7616 │ stability : 100.00% │
|
||||
+│py/custom/rq : unused, unused, unused, unused ├───────────────────────┘
|
||||
+│ trim/eff : 57.02%/26, 0.00% │ [cpu000:100%]
|
||||
+└────────────────────────────────────────────────────┘^C"
|
||||
+
|
||||
exit $FAILCOUNT
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
From 20a91edce02adc258038a2e9bf5bda0fe27a5050 Mon Sep 17 00:00:00 2001
|
||||
From: Natanael Copa <ncopa@alpinelinux.org>
|
||||
Date: Mon, 20 May 2024 17:55:28 +0200
|
||||
Subject: [PATCH] awk: fix use after free (CVE-2023-42363)
|
||||
|
||||
function old new delta
|
||||
evaluate 3377 3385 +8
|
||||
|
||||
Fixes https://bugs.busybox.net/show_bug.cgi?id=15865
|
||||
|
||||
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
|
||||
CVE: CVE-2023-42363
|
||||
Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=fb08d43d44d1fea1f741fafb9aa7e1958a5f69aa]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
[Thomas: taken from https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/busybox/busybox/CVE-2023-42363.patch?id=e0ff4813b1cf4df0d851c857d57fb88d7db51bdd]
|
||||
Upstream: https://git.busybox.net/busybox/commit/?id=fb08d43d44d1fea1f741fafb9aa7e1958a5f69aa
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
editors/awk.c | 21 +++++++++++++--------
|
||||
1 file changed, 13 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/editors/awk.c b/editors/awk.c
|
||||
index 2af823808..d45724d59 100644
|
||||
--- a/editors/awk.c
|
||||
+++ b/editors/awk.c
|
||||
@@ -2910,19 +2910,14 @@ static var *evaluate(node *op, var *res)
|
||||
/* yes, remember where Fields[] is */
|
||||
old_Fields_ptr = Fields;
|
||||
}
|
||||
- if (opinfo & OF_STR1) {
|
||||
- L.s = getvar_s(L.v);
|
||||
- debug_printf_eval("L.s:'%s'\n", L.s);
|
||||
- }
|
||||
if (opinfo & OF_NUM1) {
|
||||
L_d = getvar_i(L.v);
|
||||
debug_printf_eval("L_d:%f\n", L_d);
|
||||
}
|
||||
}
|
||||
- /* NB: Must get string/numeric values of L (done above)
|
||||
- * _before_ evaluate()'ing R.v: if both L and R are $NNNs,
|
||||
- * and right one is large, then L.v points to Fields[NNN1],
|
||||
- * second evaluate() reallocates and moves (!) Fields[],
|
||||
+ /* NB: if both L and R are $NNNs, and right one is large,
|
||||
+ * then at this pint L.v points to Fields[NNN1], second
|
||||
+ * evaluate() below reallocates and moves (!) Fields[],
|
||||
* R.v points to Fields[NNN2] but L.v now points to freed mem!
|
||||
* (Seen trying to evaluate "$444 $44444")
|
||||
*/
|
||||
@@ -2942,6 +2937,16 @@ static var *evaluate(node *op, var *res)
|
||||
debug_printf_eval("R.s:'%s'\n", R.s);
|
||||
}
|
||||
}
|
||||
+ /* Get L.s _after_ R.v is evaluated: it may have realloc'd L.v
|
||||
+ * so we must get the string after "old_Fields_ptr" correction
|
||||
+ * above. Testcase: x = (v = "abc", gsub("b", "X", v));
|
||||
+ */
|
||||
+ if (opinfo & OF_RES1) {
|
||||
+ if (opinfo & OF_STR1) {
|
||||
+ L.s = getvar_s(L.v);
|
||||
+ debug_printf_eval("L.s:'%s'\n", L.s);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
debug_printf_eval("switch(0x%x)\n", XC(opinfo & OPCLSMASK));
|
||||
switch (XC(opinfo & OPCLSMASK)) {
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -0,0 +1,203 @@
|
||||
From 47ff44735c0cd05efd899fb3486aca77e65fbe15 Mon Sep 17 00:00:00 2001
|
||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Date: Tue, 30 May 2023 16:42:18 +0200
|
||||
Subject: [PATCH] awk: fix precedence of = relative to ==
|
||||
|
||||
Discovered while adding code to disallow assignments to non-lvalues
|
||||
|
||||
function old new delta
|
||||
parse_expr 936 991 +55
|
||||
.rodata 105243 105247 +4
|
||||
------------------------------------------------------------------------------
|
||||
(add/remove: 0/0 grow/shrink: 2/0 up/down: 59/0) Total: 59 bytes
|
||||
|
||||
CVE: CVE-2023-42364 CVE-2023-42365
|
||||
|
||||
Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=0256e00a9d077588bd3a39f5a1ef7e2eaa2911e4]
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
(cherry picked from commit 0256e00a9d077588bd3a39f5a1ef7e2eaa2911e4)
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
[Thomas: taken from https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/busybox/busybox/0001-awk-fix-precedence-of-relative-to.patch?id=e0ff4813b1cf4df0d851c857d57fb88d7db51bdd]
|
||||
Upstream: https://git.busybox.net/busybox/commit/?id=0256e00a9d077588bd3a39f5a1ef7e2eaa2911e4
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
editors/awk.c | 66 ++++++++++++++++++++++++++++++---------------
|
||||
testsuite/awk.tests | 5 ++++
|
||||
2 files changed, 50 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/editors/awk.c b/editors/awk.c
|
||||
index d45724d59..5962c3f6a 100644
|
||||
--- a/editors/awk.c
|
||||
+++ b/editors/awk.c
|
||||
@@ -337,7 +337,9 @@ static void debug_parse_print_tc(uint32_t n)
|
||||
#undef P
|
||||
#undef PRIMASK
|
||||
#undef PRIMASK2
|
||||
-#define P(x) (x << 24)
|
||||
+/* Smaller 'x' means _higher_ operator precedence */
|
||||
+#define PRECEDENCE(x) (x << 24)
|
||||
+#define P(x) PRECEDENCE(x)
|
||||
#define PRIMASK 0x7F000000
|
||||
#define PRIMASK2 0x7E000000
|
||||
|
||||
@@ -360,7 +362,7 @@ enum {
|
||||
OC_MOVE = 0x1f00, OC_PGETLINE = 0x2000, OC_REGEXP = 0x2100,
|
||||
OC_REPLACE = 0x2200, OC_RETURN = 0x2300, OC_SPRINTF = 0x2400,
|
||||
OC_TERNARY = 0x2500, OC_UNARY = 0x2600, OC_VAR = 0x2700,
|
||||
- OC_DONE = 0x2800,
|
||||
+ OC_CONST = 0x2800, OC_DONE = 0x2900,
|
||||
|
||||
ST_IF = 0x3000, ST_DO = 0x3100, ST_FOR = 0x3200,
|
||||
ST_WHILE = 0x3300
|
||||
@@ -440,9 +442,9 @@ static const uint32_t tokeninfo[] ALIGN4 = {
|
||||
#define TI_PREINC (OC_UNARY|xV|P(9)|'P')
|
||||
#define TI_PREDEC (OC_UNARY|xV|P(9)|'M')
|
||||
TI_PREINC, TI_PREDEC, OC_FIELD|xV|P(5),
|
||||
- OC_COMPARE|VV|P(39)|5, OC_MOVE|VV|P(74), OC_REPLACE|NV|P(74)|'+', OC_REPLACE|NV|P(74)|'-',
|
||||
- OC_REPLACE|NV|P(74)|'*', OC_REPLACE|NV|P(74)|'/', OC_REPLACE|NV|P(74)|'%', OC_REPLACE|NV|P(74)|'&',
|
||||
- OC_BINARY|NV|P(29)|'+', OC_BINARY|NV|P(29)|'-', OC_REPLACE|NV|P(74)|'&', OC_BINARY|NV|P(15)|'&',
|
||||
+ OC_COMPARE|VV|P(39)|5, OC_MOVE|VV|P(38), OC_REPLACE|NV|P(38)|'+', OC_REPLACE|NV|P(38)|'-',
|
||||
+ OC_REPLACE|NV|P(38)|'*', OC_REPLACE|NV|P(38)|'/', OC_REPLACE|NV|P(38)|'%', OC_REPLACE|NV|P(38)|'&',
|
||||
+ OC_BINARY|NV|P(29)|'+', OC_BINARY|NV|P(29)|'-', OC_REPLACE|NV|P(38)|'&', OC_BINARY|NV|P(15)|'&',
|
||||
OC_BINARY|NV|P(25)|'/', OC_BINARY|NV|P(25)|'%', OC_BINARY|NV|P(15)|'&', OC_BINARY|NV|P(25)|'*',
|
||||
OC_COMPARE|VV|P(39)|4, OC_COMPARE|VV|P(39)|3, OC_COMPARE|VV|P(39)|0, OC_COMPARE|VV|P(39)|1,
|
||||
#define TI_LESS (OC_COMPARE|VV|P(39)|2)
|
||||
@@ -1290,7 +1292,7 @@ static uint32_t next_token(uint32_t expected)
|
||||
save_tclass = tc;
|
||||
save_info = t_info;
|
||||
tc = TC_BINOPX;
|
||||
- t_info = OC_CONCAT | SS | P(35);
|
||||
+ t_info = OC_CONCAT | SS | PRECEDENCE(35);
|
||||
}
|
||||
|
||||
t_tclass = tc;
|
||||
@@ -1350,9 +1352,8 @@ static node *parse_expr(uint32_t term_tc)
|
||||
{
|
||||
node sn;
|
||||
node *cn = &sn;
|
||||
- node *vn, *glptr;
|
||||
+ node *glptr;
|
||||
uint32_t tc, expected_tc;
|
||||
- var *v;
|
||||
|
||||
debug_printf_parse("%s() term_tc(%x):", __func__, term_tc);
|
||||
debug_parse_print_tc(term_tc);
|
||||
@@ -1363,11 +1364,12 @@ static node *parse_expr(uint32_t term_tc)
|
||||
expected_tc = TS_OPERAND | TS_UOPPRE | TC_REGEXP | term_tc;
|
||||
|
||||
while (!((tc = next_token(expected_tc)) & term_tc)) {
|
||||
+ node *vn;
|
||||
|
||||
if (glptr && (t_info == TI_LESS)) {
|
||||
/* input redirection (<) attached to glptr node */
|
||||
debug_printf_parse("%s: input redir\n", __func__);
|
||||
- cn = glptr->l.n = new_node(OC_CONCAT | SS | P(37));
|
||||
+ cn = glptr->l.n = new_node(OC_CONCAT | SS | PRECEDENCE(37));
|
||||
cn->a.n = glptr;
|
||||
expected_tc = TS_OPERAND | TS_UOPPRE;
|
||||
glptr = NULL;
|
||||
@@ -1379,24 +1381,42 @@ static node *parse_expr(uint32_t term_tc)
|
||||
* previous operators with higher priority */
|
||||
vn = cn;
|
||||
while (((t_info & PRIMASK) > (vn->a.n->info & PRIMASK2))
|
||||
- || ((t_info == vn->info) && t_info == TI_COLON)
|
||||
+ || (t_info == vn->info && t_info == TI_COLON)
|
||||
) {
|
||||
vn = vn->a.n;
|
||||
if (!vn->a.n) syntax_error(EMSG_UNEXP_TOKEN);
|
||||
}
|
||||
if (t_info == TI_TERNARY)
|
||||
//TODO: why?
|
||||
- t_info += P(6);
|
||||
+ t_info += PRECEDENCE(6);
|
||||
cn = vn->a.n->r.n = new_node(t_info);
|
||||
cn->a.n = vn->a.n;
|
||||
if (tc & TS_BINOP) {
|
||||
cn->l.n = vn;
|
||||
-//FIXME: this is the place to detect and reject assignments to non-lvalues.
|
||||
-//Currently we allow "assignments" to consts and temporaries, nonsense like this:
|
||||
-// awk 'BEGIN { "qwe" = 1 }'
|
||||
-// awk 'BEGIN { 7 *= 7 }'
|
||||
-// awk 'BEGIN { length("qwe") = 1 }'
|
||||
-// awk 'BEGIN { (1+1) += 3 }'
|
||||
+
|
||||
+ /* Prevent:
|
||||
+ * awk 'BEGIN { "qwe" = 1 }'
|
||||
+ * awk 'BEGIN { 7 *= 7 }'
|
||||
+ * awk 'BEGIN { length("qwe") = 1 }'
|
||||
+ * awk 'BEGIN { (1+1) += 3 }'
|
||||
+ */
|
||||
+ /* Assignment? (including *= and friends) */
|
||||
+ if (((t_info & OPCLSMASK) == OC_MOVE)
|
||||
+ || ((t_info & OPCLSMASK) == OC_REPLACE)
|
||||
+ ) {
|
||||
+ debug_printf_parse("%s: MOVE/REPLACE vn->info:%08x\n", __func__, vn->info);
|
||||
+ /* Left side is a (variable or array element)
|
||||
+ * or function argument
|
||||
+ * or $FIELD ?
|
||||
+ */
|
||||
+ if ((vn->info & OPCLSMASK) != OC_VAR
|
||||
+ && (vn->info & OPCLSMASK) != OC_FNARG
|
||||
+ && (vn->info & OPCLSMASK) != OC_FIELD
|
||||
+ ) {
|
||||
+ syntax_error(EMSG_UNEXP_TOKEN); /* no. bad */
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
expected_tc = TS_OPERAND | TS_UOPPRE | TC_REGEXP;
|
||||
if (t_info == TI_PGETLINE) {
|
||||
/* it's a pipe */
|
||||
@@ -1432,6 +1452,8 @@ static node *parse_expr(uint32_t term_tc)
|
||||
/* one should be very careful with switch on tclass -
|
||||
* only simple tclasses should be used (TC_xyz, not TS_xyz) */
|
||||
switch (tc) {
|
||||
+ var *v;
|
||||
+
|
||||
case TC_VARIABLE:
|
||||
case TC_ARRAY:
|
||||
debug_printf_parse("%s: TC_VARIABLE | TC_ARRAY\n", __func__);
|
||||
@@ -1452,14 +1474,14 @@ static node *parse_expr(uint32_t term_tc)
|
||||
case TC_NUMBER:
|
||||
case TC_STRING:
|
||||
debug_printf_parse("%s: TC_NUMBER | TC_STRING\n", __func__);
|
||||
- cn->info = OC_VAR;
|
||||
+ cn->info = OC_CONST;
|
||||
v = cn->l.v = xzalloc(sizeof(var));
|
||||
- if (tc & TC_NUMBER)
|
||||
+ if (tc & TC_NUMBER) {
|
||||
setvar_i(v, t_double);
|
||||
- else {
|
||||
+ } else {
|
||||
setvar_s(v, t_string);
|
||||
- expected_tc &= ~TC_UOPPOST; /* "str"++ is not allowed */
|
||||
}
|
||||
+ expected_tc &= ~TC_UOPPOST; /* NUM++, "str"++ not allowed */
|
||||
break;
|
||||
|
||||
case TC_REGEXP:
|
||||
@@ -3107,6 +3129,8 @@ static var *evaluate(node *op, var *res)
|
||||
|
||||
/* -- recursive node type -- */
|
||||
|
||||
+ case XC( OC_CONST ):
|
||||
+ debug_printf_eval("CONST ");
|
||||
case XC( OC_VAR ):
|
||||
debug_printf_eval("VAR\n");
|
||||
L.v = op->l.v;
|
||||
diff --git a/testsuite/awk.tests b/testsuite/awk.tests
|
||||
index ddc51047b..a78fdcd98 100755
|
||||
--- a/testsuite/awk.tests
|
||||
+++ b/testsuite/awk.tests
|
||||
@@ -540,4 +540,9 @@ testing 'awk assign while assign' \
|
||||
│ trim/eff : 57.02%/26, 0.00% │ [cpu000:100%]
|
||||
└────────────────────────────────────────────────────┘^C"
|
||||
|
||||
+testing "awk = has higher precedence than == (despite what gawk manpage claims)" \
|
||||
+ "awk 'BEGIN { v=1; print 2==v; print 2==v=2; print v; print v=3==3; print v}'" \
|
||||
+ '0\n1\n2\n1\n3\n' \
|
||||
+ '' ''
|
||||
+
|
||||
exit $FAILCOUNT
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
From 173164c6b2f2ad17dd14d3a43e5bff47abde7199 Mon Sep 17 00:00:00 2001
|
||||
From: Natanael Copa <ncopa@alpinelinux.org>
|
||||
Date: Tue, 21 May 2024 14:46:08 +0200
|
||||
Subject: [PATCH] awk: fix ternary operator and precedence of =
|
||||
|
||||
Adjust the = precedence test to match behavior of gawk, mawk and
|
||||
FreeBSD. awk 'BEGIN {print v=3==3; print v}' should print two '1'.
|
||||
|
||||
To fix this, and to unbreak the ternary conditional operator, we restore
|
||||
the precedence of = in the token list, but override this with a lower
|
||||
priority when the assignment is on the right side of a compare.
|
||||
|
||||
This fixes commit 0256e00a9d07 (awk: fix precedence of = relative to ==) [1]
|
||||
|
||||
CVE: CVE-2023-42364 CVE-2023-42365
|
||||
|
||||
Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2024-May/090766.html]
|
||||
|
||||
[1] https://bugs.busybox.net/show_bug.cgi?id=15871#c6
|
||||
|
||||
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
|
||||
(cherry picked from commit 1714301c405ef03b39605c85c23f22a190cddd95)
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
[Thomas: taken from https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/busybox/busybox/0002-awk-fix-ternary-operator-and-precedence-of.patch?id=e0ff4813b1cf4df0d851c857d57fb88d7db51bdd]
|
||||
Upstream: https://git.busybox.net/busybox/commit/?id=38335df9e9f45378c3407defd38b5b610578bdda
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
editors/awk.c | 18 ++++++++++++++----
|
||||
testsuite/awk.tests | 9 +++++++--
|
||||
2 files changed, 21 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/editors/awk.c b/editors/awk.c
|
||||
index 5962c3f6a..9467f4644 100644
|
||||
--- a/editors/awk.c
|
||||
+++ b/editors/awk.c
|
||||
@@ -442,9 +442,10 @@ static const uint32_t tokeninfo[] ALIGN4 = {
|
||||
#define TI_PREINC (OC_UNARY|xV|P(9)|'P')
|
||||
#define TI_PREDEC (OC_UNARY|xV|P(9)|'M')
|
||||
TI_PREINC, TI_PREDEC, OC_FIELD|xV|P(5),
|
||||
- OC_COMPARE|VV|P(39)|5, OC_MOVE|VV|P(38), OC_REPLACE|NV|P(38)|'+', OC_REPLACE|NV|P(38)|'-',
|
||||
- OC_REPLACE|NV|P(38)|'*', OC_REPLACE|NV|P(38)|'/', OC_REPLACE|NV|P(38)|'%', OC_REPLACE|NV|P(38)|'&',
|
||||
- OC_BINARY|NV|P(29)|'+', OC_BINARY|NV|P(29)|'-', OC_REPLACE|NV|P(38)|'&', OC_BINARY|NV|P(15)|'&',
|
||||
+#define TI_ASSIGN (OC_MOVE|VV|P(74))
|
||||
+ OC_COMPARE|VV|P(39)|5, TI_ASSIGN, OC_REPLACE|NV|P(74)|'+', OC_REPLACE|NV|P(74)|'-',
|
||||
+ OC_REPLACE|NV|P(74)|'*', OC_REPLACE|NV|P(74)|'/', OC_REPLACE|NV|P(74)|'%', OC_REPLACE|NV|P(74)|'&',
|
||||
+ OC_BINARY|NV|P(29)|'+', OC_BINARY|NV|P(29)|'-', OC_REPLACE|NV|P(74)|'&', OC_BINARY|NV|P(15)|'&',
|
||||
OC_BINARY|NV|P(25)|'/', OC_BINARY|NV|P(25)|'%', OC_BINARY|NV|P(15)|'&', OC_BINARY|NV|P(25)|'*',
|
||||
OC_COMPARE|VV|P(39)|4, OC_COMPARE|VV|P(39)|3, OC_COMPARE|VV|P(39)|0, OC_COMPARE|VV|P(39)|1,
|
||||
#define TI_LESS (OC_COMPARE|VV|P(39)|2)
|
||||
@@ -1376,11 +1377,19 @@ static node *parse_expr(uint32_t term_tc)
|
||||
continue;
|
||||
}
|
||||
if (tc & (TS_BINOP | TC_UOPPOST)) {
|
||||
+ int prio;
|
||||
debug_printf_parse("%s: TS_BINOP | TC_UOPPOST tc:%x\n", __func__, tc);
|
||||
/* for binary and postfix-unary operators, jump back over
|
||||
* previous operators with higher priority */
|
||||
vn = cn;
|
||||
- while (((t_info & PRIMASK) > (vn->a.n->info & PRIMASK2))
|
||||
+ /* Let assignment get higher priority when used on right
|
||||
+ * side in compare. i.e: 2==v=3 */
|
||||
+ if (t_info == TI_ASSIGN && (vn->a.n->info & OPCLSMASK) == OC_COMPARE) {
|
||||
+ prio = PRECEDENCE(38);
|
||||
+ } else {
|
||||
+ prio = (t_info & PRIMASK);
|
||||
+ }
|
||||
+ while ((prio > (vn->a.n->info & PRIMASK2))
|
||||
|| (t_info == vn->info && t_info == TI_COLON)
|
||||
) {
|
||||
vn = vn->a.n;
|
||||
@@ -1412,6 +1421,7 @@ static node *parse_expr(uint32_t term_tc)
|
||||
if ((vn->info & OPCLSMASK) != OC_VAR
|
||||
&& (vn->info & OPCLSMASK) != OC_FNARG
|
||||
&& (vn->info & OPCLSMASK) != OC_FIELD
|
||||
+ && (vn->info & OPCLSMASK) != OC_COMPARE
|
||||
) {
|
||||
syntax_error(EMSG_UNEXP_TOKEN); /* no. bad */
|
||||
}
|
||||
diff --git a/testsuite/awk.tests b/testsuite/awk.tests
|
||||
index a78fdcd98..d2706dea9 100755
|
||||
--- a/testsuite/awk.tests
|
||||
+++ b/testsuite/awk.tests
|
||||
@@ -540,9 +540,14 @@ testing 'awk assign while assign' \
|
||||
│ trim/eff : 57.02%/26, 0.00% │ [cpu000:100%]
|
||||
└────────────────────────────────────────────────────┘^C"
|
||||
|
||||
-testing "awk = has higher precedence than == (despite what gawk manpage claims)" \
|
||||
+testing "awk = has higher precedence than == on right side" \
|
||||
"awk 'BEGIN { v=1; print 2==v; print 2==v=2; print v; print v=3==3; print v}'" \
|
||||
- '0\n1\n2\n1\n3\n' \
|
||||
+ '0\n1\n2\n1\n1\n' \
|
||||
+ '' ''
|
||||
+
|
||||
+testing 'awk ternary precedence' \
|
||||
+ "awk 'BEGIN { a = 0 ? \"yes\": \"no\"; print a }'" \
|
||||
+ 'no\n' \
|
||||
'' ''
|
||||
|
||||
exit $FAILCOUNT
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
From 54e64812090f58cffca08fcf11d2dbc471c964e1 Mon Sep 17 00:00:00 2001
|
||||
From: Valery Ushakov <uwe@stderr.spb.ru>
|
||||
Date: Wed, 24 Jan 2024 22:24:41 +0300
|
||||
Subject: [PATCH] awk.c: fix CVE-2023-42366 (bug #15874)
|
||||
|
||||
Make sure we don't read past the end of the string in next_token()
|
||||
when backslash is the last character in an (invalid) regexp.
|
||||
a fix and issue reported in bugzilla
|
||||
|
||||
https://bugs.busybox.net/show_bug.cgi?id=15874
|
||||
|
||||
Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2024-May/090766.html]
|
||||
|
||||
CVE: CVE-2023-42366
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
[Thomas: https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/busybox/busybox/0001-awk.c-fix-CVE-2023-42366-bug-15874.patch?id=e0ff4813b1cf4df0d851c857d57fb88d7db51bdd]
|
||||
Upstream: http://lists.busybox.net/pipermail/busybox/2024-May/090766.html
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
editors/awk.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/editors/awk.c b/editors/awk.c
|
||||
index 9467f4644..947195333 100644
|
||||
--- a/editors/awk.c
|
||||
+++ b/editors/awk.c
|
||||
@@ -1168,9 +1168,11 @@ static uint32_t next_token(uint32_t expected)
|
||||
s[-1] = bb_process_escape_sequence((const char **)&pp);
|
||||
if (*p == '\\')
|
||||
*s++ = '\\';
|
||||
- if (pp == p)
|
||||
+ if (pp == p) {
|
||||
+ if (*p == '\0')
|
||||
+ syntax_error(EMSG_UNEXP_EOS);
|
||||
*s++ = *p++;
|
||||
- else
|
||||
+ } else
|
||||
p = pp;
|
||||
}
|
||||
}
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
From a378cd9c3a022500d7feaefb4e3bb43fdd789131 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sun, 7 Mar 2021 17:30:24 -0800
|
||||
Subject: [PATCH] hwclock: Check for SYS_settimeofday before calling syscall
|
||||
|
||||
Some newer architectures e.g. RISCV32 have 64bit time_t from get go and
|
||||
thusly do not have gettimeofday_time64/settimeofday_time64 implemented
|
||||
therefore check for SYS_settimeofday definition before making the
|
||||
syscall. Fixes build for riscv32 and it will bail out at runtime.
|
||||
|
||||
Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2021-March/088583.html]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Upstream: http://lists.busybox.net/pipermail/busybox/2021-March/088583.html
|
||||
[Thomas: this issue has been discussed on the musl mailing list, and
|
||||
the musl developers' opinion is that Busybox is wrong:
|
||||
https://www.openwall.com/lists/musl/2024/03/03/2
|
||||
https://www.openwall.com/lists/musl/2024/04/07/2. The correct fix
|
||||
isn't clear, and in the mean time, the patch from Khem turns the build
|
||||
issue into a runtime error only on the problematic architecture, which
|
||||
seems like a reasonable trade-off]
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
util-linux/hwclock.c | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c
|
||||
index 723b09589..b9faaabbc 100644
|
||||
--- a/util-linux/hwclock.c
|
||||
+++ b/util-linux/hwclock.c
|
||||
@@ -131,6 +131,7 @@ static void show_clock(const char **pp_rtcname, int utc)
|
||||
|
||||
static void set_kernel_tz(const struct timezone *tz)
|
||||
{
|
||||
+ int ret = 1;
|
||||
#if LIBC_IS_MUSL
|
||||
/* musl libc does not pass tz argument to syscall
|
||||
* because "it's deprecated by POSIX, therefore it's fine
|
||||
@@ -139,9 +140,11 @@ static void set_kernel_tz(const struct timezone *tz)
|
||||
#if !defined(SYS_settimeofday) && defined(SYS_settimeofday_time32)
|
||||
# define SYS_settimeofday SYS_settimeofday_time32
|
||||
#endif
|
||||
- int ret = syscall(SYS_settimeofday, NULL, tz);
|
||||
+#if defined(SYS_settimeofday)
|
||||
+ ret = syscall(SYS_settimeofday, NULL, tz);
|
||||
+#endif
|
||||
#else
|
||||
- int ret = settimeofday(NULL, tz);
|
||||
+ ret = settimeofday(NULL, tz);
|
||||
#endif
|
||||
if (ret)
|
||||
bb_simple_perror_msg_and_die("settimeofday");
|
||||
--
|
||||
2.48.1
|
||||
|
||||
@@ -15,6 +15,16 @@ BUSYBOX_CPE_ID_VENDOR = busybox
|
||||
# 0004-nslookup-sanitize-all-printed-strings-with-printable.patch
|
||||
BUSYBOX_IGNORE_CVES += CVE-2022-28391
|
||||
|
||||
# 0012-awk-fix-use-after-free-CVE-2023-42363.patch
|
||||
BUSYBOX_IGNORE_CVES += CVE-2023-42363
|
||||
|
||||
# 0013-awk-fix-precedence-of-relative-to.patch
|
||||
# 0014-awk-fix-ternary-operator-and-precedence-of.patch
|
||||
BUSYBOX_IGNORE_CVES += CVE-2023-42364 CVE-2023-42365
|
||||
|
||||
# 0015-awk.c-fix-CVE-2023-42366-bug-15874.patch
|
||||
BUSYBOX_IGNORE_CVES += CVE-2023-42366
|
||||
|
||||
BUSYBOX_CFLAGS = \
|
||||
$(TARGET_CFLAGS)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Locally calculated
|
||||
sha256 f4d67240a8b2e882e18f864529040084617de066cdab9b7684951ace6ea6f3cf clamav-1.0.7.tar.gz
|
||||
sha256 4783f2ab3fc323a887c117c672dc0b4e7ace72d76f8c06e990bd49c3ef58f10a clamav-1.0.8.tar.gz
|
||||
sha256 0c4fd2fa9733fc9122503797648710851e4ee6d9e4969dd33fcbd8c63cd2f584 COPYING.txt
|
||||
sha256 d72a145c90918184a05ef65a04c9e6f7466faa59bc1b82c8f6a8ddc7ddcb9bed COPYING/COPYING.bzip2
|
||||
sha256 dfb818a0d41411c6fb1c193c68b73018ceadd1994bda41ad541cbff292894bc6 COPYING/COPYING.file
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
CLAMAV_VERSION = 1.0.7
|
||||
CLAMAV_VERSION = 1.0.8
|
||||
CLAMAV_SITE = https://www.clamav.net/downloads/production
|
||||
CLAMAV_LICENSE = GPL-2.0
|
||||
CLAMAV_LICENSE_FILES = \
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From b945d57a5acd12bda320a63eb9e45bbb7586cdde Mon Sep 17 00:00:00 2001
|
||||
From: Aaron Smith <aaron@soccergeek.net>
|
||||
Date: Mon, 16 Dec 2024 11:48:33 -0800
|
||||
Subject: [PATCH] Fix "invalid conversion from 'int' to 'CURLoption'" error
|
||||
|
||||
Use cast to 'Curloption' to fix compiler error regarding invalid conversion from 'int' to 'CURLoption'.
|
||||
|
||||
Upstream: https://github.com/jpbarrette/curlpp/pull/178
|
||||
Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
|
||||
---
|
||||
include/curlpp/Options.hpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/curlpp/Options.hpp b/include/curlpp/Options.hpp
|
||||
index 40b64ed..292eaa7 100644
|
||||
--- a/include/curlpp/Options.hpp
|
||||
+++ b/include/curlpp/Options.hpp
|
||||
@@ -308,7 +308,7 @@ namespace options
|
||||
typedef curlpp::OptionTrait<long, CURLOPT_LOW_SPEED_LIMIT> LowSpeedLimit;
|
||||
typedef curlpp::OptionTrait<long, CURLOPT_LOW_SPEED_TIME> LowSpeedTime;
|
||||
typedef curlpp::OptionTrait<long, CURLOPT_MAXCONNECTS> MaxConnects;
|
||||
- typedef curlpp::OptionTrait<curl_closepolicy, CURLOPT_CLOSEPOLICY> ClosePolicy;
|
||||
+ typedef curlpp::OptionTrait<curl_closepolicy, (CURLoption)CURLOPT_CLOSEPOLICY> ClosePolicy;
|
||||
typedef curlpp::OptionTrait<bool, CURLOPT_FRESH_CONNECT> FreshConnect;
|
||||
typedef curlpp::OptionTrait<bool, CURLOPT_FORBID_REUSE> ForbidReuse;
|
||||
typedef curlpp::OptionTrait<long, CURLOPT_CONNECTTIMEOUT> ConnectTimeout;
|
||||
|
||||
@@ -12,7 +12,7 @@ config BR2_PACKAGE_DILLO
|
||||
|
||||
Enable openssl package to gain https support.
|
||||
|
||||
http://www.dillo.org
|
||||
https://dillo-browser.github.io/
|
||||
|
||||
comment "dillo needs a toolchain w/ C++"
|
||||
depends on BR2_PACKAGE_XORG7 && BR2_USE_MMU
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
DILLO_VERSION = 3.0.5
|
||||
DILLO_SOURCE = dillo-$(DILLO_VERSION).tar.bz2
|
||||
DILLO_SITE = http://www.dillo.org/download
|
||||
DILLO_SITE = https://github.com/dillo-browser/dillo/releases/download/v$(DILLO_VERSION)/
|
||||
DILLO_LICENSE = GPL-3.0+
|
||||
DILLO_LICENSE_FILES = COPYING
|
||||
# configure.ac gets patched, so autoreconf is necessary
|
||||
|
||||
@@ -0,0 +1,358 @@
|
||||
From 2296679efa547104ea52bf60cdda19e07c8d1e26 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sun, 10 Dec 2023 12:20:33 -0800
|
||||
Subject: [PATCH] Add helper function for basename
|
||||
|
||||
musl does not provide GNU version of basename and lately have removed
|
||||
the definiton from string.h [1] which exposes this problem. It can be
|
||||
made to work by providing a local implementation of basename which
|
||||
implements the GNU basename behavior, this makes it work across C
|
||||
libraries which have POSIX implementation only.
|
||||
|
||||
[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
|
||||
|
||||
* lib/system.h (xbasename): New static inline functions.
|
||||
Poison basename.
|
||||
* libdw/dwarf_getsrc_file.c (dwarf_getsrc_file): Use xbasename.
|
||||
* libdwfl/core-file.c (dwfl_core_file_report): Likewise.
|
||||
* libdwfl/dwfl_module_getsrc_file.c (dwfl_module_getsrc_file):
|
||||
Likewise.
|
||||
* libdwfl/dwfl_segment_report_module.c (dwfl_segment_report_module):
|
||||
Likewise.
|
||||
* libdwfl/find-debuginfo.c (find_debuginfo_in_path): Likewise.
|
||||
* libdwfl/link_map.c (report_r_debug): Likewise.
|
||||
* libdwfl/linux-kernel-modules.c (try_kernel_name): Likewise.
|
||||
* src/addr2line.c (print_dwarf_function): Likewise.
|
||||
(print_src): Likewise.
|
||||
* src/ar.c (do_oper_insert): Likewise.
|
||||
And cast away const in entry.key assignment.
|
||||
* src/nm.c (show_symbols): Use xbasename.
|
||||
* src/stack.c (module_callback): Likewise.
|
||||
* src/strip.c (handle_elf): Likewise.
|
||||
* tests/show-die-info.c: Include system.h.
|
||||
(dwarf_tag_string): Use xbasename.
|
||||
* tests/varlocs.c: Likewise.
|
||||
* debuginfod/debuginfod.cxx: Move include system.h to the end.
|
||||
(register_file_name): Rename basename to filename.
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||
Upstream: https://sourceware.org/git/?p=elfutils.git;a=commit;h=a2194f6b305bf0d0b9dd49dccd0a5c21994c8eea
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
debuginfod/debuginfod.cxx | 10 ++++++++--
|
||||
lib/system.h | 14 ++++++++++++++
|
||||
libdw/dwarf_getsrc_file.c | 2 +-
|
||||
libdwfl/core-file.c | 2 +-
|
||||
libdwfl/dwfl_module_getsrc_file.c | 2 +-
|
||||
libdwfl/dwfl_segment_report_module.c | 2 +-
|
||||
libdwfl/find-debuginfo.c | 6 +++---
|
||||
libdwfl/link_map.c | 2 +-
|
||||
libdwfl/linux-kernel-modules.c | 2 +-
|
||||
src/addr2line.c | 4 ++--
|
||||
src/ar.c | 4 ++--
|
||||
src/nm.c | 4 ++--
|
||||
src/stack.c | 2 +-
|
||||
src/strip.c | 2 +-
|
||||
tests/show-die-info.c | 3 ++-
|
||||
tests/varlocs.c | 2 +-
|
||||
16 files changed, 42 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
|
||||
index 99b1f2b9..3b69a621 100644
|
||||
--- a/debuginfod/debuginfod.cxx
|
||||
+++ b/debuginfod/debuginfod.cxx
|
||||
@@ -44,10 +44,11 @@ extern "C" {
|
||||
}
|
||||
#endif
|
||||
|
||||
+#ifdef HAVE_EXECINFO_H
|
||||
extern "C" {
|
||||
-#include "printversion.h"
|
||||
-#include "system.h"
|
||||
+#include <execinfo.h>
|
||||
}
|
||||
+#endif
|
||||
|
||||
#include "debuginfod.h"
|
||||
#include <dwarf.h>
|
||||
@@ -127,6 +128,11 @@ using namespace std;
|
||||
#define tid() pthread_self()
|
||||
#endif
|
||||
|
||||
+extern "C" {
|
||||
+#include "printversion.h"
|
||||
+#include "system.h"
|
||||
+}
|
||||
+
|
||||
|
||||
inline bool
|
||||
string_endswith(const string& haystack, const string& needle)
|
||||
diff --git a/lib/system.h b/lib/system.h
|
||||
index 1c914efc..0db12d99 100644
|
||||
--- a/lib/system.h
|
||||
+++ b/lib/system.h
|
||||
@@ -1,6 +1,7 @@
|
||||
/* Declarations for common convenience functions.
|
||||
Copyright (C) 2006-2011 Red Hat, Inc.
|
||||
Copyright (C) 2022 Mark J. Wielaard <mark@klomp.org>
|
||||
+ Copyright (C) 2023 Khem Raj.
|
||||
This file is part of elfutils.
|
||||
|
||||
This file is free software; you can redistribute it and/or modify
|
||||
@@ -211,4 +212,17 @@ extern char *__cxa_demangle (const char *mangled_name, char *output_buffer,
|
||||
extern int never_defined_just_used_for_checking[(expr) ? 1 : -1] \
|
||||
__attribute__ ((unused))
|
||||
|
||||
+/* We really want a basename implementation that doesn't modify the
|
||||
+ input argument. Normally you get that from string.h with _GNU_SOURCE
|
||||
+ define. But some libc implementations don't define it and other
|
||||
+ define it, but provide an implementation that still modifies the
|
||||
+ argument. So define our own and poison a bare basename symbol. */
|
||||
+static inline const char *
|
||||
+xbasename(const char *s)
|
||||
+{
|
||||
+ const char *p = strrchr(s, '/');
|
||||
+ return p ? p+1 : s;
|
||||
+}
|
||||
+#pragma GCC poison basename
|
||||
+
|
||||
#endif /* system.h */
|
||||
diff --git a/libdw/dwarf_getsrc_file.c b/libdw/dwarf_getsrc_file.c
|
||||
index 5289c7da..03da431c 100644
|
||||
--- a/libdw/dwarf_getsrc_file.c
|
||||
+++ b/libdw/dwarf_getsrc_file.c
|
||||
@@ -98,7 +98,7 @@ dwarf_getsrc_file (Dwarf *dbg, const char *fname, int lineno, int column,
|
||||
/* Match the name with the name the user provided. */
|
||||
const char *fname2 = line->files->info[lastfile].name;
|
||||
if (is_basename)
|
||||
- lastmatch = strcmp (basename (fname2), fname) == 0;
|
||||
+ lastmatch = strcmp (xbasename (fname2), fname) == 0;
|
||||
else
|
||||
lastmatch = strcmp (fname2, fname) == 0;
|
||||
}
|
||||
diff --git a/libdwfl/core-file.c b/libdwfl/core-file.c
|
||||
index 87c940cb..89527d23 100644
|
||||
--- a/libdwfl/core-file.c
|
||||
+++ b/libdwfl/core-file.c
|
||||
@@ -595,7 +595,7 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf, const char *executable)
|
||||
if (! __libdwfl_dynamic_vaddr_get (module->elf, &file_dynamic_vaddr))
|
||||
continue;
|
||||
Dwfl_Module *mod;
|
||||
- mod = __libdwfl_report_elf (dwfl, basename (module->name), module->name,
|
||||
+ mod = __libdwfl_report_elf (dwfl, xbasename (module->name), module->name,
|
||||
module->fd, module->elf,
|
||||
module->l_ld - file_dynamic_vaddr,
|
||||
true, true);
|
||||
diff --git a/libdwfl/dwfl_module_getsrc_file.c b/libdwfl/dwfl_module_getsrc_file.c
|
||||
index 513af6b8..fc144225 100644
|
||||
--- a/libdwfl/dwfl_module_getsrc_file.c
|
||||
+++ b/libdwfl/dwfl_module_getsrc_file.c
|
||||
@@ -103,7 +103,7 @@ dwfl_module_getsrc_file (Dwfl_Module *mod,
|
||||
{
|
||||
/* Match the name with the name the user provided. */
|
||||
lastfile = file;
|
||||
- lastmatch = !strcmp (is_basename ? basename (file) : file,
|
||||
+ lastmatch = !strcmp (is_basename ? xbasename (file) : file,
|
||||
fname);
|
||||
}
|
||||
}
|
||||
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c
|
||||
index 3ef62a7d..d0df7100 100644
|
||||
--- a/libdwfl/dwfl_segment_report_module.c
|
||||
+++ b/libdwfl/dwfl_segment_report_module.c
|
||||
@@ -718,7 +718,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
|
||||
bias += fixup;
|
||||
if (module->name[0] != '\0')
|
||||
{
|
||||
- name = basename (module->name);
|
||||
+ name = xbasename (module->name);
|
||||
name_is_final = true;
|
||||
}
|
||||
break;
|
||||
diff --git a/libdwfl/find-debuginfo.c b/libdwfl/find-debuginfo.c
|
||||
index 7f7ab632..b358c774 100644
|
||||
--- a/libdwfl/find-debuginfo.c
|
||||
+++ b/libdwfl/find-debuginfo.c
|
||||
@@ -164,7 +164,7 @@ find_debuginfo_in_path (Dwfl_Module *mod, const char *file_name,
|
||||
{
|
||||
bool cancheck = debuglink_crc != (GElf_Word) 0;
|
||||
|
||||
- const char *file_basename = file_name == NULL ? NULL : basename (file_name);
|
||||
+ const char *file_basename = file_name == NULL ? NULL : xbasename (file_name);
|
||||
char *localname = NULL;
|
||||
|
||||
/* We invent a debuglink .debug name if NULL, but then want to try the
|
||||
@@ -278,7 +278,7 @@ find_debuginfo_in_path (Dwfl_Module *mod, const char *file_name,
|
||||
else
|
||||
{
|
||||
subdir = NULL;
|
||||
- file = basename (debuglink_file);
|
||||
+ file = xbasename (debuglink_file);
|
||||
}
|
||||
try_file_basename = debuglink_null;
|
||||
break;
|
||||
@@ -306,7 +306,7 @@ find_debuginfo_in_path (Dwfl_Module *mod, const char *file_name,
|
||||
if (mod->dw != NULL && (p[0] == '\0' || p[0] == '/'))
|
||||
{
|
||||
fd = try_open (&main_stat, dir, ".dwz",
|
||||
- basename (file), &fname);
|
||||
+ xbasename (file), &fname);
|
||||
if (fd < 0)
|
||||
{
|
||||
if (errno != ENOENT && errno != ENOTDIR)
|
||||
diff --git a/libdwfl/link_map.c b/libdwfl/link_map.c
|
||||
index 06d85eb6..9d6b68c1 100644
|
||||
--- a/libdwfl/link_map.c
|
||||
+++ b/libdwfl/link_map.c
|
||||
@@ -469,7 +469,7 @@ report_r_debug (uint_fast8_t elfclass, uint_fast8_t elfdata,
|
||||
if (r_debug_info_module == NULL)
|
||||
{
|
||||
// XXX hook for sysroot
|
||||
- mod = __libdwfl_report_elf (dwfl, basename (name),
|
||||
+ mod = __libdwfl_report_elf (dwfl, xbasename (name),
|
||||
name, fd, elf, base,
|
||||
true, true);
|
||||
if (mod != NULL)
|
||||
diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
|
||||
index 58c0c417..e9faba26 100644
|
||||
--- a/libdwfl/linux-kernel-modules.c
|
||||
+++ b/libdwfl/linux-kernel-modules.c
|
||||
@@ -116,7 +116,7 @@ try_kernel_name (Dwfl *dwfl, char **fname, bool try_debug)
|
||||
/* Try the file's unadorned basename as DEBUGLINK_FILE,
|
||||
to look only for "vmlinux" files. */
|
||||
fd = INTUSE(dwfl_standard_find_debuginfo) (&fakemod, NULL, NULL, 0,
|
||||
- *fname, basename (*fname),
|
||||
+ *fname, xbasename (*fname),
|
||||
0, &fakemod.debug.name);
|
||||
|
||||
if (fakemod.debug.name != NULL)
|
||||
diff --git a/src/addr2line.c b/src/addr2line.c
|
||||
index d902d791..d87e5b45 100644
|
||||
--- a/src/addr2line.c
|
||||
+++ b/src/addr2line.c
|
||||
@@ -385,7 +385,7 @@ print_dwarf_function (Dwfl_Module *mod, Dwarf_Addr addr)
|
||||
if (file == NULL)
|
||||
file = "???";
|
||||
else if (only_basenames)
|
||||
- file = basename (file);
|
||||
+ file = xbasename (file);
|
||||
else if (use_comp_dir && file[0] != '/')
|
||||
{
|
||||
const char *const *dirs;
|
||||
@@ -568,7 +568,7 @@ print_src (const char *src, int lineno, int linecol, Dwarf_Die *cu)
|
||||
const char *comp_dir_sep = "";
|
||||
|
||||
if (only_basenames)
|
||||
- src = basename (src);
|
||||
+ src = xbasename (src);
|
||||
else if (use_comp_dir && src[0] != '/')
|
||||
{
|
||||
Dwarf_Attribute attr;
|
||||
diff --git a/src/ar.c b/src/ar.c
|
||||
index 3bcb18fe..e6d6d58f 100644
|
||||
--- a/src/ar.c
|
||||
+++ b/src/ar.c
|
||||
@@ -1133,7 +1133,7 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc,
|
||||
for (int cnt = 0; cnt < argc; ++cnt)
|
||||
{
|
||||
ENTRY entry;
|
||||
- entry.key = full_path ? argv[cnt] : basename (argv[cnt]);
|
||||
+ entry.key = full_path ? argv[cnt] : (char*)xbasename (argv[cnt]);
|
||||
entry.data = &argv[cnt];
|
||||
if (hsearch (entry, ENTER) == NULL)
|
||||
error_exit (errno, _("cannot insert into hash table"));
|
||||
@@ -1242,7 +1242,7 @@ do_oper_insert (int oper, const char *arfname, char **argv, int argc,
|
||||
/* Open all the new files, get their sizes and add all symbols. */
|
||||
for (int cnt = 0; cnt < argc; ++cnt)
|
||||
{
|
||||
- const char *bname = basename (argv[cnt]);
|
||||
+ const char *bname = xbasename (argv[cnt]);
|
||||
size_t bnamelen = strlen (bname);
|
||||
if (found[cnt] == NULL)
|
||||
{
|
||||
diff --git a/src/nm.c b/src/nm.c
|
||||
index fbdee8e1..3675f59b 100644
|
||||
--- a/src/nm.c
|
||||
+++ b/src/nm.c
|
||||
@@ -1417,7 +1417,7 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehdr *ehdr,
|
||||
int lineno;
|
||||
(void) dwarf_lineno (line, &lineno);
|
||||
const char *file = dwarf_linesrc (line, NULL, NULL);
|
||||
- file = (file != NULL) ? basename (file) : "???";
|
||||
+ file = (file != NULL) ? xbasename (file) : "???";
|
||||
int n;
|
||||
n = obstack_printf (&whereob, "%s:%d%c", file,
|
||||
lineno, '\0');
|
||||
@@ -1448,7 +1448,7 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehdr *ehdr,
|
||||
{
|
||||
/* We found the line. */
|
||||
int n = obstack_printf (&whereob, "%s:%" PRIu64 "%c",
|
||||
- basename ((*found)->file),
|
||||
+ xbasename ((*found)->file),
|
||||
(*found)->lineno,
|
||||
'\0');
|
||||
sym_mem[nentries_used].where = obstack_finish (&whereob);
|
||||
diff --git a/src/stack.c b/src/stack.c
|
||||
index 534aa93c..f4c5ba8c 100644
|
||||
--- a/src/stack.c
|
||||
+++ b/src/stack.c
|
||||
@@ -152,7 +152,7 @@ module_callback (Dwfl_Module *mod, void **userdata __attribute__((unused)),
|
||||
|
||||
int width = get_addr_width (mod);
|
||||
printf ("0x%0*" PRIx64 "-0x%0*" PRIx64 " %s\n",
|
||||
- width, start, width, end, basename (name));
|
||||
+ width, start, width, end, xbasename (name));
|
||||
|
||||
const unsigned char *id;
|
||||
GElf_Addr id_vaddr;
|
||||
diff --git a/src/strip.c b/src/strip.c
|
||||
index 2a2cc801..88977a5c 100644
|
||||
--- a/src/strip.c
|
||||
+++ b/src/strip.c
|
||||
@@ -1800,7 +1800,7 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname,
|
||||
elf_errmsg (-1));
|
||||
}
|
||||
|
||||
- char *debug_basename = basename (debug_fname_embed ?: debug_fname);
|
||||
+ const char *debug_basename = xbasename (debug_fname_embed ?: debug_fname);
|
||||
off_t crc_offset = strlen (debug_basename) + 1;
|
||||
/* Align to 4 byte boundary */
|
||||
crc_offset = ((crc_offset - 1) & ~3) + 4;
|
||||
diff --git a/tests/show-die-info.c b/tests/show-die-info.c
|
||||
index 1a3191cd..bda459a5 100644
|
||||
--- a/tests/show-die-info.c
|
||||
+++ b/tests/show-die-info.c
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include "../libdw/known-dwarf.h"
|
||||
+#include "../lib/system.h"
|
||||
|
||||
static const char *
|
||||
dwarf_tag_string (unsigned int tag)
|
||||
@@ -318,7 +319,7 @@ main (int argc, char *argv[])
|
||||
int fd = open (argv[cnt], O_RDONLY);
|
||||
Dwarf *dbg;
|
||||
|
||||
- printf ("file: %s\n", basename (argv[cnt]));
|
||||
+ printf ("file: %s\n", xbasename (argv[cnt]));
|
||||
|
||||
dbg = dwarf_begin (fd, DWARF_C_READ);
|
||||
if (dbg == NULL)
|
||||
diff --git a/tests/varlocs.c b/tests/varlocs.c
|
||||
index 8e563fd3..1004f969 100644
|
||||
--- a/tests/varlocs.c
|
||||
+++ b/tests/varlocs.c
|
||||
@@ -1120,7 +1120,7 @@ main (int argc, char *argv[])
|
||||
|
||||
const char *name = (modname[0] != '\0'
|
||||
? modname
|
||||
- : basename (mainfile));
|
||||
+ : xbasename (mainfile));
|
||||
printf ("module '%s'\n", name);
|
||||
print_die (&cudie, "CU", 0);
|
||||
|
||||
--
|
||||
2.48.1
|
||||
|
||||
@@ -12,7 +12,7 @@ ELFUTILS_LICENSE = GPL-2.0+ or LGPL-3.0+ (library)
|
||||
ELFUTILS_LICENSE_FILES = COPYING COPYING-GPLV2 COPYING-LGPLV3
|
||||
ELFUTILS_CPE_ID_VALID = YES
|
||||
ELFUTILS_DEPENDENCIES = host-pkgconf zlib $(TARGET_NLS_DEPENDENCIES)
|
||||
HOST_ELFUTILS_DEPENDENCIES = host-pkgconf host-zlib host-bzip2 host-xz
|
||||
HOST_ELFUTILS_DEPENDENCIES = host-pkgconf host-zlib host-bzip2 host-xz host-zstd
|
||||
|
||||
# We patch configure.ac
|
||||
ELFUTILS_AUTORECONF = YES
|
||||
@@ -26,7 +26,7 @@ ELFUTILS_CONF_OPTS += \
|
||||
HOST_ELFUTILS_CONF_OPTS = \
|
||||
--with-bzlib \
|
||||
--with-lzma \
|
||||
--without-zstd \
|
||||
--with-zstd \
|
||||
--disable-demangler \
|
||||
--disable-progs
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# From https://ftp.exim.org/pub/exim/exim4/00-sha256sums.txt
|
||||
sha256 0ebc108a779f9293ba4b423c20818f9a3db79b60286d96abc6ba6b85a15852f7 exim-4.98.tar.xz
|
||||
sha256 d858b75ad2cc6bf71c9071ba26a55b3ea9add26607bd832df3cb54f82221c2ce exim-4.98.1.tar.xz
|
||||
# From https://ftp.exim.org/pub/exim/exim4/00-sha512sums.txt
|
||||
sha512 13dd963dd0899bb4d64bee44c20883e720e469a4d77456b877d6693cfc4419805a045cb561508cdf763dbb37cc84fbdc6177d68acc2183934c3224fbd03caf15 exim-4.98.tar.xz
|
||||
sha512 8f80999a41ed40e86ee16eea5cfd765e2f164ea149f40eeb410fd02fcf35c23317dc69540efe336e9e0fae930b1cc6771e0180dd70f1314531cdb139740c744e exim-4.98.1.tar.xz
|
||||
# Locally calculated
|
||||
sha256 49240db527b7e55b312a46fc59794fde5dd006422e422257f4f057bfd27b3c8f LICENCE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
EXIM_VERSION = 4.98
|
||||
EXIM_VERSION = 4.98.1
|
||||
EXIM_SOURCE = exim-$(EXIM_VERSION).tar.xz
|
||||
EXIM_SITE = https://ftp.exim.org/pub/exim/exim4
|
||||
EXIM_LICENSE = GPL-2.0+
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 a695629dae047055b37d50a0ff4776d1d45d0a4c842cf4ccee158441f55ff7ee expat-2.6.4.tar.xz
|
||||
sha256 25df13dd2819e85fb27a1ce0431772b7047d72af81ae78dc26b4c6e0805f48d1 expat-2.7.0.tar.xz
|
||||
sha256 122f2c27000472a201d337b9b31f7eb2b52d091b02857061a8880371612d9534 COPYING
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
EXPAT_VERSION = 2.6.4
|
||||
EXPAT_VERSION = 2.7.0
|
||||
EXPAT_SITE = https://github.com/libexpat/libexpat/releases/download/R_$(subst .,_,$(EXPAT_VERSION))
|
||||
EXPAT_SOURCE = expat-$(EXPAT_VERSION).tar.xz
|
||||
EXPAT_INSTALL_STAGING = YES
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
From 29e9322e6a8238205780107e731a51b48845f9c7 Mon Sep 17 00:00:00 2001
|
||||
From: Julien Olivain <ju.o@free.fr>
|
||||
Date: Mon, 10 Feb 2025 22:59:04 +0100
|
||||
Subject: [PATCH] Makefile.am: fix parallel build
|
||||
|
||||
When building fakeroot on host with large number of CPUs, compilation
|
||||
can randomly fail. Failures were observed on hosts with 24 CPUs.
|
||||
|
||||
Build logs show errors such as:
|
||||
|
||||
make -j$(nproc)
|
||||
...
|
||||
awk -f ./wrapawk < ./wrapfunc.inp
|
||||
awk -f ./wrapawk < ./wrapfunc.inp
|
||||
...
|
||||
In file included from libfakeroot.c:265:
|
||||
wraptmpf.h:607: error: unterminated #ifdef
|
||||
607 | #ifdef __APPLE__
|
||||
|
|
||||
wraptmpf.h:601: error: unterminated #ifdef
|
||||
601 | #ifdef HAVE_FTS_CHILDREN
|
||||
|
|
||||
wraptmpf.h:2: error: unterminated #ifndef
|
||||
2 | #ifndef WRAPTMPF_H
|
||||
|
|
||||
...
|
||||
|
||||
The issue was observed in the builders of Buildroot Linux [1], which
|
||||
is using fakeroot. Examples of build failures are [2], [3], [4].
|
||||
|
||||
It is important to note that in all failing cases, there is
|
||||
more that one parallel invocation of the "wrapawk" script [5].
|
||||
|
||||
This script is meant to generate many output files (wrapped.h,
|
||||
wrapdef.h, wrapstruct.h, wraptmpf.h) from a single invocation.
|
||||
|
||||
The Makefile.am file is using multiple targets in an attempt to
|
||||
reflect that generation of multiple outputs at once. See [6].
|
||||
|
||||
This use of multiple targets in this rule is incorrect here. See
|
||||
the Make manual [7]. This construct, used in Makefile.am, incorrectly
|
||||
assumes all those targets are independant (so they can be executed in
|
||||
parallel). They are not. In the current failing case, parallel
|
||||
invocations will generates all their respective output files,
|
||||
overwriting each other. This could lead to incomplete generated
|
||||
files, resulting to the observed compilation failures.
|
||||
|
||||
Note that GNU Make 4.3 introduced "Grouped Targets" for that purpose.
|
||||
See "Rules with Grouped Targets" section in [7]. But this would add a
|
||||
requirement on Make >= 4.3.
|
||||
|
||||
For that reason, this commit fixes the issue by using a simpler
|
||||
construct, working with all Make versions: the first output file
|
||||
"wrapped.h" is kept as a target, and it is devlared as a
|
||||
dependency of the three other generated files. This change makes sure
|
||||
that only one invocation of "wrapawk" will happen at a time,
|
||||
disregarding the number of parallel jobs requiring those generated
|
||||
files. This has the effect of completely solving the parallel build
|
||||
for all GNU Make versions.
|
||||
|
||||
[1] https://buildroot.org/
|
||||
[2] https://gitlab.com/buildroot.org/buildroot/-/jobs/9085451831
|
||||
[3] https://gitlab.com/buildroot.org/buildroot/-/jobs/9085451244
|
||||
[4] https://gitlab.com/buildroot.org/buildroot/-/jobs/9085451198
|
||||
[5] https://salsa.debian.org/clint/fakeroot/-/blob/master/wrapawk
|
||||
[6] https://salsa.debian.org/clint/fakeroot/-/blob/upstream/1.37/Makefile.am#L54
|
||||
[7] https://www.gnu.org/software/make/manual/html_node/Multiple-Targets.html
|
||||
|
||||
Upstream: Proposed: https://salsa.debian.org/clint/fakeroot/-/merge_requests/33
|
||||
Signed-off-by: Julien Olivain <ju.o@free.fr>
|
||||
---
|
||||
Makefile.am | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 46f01eb..ff71a8d 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -48,12 +48,13 @@ EXTRA_DIST=wrapawk wrapawk_macosx wrapfunc.inp \
|
||||
CLEAN_FILES=fakerootconfig.h
|
||||
|
||||
if MACOSX
|
||||
-wrapped.h wrapdef.h wrapstruct.h wraptmpf.h:wrapawk_macosx wrapfunc.inp
|
||||
+wrapped.h: wrapawk_macosx wrapfunc.inp
|
||||
awk -f $(srcdir)/wrapawk_macosx < $(srcdir)/wrapfunc.inp
|
||||
else !MACOSX
|
||||
-wrapped.h wrapdef.h wrapstruct.h wraptmpf.h:wrapawk wrapfunc.inp
|
||||
+wrapped.h: wrapawk wrapfunc.inp
|
||||
awk -f $(srcdir)/wrapawk < $(srcdir)/wrapfunc.inp
|
||||
endif !MACOSX
|
||||
+wrapdef.h wrapstruct.h wraptmpf.h: wrapped.h
|
||||
|
||||
libfakeroot.lo:libfakeroot.c wrapdef.h wrapstruct.h wraptmpf.h
|
||||
|
||||
--
|
||||
2.48.1
|
||||
|
||||
@@ -15,6 +15,8 @@ HOST_FAKEROOT_DEPENDENCIES = host-acl
|
||||
HOST_FAKEROOT_CONF_ENV = \
|
||||
ac_cv_header_sys_capability_h=no \
|
||||
ac_cv_func_capset=no
|
||||
# 0001-Makefile.am-fix-parallel-build.patch
|
||||
HOST_FAKEROOT_AUTORECONF = YES
|
||||
FAKEROOT_LICENSE = GPL-3.0+
|
||||
FAKEROOT_LICENSE_FILES = COPYING
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
From 4c688845a50f7dce3af9afebe60f0f7a493c4f07 Mon Sep 17 00:00:00 2001
|
||||
From: Ross Burton <ross.burton@arm.com>
|
||||
Date: Fri, 9 Aug 2024 11:32:00 +0100
|
||||
Subject: [PATCH] libavcodec/arm/mlpdsp_armv5te: fix label format to work with
|
||||
binutils 2.43
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=utf8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
binutils 2.43 has stricter validation for labels[1] and results in errors
|
||||
when building ffmpeg for armv5:
|
||||
|
||||
src/libavcodec/arm/mlpdsp_armv5te.S:232: Error: junk at end of line, first unrecognized character is `0'
|
||||
|
||||
Remove the leading zero in the "01" label to resolve this error.
|
||||
|
||||
[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=226749d5a6ff0d5c607d6428d6c81e1e7e7a994b
|
||||
|
||||
Signed-off-by: Ross Burton <ross.burton@arm.com>
|
||||
Signed-off-by: Martin Storsjö <martin@martin.st>
|
||||
(cherry picked from commit 654bd47716c4f36719fb0f3f7fd8386d5ed0b916)
|
||||
|
||||
Upstream: http://git.videolan.org/?p=ffmpeg.git;a=commit;h=4c688845a50f7dce3af9afebe60f0f7a493c4f07
|
||||
|
||||
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
|
||||
---
|
||||
libavcodec/arm/mlpdsp_armv5te.S | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libavcodec/arm/mlpdsp_armv5te.S b/libavcodec/arm/mlpdsp_armv5te.S
|
||||
index 4f9aa485fd..d31568611c 100644
|
||||
--- a/libavcodec/arm/mlpdsp_armv5te.S
|
||||
+++ b/libavcodec/arm/mlpdsp_armv5te.S
|
||||
@@ -229,7 +229,7 @@ A .endif
|
||||
.endif
|
||||
|
||||
// Begin loop
|
||||
-01:
|
||||
+1:
|
||||
.if TOTAL_TAPS == 0
|
||||
// Things simplify a lot in this case
|
||||
// In fact this could be pipelined further if it's worth it...
|
||||
@@ -241,7 +241,7 @@ A .endif
|
||||
str ST0, [PST, #-4]!
|
||||
str ST0, [PST, #4 * (MAX_BLOCKSIZE + MAX_FIR_ORDER)]
|
||||
str ST0, [PSAMP], #4 * MAX_CHANNELS
|
||||
- bne 01b
|
||||
+ bne 1b
|
||||
.else
|
||||
.if \fir_taps & 1
|
||||
.set LOAD_REG, 1
|
||||
@@ -333,7 +333,7 @@ T orr AC0, AC0, AC1
|
||||
str ST3, [PST, #-4]!
|
||||
str ST2, [PST, #4 * (MAX_BLOCKSIZE + MAX_FIR_ORDER)]
|
||||
str ST3, [PSAMP], #4 * MAX_CHANNELS
|
||||
- bne 01b
|
||||
+ bne 1b
|
||||
.endif
|
||||
b 99f
|
||||
|
||||
--
|
||||
2.30.2
|
||||
|
||||
@@ -383,6 +383,13 @@ else
|
||||
FFMPEG_CONF_OPTS += --disable-iconv
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBXML2),y)
|
||||
FFMPEG_CONF_OPTS += --enable-libxml2
|
||||
FFMPEG_DEPENDENCIES += libxml2
|
||||
else
|
||||
FFMPEG_CONF_OPTS += --disable-libxml2
|
||||
endif
|
||||
|
||||
# ffmpeg freetype support require fenv.h which is only
|
||||
# available/working on glibc.
|
||||
# The microblaze variant doesn't provide the needed exceptions
|
||||
@@ -400,6 +407,20 @@ else
|
||||
FFMPEG_CONF_OPTS += --disable-fontconfig
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_HARFBUZZ),y)
|
||||
FFMPEG_CONF_OPTS += --enable-libharfbuzz
|
||||
FFMPEG_DEPENDENCIES += harfbuzz
|
||||
else
|
||||
FFMPEG_CONF_OPTS += --disable-libharfbuzz
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBFRIBIDI),y)
|
||||
FFMPEG_CONF_OPTS += --enable-libfribidi
|
||||
FFMPEG_DEPENDENCIES += libfribidi
|
||||
else
|
||||
FFMPEG_CONF_OPTS += --disable-libfribidi
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENJPEG),y)
|
||||
FFMPEG_CONF_OPTS += --enable-libopenjpeg
|
||||
FFMPEG_DEPENDENCIES += openjpeg
|
||||
|
||||
+4
-1
@@ -16,7 +16,10 @@ FIO_DEPENDENCIES += libaio
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBNFS),y)
|
||||
FIO_DEPENDENCIES += libnfs
|
||||
FIO_OPTS += --enable-libnfs
|
||||
FIO_DEPENDENCIES += host-pkgconf libnfs
|
||||
else
|
||||
FIO_OPTS += --disable-libnfs
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBISCSI),y)
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
From 9443ac7e2937bb4f26cf44c73bb8150860c5df45 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
|
||||
Date: Tue, 4 Feb 2025 09:48:13 +0100
|
||||
Subject: [PATCH] box-drawings: handle architecture with soft-float
|
||||
|
||||
Currently, architecture using soft-floats doesn't support instructions
|
||||
FE_INVALID, FE_DIVBYZERO, FE_OVERFLOW and FE_UNDERFLOW and so building
|
||||
on those architectures results with a build error.
|
||||
As the sqrt math function should set errno to EDOM if an error occurs,
|
||||
fetestexcept shouldn't be mandatory.
|
||||
|
||||
This commit removes the float environment error handling.
|
||||
|
||||
Upstream: https://codeberg.org/dnkl/foot/commit/9443ac7e2937bb4f26cf44c73bb8150860c5df45
|
||||
Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
|
||||
---
|
||||
box-drawing.c | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/box-drawing.c b/box-drawing.c
|
||||
index 1c613051..421ff54d 100644
|
||||
--- a/box-drawing.c
|
||||
+++ b/box-drawing.c
|
||||
@@ -1462,14 +1462,12 @@ draw_box_drawings_light_arc(struct buf *buf, char32_t wc)
|
||||
*/
|
||||
for (double i = y_min*16; i <= y_max*16; i++) {
|
||||
errno = 0;
|
||||
- feclearexcept(FE_ALL_EXCEPT);
|
||||
|
||||
double y = i / 16.;
|
||||
double x = circle_hemisphere * sqrt(c_r2 - (y - c_y) * (y - c_y)) + c_x;
|
||||
|
||||
/* See math_error(7) */
|
||||
- if (errno != 0 ||
|
||||
- fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW))
|
||||
+ if (errno != 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
--
|
||||
2.48.1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# From https://sourceforge.net/projects/freetype/files/freetype2/2.13.2/
|
||||
sha1 2d8d5917a1983ebd04921f2993a88858d6f72dec freetype-2.13.2.tar.xz
|
||||
sha256 12991c4e55c506dd7f9b765933e62fd2be2e06d421505d7950a132e4f1bb484d freetype-2.13.2.tar.xz
|
||||
# From https://sourceforge.net/projects/freetype/files/freetype2/2.13.3/
|
||||
sha1 2437819d11c1205e81141735dcb0a36c0d541e96 freetype-2.13.3.tar.xz
|
||||
sha256 0550350666d427c74daeb85d5ac7bb353acba5f76956395995311a9c6f063289 freetype-2.13.3.tar.xz
|
||||
|
||||
# Locally calculated
|
||||
sha256 2e3bbb7d7c5c396368dd0853a790ec29ce5b8647163dde42a0493fb0d6556b2b LICENSE.TXT
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
FREETYPE_VERSION = 2.13.2
|
||||
FREETYPE_VERSION = 2.13.3
|
||||
FREETYPE_SOURCE = freetype-$(FREETYPE_VERSION).tar.xz
|
||||
FREETYPE_SITE = http://download.savannah.gnu.org/releases/freetype
|
||||
FREETYPE_INSTALL_STAGING = YES
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From: https://www.kernel.org/pub/software/scm/git/sha256sums.asc
|
||||
sha256 1ce114da88704271b43e027c51e04d9399f8c88e9ef7542dae7aebae7d87bc4e git-2.47.0.tar.xz
|
||||
sha256 b19268be6b6f1556b47a9dd834272e167d3a75740cdcd283cf3812edffe3930f git-2.47.2.tar.xz
|
||||
# Locally calculated
|
||||
sha256 5b2198d1645f767585e8a88ac0499b04472164c0d2da22e75ecf97ef443ab32e COPYING
|
||||
sha256 1922f45d2c49e390032c9c0ba6d7cac904087f7cec51af30c2b2ad022ce0e76a LGPL-2.1
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
GIT_VERSION = 2.47.0
|
||||
GIT_VERSION = 2.47.2
|
||||
GIT_SOURCE = git-$(GIT_VERSION).tar.xz
|
||||
GIT_SITE = $(BR2_KERNEL_MIRROR)/software/scm/git
|
||||
GIT_LICENSE = GPL-2.0, LGPL-2.1+
|
||||
|
||||
@@ -24,18 +24,6 @@ GLIBC_CPE_ID_VENDOR = gnu
|
||||
# allow proper matching with the CPE database.
|
||||
GLIBC_CPE_ID_VERSION = $(word 1, $(subst -,$(space),$(GLIBC_VERSION)))
|
||||
|
||||
# Fixed by glibc-2.39-31-g31da30f23cddd36db29d5b6a1c7619361b271fb4
|
||||
GLIBC_IGNORE_CVES += CVE-2024-2961
|
||||
|
||||
# Fixed by glibc-2.39-35-g1263d583d2e28afb8be53f8d6922f0842036f35d
|
||||
GLIBC_IGNORE_CVES += CVE-2024-33599
|
||||
|
||||
# Fixed by glibc-2.39-37-gc99f886de54446cd4447db6b44be93dabbdc2f8b
|
||||
GLIBC_IGNORE_CVES += CVE-2024-33600
|
||||
|
||||
# Fixed by glibc-2.39-38-ga9a8d3eebb145779a18d90e3966009a1daa63cd
|
||||
GLIBC_IGNORE_CVES += CVE-2024-33601 CVE-2024-33602
|
||||
|
||||
# All these CVEs are considered as not being security issues by
|
||||
# upstream glibc:
|
||||
# https://security-tracker.debian.org/tracker/CVE-2010-4756
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
From f65e5db5666529abb18fe24f5c45331404a1ce99 Mon Sep 17 00:00:00 2001
|
||||
From: Callum Farmer <gmbr3@opensuse.org>
|
||||
Date: Wed, 29 May 2024 16:22:50 +0100
|
||||
Subject: [PATCH] Make CHAR16 use uint16_t
|
||||
|
||||
musl-libc doesn't like fshort-wchar so remove wchar_t usage
|
||||
Use uint16_t as char16_t can be up to 32bits
|
||||
Fixes ncroxon/gnu-efi#16
|
||||
|
||||
Signed-off-by: Callum Farmer <gmbr3@opensuse.org>
|
||||
Upstream: https://github.com/ncroxon/gnu-efi/commit/edfda7c396134c7109444b230ce4b0da1e61d524
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
---
|
||||
Make.defaults | 4 ++--
|
||||
inc/aarch64/efibind.h | 2 +-
|
||||
inc/arm/efibind.h | 2 +-
|
||||
inc/ia32/efibind.h | 2 +-
|
||||
inc/ia64/efibind.h | 2 +-
|
||||
inc/loongarch64/efibind.h | 2 +-
|
||||
inc/mips64el/efibind.h | 2 +-
|
||||
inc/riscv64/efibind.h | 5 ++---
|
||||
inc/x86_64/efibind.h | 2 +-
|
||||
9 files changed, 11 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/Make.defaults b/Make.defaults
|
||||
index c9f9b4f..83204a6 100755
|
||||
--- a/Make.defaults
|
||||
+++ b/Make.defaults
|
||||
@@ -187,11 +187,11 @@ endif
|
||||
|
||||
ifeq (FreeBSD, $(findstring FreeBSD, $(OS)))
|
||||
CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Werror \
|
||||
- -funsigned-char -fshort-wchar -fno-strict-aliasing \
|
||||
+ -funsigned-char -fno-strict-aliasing \
|
||||
-ffreestanding -fno-stack-protector
|
||||
else
|
||||
CFLAGS += $(ARCH3264) -g -O2 -Wall -Wextra -Wno-pointer-sign -Werror \
|
||||
- -funsigned-char -fshort-wchar -fno-strict-aliasing \
|
||||
+ -funsigned-char -fno-strict-aliasing \
|
||||
-ffreestanding -fno-stack-protector -fno-stack-check \
|
||||
$(if $(findstring gcc,$(CC)),-fno-merge-all-constants,)
|
||||
endif
|
||||
diff --git a/inc/aarch64/efibind.h b/inc/aarch64/efibind.h
|
||||
index d6b5d0f..1a1fb79 100644
|
||||
--- a/inc/aarch64/efibind.h
|
||||
+++ b/inc/aarch64/efibind.h
|
||||
@@ -40,7 +40,7 @@ typedef int64_t intptr_t;
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
-typedef wchar_t CHAR16;
|
||||
+typedef uint16_t CHAR16;
|
||||
#define WCHAR CHAR16
|
||||
|
||||
typedef uint64_t UINT64;
|
||||
diff --git a/inc/arm/efibind.h b/inc/arm/efibind.h
|
||||
index 8c578df..bc43931 100644
|
||||
--- a/inc/arm/efibind.h
|
||||
+++ b/inc/arm/efibind.h
|
||||
@@ -48,7 +48,7 @@ typedef int32_t intptr_t;
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
-typedef wchar_t CHAR16;
|
||||
+typedef uint16_t CHAR16;
|
||||
#define WCHAR CHAR16
|
||||
|
||||
typedef uint64_t UINT64;
|
||||
diff --git a/inc/ia32/efibind.h b/inc/ia32/efibind.h
|
||||
index 718e8d1..1b33f2f 100644
|
||||
--- a/inc/ia32/efibind.h
|
||||
+++ b/inc/ia32/efibind.h
|
||||
@@ -87,7 +87,7 @@ Revision History
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
-typedef wchar_t CHAR16;
|
||||
+typedef uint16_t CHAR16;
|
||||
#define WCHAR CHAR16
|
||||
|
||||
|
||||
diff --git a/inc/ia64/efibind.h b/inc/ia64/efibind.h
|
||||
index 1d2745b..1ad41f8 100644
|
||||
--- a/inc/ia64/efibind.h
|
||||
+++ b/inc/ia64/efibind.h
|
||||
@@ -74,7 +74,7 @@ Revision History
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
-typedef wchar_t CHAR16;
|
||||
+typedef uint16_t CHAR16;
|
||||
#define WCHAR CHAR16
|
||||
|
||||
typedef uint64_t UINT64;
|
||||
diff --git a/inc/loongarch64/efibind.h b/inc/loongarch64/efibind.h
|
||||
index 8ed83a5..806209d 100644
|
||||
--- a/inc/loongarch64/efibind.h
|
||||
+++ b/inc/loongarch64/efibind.h
|
||||
@@ -44,7 +44,7 @@ typedef int64_t intptr_t;
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
-typedef wchar_t CHAR16;
|
||||
+typedef uint16_t CHAR16;
|
||||
#define WCHAR CHAR16
|
||||
|
||||
typedef uint64_t UINT64;
|
||||
diff --git a/inc/mips64el/efibind.h b/inc/mips64el/efibind.h
|
||||
index cf77ddc..9b396cc 100644
|
||||
--- a/inc/mips64el/efibind.h
|
||||
+++ b/inc/mips64el/efibind.h
|
||||
@@ -42,7 +42,7 @@ typedef int64_t intptr_t;
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
-typedef wchar_t CHAR16;
|
||||
+typedef uint16_t CHAR16;
|
||||
#define WCHAR CHAR16
|
||||
|
||||
typedef uint64_t UINT64;
|
||||
diff --git a/inc/riscv64/efibind.h b/inc/riscv64/efibind.h
|
||||
index d8b4f39..b6d418c 100644
|
||||
--- a/inc/riscv64/efibind.h
|
||||
+++ b/inc/riscv64/efibind.h
|
||||
@@ -17,13 +17,12 @@
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
+#include <stddef.h>
|
||||
|
||||
//
|
||||
// Basic EFI types of various widths
|
||||
//
|
||||
|
||||
-#include <stddef.h>
|
||||
-
|
||||
typedef uint64_t UINT64;
|
||||
typedef int64_t INT64;
|
||||
typedef uint32_t UINT32;
|
||||
@@ -33,7 +32,7 @@ typedef int16_t INT16;
|
||||
typedef uint8_t UINT8;
|
||||
typedef int8_t INT8;
|
||||
typedef char CHAR8;
|
||||
-typedef wchar_t CHAR16;
|
||||
+typedef uint16_t CHAR16;
|
||||
#define WCHAR CHAR16
|
||||
#undef VOID
|
||||
typedef void VOID;
|
||||
diff --git a/inc/x86_64/efibind.h b/inc/x86_64/efibind.h
|
||||
index e454ed2..8f431cb 100644
|
||||
--- a/inc/x86_64/efibind.h
|
||||
+++ b/inc/x86_64/efibind.h
|
||||
@@ -98,7 +98,7 @@ Revision History
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
-typedef wchar_t CHAR16;
|
||||
+typedef uint16_t CHAR16;
|
||||
#define WCHAR CHAR16
|
||||
|
||||
typedef uint64_t UINT64;
|
||||
--
|
||||
2.47.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,798 +0,0 @@
|
||||
From 5ed597eb28c408c5968e6dfb839880ba5fa17ba1 Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@gnu.org>
|
||||
Date: Fri, 6 Dec 2024 09:53:18 +0900
|
||||
Subject: [PATCH] groups: represent hybrid groups with an array of IDs
|
||||
|
||||
Previously, the supported_groups array contained externally defined
|
||||
elements, which is legitimate in C99 but caused error with Clang:
|
||||
|
||||
groups.c:93:2: error: initializer element is not a compile-time constant
|
||||
group_x25519,
|
||||
^~~~~~~~~~~~
|
||||
|
||||
This reworks the array definition of indirection through group
|
||||
IDs (gnutls_group_t, i.e., integer).
|
||||
|
||||
This also makes pqc-hybrid-kx test more exhaustive.
|
||||
|
||||
Signed-off-by: Daiki Ueno <ueno@gnu.org>
|
||||
Upstream: https://gitlab.com/gnutls/gnutls/-/commit/9cc9d5556d258d23a399abfe45715773e719d134
|
||||
Signed-off-by: Brandon Maier <brandon.maier@collins.com>
|
||||
---
|
||||
lib/algorithms.h | 7 ++
|
||||
lib/algorithms/groups.c | 161 ++++++++++++++++++++------------
|
||||
lib/ext/key_share.c | 81 ++++++++++++----
|
||||
lib/ext/supported_groups.c | 45 +++++----
|
||||
lib/gnutls_int.h | 8 +-
|
||||
lib/includes/gnutls/gnutls.h.in | 4 +-
|
||||
lib/priority.c | 25 ++---
|
||||
lib/session.c | 6 +-
|
||||
tests/pqc-hybrid-kx.sh | 101 +++++++++++++++++---
|
||||
9 files changed, 315 insertions(+), 123 deletions(-)
|
||||
|
||||
diff --git a/lib/algorithms.h b/lib/algorithms.h
|
||||
index 2e1b694c6..c4af571ce 100644
|
||||
--- a/lib/algorithms.h
|
||||
+++ b/lib/algorithms.h
|
||||
@@ -55,6 +55,9 @@
|
||||
#define IS_KEM(x) \
|
||||
(((x) == GNUTLS_PK_MLKEM768) || ((x) == GNUTLS_PK_EXP_KYBER768))
|
||||
|
||||
+
|
||||
+#define IS_GROUP_HYBRID(group) ((group)->ids[0] != GNUTLS_GROUP_INVALID)
|
||||
+
|
||||
#define SIG_SEM_PRE_TLS12 (1 << 1)
|
||||
#define SIG_SEM_TLS13 (1 << 2)
|
||||
#define SIG_SEM_DEFAULT (SIG_SEM_PRE_TLS12 | SIG_SEM_TLS13)
|
||||
@@ -493,6 +496,10 @@ const gnutls_group_entry_st *_gnutls_tls_id_to_group(unsigned num);
|
||||
const gnutls_group_entry_st *_gnutls_id_to_group(unsigned id);
|
||||
gnutls_group_t _gnutls_group_get_id(const char *name);
|
||||
|
||||
+int _gnutls_group_expand(
|
||||
+ const gnutls_group_entry_st *group,
|
||||
+ const gnutls_group_entry_st *subgroups[MAX_HYBRID_GROUPS + 1]);
|
||||
+
|
||||
gnutls_ecc_curve_t _gnutls_ecc_bits_to_curve(gnutls_pk_algorithm_t pk,
|
||||
int bits);
|
||||
#define MAX_ECC_CURVE_SIZE 66
|
||||
diff --git a/lib/algorithms/groups.c b/lib/algorithms/groups.c
|
||||
index 88d0cf630..2fbe7b8ec 100644
|
||||
--- a/lib/algorithms/groups.c
|
||||
+++ b/lib/algorithms/groups.c
|
||||
@@ -30,30 +30,6 @@
|
||||
/* Supported ECC curves
|
||||
*/
|
||||
|
||||
-#ifdef HAVE_LIBOQS
|
||||
-static const gnutls_group_entry_st group_mlkem768 = {
|
||||
- .name = "MLKEM768",
|
||||
- .id = GNUTLS_GROUP_INVALID,
|
||||
- .curve = GNUTLS_ECC_CURVE_INVALID,
|
||||
- .pk = GNUTLS_PK_MLKEM768,
|
||||
-};
|
||||
-
|
||||
-static const gnutls_group_entry_st group_kyber768 = {
|
||||
- .name = "KYBER768",
|
||||
- .id = GNUTLS_GROUP_INVALID,
|
||||
- .curve = GNUTLS_ECC_CURVE_INVALID,
|
||||
- .pk = GNUTLS_PK_EXP_KYBER768,
|
||||
-};
|
||||
-#endif
|
||||
-
|
||||
-static const gnutls_group_entry_st group_x25519 = {
|
||||
- .name = "X25519",
|
||||
- .id = GNUTLS_GROUP_X25519,
|
||||
- .curve = GNUTLS_ECC_CURVE_X25519,
|
||||
- .tls_id = 29,
|
||||
- .pk = GNUTLS_PK_ECDH_X25519,
|
||||
-};
|
||||
-
|
||||
static const gnutls_group_entry_st supported_groups[] = {
|
||||
{
|
||||
.name = "SECP192R1",
|
||||
@@ -90,7 +66,13 @@ static const gnutls_group_entry_st supported_groups[] = {
|
||||
.tls_id = 25,
|
||||
.pk = GNUTLS_PK_ECDSA,
|
||||
},
|
||||
- group_x25519,
|
||||
+ {
|
||||
+ .name = "X25519",
|
||||
+ .id = GNUTLS_GROUP_X25519,
|
||||
+ .curve = GNUTLS_ECC_CURVE_X25519,
|
||||
+ .tls_id = 29,
|
||||
+ .pk = GNUTLS_PK_ECDH_X25519,
|
||||
+ },
|
||||
#ifdef ENABLE_GOST
|
||||
/* draft-smyshlyaev-tls12-gost-suites-06, Section 6 */
|
||||
{
|
||||
@@ -191,24 +173,33 @@ static const gnutls_group_entry_st supported_groups[] = {
|
||||
.tls_id = 0x104 },
|
||||
#endif
|
||||
#ifdef HAVE_LIBOQS
|
||||
+ {
|
||||
+ .name = "MLKEM768",
|
||||
+ .id = GNUTLS_GROUP_EXP_MLKEM768,
|
||||
+ .pk = GNUTLS_PK_MLKEM768,
|
||||
+ /* absense of .tls_id means that this group alone cannot be used in TLS */
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "KYBER768",
|
||||
+ .id = GNUTLS_GROUP_EXP_KYBER768,
|
||||
+ .pk = GNUTLS_PK_EXP_KYBER768,
|
||||
+ /* absense of .tls_id means that this group alone cannot be used in TLS */
|
||||
+ },
|
||||
{ .name = "SECP256R1-MLKEM768",
|
||||
.id = GNUTLS_GROUP_EXP_SECP256R1_MLKEM768,
|
||||
- .curve = GNUTLS_ECC_CURVE_SECP256R1,
|
||||
- .pk = GNUTLS_PK_ECDSA,
|
||||
- .tls_id = 0x11EB,
|
||||
- .next = &group_mlkem768 },
|
||||
+ .ids = { GNUTLS_GROUP_SECP256R1, GNUTLS_GROUP_EXP_MLKEM768,
|
||||
+ GNUTLS_GROUP_INVALID },
|
||||
+ .tls_id = 0x11EB },
|
||||
{ .name = "X25519-MLKEM768",
|
||||
.id = GNUTLS_GROUP_EXP_X25519_MLKEM768,
|
||||
- .curve = GNUTLS_ECC_CURVE_INVALID,
|
||||
- .pk = GNUTLS_PK_MLKEM768,
|
||||
- .tls_id = 0x11EC,
|
||||
- .next = &group_x25519 },
|
||||
+ .ids = { GNUTLS_GROUP_EXP_MLKEM768, GNUTLS_GROUP_X25519,
|
||||
+ GNUTLS_GROUP_INVALID },
|
||||
+ .tls_id = 0x11EC },
|
||||
{ .name = "X25519-KYBER768",
|
||||
.id = GNUTLS_GROUP_EXP_X25519_KYBER768,
|
||||
- .curve = GNUTLS_ECC_CURVE_X25519,
|
||||
- .pk = GNUTLS_PK_ECDH_X25519,
|
||||
- .tls_id = 0x6399,
|
||||
- .next = &group_kyber768 },
|
||||
+ .ids = { GNUTLS_GROUP_X25519, GNUTLS_GROUP_EXP_KYBER768,
|
||||
+ GNUTLS_GROUP_INVALID },
|
||||
+ .tls_id = 0x6399 },
|
||||
#endif
|
||||
{ 0, 0, 0 }
|
||||
};
|
||||
@@ -221,14 +212,46 @@ static const gnutls_group_entry_st supported_groups[] = {
|
||||
} \
|
||||
}
|
||||
|
||||
+static inline const gnutls_group_entry_st *group_to_entry(gnutls_group_t group)
|
||||
+{
|
||||
+ if (group == 0)
|
||||
+ return NULL;
|
||||
+
|
||||
+ GNUTLS_GROUP_LOOP(if (p->id == group) { return p; });
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+static inline bool
|
||||
+group_is_supported_standalone(const gnutls_group_entry_st *group)
|
||||
+{
|
||||
+ return group->pk != 0 && _gnutls_pk_exists(group->pk) &&
|
||||
+ (group->curve == 0 ||
|
||||
+ _gnutls_ecc_curve_is_supported(group->curve));
|
||||
+}
|
||||
+
|
||||
+static inline bool group_is_supported(const gnutls_group_entry_st *group)
|
||||
+{
|
||||
+ if (!IS_GROUP_HYBRID(group))
|
||||
+ return group_is_supported_standalone(group);
|
||||
+
|
||||
+ for (size_t i = 0;
|
||||
+ i < MAX_HYBRID_GROUPS && group->ids[i] != GNUTLS_GROUP_INVALID;
|
||||
+ i++) {
|
||||
+ const gnutls_group_entry_st *p = group_to_entry(group->ids[i]);
|
||||
+ if (!p || !group_is_supported_standalone(p))
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
/* Returns the TLS id of the given curve
|
||||
*/
|
||||
const gnutls_group_entry_st *_gnutls_tls_id_to_group(unsigned num)
|
||||
{
|
||||
GNUTLS_GROUP_LOOP(
|
||||
- if (p->tls_id == num &&
|
||||
- (p->curve == 0 ||
|
||||
- _gnutls_ecc_curve_is_supported(p->curve))) { return p; });
|
||||
+ if (p->tls_id == num && group_is_supported(p)) { return p; });
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -239,10 +262,7 @@ const gnutls_group_entry_st *_gnutls_id_to_group(unsigned id)
|
||||
return NULL;
|
||||
|
||||
GNUTLS_GROUP_LOOP(
|
||||
- if (p->id == id && (p->curve == 0 ||
|
||||
- _gnutls_ecc_curve_is_supported(p->curve))) {
|
||||
- return p;
|
||||
- });
|
||||
+ if (p->id == id && group_is_supported(p)) { return p; });
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -261,27 +281,17 @@ const gnutls_group_entry_st *_gnutls_id_to_group(unsigned id)
|
||||
**/
|
||||
const gnutls_group_t *gnutls_group_list(void)
|
||||
{
|
||||
- static gnutls_group_t groups[MAX_ALGOS] = { 0 };
|
||||
+ static gnutls_group_t groups[MAX_ALGOS + 1] = { 0 };
|
||||
|
||||
if (groups[0] == 0) {
|
||||
- int i = 0;
|
||||
+ size_t i = 0;
|
||||
|
||||
- const gnutls_group_entry_st *p;
|
||||
-
|
||||
- for (p = supported_groups; p->name != NULL; p++) {
|
||||
- const gnutls_group_entry_st *pp;
|
||||
-
|
||||
- for (pp = p; pp != NULL; pp = pp->next) {
|
||||
- if ((pp->curve != 0 &&
|
||||
- !_gnutls_ecc_curve_is_supported(
|
||||
- pp->curve)) ||
|
||||
- (pp->pk != 0 && !_gnutls_pk_exists(pp->pk)))
|
||||
- break;
|
||||
- }
|
||||
- if (pp == NULL)
|
||||
+ for (const gnutls_group_entry_st *p = supported_groups;
|
||||
+ p->name != NULL; p++) {
|
||||
+ if (group_is_supported(p))
|
||||
groups[i++] = p->id;
|
||||
}
|
||||
- groups[i++] = 0;
|
||||
+ groups[i++] = GNUTLS_GROUP_INVALID;
|
||||
}
|
||||
|
||||
return groups;
|
||||
@@ -344,3 +354,34 @@ const char *gnutls_group_get_name(gnutls_group_t group)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
+
|
||||
+/* Expand GROUP into hybrid SUBGROUPS if any, otherwise an array
|
||||
+ * containing the GROUP itself. The result will be written to
|
||||
+ * SUBGROUPS, which will be NUL-terminated.
|
||||
+ */
|
||||
+int _gnutls_group_expand(
|
||||
+ const gnutls_group_entry_st *group,
|
||||
+ const gnutls_group_entry_st *subgroups[MAX_HYBRID_GROUPS + 1])
|
||||
+{
|
||||
+ size_t pos = 0;
|
||||
+
|
||||
+ if (IS_GROUP_HYBRID(group)) {
|
||||
+ for (size_t i = 0; i < MAX_HYBRID_GROUPS &&
|
||||
+ group->ids[i] != GNUTLS_GROUP_INVALID;
|
||||
+ i++) {
|
||||
+ const gnutls_group_entry_st *p =
|
||||
+ group_to_entry(group->ids[i]);
|
||||
+ /* This shouldn't happen, as GROUP is assumed
|
||||
+ * to be supported before calling this
|
||||
+ * function. */
|
||||
+ if (unlikely(!p))
|
||||
+ return gnutls_assert_val(
|
||||
+ GNUTLS_E_INTERNAL_ERROR);
|
||||
+ subgroups[pos++] = p;
|
||||
+ }
|
||||
+ } else {
|
||||
+ subgroups[pos++] = group;
|
||||
+ }
|
||||
+ subgroups[pos] = NULL;
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/lib/ext/key_share.c b/lib/ext/key_share.c
|
||||
index 574521157..8fbe2d2bd 100644
|
||||
--- a/lib/ext/key_share.c
|
||||
+++ b/lib/ext/key_share.c
|
||||
@@ -232,6 +232,9 @@ static int client_gen_key_share(gnutls_session_t session,
|
||||
gnutls_buffer_st *extdata)
|
||||
{
|
||||
unsigned int length_pos;
|
||||
+ const gnutls_group_entry_st *groups[MAX_HYBRID_GROUPS + 1] = {
|
||||
+ NULL,
|
||||
+ };
|
||||
int ret;
|
||||
|
||||
_gnutls_handshake_log("EXT[%p]: sending key share for %s\n", session,
|
||||
@@ -247,8 +250,12 @@ static int client_gen_key_share(gnutls_session_t session,
|
||||
if (ret < 0)
|
||||
return gnutls_assert_val(ret);
|
||||
|
||||
- for (const gnutls_group_entry_st *p = group; p != NULL; p = p->next) {
|
||||
- ret = client_gen_key_share_single(session, p, extdata);
|
||||
+ ret = _gnutls_group_expand(group, groups);
|
||||
+ if (ret < 0)
|
||||
+ return gnutls_assert_val(ret);
|
||||
+
|
||||
+ for (size_t i = 0; groups[i]; i++) {
|
||||
+ ret = client_gen_key_share_single(session, groups[i], extdata);
|
||||
if (ret < 0)
|
||||
return gnutls_assert_val(ret);
|
||||
}
|
||||
@@ -345,6 +352,9 @@ static int server_gen_key_share(gnutls_session_t session,
|
||||
gnutls_buffer_st *extdata)
|
||||
{
|
||||
unsigned int length_pos;
|
||||
+ const gnutls_group_entry_st *groups[MAX_HYBRID_GROUPS + 1] = {
|
||||
+ NULL,
|
||||
+ };
|
||||
int ret;
|
||||
|
||||
_gnutls_handshake_log("EXT[%p]: sending key share for %s\n", session,
|
||||
@@ -360,8 +370,12 @@ static int server_gen_key_share(gnutls_session_t session,
|
||||
if (ret < 0)
|
||||
return gnutls_assert_val(ret);
|
||||
|
||||
- for (const gnutls_group_entry_st *p = group; p != NULL; p = p->next) {
|
||||
- ret = server_gen_key_share_single(session, p, extdata);
|
||||
+ ret = _gnutls_group_expand(group, groups);
|
||||
+ if (ret < 0)
|
||||
+ return gnutls_assert_val(ret);
|
||||
+
|
||||
+ for (size_t i = 0; groups[i]; i++) {
|
||||
+ ret = server_gen_key_share_single(session, groups[i], extdata);
|
||||
if (ret < 0)
|
||||
return gnutls_assert_val(ret);
|
||||
}
|
||||
@@ -594,13 +608,19 @@ static int server_use_key_share(gnutls_session_t session,
|
||||
const uint8_t *data, size_t data_size)
|
||||
{
|
||||
gnutls_buffer_st buffer;
|
||||
+ const gnutls_group_entry_st *groups[MAX_HYBRID_GROUPS + 1] = {
|
||||
+ NULL,
|
||||
+ };
|
||||
+ int ret;
|
||||
|
||||
_gnutls_ro_buffer_init(&buffer, data, data_size);
|
||||
|
||||
- for (const gnutls_group_entry_st *p = group; p != NULL; p = p->next) {
|
||||
- int ret;
|
||||
+ ret = _gnutls_group_expand(group, groups);
|
||||
+ if (ret < 0)
|
||||
+ return gnutls_assert_val(ret);
|
||||
|
||||
- ret = server_use_key_share_single(session, p, &buffer);
|
||||
+ for (size_t i = 0; groups[i]; i++) {
|
||||
+ ret = server_use_key_share_single(session, groups[i], &buffer);
|
||||
if (ret < 0)
|
||||
return gnutls_assert_val(ret);
|
||||
}
|
||||
@@ -775,13 +795,19 @@ static int client_use_key_share(gnutls_session_t session,
|
||||
const uint8_t *data, size_t data_size)
|
||||
{
|
||||
gnutls_buffer_st buffer;
|
||||
+ const gnutls_group_entry_st *groups[MAX_HYBRID_GROUPS + 1] = {
|
||||
+ NULL,
|
||||
+ };
|
||||
+ int ret;
|
||||
|
||||
_gnutls_ro_buffer_init(&buffer, data, data_size);
|
||||
|
||||
- for (const gnutls_group_entry_st *p = group; p != NULL; p = p->next) {
|
||||
- int ret;
|
||||
+ ret = _gnutls_group_expand(group, groups);
|
||||
+ if (ret < 0)
|
||||
+ return gnutls_assert_val(ret);
|
||||
|
||||
- ret = client_use_key_share_single(session, p, &buffer);
|
||||
+ for (size_t i = 0; groups[i]; i++) {
|
||||
+ ret = client_use_key_share_single(session, groups[i], &buffer);
|
||||
if (ret < 0)
|
||||
return gnutls_assert_val(ret);
|
||||
}
|
||||
@@ -958,18 +984,39 @@ static int key_share_recv_params(gnutls_session_t session, const uint8_t *data,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static inline bool pk_types_overlap_single(const gnutls_group_entry_st *a,
|
||||
+ const gnutls_group_entry_st *b)
|
||||
+{
|
||||
+ return a->pk == b->pk || (IS_ECDHX(a->pk) && IS_ECDHX(b->pk)) ||
|
||||
+ (IS_KEM(a->pk) && IS_KEM(b->pk));
|
||||
+}
|
||||
+
|
||||
static inline bool pk_types_overlap(const gnutls_group_entry_st *a,
|
||||
const gnutls_group_entry_st *b)
|
||||
{
|
||||
- const gnutls_group_entry_st *pa;
|
||||
+ const gnutls_group_entry_st *sa[MAX_HYBRID_GROUPS + 1] = {
|
||||
+ NULL,
|
||||
+ };
|
||||
+ const gnutls_group_entry_st *sb[MAX_HYBRID_GROUPS + 1] = {
|
||||
+ NULL,
|
||||
+ };
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = _gnutls_group_expand(a, sa);
|
||||
+ if (ret < 0) {
|
||||
+ gnutls_assert();
|
||||
+ return false;
|
||||
+ }
|
||||
|
||||
- for (pa = a; pa != NULL; pa = pa->next) {
|
||||
- const gnutls_group_entry_st *pb;
|
||||
+ ret = _gnutls_group_expand(b, sb);
|
||||
+ if (ret < 0) {
|
||||
+ gnutls_assert();
|
||||
+ return false;
|
||||
+ }
|
||||
|
||||
- for (pb = b; pb != NULL; pb = pb->next) {
|
||||
- if (pa->pk == pb->pk ||
|
||||
- (IS_ECDHX(pa->pk) && IS_ECDHX(pb->pk)) ||
|
||||
- (IS_KEM(pa->pk) && IS_KEM(pb->pk)))
|
||||
+ for (size_t i = 0; sa[i]; i++) {
|
||||
+ for (size_t j = 0; sb[j]; j++) {
|
||||
+ if (pk_types_overlap_single(sa[i], sb[j]))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
diff --git a/lib/ext/supported_groups.c b/lib/ext/supported_groups.c
|
||||
index 254ec4882..4c31d2f8f 100644
|
||||
--- a/lib/ext/supported_groups.c
|
||||
+++ b/lib/ext/supported_groups.c
|
||||
@@ -106,9 +106,9 @@ static int _gnutls_supported_groups_recv_params(gnutls_session_t session,
|
||||
unsigned min_dh;
|
||||
unsigned j;
|
||||
int serv_ec_idx, serv_dh_idx,
|
||||
- serv_kem_idx; /* index in server's priority listing */
|
||||
+ serv_hybrid_idx; /* index in server's priority listing */
|
||||
int cli_ec_pos, cli_dh_pos,
|
||||
- cli_kem_pos; /* position in listing sent by client */
|
||||
+ cli_hybrid_pos; /* position in listing sent by client */
|
||||
|
||||
if (session->security_parameters.entity == GNUTLS_CLIENT) {
|
||||
/* A client shouldn't receive this extension in TLS1.2. It is
|
||||
@@ -134,8 +134,8 @@ static int _gnutls_supported_groups_recv_params(gnutls_session_t session,
|
||||
/* we figure what is the minimum DH allowed for this session, if any */
|
||||
min_dh = get_min_dh(session);
|
||||
|
||||
- serv_ec_idx = serv_dh_idx = serv_kem_idx = -1;
|
||||
- cli_ec_pos = cli_dh_pos = cli_kem_pos = -1;
|
||||
+ serv_ec_idx = serv_dh_idx = serv_hybrid_idx = -1;
|
||||
+ cli_ec_pos = cli_dh_pos = cli_hybrid_pos = -1;
|
||||
|
||||
/* This extension is being processed prior to a ciphersuite being selected,
|
||||
* so we cannot rely on ciphersuite information. */
|
||||
@@ -180,14 +180,15 @@ static int _gnutls_supported_groups_recv_params(gnutls_session_t session,
|
||||
break;
|
||||
serv_ec_idx = j;
|
||||
cli_ec_pos = i;
|
||||
- } else if (IS_KEM(group->pk)) {
|
||||
- if (serv_kem_idx !=
|
||||
+ } else if (IS_GROUP_HYBRID(
|
||||
+ group)) {
|
||||
+ if (serv_hybrid_idx !=
|
||||
-1 &&
|
||||
(int)j >
|
||||
- serv_kem_idx)
|
||||
+ serv_hybrid_idx)
|
||||
break;
|
||||
- serv_kem_idx = j;
|
||||
- cli_kem_pos = i;
|
||||
+ serv_hybrid_idx = j;
|
||||
+ cli_hybrid_pos = i;
|
||||
}
|
||||
} else {
|
||||
if (group->pk == GNUTLS_PK_DH) {
|
||||
@@ -200,11 +201,13 @@ static int _gnutls_supported_groups_recv_params(gnutls_session_t session,
|
||||
break;
|
||||
cli_ec_pos = i;
|
||||
serv_ec_idx = j;
|
||||
- } else if (IS_KEM(group->pk)) {
|
||||
- if (cli_kem_pos != -1)
|
||||
+ } else if (IS_GROUP_HYBRID(
|
||||
+ group)) {
|
||||
+ if (cli_hybrid_pos !=
|
||||
+ -1)
|
||||
break;
|
||||
- cli_kem_pos = i;
|
||||
- serv_kem_idx = j;
|
||||
+ cli_hybrid_pos = i;
|
||||
+ serv_hybrid_idx = j;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -212,7 +215,7 @@ static int _gnutls_supported_groups_recv_params(gnutls_session_t session,
|
||||
}
|
||||
}
|
||||
|
||||
- /* serv_{dh,ec,kem}_idx contain the index of the groups we want to use.
|
||||
+ /* serv_{dh,ec,hybrid}_idx contain the index of the groups we want to use.
|
||||
*/
|
||||
if (serv_dh_idx != -1) {
|
||||
session->internals.cand_dh_group =
|
||||
@@ -236,18 +239,20 @@ static int _gnutls_supported_groups_recv_params(gnutls_session_t session,
|
||||
}
|
||||
}
|
||||
|
||||
- /* KEM can only be used in TLS 1.3, where no separation from
|
||||
- * ECDH and DH, and thus only cand_group is set here.
|
||||
+ /* PQC hybrid key exchange groups can only be used in
|
||||
+ * TLS 1.3, where no distinction between ECDH and DH
|
||||
+ * in the group definitions, and thus only cand_group
|
||||
+ * is set here.
|
||||
*/
|
||||
- if (serv_kem_idx != -1) {
|
||||
+ if (serv_hybrid_idx != -1) {
|
||||
if (session->internals.cand_group == NULL ||
|
||||
(session->internals.priorities->server_precedence &&
|
||||
- serv_kem_idx < MIN(serv_ec_idx, serv_dh_idx)) ||
|
||||
+ serv_hybrid_idx < MIN(serv_ec_idx, serv_dh_idx)) ||
|
||||
(!session->internals.priorities->server_precedence &&
|
||||
- cli_kem_pos < MIN(cli_ec_pos, cli_dh_pos))) {
|
||||
+ cli_hybrid_pos < MIN(cli_ec_pos, cli_dh_pos))) {
|
||||
session->internals.cand_group =
|
||||
session->internals.priorities->groups
|
||||
- .entry[serv_kem_idx];
|
||||
+ .entry[serv_hybrid_idx];
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/lib/gnutls_int.h b/lib/gnutls_int.h
|
||||
index fb2cacb54..01ef59729 100644
|
||||
--- a/lib/gnutls_int.h
|
||||
+++ b/lib/gnutls_int.h
|
||||
@@ -756,6 +756,8 @@ typedef struct gnutls_cipher_suite_entry_st {
|
||||
gnutls_mac_algorithm_t prf;
|
||||
} gnutls_cipher_suite_entry_st;
|
||||
|
||||
+#define MAX_HYBRID_GROUPS 2
|
||||
+
|
||||
typedef struct gnutls_group_entry_st {
|
||||
const char *name;
|
||||
gnutls_group_t id;
|
||||
@@ -765,8 +767,12 @@ typedef struct gnutls_group_entry_st {
|
||||
const unsigned *q_bits;
|
||||
gnutls_ecc_curve_t curve;
|
||||
gnutls_pk_algorithm_t pk;
|
||||
+ gnutls_group_t ids[MAX_HYBRID_GROUPS + 1]; /* IDs of subgroups
|
||||
+ * comprising a
|
||||
+ * hybrid group,
|
||||
+ * terminated with
|
||||
+ * GNUTLS_GROUP_INVALID */
|
||||
unsigned tls_id; /* The RFC4492 namedCurve ID or TLS 1.3 group ID */
|
||||
- const struct gnutls_group_entry_st *next;
|
||||
} gnutls_group_entry_st;
|
||||
|
||||
#define GNUTLS_MAC_FLAG_PREIMAGE_INSECURE \
|
||||
diff --git a/lib/includes/gnutls/gnutls.h.in b/lib/includes/gnutls/gnutls.h.in
|
||||
index 8b3bb5213..1e44fdd91 100644
|
||||
--- a/lib/includes/gnutls/gnutls.h.in
|
||||
+++ b/lib/includes/gnutls/gnutls.h.in
|
||||
@@ -1147,8 +1147,10 @@ typedef enum {
|
||||
GNUTLS_GROUP_EXP_X25519_KYBER768 = 512,
|
||||
GNUTLS_GROUP_EXP_SECP256R1_MLKEM768 = 513,
|
||||
GNUTLS_GROUP_EXP_X25519_MLKEM768 = 514,
|
||||
+ GNUTLS_GROUP_EXP_KYBER768 = 515,
|
||||
+ GNUTLS_GROUP_EXP_MLKEM768 = 516,
|
||||
GNUTLS_GROUP_EXP_MIN = GNUTLS_GROUP_EXP_X25519_KYBER768,
|
||||
- GNUTLS_GROUP_EXP_MAX = GNUTLS_GROUP_EXP_X25519_MLKEM768
|
||||
+ GNUTLS_GROUP_EXP_MAX = GNUTLS_GROUP_EXP_MLKEM768
|
||||
} gnutls_group_t;
|
||||
|
||||
/* macros to allow specifying a specific curve in gnutls_privkey_generate()
|
||||
diff --git a/lib/priority.c b/lib/priority.c
|
||||
index ac4ff2d8c..479dbccd6 100644
|
||||
--- a/lib/priority.c
|
||||
+++ b/lib/priority.c
|
||||
@@ -2566,7 +2566,7 @@ static void add_dh(gnutls_priority_t priority_cache)
|
||||
}
|
||||
}
|
||||
|
||||
-static void add_kem(gnutls_priority_t priority_cache)
|
||||
+static void add_hybrid(gnutls_priority_t priority_cache)
|
||||
{
|
||||
const gnutls_group_entry_st *ge;
|
||||
unsigned i;
|
||||
@@ -2579,7 +2579,7 @@ static void add_kem(gnutls_priority_t priority_cache)
|
||||
sizeof(priority_cache->groups.entry) /
|
||||
sizeof(priority_cache->groups.entry[0])) {
|
||||
/* do not add groups which do not correspond to enabled ciphersuites */
|
||||
- if (!IS_KEM(ge->pk))
|
||||
+ if (!IS_GROUP_HYBRID(ge))
|
||||
continue;
|
||||
priority_cache->groups
|
||||
.entry[priority_cache->groups.size++] = ge;
|
||||
@@ -2598,7 +2598,7 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
|
||||
const gnutls_sign_entry_st *se;
|
||||
unsigned have_ec = 0;
|
||||
unsigned have_dh = 0;
|
||||
- unsigned have_kem = 0;
|
||||
+ unsigned have_hybrid = 0;
|
||||
unsigned tls_sig_sem = 0;
|
||||
const version_entry_st *tlsmax = NULL, *vers;
|
||||
const version_entry_st *dtlsmax = NULL;
|
||||
@@ -2807,9 +2807,9 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
|
||||
priority_cache->cs.entry[priority_cache->cs.size++] =
|
||||
ce;
|
||||
|
||||
- if (!have_kem) {
|
||||
- have_kem = 1;
|
||||
- add_kem(priority_cache);
|
||||
+ if (!have_hybrid) {
|
||||
+ have_hybrid = 1;
|
||||
+ add_hybrid(priority_cache);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2851,8 +2851,8 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
|
||||
}
|
||||
}
|
||||
|
||||
- if (have_tls13 && (!have_ec || !have_dh || !have_kem)) {
|
||||
- /* scan groups to determine have_{ec,dh,kem} */
|
||||
+ if (have_tls13 && (!have_ec || !have_dh || !have_hybrid)) {
|
||||
+ /* scan groups to determine have_{ec,dh,hybrid} */
|
||||
for (i = 0; i < priority_cache->_supported_ecc.num_priorities;
|
||||
i++) {
|
||||
const gnutls_group_entry_st *ge;
|
||||
@@ -2865,12 +2865,13 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
|
||||
} else if (ge->prime && !have_dh) {
|
||||
add_dh(priority_cache);
|
||||
have_dh = 1;
|
||||
- } else if (IS_KEM(ge->pk) && !have_kem) {
|
||||
- add_kem(priority_cache);
|
||||
- have_kem = 1;
|
||||
+ } else if (IS_GROUP_HYBRID(ge) &&
|
||||
+ !have_hybrid) {
|
||||
+ add_hybrid(priority_cache);
|
||||
+ have_hybrid = 1;
|
||||
}
|
||||
|
||||
- if (have_dh && have_ec && have_kem)
|
||||
+ if (have_dh && have_ec && have_hybrid)
|
||||
break;
|
||||
}
|
||||
}
|
||||
diff --git a/lib/session.c b/lib/session.c
|
||||
index a9049a464..7fcbe4fb4 100644
|
||||
--- a/lib/session.c
|
||||
+++ b/lib/session.c
|
||||
@@ -415,7 +415,11 @@ char *gnutls_session_get_desc(gnutls_session_t session)
|
||||
snprintf(kx_name, sizeof(kx_name), "(PSK)");
|
||||
}
|
||||
} else if (group && sign_str) {
|
||||
- if (group->curve)
|
||||
+ if (IS_GROUP_HYBRID(group))
|
||||
+ snprintf(kx_name, sizeof(kx_name),
|
||||
+ "(HYBRID-%s)-(%s)", group_name,
|
||||
+ sign_str);
|
||||
+ else if (group->curve)
|
||||
snprintf(kx_name, sizeof(kx_name),
|
||||
"(ECDHE-%s)-(%s)", group_name,
|
||||
sign_str);
|
||||
diff --git a/tests/pqc-hybrid-kx.sh b/tests/pqc-hybrid-kx.sh
|
||||
index da936cf04..4984cd4b4 100644
|
||||
--- a/tests/pqc-hybrid-kx.sh
|
||||
+++ b/tests/pqc-hybrid-kx.sh
|
||||
@@ -33,34 +33,113 @@
|
||||
|
||||
. "${srcdir}/scripts/common.sh"
|
||||
|
||||
+# First check any mismatch in the gnutls-cli --list
|
||||
if ! "${CLI}" --list | grep '^Groups: .*GROUP-X25519-KYBER768.*' >/dev/null; then
|
||||
if "${CLI}" --list | grep '^Public Key Systems: .*KYBER768.*' >/dev/null; then
|
||||
- fail "KYBER768 is in Public Key Systems, while GROUP-X25519-KYBER768 is NOT in Groups"
|
||||
+ fail '' 'KYBER768 is in Public Key Systems, while GROUP-X25519-KYBER768 is NOT in Groups'
|
||||
fi
|
||||
- exit 77
|
||||
else
|
||||
if ! "${CLI}" --list | grep '^Public Key Systems: .*KYBER768.*' >/dev/null; then
|
||||
- fail "KYBER768 is NOT in Public Key Systems, while GROUP-X25519-KYBER768 is in Groups"
|
||||
+ fail '' 'KYBER768 is NOT in Public Key Systems, while GROUP-X25519-KYBER768 is in Groups'
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
+if ! "${CLI}" --list | grep '^Groups: .*GROUP-\(SECP256R1\|X25519\)-MLKEM768.*' >/dev/null; then
|
||||
+ if "${CLI}" --list | grep '^Public Key Systems: .*ML-KEM-768.*' >/dev/null; then
|
||||
+ fail '' 'ML-KEM-768 is in Public Key Systems, while GROUP-SECP256R1-MLKEM768 or GROUP-X25519-MLKEM768 is NOT in Groups'
|
||||
+ fi
|
||||
+else
|
||||
+ if ! "${CLI}" --list | grep '^Public Key Systems: .*ML-KEM-768.*' >/dev/null; then
|
||||
+ fail '' 'ML-KEM-768 is NOT in Public Key Systems, while GROUP-SECP256R1-MLKEM768 or GROUP-X25519-MLKEM768 is in Groups'
|
||||
fi
|
||||
fi
|
||||
|
||||
+# If none of those hybrid groups is supported, skip the test
|
||||
+if ! "${CLI}" --list | grep '^Groups: .*GROUP-\(X25519-KYBER768\|SECP256R1-MLKEM768\|X25519-MLKEM768\).*' >/dev/null; then
|
||||
+ exit 77
|
||||
+fi
|
||||
+
|
||||
testdir=`create_testdir pqc-hybrid-kx`
|
||||
|
||||
KEY="$srcdir/../doc/credentials/x509/key-ecc.pem"
|
||||
CERT="$srcdir/../doc/credentials/x509/cert-ecc.pem"
|
||||
CACERT="$srcdir/../doc/credentials/x509/ca.pem"
|
||||
|
||||
-eval "${GETPORT}"
|
||||
-launch_server --echo --priority NORMAL:-GROUP-ALL:+GROUP-X25519-KYBER768 --x509keyfile="$KEY" --x509certfile="$CERT"
|
||||
-PID=$!
|
||||
-wait_server ${PID}
|
||||
+# Test all supported hybrid groups
|
||||
+for group in X25519-KYBER768 SECP256R1-MLKEM768 X25519-MLKEM768; do
|
||||
+ if ! "${CLI}" --list | grep "^Groups: .*GROUP-$group.*" >/dev/null; then
|
||||
+ echo "$group is not supported, skipping" >&2
|
||||
+ continue
|
||||
+ fi
|
||||
+
|
||||
+ eval "${GETPORT}"
|
||||
+ launch_server --echo --priority "NORMAL:-GROUP-ALL:+GROUP-$group" --x509keyfile="$KEY" --x509certfile="$CERT"
|
||||
+ PID=$!
|
||||
+ wait_server ${PID}
|
||||
+
|
||||
+ ${VALGRIND} "${CLI}" -p "${PORT}" localhost --priority "NORMAL:-GROUP-ALL:+GROUP-$group" --x509cafile="$CACERT" --logfile="$testdir/cli.log" </dev/null
|
||||
+ kill ${PID}
|
||||
+ wait
|
||||
+
|
||||
+ grep -- "- Description: (TLS1.3-X.509)-(HYBRID-$group)-(ECDSA-SECP256R1-SHA256)-(AES-256-GCM)" "$testdir/cli.log" || { echo "unexpected handshake description"; cat "$testdir/cli.log"; exit 1; }
|
||||
+done
|
||||
+
|
||||
+# KEM based groups cannot be used standalone
|
||||
+for group in KYBER768 MLKEM768; do
|
||||
+ if ! "${CLI}" --list | grep "^Groups: .*GROUP-$group.*" >/dev/null; then
|
||||
+ "$group is not supported, skipping"
|
||||
+ continue
|
||||
+ fi
|
||||
+
|
||||
+ eval "${GETPORT}"
|
||||
+ launch_server --echo --priority "NORMAL:-GROUP-ALL:+GROUP-$group" --x509keyfile="$KEY" --x509certfile="$CERT"
|
||||
+ PID=$!
|
||||
+ wait_server ${PID}
|
||||
+
|
||||
+ ${VALGRIND} "${CLI}" -p "${PORT}" localhost --priority "NORMAL:-GROUP-ALL:+GROUP-$group" --x509cafile="$CACERT" --logfile="$testdir/cli.log" </dev/null
|
||||
+ rc=$?
|
||||
+ kill ${PID}
|
||||
+ wait
|
||||
+
|
||||
+ if test $rc -eq 0; then
|
||||
+ fail '' 'Handshake succeeded with a standalone KEM group'
|
||||
+ fi
|
||||
+done
|
||||
+
|
||||
+# Check if disabling a curve will also disables hybrid groups with it
|
||||
+cat <<_EOF_ > "$testdir/test.config"
|
||||
+[overrides]
|
||||
+
|
||||
+disabled-curve = x25519
|
||||
+_EOF_
|
||||
+
|
||||
+for group in X25519-KYBER768 SECP256R1-MLKEM768 X25519-MLKEM768; do
|
||||
+ if ! "${CLI}" --list | grep "^Groups: .*GROUP-$group.*" >/dev/null; then
|
||||
+ echo "$group is not supported, skipping" >&2
|
||||
+ continue
|
||||
+ fi
|
||||
|
||||
-${VALGRIND} "${CLI}" -p "${PORT}" localhost --priority NORMAL:-GROUP-ALL:+GROUP-X25519-KYBER768 --x509cafile="$CACERT" --logfile="$testdir/cli.log" </dev/null
|
||||
+ eval "${GETPORT}"
|
||||
+ GNUTLS_SYSTEM_PRIORITY_FILE="$testdir/test.config" launch_server --echo --priority "NORMAL:-GROUP-ALL:+GROUP-$group" --x509keyfile="$KEY" --x509certfile="$CERT"
|
||||
+ PID=$!
|
||||
+ wait_server ${PID}
|
||||
|
||||
-kill ${PID}
|
||||
-wait
|
||||
+ ${VALGRIND} "${CLI}" -p "${PORT}" localhost --priority "NORMAL:-GROUP-ALL:+GROUP-$group" --x509cafile="$CACERT" --logfile="$testdir/cli.log" </dev/null
|
||||
+ rc=$?
|
||||
+ kill ${PID}
|
||||
+ wait
|
||||
|
||||
-grep -- '- Description: (TLS1.3-X.509)-(ECDHE-X25519-KYBER768)-(ECDSA-SECP256R1-SHA256)-(AES-256-GCM)' "$testdir/cli.log" || { echo "unexpected handshake description"; exit 1; }
|
||||
+ case "$group" in
|
||||
+ X25519*)
|
||||
+ if test $rc -eq 0; then
|
||||
+ fail '' 'Handshake succeeded with a hybrid group with X25519'
|
||||
+ fi
|
||||
+ ;;
|
||||
+ *)
|
||||
+ grep -- "- Description: (TLS1.3-X.509)-(HYBRID-$group)-(ECDSA-SECP256R1-SHA256)-(AES-256-GCM)" "$testdir/cli.log" || { echo "unexpected handshake description"; cat "$testdir/cli.log"; exit 1; }
|
||||
+ ;;
|
||||
+ esac
|
||||
+done
|
||||
|
||||
rm -rf "$testdir"
|
||||
exit 0
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
# https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-3.8.8.tar.xz.sig
|
||||
sha256 ac4f020e583880b51380ed226e59033244bc536cad2623f2e26f5afa2939d8fb gnutls-3.8.8.tar.xz
|
||||
# https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-3.8.9.tar.xz.sig
|
||||
sha256 69e113d802d1670c4d5ac1b99040b1f2d5c7c05daec5003813c049b5184820ed gnutls-3.8.9.tar.xz
|
||||
# Locally calculated
|
||||
sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 doc/COPYING
|
||||
sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 doc/COPYING.LESSER
|
||||
sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 COPYING
|
||||
sha256 20e50fe7aae3e56378ebf0417d9de904f55a0e61e4df315333e632a4d3555d95 COPYING.LESSERv2
|
||||
sha256 5e4aca90e8e08e47558dfd21e2a42251a139242b0016a06708739eeb8f0da60c README.md
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
# When bumping, make sure *all* --without-libfoo-prefix options are in GNUTLS_CONF_OPTS
|
||||
GNUTLS_VERSION_MAJOR = 3.8
|
||||
GNUTLS_VERSION = $(GNUTLS_VERSION_MAJOR).8
|
||||
GNUTLS_VERSION = $(GNUTLS_VERSION_MAJOR).9
|
||||
GNUTLS_SOURCE = gnutls-$(GNUTLS_VERSION).tar.xz
|
||||
GNUTLS_SITE = https://www.gnupg.org/ftp/gcrypt/gnutls/v$(GNUTLS_VERSION_MAJOR)
|
||||
GNUTLS_LICENSE = LGPL-2.1+ (core library)
|
||||
GNUTLS_LICENSE_FILES = doc/COPYING.LESSER
|
||||
GNUTLS_LICENSE_FILES = COPYING.LESSERv2 README.md
|
||||
|
||||
GNUTLS_DEPENDENCIES = host-pkgconf libtasn1 libunistring nettle
|
||||
GNUTLS_CPE_ID_VENDOR = gnu
|
||||
@@ -70,7 +70,7 @@ HOST_GNUTLS_CONF_OPTS = \
|
||||
|
||||
ifeq ($(BR2_PACKAGE_GNUTLS_OPENSSL),y)
|
||||
GNUTLS_LICENSE += , GPL-3.0+ (gnutls-openssl library)
|
||||
GNUTLS_LICENSE_FILES += doc/COPYING
|
||||
GNUTLS_LICENSE_FILES += COPYING
|
||||
GNUTLS_CONF_OPTS += --enable-openssl-compatibility
|
||||
else
|
||||
GNUTLS_CONF_OPTS += --disable-openssl-compatibility
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
# sha256 checksum from https://go.dev/dl/
|
||||
sha256 ad345ac421e90814293a9699cca19dd5238251c3f687980bbcae28495b263531 go1.23.4.src.tar.gz
|
||||
sha256 4a4a0e7587ef8c8a326439b957027f2791795e2d29d4ae3885b4091a48f843bc go1.23.4.linux-386.tar.gz
|
||||
sha256 6924efde5de86fe277676e929dc9917d466efa02fb934197bc2eba35d5680971 go1.23.4.linux-amd64.tar.gz
|
||||
sha256 16e5017863a7f6071363782b1b8042eb12c6ca4f4cd71528b2123f0a1275b13e go1.23.4.linux-arm64.tar.gz
|
||||
sha256 1f1dda0dc7ce0b2295f57258ec5ef0803fd31b9ed0aa20e2e9222334e5755de1 go1.23.4.linux-armv6l.tar.gz
|
||||
sha256 65a303ef51e48ff77e004a6a5b4db6ce59495cd59c6af51b54bf4f786c01a1b9 go1.23.4.linux-ppc64le.tar.gz
|
||||
sha256 74aab82bf4eca7c26c830a5b0e2a31d193a4d5ba47045526b92473cc7188d7d7 go1.23.4.linux-s390x.tar.gz
|
||||
sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 LICENSE
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../go.hash
|
||||
@@ -1,3 +0,0 @@
|
||||
# From https://go.dev/dl
|
||||
sha256 ad345ac421e90814293a9699cca19dd5238251c3f687980bbcae28495b263531 go1.23.4.src.tar.gz
|
||||
sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 LICENSE
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../go.hash
|
||||
@@ -0,0 +1,9 @@
|
||||
# sha256 checksum from https://go.dev/dl/
|
||||
sha256 7cfabd46b73eb4c26b19d69515dd043d7183a6559acccd5cfdb25eb6b266a458 go1.23.7.src.tar.gz
|
||||
sha256 9115f7d751efe5b17b63a7630d24cd0a2479976465eecb277b5deec8aa0f4143 go1.23.7.linux-386.tar.gz
|
||||
sha256 4741525e69841f2e22f9992af25df0c1112b07501f61f741c12c6389fcb119f3 go1.23.7.linux-amd64.tar.gz
|
||||
sha256 597acbd0505250d4d98c4c83adf201562a8c812cbcd7b341689a07087a87a541 go1.23.7.linux-arm64.tar.gz
|
||||
sha256 c9e9ecd6a8cf1429f1c65d81115c450258258ac65833d95a82d5f4e5ad7d2d7a go1.23.7.linux-armv6l.tar.gz
|
||||
sha256 3ffc310bfd11fd0bcc713a764a0f7252c4d52d03f12abebfaebaaae77e027028 go1.23.7.linux-ppc64le.tar.gz
|
||||
sha256 af1d4c5d01e32c2cf6e3cc00e44cb240e1a6cef539b28a64389b2b9ca284ac6c go1.23.7.linux-s390x.tar.gz
|
||||
sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 LICENSE
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
GO_VERSION = 1.23.4
|
||||
GO_VERSION = 1.23.7
|
||||
|
||||
HOST_GO_GOPATH = $(HOST_DIR)/share/go-path
|
||||
HOST_GO_HOST_CACHE = $(HOST_DIR)/share/host-go-cache
|
||||
|
||||
@@ -238,6 +238,7 @@ config BR2_PACKAGE_GPSD_PYTHON
|
||||
bool "build Python support and modules"
|
||||
depends on BR2_USE_WCHAR # python3
|
||||
select BR2_PACKAGE_PYTHON3
|
||||
select BR2_PACKAGE_PYTHON_SERIAL # runtime
|
||||
help
|
||||
Python libraries and tools for the gpsd service daemon
|
||||
including gpsfake test harness.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
HEIMDAL_VERSION = f4faaeaba371fff3f8d1bc14389f5e6d70ca8e17
|
||||
HEIMDAL_SITE = $(call github,heimdal,heimdal,$(HEIMDAL_VERSION))
|
||||
HOST_HEIMDAL_DEPENDENCIES = host-e2fsprogs host-ncurses host-pkgconf
|
||||
HOST_HEIMDAL_DEPENDENCIES = host-e2fsprogs host-ncurses host-pkgconf host-libxcrypt host-flex host-bison
|
||||
HOST_HEIMDAL_AUTORECONF = YES
|
||||
HEIMDAL_INSTALL_STAGING = YES
|
||||
# static because of -fPIC issues with e2fsprogs on x86_64 host
|
||||
@@ -29,7 +29,7 @@ HOST_HEIMDAL_CONF_OPTS = \
|
||||
--disable-heimdal-documentation
|
||||
|
||||
# Don't use compile_et from e2fsprogs as it raises a build failure with samba4
|
||||
HOST_HEIMDAL_CONF_ENV = ac_cv_prog_COMPILE_ET=no MAKEINFO=true
|
||||
HOST_HEIMDAL_CONF_ENV = ac_cv_prog_COMPILE_ET=no MAKEINFO=true LIBS=-lcrypt
|
||||
HEIMDAL_LICENSE = BSD-3-Clause
|
||||
HEIMDAL_LICENSE_FILES = LICENSE
|
||||
HEIMDAL_CPE_ID_VALID = YES
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Locally computed
|
||||
sha256 c82210ea3fdbd044b656ba3d5b42df1da9a18e78fc0e500169bad70d3b0d9ba3 imagemagick-7.1.1-31.tar.gz
|
||||
sha256 ceb972266b23dc7c1cfce0da5a7f0c9acfb4dc81f40eb542a49476fedbc2618f imagemagick-7.1.1-43.tar.gz
|
||||
sha256 a556c5292c87c9a6ac795c80669b0c3660f9f729de8c476bf2b10f83ab1b34ec LICENSE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
IMAGEMAGICK_VERSION = 7.1.1-31
|
||||
IMAGEMAGICK_VERSION = 7.1.1-43
|
||||
IMAGEMAGICK_SITE = $(call github,ImageMagick,ImageMagick,$(IMAGEMAGICK_VERSION))
|
||||
IMAGEMAGICK_LICENSE = Apache-2.0
|
||||
IMAGEMAGICK_LICENSE_FILES = LICENSE
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Locally computed
|
||||
sha256 37246208ef68039be752438c72400a688a2238df13a7f5282497c80be2d8366d intel-microcode-20241112.tar.gz
|
||||
sha256 1da88b51953c9da2e20b5c94b3d7270cf87ea5babcaa56e3d6a5c9eaf11694b3 intel-microcode-20250211.tar.gz
|
||||
sha256 03efb1491c7e899feb2665fa299363e64035e5444c1b8bc1f6ebed30de964e12 license
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
INTEL_MICROCODE_VERSION = 20241112
|
||||
INTEL_MICROCODE_VERSION = 20250211
|
||||
INTEL_MICROCODE_SITE = $(call github,intel,Intel-Linux-Processor-Microcode-Data-Files,microcode-$(INTEL_MICROCODE_VERSION))
|
||||
INTEL_MICROCODE_LICENSE = PROPRIETARY
|
||||
INTEL_MICROCODE_LICENSE_FILES = license
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From e60a9f388bd5655cb514491ef8d55d403aef0773 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Rasmussen <sebras@gmail.com>
|
||||
Date: Sun, 5 Nov 2023 12:21:52 +0100
|
||||
Subject: [PATCH] Bug 705041: jbig2dec: Avoid uninitialized allocator in
|
||||
command-line tool.
|
||||
|
||||
Upstream: https://github.com/ArtifexSoftware/jbig2dec/commit/ee53a7e4bc7819d32e8c0b2057885bcc97586bf3
|
||||
Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
|
||||
---
|
||||
jbig2dec.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/jbig2dec.c b/jbig2dec.c
|
||||
index 15d204d..1e1dad8 100644
|
||||
--- a/jbig2dec.c
|
||||
+++ b/jbig2dec.c
|
||||
@@ -567,7 +567,7 @@ main(int argc, char **argv)
|
||||
{
|
||||
jbig2dec_params_t params;
|
||||
jbig2dec_error_callback_state_t error_callback_state;
|
||||
- jbig2dec_allocator_t allocator_;
|
||||
+ jbig2dec_allocator_t allocator_ = { 0 };
|
||||
jbig2dec_allocator_t *allocator = &allocator_;
|
||||
Jbig2Ctx *ctx = NULL;
|
||||
FILE *f = NULL, *f_page = NULL;
|
||||
--
|
||||
2.48.1
|
||||
|
||||
@@ -14,4 +14,7 @@ JBIG2DEC_INSTALL_STAGING = YES
|
||||
# tarball is missing install-sh, install.sh, or shtool
|
||||
JBIG2DEC_AUTORECONF = YES
|
||||
|
||||
# 0001-Bug-705041-jbig2dec-Avoid-uninitialized-allocator-in.patch
|
||||
JBIG2DEC_IGNORE_CVES += CVE-2023-46361
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
||||
@@ -27,7 +27,6 @@ config BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
|
||||
depends on BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF
|
||||
depends on BR2_PACKAGE_HAS_UDEV # libinput
|
||||
select BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
|
||||
select BR2_PACKAGE_LIBDISPLAY_INFO
|
||||
|
||||
comment "kodi needs udev support for gbm"
|
||||
depends on !BR2_PACKAGE_KODI_PLATFORM_SUPPORTS
|
||||
@@ -108,6 +107,7 @@ menuconfig BR2_PACKAGE_KODI
|
||||
select BR2_PACKAGE_TINYXML2
|
||||
select BR2_PACKAGE_ZLIB
|
||||
select BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY if BR2_TOOLCHAIN_USES_GLIBC # runtime UTF conversion support
|
||||
select BR2_PACKAGE_LIBDISPLAY_INFO if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
|
||||
select BR2_PACKAGE_LIBINPUT if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
|
||||
select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_GBM
|
||||
select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_KODI_PLATFORM_SUPPORTS_WAYLAND
|
||||
|
||||
@@ -3,7 +3,6 @@ config BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
|
||||
default y
|
||||
# libbsd does not support those architectures (see src/local-elf.h)
|
||||
depends on !BR2_microblaze
|
||||
depends on !BR2_arc
|
||||
depends on !BR2_xtensa
|
||||
|
||||
config BR2_PACKAGE_LIBBSD
|
||||
|
||||
@@ -18,6 +18,7 @@ LIBCAMERA_DEPENDENCIES = \
|
||||
LIBCAMERA_CONF_OPTS = \
|
||||
-Dandroid=disabled \
|
||||
-Ddocumentation=disabled \
|
||||
-Dqcam=disabled \
|
||||
-Dtest=false \
|
||||
-Dwerror=false
|
||||
LIBCAMERA_INSTALL_STAGING = YES
|
||||
@@ -83,16 +84,6 @@ LIBCAMERA_CONF_OPTS += -Dgstreamer=enabled
|
||||
LIBCAMERA_DEPENDENCIES += gstreamer1 gst1-plugins-base
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y)
|
||||
LIBCAMERA_CONF_OPTS += -Dqcam=enabled
|
||||
LIBCAMERA_DEPENDENCIES += qt5base
|
||||
ifeq ($(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS),y)
|
||||
LIBCAMERA_DEPENDENCIES += qt5tools
|
||||
endif
|
||||
else
|
||||
LIBCAMERA_CONF_OPTS += -Dqcam=disabled
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBEVENT),y)
|
||||
LIBCAMERA_CONF_OPTS += -Dcam=enabled
|
||||
LIBCAMERA_DEPENDENCIES += libevent
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
From 58d490091d097ba2ad108cc66c97e242e5aacb9c Mon Sep 17 00:00:00 2001
|
||||
Message-ID: <58d490091d097ba2ad108cc66c97e242e5aacb9c.1727153835.git.baruch@tkos.co.il>
|
||||
From: Baruch Siach <baruch@tkos.co.il>
|
||||
Date: Tue, 24 Sep 2024 07:52:13 +0300
|
||||
Subject: [PATCH] curl_trc: fix build with verbose messages disabled
|
||||
|
||||
Add empty definition of Curl_trc_ws() to fix this following build error:
|
||||
|
||||
In file included from sendf.h:29,
|
||||
from ws.c:35:
|
||||
ws.c: In function 'Curl_ws_accept':
|
||||
curl_trc.h:100:10: error: implicit declaration of function 'Curl_trc_ws'; did you mean 'Curl_trc_ftp'? [-Wimplicit-function-declaration]
|
||||
100 | Curl_trc_ws(data, __VA_ARGS__); } while(0)
|
||||
| ^~~~~~~~~~~
|
||||
ws.c:779:5: note: in expansion of macro 'CURL_TRC_WS'
|
||||
779 | CURL_TRC_WS(data, "WS, using chunk size %zu", chunk_size);
|
||||
| ^~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
||||
Upstream: https://github.com/curl/curl/pull/15026
|
||||
---
|
||||
lib/curl_trc.h | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/lib/curl_trc.h b/lib/curl_trc.h
|
||||
index 5f675b453fd3..1801d33cea7c 100644
|
||||
--- a/lib/curl_trc.h
|
||||
+++ b/lib/curl_trc.h
|
||||
@@ -226,6 +226,12 @@ static void Curl_trc_smtp(struct Curl_easy *data, const char *fmt, ...)
|
||||
(void)data; (void)fmt;
|
||||
}
|
||||
#endif
|
||||
+#if defined(USE_WEBSOCKETS) && !defined(CURL_DISABLE_HTTP)
|
||||
+static void Curl_trc_ws(struct Curl_easy *data, const char *fmt, ...)
|
||||
+{
|
||||
+ (void)data; (void)fmt;
|
||||
+}
|
||||
+#endif
|
||||
|
||||
#endif /* !defined(CURL_DISABLE_VERBOSE_STRINGS) */
|
||||
|
||||
--
|
||||
2.45.2
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
# https://curl.se/download/curl-8.11.1.tar.xz.asc
|
||||
# https://curl.se/download/curl-8.12.1.tar.xz.asc
|
||||
# signed with key 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
|
||||
sha256 c7ca7db48b0909743eaef34250da02c19bc61d4f1dcedd6603f109409536ab56 curl-8.11.1.tar.xz
|
||||
sha256 adb1fc06547fd136244179809f7b7c2d2ae6c4534f160aa513af9b6a12866a32 COPYING
|
||||
sha256 0341f1ed97a26c811abaebd37d62b833956792b7607ea3f15d001613c76de202 curl-8.12.1.tar.xz
|
||||
sha256 e18f1989333b70044b2adfb7dc2f905d0119dbdcac3bc9f4bc9d540e3a29de5b COPYING
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBCURL_VERSION = 8.11.1
|
||||
LIBCURL_VERSION = 8.12.1
|
||||
LIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.xz
|
||||
LIBCURL_SITE = https://curl.se/download
|
||||
LIBCURL_DEPENDENCIES = host-pkgconf \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Locally computed:
|
||||
sha256 7ce4ec8bb37a435a73ac18c4c9ff56c2dc6c98892bf3f53a328e3eca42efb9cf libjxl-0.11.0.tar.gz
|
||||
sha256 1492dfef8dd6c3036446ac3b340005d92ab92f7d48ee3271b5dac1d36945d3d9 libjxl-0.11.1.tar.gz
|
||||
sha256 8405932022a556380c2d8c272eff154a923feb197233f348ce5f7334fb0a5ede LICENSE
|
||||
sha256 91915f8ae056a68a3c5bdf05d9f6f78bb6903e27a8ca3a8434c9e4ac87300575 PATENTS
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBJXL_VERSION = 0.11.0
|
||||
LIBJXL_VERSION = 0.11.1
|
||||
LIBJXL_SITE = $(call github,libjxl,libjxl,v$(LIBJXL_VERSION))
|
||||
LIBJXL_LICENSE = BSD-3-Clause
|
||||
LIBJXL_LICENSE_FILES = LICENSE PATENTS
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz.sha256
|
||||
sha256 e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf openssl-3.4.0.tar.gz
|
||||
# From https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz.sha256
|
||||
sha256 002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3 openssl-3.4.1.tar.gz
|
||||
|
||||
# License files
|
||||
sha256 7d5450cb2d142651b8afa315b5f238efc805dad827d91ba367d8516bc9d49e7a LICENSE.txt
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBOPENSSL_VERSION = 3.4.0
|
||||
LIBOPENSSL_VERSION = 3.4.1
|
||||
LIBOPENSSL_SITE = https://github.com/openssl/openssl/releases/download/openssl-$(LIBOPENSSL_VERSION)
|
||||
LIBOPENSSL_SOURCE = openssl-$(LIBOPENSSL_VERSION).tar.gz
|
||||
LIBOPENSSL_LICENSE = Apache-2.0
|
||||
@@ -132,24 +132,26 @@ endef
|
||||
LIBOPENSSL_POST_CONFIGURE_HOOKS += LIBOPENSSL_FIXUP_STATIC_MAKEFILE
|
||||
endif
|
||||
|
||||
# Parallel build broken: https://github.com/openssl/openssl/issues/27074
|
||||
define HOST_LIBOPENSSL_BUILD_CMDS
|
||||
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)
|
||||
$(HOST_MAKE_ENV) $(MAKE1) -C $(@D)
|
||||
endef
|
||||
|
||||
# Parallel build broken: https://github.com/openssl/openssl/issues/27074
|
||||
define LIBOPENSSL_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
|
||||
$(TARGET_MAKE_ENV) $(MAKE1) -C $(@D)
|
||||
endef
|
||||
|
||||
define LIBOPENSSL_INSTALL_STAGING_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
|
||||
$(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR=$(STAGING_DIR) install
|
||||
endef
|
||||
|
||||
define HOST_LIBOPENSSL_INSTALL_CMDS
|
||||
$(HOST_MAKE_ENV) $(MAKE) -C $(@D) install
|
||||
$(HOST_MAKE_ENV) $(MAKE1) -C $(@D) install
|
||||
endef
|
||||
|
||||
define LIBOPENSSL_INSTALL_TARGET_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
|
||||
$(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR=$(TARGET_DIR) install
|
||||
$(RM) -rf $(TARGET_DIR)/usr/lib/ssl
|
||||
$(RM) -f $(TARGET_DIR)/usr/bin/c_rehash
|
||||
endef
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
# https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.19.0.tar.gz.sig
|
||||
sha256 1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a libtasn1-4.19.0.tar.gz
|
||||
# https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.20.0.tar.gz.sig
|
||||
sha256 92e0e3bd4c02d4aeee76036b2ddd83f0c732ba4cda5cb71d583272b23587a76c libtasn1-4.20.0.tar.gz
|
||||
# Locally calculated
|
||||
sha256 7446831f659f7ebfd8d497acc7f05dfa8e31c6cb6ba1b45df33d4895ab80f5a6 COPYING
|
||||
sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 doc/COPYING
|
||||
sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 doc/COPYING.LESSER
|
||||
sha256 990ef6a87f29a9d3db33698b94ea026a5d0f81bbf9806333d73699a250b7e5d6 README.md
|
||||
sha256 3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986 COPYING
|
||||
sha256 20e50fe7aae3e56378ebf0417d9de904f55a0e61e4df315333e632a4d3555d95 COPYING.LESSERv2
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBTASN1_VERSION = 4.19.0
|
||||
LIBTASN1_VERSION = 4.20.0
|
||||
LIBTASN1_SITE = $(BR2_GNU_MIRROR)/libtasn1
|
||||
LIBTASN1_DEPENDENCIES = host-bison host-pkgconf
|
||||
LIBTASN1_LICENSE = GPL-3.0+ (tests, tools), LGPL-2.1+ (library)
|
||||
LIBTASN1_LICENSE_FILES = COPYING doc/COPYING doc/COPYING.LESSER
|
||||
LIBTASN1_LICENSE_FILES = README.md COPYING COPYING.LESSERv2
|
||||
LIBTASN1_CPE_ID_VENDOR = gnu
|
||||
LIBTASN1_INSTALL_STAGING = YES
|
||||
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
From fc72e0833a4e5724aef604e2fd9adb1014cb4844 Mon Sep 17 00:00:00 2001
|
||||
From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Date: Mon, 16 Dec 2024 17:23:23 +0100
|
||||
Subject: [PATCH] Fix compilation with uclibc
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The patch fixes the following errors and warnings raised by the
|
||||
compilation of the library with uClibc:
|
||||
|
||||
encoding.c: In function ‘xmlEncInputChunk’:
|
||||
encoding.c:2209:32: warning: comparison between pointer and integer
|
||||
2209 | else if (handler->iconv_in != NULL) {
|
||||
| ^~
|
||||
encoding.c: In function ‘xmlEncOutputChunk’:
|
||||
encoding.c:2269:33: warning: comparison between pointer and integer
|
||||
2269 | else if (handler->iconv_out != NULL) {
|
||||
| ^~
|
||||
encoding.c: In function ‘xmlCharEncCloseFunc’:
|
||||
encoding.c:2681:29: warning: comparison between pointer and integer
|
||||
2681 | if ((handler->iconv_out != NULL) || (handler->iconv_in != NULL)) {
|
||||
| ^~
|
||||
encoding.c:2681:60: warning: comparison between pointer and integer
|
||||
2681 | if ((handler->iconv_out != NULL) || (handler->iconv_in != NULL)) {
|
||||
| ^~
|
||||
encoding.c:2683:32: warning: comparison between pointer and integer
|
||||
2683 | if (handler->iconv_out != NULL) {
|
||||
| ^~
|
||||
encoding.c:2686:32: error: assignment to ‘iconv_t’ {aka ‘long int’} from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
|
||||
2686 | handler->iconv_out = NULL;
|
||||
| ^
|
||||
encoding.c:2688:31: warning: comparison between pointer and integer
|
||||
2688 | if (handler->iconv_in != NULL) {
|
||||
| ^~
|
||||
encoding.c:2691:31: error: assignment to ‘iconv_t’ {aka ‘long int’} from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
|
||||
2691 | handler->iconv_in = NULL;
|
||||
| ^
|
||||
make[4]: *** [Makefile:1147: libxml2_la-encoding.lo] Error 1
|
||||
|
||||
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Upstream: https://gitlab.gnome.org/GNOME/libxml2/-/commit/fc72e0833a4e5724aef604e2fd9adb1014cb4844
|
||||
---
|
||||
encoding.c | 20 ++++++++++----------
|
||||
1 file changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/encoding.c b/encoding.c
|
||||
index 14ffafddbc02..41ecde1885e4 100644
|
||||
--- a/encoding.c
|
||||
+++ b/encoding.c
|
||||
@@ -1264,7 +1264,7 @@ DECLARE_ISO_FUNCS(16)
|
||||
#endif /* LIBXML_ISO8859X_ENABLED */
|
||||
|
||||
#ifdef LIBXML_ICONV_ENABLED
|
||||
- #define EMPTY_ICONV , (iconv_t) 0, (iconv_t) 0
|
||||
+ #define EMPTY_ICONV , (iconv_t) -1, (iconv_t) -1
|
||||
#else
|
||||
#define EMPTY_ICONV
|
||||
#endif
|
||||
@@ -1389,8 +1389,8 @@ xmlNewCharEncodingHandler(const char *name,
|
||||
handler->name = up;
|
||||
|
||||
#ifdef LIBXML_ICONV_ENABLED
|
||||
- handler->iconv_in = NULL;
|
||||
- handler->iconv_out = NULL;
|
||||
+ handler->iconv_in = (iconv_t) -1;
|
||||
+ handler->iconv_out = (iconv_t) -1;
|
||||
#endif
|
||||
#ifdef LIBXML_ICU_ENABLED
|
||||
handler->uconv_in = NULL;
|
||||
@@ -2200,7 +2200,7 @@ xmlEncInputChunk(xmlCharEncodingHandler *handler, unsigned char *out,
|
||||
}
|
||||
}
|
||||
#ifdef LIBXML_ICONV_ENABLED
|
||||
- else if (handler->iconv_in != NULL) {
|
||||
+ else if (handler->iconv_in != (iconv_t) -1) {
|
||||
ret = xmlIconvWrapper(handler->iconv_in, out, outlen, in, inlen);
|
||||
}
|
||||
#endif /* LIBXML_ICONV_ENABLED */
|
||||
@@ -2260,7 +2260,7 @@ xmlEncOutputChunk(xmlCharEncodingHandler *handler, unsigned char *out,
|
||||
}
|
||||
}
|
||||
#ifdef LIBXML_ICONV_ENABLED
|
||||
- else if (handler->iconv_out != NULL) {
|
||||
+ else if (handler->iconv_out != (iconv_t) -1) {
|
||||
ret = xmlIconvWrapper(handler->iconv_out, out, outlen, in, inlen);
|
||||
}
|
||||
#endif /* LIBXML_ICONV_ENABLED */
|
||||
@@ -2672,17 +2672,17 @@ xmlCharEncCloseFunc(xmlCharEncodingHandler *handler) {
|
||||
* Iconv handlers can be used only once, free the whole block.
|
||||
* and the associated icon resources.
|
||||
*/
|
||||
- if ((handler->iconv_out != NULL) || (handler->iconv_in != NULL)) {
|
||||
+ if ((handler->iconv_out != (iconv_t) -1) || (handler->iconv_in != (iconv_t) -1)) {
|
||||
tofree = 1;
|
||||
- if (handler->iconv_out != NULL) {
|
||||
+ if (handler->iconv_out != (iconv_t) -1) {
|
||||
if (iconv_close(handler->iconv_out))
|
||||
ret = -1;
|
||||
- handler->iconv_out = NULL;
|
||||
+ handler->iconv_out = (iconv_t) -1;
|
||||
}
|
||||
- if (handler->iconv_in != NULL) {
|
||||
+ if (handler->iconv_in != (iconv_t) -1) {
|
||||
if (iconv_close(handler->iconv_in))
|
||||
ret = -1;
|
||||
- handler->iconv_in = NULL;
|
||||
+ handler->iconv_in = (iconv_t) -1;
|
||||
}
|
||||
}
|
||||
#endif /* LIBXML_ICONV_ENABLED */
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# From https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.5.sha256sum
|
||||
sha256 74fc163217a3964257d3be39af943e08861263c4231f9ef5b496b6f6d4c7b2b6 libxml2-2.13.5.tar.xz
|
||||
# From https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.6.sha256sum
|
||||
sha256 f453480307524968f7a04ec65e64f2a83a825973bcd260a2e7691be82ae70c96 libxml2-2.13.6.tar.xz
|
||||
# License files, locally calculated
|
||||
sha256 c99aae1afe013e50b8b3701e089222b351258043c3025b64053a233fd25b4be7 Copyright
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
################################################################################
|
||||
|
||||
LIBXML2_VERSION_MAJOR = 2.13
|
||||
LIBXML2_VERSION = $(LIBXML2_VERSION_MAJOR).5
|
||||
LIBXML2_VERSION = $(LIBXML2_VERSION_MAJOR).6
|
||||
LIBXML2_SOURCE = libxml2-$(LIBXML2_VERSION).tar.xz
|
||||
LIBXML2_SITE = \
|
||||
https://download.gnome.org/sources/libxml2/$(LIBXML2_VERSION_MAJOR)
|
||||
|
||||
@@ -429,11 +429,11 @@ endchoice
|
||||
config BR2_DEFAULT_KERNEL_HEADERS
|
||||
string
|
||||
default "4.19.325" if BR2_KERNEL_HEADERS_4_19
|
||||
default "5.4.288" if BR2_KERNEL_HEADERS_5_4
|
||||
default "5.10.232" if BR2_KERNEL_HEADERS_5_10
|
||||
default "5.15.175" if BR2_KERNEL_HEADERS_5_15
|
||||
default "6.1.122" if BR2_KERNEL_HEADERS_6_1
|
||||
default "6.6.68" if BR2_KERNEL_HEADERS_6_6
|
||||
default "5.4.291" if BR2_KERNEL_HEADERS_5_4
|
||||
default "5.10.235" if BR2_KERNEL_HEADERS_5_10
|
||||
default "5.15.179" if BR2_KERNEL_HEADERS_5_15
|
||||
default "6.1.131" if BR2_KERNEL_HEADERS_6_1
|
||||
default "6.6.83" if BR2_KERNEL_HEADERS_6_6
|
||||
default "6.11.11" if BR2_KERNEL_HEADERS_6_11
|
||||
default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
|
||||
default "custom" if BR2_KERNEL_HEADERS_CUSTOM_TARBALL
|
||||
|
||||
@@ -16,7 +16,7 @@ COMPILER_RT_SUPPORTS_IN_SOURCE_BUILD = NO
|
||||
COMPILER_RT_INSTALL_STAGING = YES
|
||||
COMPILER_RT_INSTALL_TARGET = NO
|
||||
|
||||
COMPILER_RT_CONF_OPTS=-DCOMPILER_RT_STANDALONE_BUILD=OFF \
|
||||
COMPILER_RT_CONF_OPTS = \
|
||||
-DCOMPILER_RT_STANDALONE_BUILD=ON \
|
||||
-DCOMPILER_RT_DEFAULT_TARGET_TRIPLE=$(GNU_TARGET_NAME) \
|
||||
-DLLVM_CONFIG_PATH=$(HOST_DIR)/bin/llvm-config \
|
||||
|
||||
@@ -36,7 +36,9 @@ reload() {
|
||||
|
||||
case "$1" in
|
||||
start|stop|restart|reload)
|
||||
if "$1"; then
|
||||
"$1"
|
||||
status=$?
|
||||
if [ "$status" -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "FAIL"
|
||||
@@ -48,4 +50,4 @@ case "$1" in
|
||||
;;
|
||||
esac
|
||||
|
||||
exit $?
|
||||
exit "$status"
|
||||
|
||||
@@ -30,6 +30,6 @@ comment "mokutil needs a toolchain w/ dynamic library, threads, gcc >= 4.9, head
|
||||
depends on BR2_PACKAGE_SHIM_ARCH_SUPPORTS
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_STATIC_LIBS || \
|
||||
BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
|
||||
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
|
||||
!BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
|
||||
!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# From https://sourceforge.net/projects/mpg123/files/mpg123/1.32.6/
|
||||
sha1 886c8c5f100caccfb4fefabc1c75ff6e2a834128 mpg123-1.32.6.tar.bz2
|
||||
# From https://sourceforge.net/projects/mpg123/files/mpg123/1.32.8/
|
||||
sha1 dc4d8d9d7fdc9c6c85e3036734eb937272a97800 mpg123-1.32.8.tar.bz2
|
||||
# Locally calculated
|
||||
sha256 ccdd1d0abc31d73d8b435fc658c79049d0a905b30669b6a42a03ad169dc609e6 mpg123-1.32.6.tar.bz2
|
||||
sha256 feee1374c79540e0e405df0bc45fde20ad67011425c361a2759e2146894a27a7 mpg123-1.32.8.tar.bz2
|
||||
# License file
|
||||
sha256 c22482728a634a8dfdb4ff72a96d4c1ed64cd8f3e79335c401751ac591609366 COPYING
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
MPG123_VERSION = 1.32.6
|
||||
MPG123_VERSION = 1.32.8
|
||||
MPG123_SOURCE = mpg123-$(MPG123_VERSION).tar.bz2
|
||||
MPG123_SITE = https://downloads.sourceforge.net/project/mpg123/mpg123/$(MPG123_VERSION)
|
||||
MPG123_INSTALL_STAGING = YES
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user