summaryrefslogtreecommitdiff
path: root/package/busybox
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox')
-rw-r--r--package/busybox/Config.in.manual213
-rw-r--r--package/busybox/Makefile4
-rw-r--r--package/busybox/config/Config.in15
-rw-r--r--package/busybox/config/coreutils/Config.in11
-rw-r--r--package/busybox/config/findutils/Config.in7
-rw-r--r--package/busybox/config/libbb/Config.in62
-rw-r--r--package/busybox/config/miscutils/Config.in17
-rw-r--r--package/busybox/config/networking/Config.in11
-rw-r--r--package/busybox/config/networking/udhcp/Config.in14
-rw-r--r--package/busybox/config/util-linux/Config.in2
-rw-r--r--package/busybox/files/ntpd.init2
-rw-r--r--package/busybox/patches/002-hwclock-musl.patch31
-rw-r--r--package/busybox/patches/004-libbb-sha-add-missing-guard.patch17
-rw-r--r--package/busybox/patches/005-syslogd-fix-wrong-OPT_localog-flag-detection.patch37
-rw-r--r--package/busybox/patches/009-disable-Oz.patch20
15 files changed, 231 insertions, 232 deletions
diff --git a/package/busybox/Config.in.manual b/package/busybox/Config.in.manual
index 80554efd4..48c6212e0 100644
--- a/package/busybox/Config.in.manual
+++ b/package/busybox/Config.in.manual
@@ -10,219 +10,6 @@ config ADK_PACKAGE_BUSYBOX
WWW: http://www.busybox.net
-choice
-prompt "Choose predefined set of applets"
-depends on ADK_PACKAGE_BUSYBOX
-default ADK_PACKAGE_BUSYBOX_MINIMAL if !ADK_TARGET_WITH_MMU
-
-config ADK_PACKAGE_BUSYBOX_DEFAULT
- bool "activate standard set of applets"
- select BUSYBOX_AWK
- select BUSYBOX_BASENAME
- select BUSYBOX_CLEAR
- select BUSYBOX_CMP
- select BUSYBOX_CAT
- select BUSYBOX_CAL
- select BUSYBOX_CHGRP
- select BUSYBOX_CHMOD
- select BUSYBOX_CHOWN
- select BUSYBOX_CHROOT
- select BUSYBOX_CP
- select BUSYBOX_CUT
- select BUSYBOX_DATE
- select BUSYBOX_DD
- select BUSYBOX_DF
- select BUSYBOX_DIFF
- select BUSYBOX_DIRNAME
- select BUSYBOX_DU
- select BUSYBOX_ECHO
- select BUSYBOX_EGREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_ENV
- select BUSYBOX_EXPR
- select BUSYBOX_FDISK if !BUSYBOX_DISABLE_FDISK
- select BUSYBOX_FIND if !BUSYBOX_DISABLE_FIND
- select BUSYBOX_GREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_GROUPS
- select BUSYBOX_GUNZIP
- select BUSYBOX_GZIP
- select BUSYBOX_HALT
- select BUSYBOX_HEAD
- select BUSYBOX_ID
- select BUSYBOX_INIT if ADK_RUNTIME_INIT_SYSV
- select BUSYBOX_LESS if !BUSYBOX_DISABLE_LESS
- select BUSYBOX_LN
- select BUSYBOX_LOSETUP
- select BUSYBOX_LS
- select BUSYBOX_MD5SUM
- select BUSYBOX_MKDIR
- select BUSYBOX_MKFIFO
- select BUSYBOX_MKNOD
- select BUSYBOX_MKTEMP
- select BUSYBOX_MV
- select BUSYBOX_NC
- select BUSYBOX_PASSWD
- select BUSYBOX_PRINTF
- select BUSYBOX_PWD
- select BUSYBOX_RDATE if !BUSYBOX_DISABLE_RDATE
- select BUSYBOX_READLINK
- select BUSYBOX_RESET
- select BUSYBOX_RFKILL if !BUSYBOX_DISABLE_RFKILL
- select BUSYBOX_RM
- select BUSYBOX_RMDIR
- select BUSYBOX_RUN_PARTS
- select BUSYBOX_SED if !BUSYBOX_DISABLE_SED
- select BUSYBOX_SEQ
- select BUSYBOX_SLEEP
- select BUSYBOX_SORT
- select BUSYBOX_FEATURE_SORT_BIG
- select BUSYBOX_STAT
- select BUSYBOX_STRINGS
- select BUSYBOX_SU
- select BUSYBOX_SYNC
- select BUSYBOX_TAIL
- select BUSYBOX_FEATURE_FANCY_TAIL
- select BUSYBOX_TAR if !BUSYBOX_DISABLE_TAR
- select BUSYBOX_TEE
- select BUSYBOX_TEST
- select BUSYBOX_TIME
- select BUSYBOX_TOUCH
- select BUSYBOX_TOP
- select BUSYBOX_TR
- select BUSYBOX_TRUE
- select BUSYBOX_UNAME
- select BUSYBOX_VI
- select BUSYBOX_WC
- select BUSYBOX_WHOAMI
- select BUSYBOX_WHO
- select BUSYBOX_WHICH
- select BUSYBOX_XARGS
-
-config ADK_PACKAGE_BUSYBOX_MINIMAL
- bool "activate minimal set of applets"
- select BUSYBOX_AWK
- select BUSYBOX_BASENAME
- select BUSYBOX_CAT
- select BUSYBOX_CHGRP
- select BUSYBOX_CHMOD
- select BUSYBOX_CHOWN
- select BUSYBOX_CHROOT
- select BUSYBOX_CMP
- select BUSYBOX_CP
- select BUSYBOX_CUT
- select BUSYBOX_DATE
- select BUSYBOX_DD
- select BUSYBOX_DF
- select BUSYBOX_DIRNAME
- select BUSYBOX_DIFF
- select BUSYBOX_DU
- select BUSYBOX_ECHO
- select BUSYBOX_ENV
- select BUSYBOX_EXPR
- select BUSYBOX_FIND if !BUSYBOX_DISABLE_FIND
- select BUSYBOX_GREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_HALT
- select BUSYBOX_HEAD
- select BUSYBOX_ID
- select BUSYBOX_INIT
- select BUSYBOX_LN
- select BUSYBOX_LS
- select BUSYBOX_MKDIR
- select BUSYBOX_MV
- select BUSYBOX_PRINTF
- select BUSYBOX_PWD
- select BUSYBOX_RM
- select BUSYBOX_READLINK
- select BUSYBOX_RUN_PARTS
- select BUSYBOX_SED if !BUSYBOX_DISABLE_SED
- select BUSYBOX_SORT
- select BUSYBOX_TAIL
- select BUSYBOX_FEATURE_FANCY_TAIL
- select BUSYBOX_TEE
- select BUSYBOX_TEST
- select BUSYBOX_TOUCH
- select BUSYBOX_TRUE
- select BUSYBOX_UNAME
- select BUSYBOX_VI
- select BUSYBOX_WHICH
- select BUSYBOX_WHOAMI
-
-config ADK_PACKAGE_BUSYBOX_ALL
- bool "activate all applets"
- select BUSYBOX_AWK
- select BUSYBOX_BASENAME
- select BUSYBOX_CAL
- select BUSYBOX_CAT
- select BUSYBOX_CHGRP
- select BUSYBOX_CHMOD
- select BUSYBOX_CHOWN
- select BUSYBOX_CHROOT
- select BUSYBOX_CLEAR
- select BUSYBOX_CMP
- select BUSYBOX_CP
- select BUSYBOX_CUT
- select BUSYBOX_DATE
- select BUSYBOX_DD
- select BUSYBOX_DESKTOP
- select BUSYBOX_DF
- select BUSYBOX_DIFF if !BUSYBOX_DISABLE_DIFF
- select BUSYBOX_DIRNAME
- select BUSYBOX_DU
- select BUSYBOX_ECHO
- select BUSYBOX_EGREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_ENV
- select BUSYBOX_EXPR
- select BUSYBOX_FDISK if !BUSYBOX_DISABLE_FDISK
- select BUSYBOX_FIND if !BUSYBOX_DISABLE_FIND
- select BUSYBOX_FEATURE_UTMP
- select BUSYBOX_GREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_GROUPS
- select BUSYBOX_GUNZIP
- select BUSYBOX_GZIP
- select BUSYBOX_HALT
- select BUSYBOX_HEAD
- select BUSYBOX_ID
- select BUSYBOX_INIT if ADK_RUNTIME_INIT_SYSV
- select BUSYBOX_LESS if !BUSYBOX_DISABLE_LESS
- select BUSYBOX_LN
- select BUSYBOX_LS
- select BUSYBOX_MD5SUM
- select BUSYBOX_MKDIR
- select BUSYBOX_MKFIFO
- select BUSYBOX_MKNOD
- select BUSYBOX_MKTEMP
- select BUSYBOX_MV
- select BUSYBOX_PRINTF
- select BUSYBOX_PWD
- select BUSYBOX_READLINK
- select BUSYBOX_RESET
- select BUSYBOX_RUN_PARTS
- select BUSYBOX_RM
- select BUSYBOX_SED if !BUSYBOX_DISABLE_SED
- select BUSYBOX_SLEEP
- select BUSYBOX_SORT
- select BUSYBOX_STAT
- select BUSYBOX_STRINGS
- select BUSYBOX_SU
- select BUSYBOX_SYNC
- select BUSYBOX_TAIL
- select BUSYBOX_TAR if !BUSYBOX_DISABLE_TAR
- select BUSYBOX_TEE
- select BUSYBOX_FEATURE_FANCY_TAIL
- select BUSYBOX_TRUE
- select BUSYBOX_TEST
- select BUSYBOX_TIME
- select BUSYBOX_TOUCH
- select BUSYBOX_TR
- select BUSYBOX_UNAME
- select BUSYBOX_VI
- select BUSYBOX_WC
- select BUSYBOX_WHICH
- select BUSYBOX_WHO
- select BUSYBOX_WHOAMI
- select BUSYBOX_XARGS
-
-endchoice
-
config ADK_PACKAGE_BUSYBOX_HIDE
bool "hide packages provided by busybox applets"
depends on ADK_PACKAGE_BUSYBOX
diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index c1e6bb617..c50e4af11 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= busybox
-PKG_VERSION:= 1.35.0
+PKG_VERSION:= 1.37.0
PKG_RELEASE:= 1
-PKG_HASH:= faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694
+PKG_HASH:= 3311dff32e746499f4df0d5df04d7eb396382d7e108bb9250e7b519b837043a4
PKG_DESCR:= core utilities for embedded systems
PKG_SECTION:= base/apps
PKG_URL:= http://www.busybox.net/
diff --git a/package/busybox/config/Config.in b/package/busybox/config/Config.in
index 6f19502f4..573c55f8c 100644
--- a/package/busybox/config/Config.in
+++ b/package/busybox/config/Config.in
@@ -108,6 +108,17 @@ config BUSYBOX_LFS
programs that can benefit from large file support include dd, gzip,
cp, mount, tar.
+config BUSYBOX_TIME64
+ bool "Support 64bit wide time types"
+ default y
+ depends on BUSYBOX_LFS
+ help
+ Make times later than 2038 representable for several libc syscalls
+ (stat, clk_gettime etc.). Note this switch is specific to glibc
+ and has no effect on platforms that already use 64bit wide time types
+ (i.e. all 64bit archs and some selected 32bit archs (currently riscv
+ and x32)).
+
config BUSYBOX_PAM
bool "Support PAM (Pluggable Authentication Modules)"
default n
@@ -371,7 +382,7 @@ config BUSYBOX_STATIC
config BUSYBOX_PIE
bool "Build position independent executable"
- default n
+ default y if !ADK_TARGET_WITH_MMU && ADK_TARGET_BINFMT_ELF
depends on !BUSYBOX_STATIC
help
Hardened code option. PIE binaries are loaded at a different
@@ -382,7 +393,7 @@ config BUSYBOX_PIE
config BUSYBOX_NOMMU
bool "Force NOMMU build"
- default n
+ default y if !ADK_TARGET_WITH_MMU
help
Busybox tries to detect whether architecture it is being
built against supports MMU or not. If this detection fails,
diff --git a/package/busybox/config/coreutils/Config.in b/package/busybox/config/coreutils/Config.in
index ec8aa6802..ff7ab88ed 100644
--- a/package/busybox/config/coreutils/Config.in
+++ b/package/busybox/config/coreutils/Config.in
@@ -653,7 +653,7 @@ config BUSYBOX_SORT
sort is used to sort lines of text in specified files.
config BUSYBOX_FEATURE_SORT_BIG
- bool "Full SuSv3 compliant sort (support -ktcbdfiogM)"
+ bool "Full SuSv3 compliant sort (support -ktcbdfioghM)"
default y
depends on BUSYBOX_SORT
help
@@ -719,12 +719,12 @@ config BUSYBOX_SUM
checksum and count the blocks in a file
config BUSYBOX_SYNC
bool "sync (3.8 kb)"
- default y
+ default n
help
sync is used to flush filesystem buffers.
config BUSYBOX_FEATURE_SYNC_FANCY
bool "Enable -d and -f flags (requires syncfs(2) in libc)"
- default y
+ default n
depends on BUSYBOX_SYNC
help
sync -d FILE... executes fdatasync() on each FILE.
@@ -851,6 +851,11 @@ config BUSYBOX_TRUNCATE
help
truncate truncates files to a given size. If a file does
not exist, it is created unless told otherwise.
+config BUSYBOX_TSORT
+ bool "tsort (0.7 kb)"
+ default y
+ help
+ tsort performs a topological sort.
config BUSYBOX_TTY
bool "tty (3.6 kb)"
default y
diff --git a/package/busybox/config/findutils/Config.in b/package/busybox/config/findutils/Config.in
index d4aa403a5..ff1f5ed0c 100644
--- a/package/busybox/config/findutils/Config.in
+++ b/package/busybox/config/findutils/Config.in
@@ -136,6 +136,13 @@ config BUSYBOX_FEATURE_FIND_EXEC_PLUS
Without this option, -exec + is a synonym for -exec ;
(IOW: it works correctly, but without expected speedup)
+config BUSYBOX_FEATURE_FIND_EXEC_OK
+ bool "Enable -ok: execute confirmed commands"
+ default y
+ depends on BUSYBOX_FEATURE_FIND_EXEC
+ help
+ Support the 'find -ok' option which prompts before executing.
+
config BUSYBOX_FEATURE_FIND_USER
bool "Enable -user: username/uid matching"
default y
diff --git a/package/busybox/config/libbb/Config.in b/package/busybox/config/libbb/Config.in
index 8e4fe855e..66c135ec6 100644
--- a/package/busybox/config/libbb/Config.in
+++ b/package/busybox/config/libbb/Config.in
@@ -98,21 +98,47 @@ config BUSYBOX_MD5_SMALL
default 1 # all "fast or small" options default to small
range 0 3
help
- Trade binary size versus speed for the md5sum algorithm.
+ Trade binary size versus speed for the md5 algorithm.
Approximate values running uClibc and hashing
linux-2.4.4.tar.bz2 were:
- value user times (sec) text size (386)
- 0 (fastest) 1.1 6144
- 1 1.4 5392
- 2 3.0 5088
- 3 (smallest) 5.1 4912
+ value user times (sec) text size (386)
+ 0 (fastest) 1.1 6144
+ 1 1.4 5392
+ 2 3.0 5088
+ 3 (smallest) 5.1 4912
+
+config BUSYBOX_SHA1_SMALL
+ int "SHA1: Trade bytes for speed (0:fast, 3:slow)"
+ default 3 # all "fast or small" options default to small
+ range 0 3
+ help
+ Trade binary size versus speed for the sha1 algorithm.
+ With FEATURE_COPYBUF_KB=64:
+ throughput MB/s size of sha1_process_block64
+ value 486 x86-64 486 x86-64
+ 0 440 485 3481 3502
+ 1 265 265 641 696
+ 2,3 220 210 342 364
+
+config BUSYBOX_SHA1_HWACCEL
+ bool "SHA1: Use hardware accelerated instructions if possible"
+ default y
+ help
+ On x86, this adds ~590 bytes of code. Throughput
+ is about twice as fast as fully-unrolled generic code.
+
+config BUSYBOX_SHA256_HWACCEL
+ bool "SHA256: Use hardware accelerated instructions if possible"
+ default y
+ help
+ On x86, this adds ~1k bytes of code.
config BUSYBOX_SHA3_SMALL
int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
default 1 # all "fast or small" options default to small
range 0 1
help
- Trade binary size versus speed for the sha3sum algorithm.
+ Trade binary size versus speed for the sha3 algorithm.
SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
64-bit x86: +270 bytes of code, 45% faster
32-bit x86: +450 bytes of code, 75% faster
@@ -399,3 +425,25 @@ config BUSYBOX_UNICODE_PRESERVE_BROKEN
For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
at shell prompt will list file named 0xff (single char name
with char value 255), not file named '?'.
+
+choice
+ prompt "Use LOOP_CONFIGURE for losetup and loop mounts"
+ default BUSYBOX_TRY_LOOP_CONFIGURE
+ help
+ LOOP_CONFIGURE is added to Linux 5.8
+ https://lwn.net/Articles/820408/
+ This allows userspace to completely setup a loop device with a single
+ ioctl, removing the in-between state where the device can be partially
+ configured - eg the loop device has a backing file associated with it,
+ but is reading from the wrong offset.
+
+config BUSYBOX_LOOP_CONFIGURE
+ bool "use LOOP_CONFIGURE, needs kernel >= 5.8"
+
+config BUSYBOX_NO_LOOP_CONFIGURE
+ bool "use LOOP_SET_FD + LOOP_SET_STATUS"
+
+config BUSYBOX_TRY_LOOP_CONFIGURE
+ bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS"
+
+endchoice
diff --git a/package/busybox/config/miscutils/Config.in b/package/busybox/config/miscutils/Config.in
index a236373ae..612d270e1 100644
--- a/package/busybox/config/miscutils/Config.in
+++ b/package/busybox/config/miscutils/Config.in
@@ -380,6 +380,11 @@ config BUSYBOX_FLASHCP
help
The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
This utility is used to copy images into a MTD device.
+config BUSYBOX_GETFATTR
+ bool "getfattr (12.3 kb)"
+ default y
+ help
+ Get extended attributes on files
config BUSYBOX_HDPARM
bool "hdparm (25 kb)"
default y
@@ -699,6 +704,13 @@ config BUSYBOX_RX
default y
help
Receive files using the Xmodem protocol.
+config BUSYBOX_SEEDRNG
+ bool "seedrng (1.3 kb)"
+ default n
+ help
+ Seed the kernel RNG from seed files, meant to be called
+ once during startup, once during shutdown, and optionally
+ at some periodic interval in between.
config BUSYBOX_SETFATTR
bool "setfattr (3.7 kb)"
default y
@@ -722,6 +734,11 @@ config BUSYBOX_TIME
The time command runs the specified program with the given arguments.
When the command finishes, time writes a message to standard output
giving timing statistics about this program run.
+config BUSYBOX_TREE
+ bool "tree (0.6 kb)"
+ default y
+ help
+ List files and directories in a tree structure.
config BUSYBOX_TS
bool "ts (450 bytes)"
default y
diff --git a/package/busybox/config/networking/Config.in b/package/busybox/config/networking/Config.in
index 7675cd4b9..9ed63b71f 100644
--- a/package/busybox/config/networking/Config.in
+++ b/package/busybox/config/networking/Config.in
@@ -582,6 +582,12 @@ config BUSYBOX_IPLINK
help
Short form of "ip link"
+config BUSYBOX_FEATURE_IP_LINK_CAN
+ bool "ip link set type can"
+ default n
+ help
+ Configure CAN devices with "ip".
+
config BUSYBOX_IPROUTE
bool "iproute (15 kb)"
default y
@@ -872,7 +878,7 @@ config BUSYBOX_SSL_CLIENT
This tool pipes data to/from a socket, TLS-encrypting it.
config BUSYBOX_TC
bool "tc (8.3 kb)"
- default y
+ default n
help
Show / manipulate traffic control settings
@@ -1248,7 +1254,8 @@ source package/busybox/config/networking/udhcp/Config.in
config BUSYBOX_IFUPDOWN_UDHCPC_CMD_OPTIONS
string "ifup udhcpc command line options"
- default "-R -n"
+ default "-R -n" if BUSYBOX_NOMMU
+ default "-R -n -b"
depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
help
Command line options to pass to udhcpc from ifup.
diff --git a/package/busybox/config/networking/udhcp/Config.in b/package/busybox/config/networking/udhcp/Config.in
index 5d57cf731..9018780aa 100644
--- a/package/busybox/config/networking/udhcp/Config.in
+++ b/package/busybox/config/networking/udhcp/Config.in
@@ -11,6 +11,13 @@ config BUSYBOX_UDHCPD
udhcpd is a DHCP server geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
+config BUSYBOX_FEATURE_UDHCPD_BOOTP
+ bool "Answer to BOOTP requests as well"
+ default y
+ depends on BUSYBOX_UDHCPD
+ help
+ Support old BOOTP protocol too.
+
config BUSYBOX_FEATURE_UDHCPD_BASE_IP_ON_MAC
bool "Select IP address based on client MAC"
default n
@@ -93,12 +100,17 @@ config BUSYBOX_FEATURE_UDHCPC_SANITIZEOPT
config BUSYBOX_UDHCPC_DEFAULT_SCRIPT
string "Absolute path to config script"
default "/usr/share/udhcpc/default.script"
- depends on BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6
+ depends on BUSYBOX_UDHCPC
help
This script is called after udhcpc receives an answer. See
examples/udhcp for a working example. Normally it is safe
to leave this untouched.
+config BUSYBOX_UDHCPC6_DEFAULT_SCRIPT
+ string "Absolute path to config script for IPv6"
+ default "/usr/share/udhcpc/default6.script"
+ depends on BUSYBOX_UDHCPC6
+
# udhcpc6 config is inserted here:
config BUSYBOX_UDHCPC6
bool "udhcpc6 (21 kb)"
diff --git a/package/busybox/config/util-linux/Config.in b/package/busybox/config/util-linux/Config.in
index 77b2b83f1..5bc9673d3 100644
--- a/package/busybox/config/util-linux/Config.in
+++ b/package/busybox/config/util-linux/Config.in
@@ -660,7 +660,7 @@ config BUSYBOX_NOLOGIN_DEPENDENCIES
disable this option.
config BUSYBOX_NSENTER
bool "nsenter (6.5 kb)"
- default y
+ default n
help
Run program with namespaces of other processes.
config BUSYBOX_PIVOT_ROOT
diff --git a/package/busybox/files/ntpd.init b/package/busybox/files/ntpd.init
index 15c460dcc..0f578574a 100644
--- a/package/busybox/files/ntpd.init
+++ b/package/busybox/files/ntpd.init
@@ -1,6 +1,6 @@
#!/bin/sh
#PKG busybox
-#INIT 60
+#INIT 45
. /etc/rc.conf
case $1 in
diff --git a/package/busybox/patches/002-hwclock-musl.patch b/package/busybox/patches/002-hwclock-musl.patch
new file mode 100644
index 000000000..a5b9ff50d
--- /dev/null
+++ b/package/busybox/patches/002-hwclock-musl.patch
@@ -0,0 +1,31 @@
+diff -Nur busybox-1.36.1.orig/util-linux/hwclock.c busybox-1.36.1/util-linux/hwclock.c
+--- busybox-1.36.1.orig/util-linux/hwclock.c 2021-01-01 11:52:27.000000000 +0100
++++ busybox-1.36.1/util-linux/hwclock.c 2024-04-10 11:18:06.569673535 +0200
+@@ -136,10 +136,24 @@
+ * because "it's deprecated by POSIX, therefore it's fine
+ * if we gratuitously break stuff" :(
+ */
+-#if !defined(SYS_settimeofday) && defined(SYS_settimeofday_time32)
+-# define SYS_settimeofday SYS_settimeofday_time32
+-#endif
++# if !defined(SYS_settimeofday) && defined(SYS_settimeofday_time32)
++# define SYS_settimeofday SYS_settimeofday_time32
++# endif
++# if defined(SYS_settimeofday)
+ int ret = syscall(SYS_settimeofday, NULL, tz);
++# else
++ /* Some new architectures have neither settimeofday nor
++ * settimeofday_time32, and the whole kernel timezone handling appears
++ * to have been dropped due to some oddities in the API. See:
++ *
++ * - glibc's commit c3f9aef063 ("Use clock_settime to implement settimeofday.")
++ * - https://github.com/systemd/systemd/issues/13305
++ * - https://inbox.sourceware.org/libc-alpha/cb015d0d1d29e4b948c7118c5b12ff2bed83a6ec.1561421042.git.alistair.francis@wdc.com/
++ *
++ * So instead just silently drop these calls.
++ */
++ int ret = -ENOSYS;
++# endif
+ #else
+ int ret = settimeofday(NULL, tz);
+ #endif
diff --git a/package/busybox/patches/004-libbb-sha-add-missing-guard.patch b/package/busybox/patches/004-libbb-sha-add-missing-guard.patch
new file mode 100644
index 000000000..ec41ba73a
--- /dev/null
+++ b/package/busybox/patches/004-libbb-sha-add-missing-guard.patch
@@ -0,0 +1,17 @@
+diff --git a/libbb/hash_md5_sha.c b/libbb/hash_md5_sha.c
+index 57a801459..75a61c32c 100644
+--- a/libbb/hash_md5_sha.c
++++ b/libbb/hash_md5_sha.c
+@@ -1313,7 +1313,9 @@ unsigned FAST_FUNC sha1_end(sha1_ctx_t *ctx, void *resbuf)
+ hash_size = 8;
+ if (ctx->process_block == sha1_process_block64
+ #if ENABLE_SHA1_HWACCEL
++# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+ || ctx->process_block == sha1_process_block64_shaNI
++# endif
+ #endif
+ ) {
+ hash_size = 5;
+--
+2.48.1
+
diff --git a/package/busybox/patches/005-syslogd-fix-wrong-OPT_localog-flag-detection.patch b/package/busybox/patches/005-syslogd-fix-wrong-OPT_localog-flag-detection.patch
new file mode 100644
index 000000000..1dfd6f379
--- /dev/null
+++ b/package/busybox/patches/005-syslogd-fix-wrong-OPT_localog-flag-detection.patch
@@ -0,0 +1,37 @@
+From 34d331d642c3312e1c04e4650f547f1a67abee24 Mon Sep 17 00:00:00 2001
+From: Andrej Valek <andrej.v@skyrain.eu>
+Date: Wed, 16 Oct 2024 10:15:08 +0200
+Subject: [PATCH] syslogd: fix wrong OPT_locallog flag detection
+
+The OPT_locallog was set on "option_mask32" but checked on local
+"opts" variable. While this flag it's used on multiple places can't be
+has to be used with "option_mask32". Without this change syslogd
+is more-less unusable while no messages are logged locally.
+
+Signed-off-by: Andrej Valek <andrej.v@skyrain.eu>
+Upstream: https://lists.busybox.net/pipermail/busybox/2024-October/090969.html
+[Thomas: this was reported as beeing needed by Bernd Kuhls at
+https://lore.kernel.org/buildroot/pan$de0bb$35c5a64$ca9b6f21$2408ff40@ID-313208.user.individual.net/,
+but also on the Busybox mailing list at
+https://lists.busybox.net/pipermail/busybox/2023-September/090499.html]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+---
+ sysklogd/syslogd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
+index 7558051f0..fa03aa280 100644
+--- a/sysklogd/syslogd.c
++++ b/sysklogd/syslogd.c
+@@ -1179,7 +1179,7 @@ int syslogd_main(int argc UNUSED_PARAM, char **argv)
+ }
+ }
+ #endif
+- if (!ENABLE_FEATURE_REMOTE_LOG || (opts & OPT_locallog)) {
++ if (!ENABLE_FEATURE_REMOTE_LOG || (option_mask32 & OPT_locallog)) {
+ recvbuf[sz] = '\0'; /* ensure it *is* NUL terminated */
+ split_escape_and_log(recvbuf, sz);
+ }
+--
+2.48.1
+
diff --git a/package/busybox/patches/009-disable-Oz.patch b/package/busybox/patches/009-disable-Oz.patch
new file mode 100644
index 000000000..11830586f
--- /dev/null
+++ b/package/busybox/patches/009-disable-Oz.patch
@@ -0,0 +1,20 @@
+diff -Nur busybox-1.36.1.orig/Makefile.flags busybox-1.36.1/Makefile.flags
+--- busybox-1.36.1.orig/Makefile.flags 2023-01-03 15:14:43.000000000 +0100
++++ busybox-1.36.1/Makefile.flags 2023-07-30 15:24:31.983113101 +0200
+@@ -87,14 +87,14 @@
+ #CFLAGS += $(call cc-option,-Wconversion,)
+
+ ifneq ($(CONFIG_DEBUG),y)
+-CFLAGS += $(call cc-option,-Oz,$(call cc-option,-Os,$(call cc-option,-O2,)))
++CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,))
+ else
+ CFLAGS += $(call cc-option,-g,)
+ #CFLAGS += "-D_FORTIFY_SOURCE=2"
+ ifeq ($(CONFIG_DEBUG_PESSIMIZE),y)
+ CFLAGS += $(call cc-option,-O0,)
+ else
+-CFLAGS += $(call cc-option,-Oz,$(call cc-option,-Os,$(call cc-option,-O2,)))
++CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,))
+ endif
+ endif
+ ifeq ($(CONFIG_DEBUG_SANITIZE),y)