* [Buildroot] [PATCH 1/1] package/frr: bump to version 10.4.1 @ 2025-08-06 13:21 Maxime Leroy 2025-08-09 15:59 ` Julien Olivain via buildroot 2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy 0 siblings, 2 replies; 9+ messages in thread From: Maxime Leroy @ 2025-08-06 13:21 UTC (permalink / raw) To: buildroot; +Cc: Vadim Kochan, Maxime Leroy Update FRR to the latest stable version (10.4.1 see [1], 10.4.0 see [2]). As protobuf-c is no longer mandatory (see [3]), a new option BR2_PACKAGE_FRR_PROTOBUF is added to enable/disable it. [1] https://github.com/FRRouting/frr/commit/88f5c06cbc1c [2] https://github.com/FRRouting/frr/releases/tag/frr-10.4.0 [3] https://github.com/FRRouting/frr/commit/e51c16a4ca92 Signed-off-by: Maxime Leroy <maxime@leroys.fr> --- package/frr/Config.in | 27 ++++++++++++++++++--------- package/frr/frr.hash | 2 +- package/frr/frr.mk | 11 +++++++++-- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/package/frr/Config.in b/package/frr/Config.in index 211eb83419..feb1aef05a 100644 --- a/package/frr/Config.in +++ b/package/frr/Config.in @@ -1,19 +1,15 @@ config BR2_PACKAGE_FRR bool "frr" - depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf-c + depends on BR2_TOOLCHAIN_HAS_THREADS # pthread depends on !BR2_STATIC_LIBS # libyang depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c, libyang - depends on BR2_INSTALL_LIBSTDCPP # protobuf-c - depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c - depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c select BR2_PACKAGE_BASH select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_LIBYANG select BR2_PACKAGE_READLINE select BR2_PACKAGE_JSON_C - select BR2_PACKAGE_PROTOBUF_C help The FRRouting Protocol Suite. @@ -43,11 +39,24 @@ config BR2_PACKAGE_FRR_NHRPD help Build Next Hop Routing Protocol daemon. +config BR2_PACKAGE_FRR_PROTOBUF + bool "Protobuf support (Binary-FPM and MLAG)" + default y + depends on BR2_INSTALL_LIBSTDCPP # protobuf-c + depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c + depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c + select BR2_PACKAGE_PROTOBUF_C + help + Build FRR with protobuf-based Binary-FPM export and MLAG + peer synchronization. + endif -comment "frr needs a toolchain w/ threads, dynamic library, C++, host gcc >= 7" - depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS +comment "frr needs a toolchain w/ threads, dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ - !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7 + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS + +comment "protobuf support for frr needs a toolchain w/ protobuf, C++, host gcc >= 7" + depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7 diff --git a/package/frr/frr.hash b/package/frr/frr.hash index 414aaec7dd..12030a0df8 100644 --- a/package/frr/frr.hash +++ b/package/frr/frr.hash @@ -1,5 +1,5 @@ # Locally calculated -sha256 df4bc4f644f93be09f75c0e0e325b2f6a3ee6d1c6db429b6f36874e88a66ee33 frr-10.3.1.tar.gz +sha256 8e4003eaba168626c5ea7a6735f2c85c87b04214e6f8c8f2715b21f8ae40970b frr-10.4.1.tar.gz sha256 7bf053957d6c38e39a06a112c60ff35b228d3bd03edbe8c9a03508b051128d16 COPYING sha256 f9e0c21faf738da586281c0beaad3cd56204c19085a10fe05e4d3d7f8b5863d2 doc/licenses/BSD-2-Clause sha256 aca297b8fd3a43e3bb200f1e2e043c0db6c897325f5ff7f23f7530302a6bf713 doc/licenses/BSD-3-Clause diff --git a/package/frr/frr.mk b/package/frr/frr.mk index 23a2ca6037..fb7477a211 100644 --- a/package/frr/frr.mk +++ b/package/frr/frr.mk @@ -4,7 +4,7 @@ # ################################################################################ -FRR_VERSION = 10.3.1 +FRR_VERSION = 10.4.1 FRR_SITE = $(call github,FRRouting,frr,frr-$(FRR_VERSION)) FRR_LICENSE = GPL-2.0+ FRR_LICENSE_FILES = \ @@ -25,7 +25,6 @@ FRR_CPE_ID_PRODUCT = free_range_routing FRR_AUTORECONF = YES FRR_DEPENDENCIES = host-frr readline json-c libyang \ - protobuf-c \ $(if $(BR2_PACKAGE_C_ARES),c-ares) \ $(if $(BR2_PACKAGE_LIBXCRYPT),libxcrypt) @@ -89,6 +88,14 @@ else FRR_CONF_OPTS += --disable-bfdd endif +# Optional protobuf support +ifeq ($(BR2_PACKAGE_FRR_PROTOBUF),y) +FRR_DEPENDENCIES += protobuf-c +FRR_CONF_OPTS += --enable-protobuf +else +FRR_CONF_OPTS += --disable-protobuf +endif + ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) FRR_CONF_ENV += LIBS=-latomic endif -- 2.43.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/frr: bump to version 10.4.1 2025-08-06 13:21 [Buildroot] [PATCH 1/1] package/frr: bump to version 10.4.1 Maxime Leroy @ 2025-08-09 15:59 ` Julien Olivain via buildroot 2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy 1 sibling, 0 replies; 9+ messages in thread From: Julien Olivain via buildroot @ 2025-08-09 15:59 UTC (permalink / raw) To: Maxime Leroy; +Cc: buildroot, Vadim Kochan Hi Maxime, Thanks for the patch. On 06/08/2025 15:21, Maxime Leroy wrote: > Update FRR to the latest stable version (10.4.1 see [1], 10.4.0 see > [2]). This bump seems to introduce few build failures. See: https://gitlab.com/jolivain/buildroot/-/pipelines/1975753351 Most failures seems to be introduced by upstream commit: https://github.com/FRRouting/frr/commit/ff76fb21d7b3bdf66b1710dc9ffb7bb46f376828 which is adding a use of the "getloadavg()" which is not supported in all libc version. > > As protobuf-c is no longer mandatory (see [3]), a new option > BR2_PACKAGE_FRR_PROTOBUF is added to enable/disable it. > > [1] https://github.com/FRRouting/frr/commit/88f5c06cbc1c > [2] https://github.com/FRRouting/frr/releases/tag/frr-10.4.0 > [3] https://github.com/FRRouting/frr/commit/e51c16a4ca92 > Signed-off-by: Maxime Leroy <maxime@leroys.fr> Could you have a look please? Best regards, Julien. _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 0/2] update FRR to version 10.4.1 2025-08-06 13:21 [Buildroot] [PATCH 1/1] package/frr: bump to version 10.4.1 Maxime Leroy 2025-08-09 15:59 ` Julien Olivain via buildroot @ 2025-08-11 14:00 ` Maxime Leroy 2025-08-11 14:00 ` [Buildroot] [PATCH v2 1/2] package/frr: bump " Maxime Leroy ` (2 more replies) 1 sibling, 3 replies; 9+ messages in thread From: Maxime Leroy @ 2025-08-11 14:00 UTC (permalink / raw) To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy Changes v1 -> v2: - Fix compilation with uClibc - Add new option to configure enable-multipath Maxime Leroy (2): package/frr: bump to version 10.4.1 package/frr: make ECMP max configurable ...davg-optional-in-late-timer-warnings.patch | 48 +++++++++++++++++++ package/frr/Config.in | 33 +++++++++---- package/frr/frr.hash | 2 +- package/frr/frr.mk | 13 +++-- 4 files changed, 83 insertions(+), 13 deletions(-) create mode 100644 package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch -- 2.43.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 1/2] package/frr: bump to version 10.4.1 2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy @ 2025-08-11 14:00 ` Maxime Leroy 2025-08-11 14:00 ` [Buildroot] [PATCH v2 2/2] package/frr: make ECMP max configurable Maxime Leroy 2025-08-11 16:11 ` [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 Maxime Leroy 2 siblings, 0 replies; 9+ messages in thread From: Maxime Leroy @ 2025-08-11 14:00 UTC (permalink / raw) To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy Update FRR to the latest stable version (10.4.1 see [1], 10.4.0 see [2]). As protobuf-c is no longer mandatory (see [3]), a new option BR2_PACKAGE_FRR_PROTOBUF is added to enable/disable it. getloadavg function [4] is now used by FRR but older libcs (e.g. uClibc, dietlibc) lack this function, to fix the compilation, a patch must be applied on FRR. [1] https://github.com/FRRouting/frr/commit/88f5c06cbc1c [2] https://github.com/FRRouting/frr/releases/tag/frr-10.4.0 [3] https://github.com/FRRouting/frr/commit/e51c16a4ca92 [4] https://github.com/FRRouting/frr/commit/ff76fb21d7b3 Signed-off-by: Maxime Leroy <maxime@leroys.fr> Signed-off-by: Maxime Leroy <maxime@leroys.fr> --- ...davg-optional-in-late-timer-warnings.patch | 48 +++++++++++++++++++ package/frr/Config.in | 26 ++++++---- package/frr/frr.hash | 2 +- package/frr/frr.mk | 11 ++++- 4 files changed, 75 insertions(+), 12 deletions(-) create mode 100644 package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch diff --git a/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch b/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch new file mode 100644 index 0000000000..9f23dbab7c --- /dev/null +++ b/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch @@ -0,0 +1,48 @@ +From 037ae16694805c25c501fe8bb3890dad9b43bf34 Mon Sep 17 00:00:00 2001 +From: Maxime Leroy <maxime@leroys.fr> +Date: Mon, 11 Aug 2025 13:44:02 +0200 +Subject: [PATCH] lib: make getloadavg() optional in late timer warnings + +Commit ff76fb21d7b3 ("lib: improve late timer warnings") added an +unconditional getloadavg() call. Older libcs (e.g. uClibc, dietlibc) +lack this function, breaking the build. Before, no system load was +shown, so skipping it restores prior behavior. + +Fixes: ff76fb21d7b3 ("lib: improve late timer warnings") +Signed-off-by: Maxime Leroy <maxime@leroys.fr> +--- + configure.ac | 1 + + lib/event.c | 4 ++++ + 2 files changed, 5 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 87eba6784a..b8ef7bb777 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1369,6 +1369,7 @@ dnl --------------- + AC_CHECK_FUNCS([ \ + strlcat strlcpy \ + getgrouplist \ ++ getloadavg \ + openat \ + unlinkat \ + posix_fallocate \ +diff --git a/lib/event.c b/lib/event.c +index 1eb41d07ce..22876574fb 100644 +--- a/lib/event.c ++++ b/lib/event.c +@@ -1924,7 +1924,11 @@ static void event_tardy_warn(struct event *thread, unsigned long since_us) + double loadavg[3]; + int rv; + ++#ifdef HAVE_GETLOADAVG + rv = getloadavg(loadavg, array_size(loadavg)); ++#else ++ rv = -1; ++#endif + if (rv < 0) + bprintfrr(&fb, "not available"); + else { +-- +2.43.0 + diff --git a/package/frr/Config.in b/package/frr/Config.in index 211eb83419..366e0fca82 100644 --- a/package/frr/Config.in +++ b/package/frr/Config.in @@ -1,19 +1,15 @@ config BR2_PACKAGE_FRR bool "frr" - depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf-c + depends on BR2_TOOLCHAIN_HAS_THREADS # FRR uses pthreads depends on !BR2_STATIC_LIBS # libyang depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c, libyang - depends on BR2_INSTALL_LIBSTDCPP # protobuf-c - depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c - depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c select BR2_PACKAGE_BASH select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_LIBYANG select BR2_PACKAGE_READLINE select BR2_PACKAGE_JSON_C - select BR2_PACKAGE_PROTOBUF_C help The FRRouting Protocol Suite. @@ -43,11 +39,23 @@ config BR2_PACKAGE_FRR_NHRPD help Build Next Hop Routing Protocol daemon. +config BR2_PACKAGE_FRR_PROTOBUF + bool "Protobuf support (Binary-FPM and MLAG)" + default y + depends on BR2_HOST_GCC_AT_LEAST_7 + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS + select BR2_PACKAGE_PROTOBUF_C + help + Build FRR with protobuf-based Binary-FPM export and MLAG peer sync. + endif -comment "frr needs a toolchain w/ threads, dynamic library, C++, host gcc >= 7" - depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS +comment "frr needs a toolchain w/ threads, dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ - !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7 + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS + +comment "protobuf support for frr needs a toolchain w/ protobuf, C++, host gcc >= 7" + depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7 diff --git a/package/frr/frr.hash b/package/frr/frr.hash index 414aaec7dd..12030a0df8 100644 --- a/package/frr/frr.hash +++ b/package/frr/frr.hash @@ -1,5 +1,5 @@ # Locally calculated -sha256 df4bc4f644f93be09f75c0e0e325b2f6a3ee6d1c6db429b6f36874e88a66ee33 frr-10.3.1.tar.gz +sha256 8e4003eaba168626c5ea7a6735f2c85c87b04214e6f8c8f2715b21f8ae40970b frr-10.4.1.tar.gz sha256 7bf053957d6c38e39a06a112c60ff35b228d3bd03edbe8c9a03508b051128d16 COPYING sha256 f9e0c21faf738da586281c0beaad3cd56204c19085a10fe05e4d3d7f8b5863d2 doc/licenses/BSD-2-Clause sha256 aca297b8fd3a43e3bb200f1e2e043c0db6c897325f5ff7f23f7530302a6bf713 doc/licenses/BSD-3-Clause diff --git a/package/frr/frr.mk b/package/frr/frr.mk index 23a2ca6037..fb7477a211 100644 --- a/package/frr/frr.mk +++ b/package/frr/frr.mk @@ -4,7 +4,7 @@ # ################################################################################ -FRR_VERSION = 10.3.1 +FRR_VERSION = 10.4.1 FRR_SITE = $(call github,FRRouting,frr,frr-$(FRR_VERSION)) FRR_LICENSE = GPL-2.0+ FRR_LICENSE_FILES = \ @@ -25,7 +25,6 @@ FRR_CPE_ID_PRODUCT = free_range_routing FRR_AUTORECONF = YES FRR_DEPENDENCIES = host-frr readline json-c libyang \ - protobuf-c \ $(if $(BR2_PACKAGE_C_ARES),c-ares) \ $(if $(BR2_PACKAGE_LIBXCRYPT),libxcrypt) @@ -89,6 +88,14 @@ else FRR_CONF_OPTS += --disable-bfdd endif +# Optional protobuf support +ifeq ($(BR2_PACKAGE_FRR_PROTOBUF),y) +FRR_DEPENDENCIES += protobuf-c +FRR_CONF_OPTS += --enable-protobuf +else +FRR_CONF_OPTS += --disable-protobuf +endif + ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) FRR_CONF_ENV += LIBS=-latomic endif -- 2.43.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 2/2] package/frr: make ECMP max configurable 2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy 2025-08-11 14:00 ` [Buildroot] [PATCH v2 1/2] package/frr: bump " Maxime Leroy @ 2025-08-11 14:00 ` Maxime Leroy 2025-08-11 16:11 ` [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 Maxime Leroy 2 siblings, 0 replies; 9+ messages in thread From: Maxime Leroy @ 2025-08-11 14:00 UTC (permalink / raw) To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy Upstream FRR accepts --enable-multipath=N in the range 1–999. Buildroot previously hardcoded 256. Add a config integer to set the maximum ECMP paths at build time, keeping 256 as the default. Lower values help match hardware limits or reduce memory; higher values are useful for software routing or lab testing. Signed-off-by: Maxime Leroy <maxime@leroys.fr> --- package/frr/Config.in | 7 +++++++ package/frr/frr.mk | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/package/frr/Config.in b/package/frr/Config.in index 366e0fca82..4dcc08355d 100644 --- a/package/frr/Config.in +++ b/package/frr/Config.in @@ -33,6 +33,13 @@ config BR2_PACKAGE_FRR_BMP help Build BGP Monitoring Protocol daemon. +config BR2_PACKAGE_FRR_MULTIPATH_MAX + int "maximum ECMP paths" + default 256 + range 1 999 + help + Compile FRR with support for up to this many equal-cost next-hops (ECMP). + config BR2_PACKAGE_FRR_NHRPD bool "NHRPD protocol" select BR2_PACKAGE_C_ARES diff --git a/package/frr/frr.mk b/package/frr/frr.mk index fb7477a211..e41ee33caa 100644 --- a/package/frr/frr.mk +++ b/package/frr/frr.mk @@ -40,7 +40,7 @@ FRR_CONF_OPTS = --with-clippy=$(HOST_DIR)/bin/clippy \ --with-moduledir=/usr/lib/frr/modules \ --enable-configfile-mask=0640 \ --enable-logfile-mask=0640 \ - --enable-multipath=256 \ + --enable-multipath=$(BR2_PACKAGE_FRR_MULTIPATH_MAX) \ --disable-ospfclient \ --enable-user=frr \ --enable-group=frr \ -- 2.43.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy 2025-08-11 14:00 ` [Buildroot] [PATCH v2 1/2] package/frr: bump " Maxime Leroy 2025-08-11 14:00 ` [Buildroot] [PATCH v2 2/2] package/frr: make ECMP max configurable Maxime Leroy @ 2025-08-11 16:11 ` Maxime Leroy 2025-08-11 16:11 ` [Buildroot] [PATCH v3 1/2] package/frr: bump " Maxime Leroy 2025-08-11 16:11 ` [Buildroot] [PATCH v3 2/2] package/frr: make ECMP max configurable Maxime Leroy 2 siblings, 2 replies; 9+ messages in thread From: Maxime Leroy @ 2025-08-11 16:11 UTC (permalink / raw) To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy Changes v2 -> v3: - Add 'Upstream: ' to FRR patch - fix help text format for multipath-max option Changes v1 -> v2: - Fix compilation with uClibc - Add new option to configure enable-multipath Maxime Leroy (2): package/frr: bump to version 10.4.1 package/frr: make ECMP max configurable ...davg-optional-in-late-timer-warnings.patch | 49 +++++++++++++++++++ package/frr/Config.in | 35 +++++++++---- package/frr/frr.hash | 2 +- package/frr/frr.mk | 13 +++-- 4 files changed, 86 insertions(+), 13 deletions(-) create mode 100644 package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch -- 2.43.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v3 1/2] package/frr: bump to version 10.4.1 2025-08-11 16:11 ` [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 Maxime Leroy @ 2025-08-11 16:11 ` Maxime Leroy 2025-08-13 16:21 ` Julien Olivain via buildroot 2025-08-11 16:11 ` [Buildroot] [PATCH v3 2/2] package/frr: make ECMP max configurable Maxime Leroy 1 sibling, 1 reply; 9+ messages in thread From: Maxime Leroy @ 2025-08-11 16:11 UTC (permalink / raw) To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy Update FRR to the latest stable version (10.4.1 see [1], 10.4.0 see [2]). As protobuf-c is no longer mandatory (see [3]), a new option BR2_PACKAGE_FRR_PROTOBUF is added to enable/disable it. getloadavg function [4] is now used by FRR but older libcs (e.g. uClibc, dietlibc) lack this function, to fix the compilation, a patch must be applied on FRR. [1] https://github.com/FRRouting/frr/commit/88f5c06cbc1c [2] https://github.com/FRRouting/frr/releases/tag/frr-10.4.0 [3] https://github.com/FRRouting/frr/commit/e51c16a4ca92 [4] https://github.com/FRRouting/frr/commit/ff76fb21d7b3 Signed-off-by: Maxime Leroy <maxime@leroys.fr> --- ...davg-optional-in-late-timer-warnings.patch | 49 +++++++++++++++++++ package/frr/Config.in | 27 ++++++---- package/frr/frr.hash | 2 +- package/frr/frr.mk | 11 ++++- 4 files changed, 77 insertions(+), 12 deletions(-) create mode 100644 package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch diff --git a/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch b/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch new file mode 100644 index 0000000000..d03f64882e --- /dev/null +++ b/package/frr/0001-lib-make-getloadavg-optional-in-late-timer-warnings.patch @@ -0,0 +1,49 @@ +From d76100a2b9a2ec814ad0a1fb844a395a6dc2f6bd Mon Sep 17 00:00:00 2001 +From: Maxime Leroy <maxime@leroys.fr> +Date: Mon, 11 Aug 2025 13:44:02 +0200 +Subject: [PATCH] lib: make getloadavg() optional in late timer warnings + +Commit ff76fb21d7b3 ("lib: improve late timer warnings") added an +unconditional getloadavg() call. Older libcs (e.g. uClibc, dietlibc) +lack this function, breaking the build. Before, no system load was +shown, so skipping it restores prior behavior. + +Fixes: ff76fb21d7b3 ("lib: improve late timer warnings") +Signed-off-by: Maxime Leroy <maxime@leroys.fr> +Upstream: https://github.com/FRRouting/frr/pull/19366 +--- + configure.ac | 1 + + lib/event.c | 4 ++++ + 2 files changed, 5 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 87eba6784a..b8ef7bb777 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1369,6 +1369,7 @@ dnl --------------- + AC_CHECK_FUNCS([ \ + strlcat strlcpy \ + getgrouplist \ ++ getloadavg \ + openat \ + unlinkat \ + posix_fallocate \ +diff --git a/lib/event.c b/lib/event.c +index 1eb41d07ce..22876574fb 100644 +--- a/lib/event.c ++++ b/lib/event.c +@@ -1924,7 +1924,11 @@ static void event_tardy_warn(struct event *thread, unsigned long since_us) + double loadavg[3]; + int rv; + ++#ifdef HAVE_GETLOADAVG + rv = getloadavg(loadavg, array_size(loadavg)); ++#else ++ rv = -1; ++#endif + if (rv < 0) + bprintfrr(&fb, "not available"); + else { +-- +2.43.0 + diff --git a/package/frr/Config.in b/package/frr/Config.in index 211eb83419..feb1aef05a 100644 --- a/package/frr/Config.in +++ b/package/frr/Config.in @@ -1,19 +1,15 @@ config BR2_PACKAGE_FRR bool "frr" - depends on BR2_TOOLCHAIN_HAS_THREADS # protobuf-c + depends on BR2_TOOLCHAIN_HAS_THREADS # pthread depends on !BR2_STATIC_LIBS # libyang depends on BR2_USE_MMU # fork() depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c, libyang - depends on BR2_INSTALL_LIBSTDCPP # protobuf-c - depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c - depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c select BR2_PACKAGE_BASH select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC select BR2_PACKAGE_LIBYANG select BR2_PACKAGE_READLINE select BR2_PACKAGE_JSON_C - select BR2_PACKAGE_PROTOBUF_C help The FRRouting Protocol Suite. @@ -43,11 +39,24 @@ config BR2_PACKAGE_FRR_NHRPD help Build Next Hop Routing Protocol daemon. +config BR2_PACKAGE_FRR_PROTOBUF + bool "Protobuf support (Binary-FPM and MLAG)" + default y + depends on BR2_INSTALL_LIBSTDCPP # protobuf-c + depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS # protobuf-c + depends on BR2_HOST_GCC_AT_LEAST_7 # protobuf-c + select BR2_PACKAGE_PROTOBUF_C + help + Build FRR with protobuf-based Binary-FPM export and MLAG + peer synchronization. + endif -comment "frr needs a toolchain w/ threads, dynamic library, C++, host gcc >= 7" - depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS +comment "frr needs a toolchain w/ threads, dynamic library" depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \ - !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7 + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS + +comment "protobuf support for frr needs a toolchain w/ protobuf, C++, host gcc >= 7" + depends on BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_HOST_GCC_AT_LEAST_7 diff --git a/package/frr/frr.hash b/package/frr/frr.hash index 414aaec7dd..12030a0df8 100644 --- a/package/frr/frr.hash +++ b/package/frr/frr.hash @@ -1,5 +1,5 @@ # Locally calculated -sha256 df4bc4f644f93be09f75c0e0e325b2f6a3ee6d1c6db429b6f36874e88a66ee33 frr-10.3.1.tar.gz +sha256 8e4003eaba168626c5ea7a6735f2c85c87b04214e6f8c8f2715b21f8ae40970b frr-10.4.1.tar.gz sha256 7bf053957d6c38e39a06a112c60ff35b228d3bd03edbe8c9a03508b051128d16 COPYING sha256 f9e0c21faf738da586281c0beaad3cd56204c19085a10fe05e4d3d7f8b5863d2 doc/licenses/BSD-2-Clause sha256 aca297b8fd3a43e3bb200f1e2e043c0db6c897325f5ff7f23f7530302a6bf713 doc/licenses/BSD-3-Clause diff --git a/package/frr/frr.mk b/package/frr/frr.mk index 23a2ca6037..fb7477a211 100644 --- a/package/frr/frr.mk +++ b/package/frr/frr.mk @@ -4,7 +4,7 @@ # ################################################################################ -FRR_VERSION = 10.3.1 +FRR_VERSION = 10.4.1 FRR_SITE = $(call github,FRRouting,frr,frr-$(FRR_VERSION)) FRR_LICENSE = GPL-2.0+ FRR_LICENSE_FILES = \ @@ -25,7 +25,6 @@ FRR_CPE_ID_PRODUCT = free_range_routing FRR_AUTORECONF = YES FRR_DEPENDENCIES = host-frr readline json-c libyang \ - protobuf-c \ $(if $(BR2_PACKAGE_C_ARES),c-ares) \ $(if $(BR2_PACKAGE_LIBXCRYPT),libxcrypt) @@ -89,6 +88,14 @@ else FRR_CONF_OPTS += --disable-bfdd endif +# Optional protobuf support +ifeq ($(BR2_PACKAGE_FRR_PROTOBUF),y) +FRR_DEPENDENCIES += protobuf-c +FRR_CONF_OPTS += --enable-protobuf +else +FRR_CONF_OPTS += --disable-protobuf +endif + ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) FRR_CONF_ENV += LIBS=-latomic endif -- 2.43.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH v3 1/2] package/frr: bump to version 10.4.1 2025-08-11 16:11 ` [Buildroot] [PATCH v3 1/2] package/frr: bump " Maxime Leroy @ 2025-08-13 16:21 ` Julien Olivain via buildroot 0 siblings, 0 replies; 9+ messages in thread From: Julien Olivain via buildroot @ 2025-08-13 16:21 UTC (permalink / raw) To: Maxime Leroy; +Cc: buildroot, Vadim Kochan On 11/08/2025 18:11, Maxime Leroy wrote: > Update FRR to the latest stable version (10.4.1 see [1], 10.4.0 see > [2]). > > As protobuf-c is no longer mandatory (see [3]), a new option > BR2_PACKAGE_FRR_PROTOBUF is added to enable/disable it. > > getloadavg function [4] is now used by FRR but older libcs (e.g. > uClibc, > dietlibc) lack this function, to fix the compilation, a patch must be > applied on FRR. > > [1] https://github.com/FRRouting/frr/commit/88f5c06cbc1c > [2] https://github.com/FRRouting/frr/releases/tag/frr-10.4.0 > [3] https://github.com/FRRouting/frr/commit/e51c16a4ca92 > [4] https://github.com/FRRouting/frr/commit/ff76fb21d7b3 > Signed-off-by: Maxime Leroy <maxime@leroys.fr> Series applied to next, thanks. _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v3 2/2] package/frr: make ECMP max configurable 2025-08-11 16:11 ` [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 Maxime Leroy 2025-08-11 16:11 ` [Buildroot] [PATCH v3 1/2] package/frr: bump " Maxime Leroy @ 2025-08-11 16:11 ` Maxime Leroy 1 sibling, 0 replies; 9+ messages in thread From: Maxime Leroy @ 2025-08-11 16:11 UTC (permalink / raw) To: buildroot; +Cc: Vadim Kochan, ju.o, Maxime Leroy Upstream FRR accepts --enable-multipath=N in the range 1–999. Buildroot previously hardcoded 256. Add a config integer to set the maximum ECMP paths at build time, keeping 256 as the default. Lower values help match hardware limits or reduce memory; higher values are useful for software routing or lab testing. Signed-off-by: Maxime Leroy <maxime@leroys.fr> --- package/frr/Config.in | 8 ++++++++ package/frr/frr.mk | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/package/frr/Config.in b/package/frr/Config.in index feb1aef05a..6c26b6d2e1 100644 --- a/package/frr/Config.in +++ b/package/frr/Config.in @@ -33,6 +33,14 @@ config BR2_PACKAGE_FRR_BMP help Build BGP Monitoring Protocol daemon. +config BR2_PACKAGE_FRR_MULTIPATH_MAX + int "maximum ECMP paths" + default 256 + range 1 999 + help + Compile FRR with support for up to this many equal-cost + next-hops (ECMP). + config BR2_PACKAGE_FRR_NHRPD bool "NHRPD protocol" select BR2_PACKAGE_C_ARES diff --git a/package/frr/frr.mk b/package/frr/frr.mk index fb7477a211..e41ee33caa 100644 --- a/package/frr/frr.mk +++ b/package/frr/frr.mk @@ -40,7 +40,7 @@ FRR_CONF_OPTS = --with-clippy=$(HOST_DIR)/bin/clippy \ --with-moduledir=/usr/lib/frr/modules \ --enable-configfile-mask=0640 \ --enable-logfile-mask=0640 \ - --enable-multipath=256 \ + --enable-multipath=$(BR2_PACKAGE_FRR_MULTIPATH_MAX) \ --disable-ospfclient \ --enable-user=frr \ --enable-group=frr \ -- 2.43.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-08-13 16:21 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-08-06 13:21 [Buildroot] [PATCH 1/1] package/frr: bump to version 10.4.1 Maxime Leroy 2025-08-09 15:59 ` Julien Olivain via buildroot 2025-08-11 14:00 ` [Buildroot] [PATCH v2 0/2] update FRR " Maxime Leroy 2025-08-11 14:00 ` [Buildroot] [PATCH v2 1/2] package/frr: bump " Maxime Leroy 2025-08-11 14:00 ` [Buildroot] [PATCH v2 2/2] package/frr: make ECMP max configurable Maxime Leroy 2025-08-11 16:11 ` [Buildroot] [PATCH v3 0/2] update FRR to version 10.4.1 Maxime Leroy 2025-08-11 16:11 ` [Buildroot] [PATCH v3 1/2] package/frr: bump " Maxime Leroy 2025-08-13 16:21 ` Julien Olivain via buildroot 2025-08-11 16:11 ` [Buildroot] [PATCH v3 2/2] package/frr: make ECMP max configurable Maxime Leroy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox