[v2,1/1] package/babeld: disable for musl toolchains

Message ID 20260530125556.3957719-1-dario.binacchi@amarulasolutions.com
State New
Headers show
Series
  • [v2,1/1] package/babeld: disable for musl toolchains
Related show

Commit Message

Dario Binacchi May 30, 2026, 12:55 p.m. UTC
Building babeld with a musl toolchain fails with:
  ld: read-only segment has dynamic relocations

This happens because babeld uses text relocations (textrels), which
are not supported by the musl dynamic loader and would cause a
runtime crash (segmentation fault).

Since Buildroot passes '-ztext' to detect these unsafe relocations
at build time, disable babeld entirely for musl configurations.

Fixes:
https://autobuild.buildroot.org/results/c75643713fd5f27fe063c226630680d26a8b9487/

Suggested-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>

---

Changes v1 -> v2:
- Drop the initial approach of filtering LDFLAGS
- Disable the package entirely for MUSL toolchains since it requires textrels

 package/babeld/Config.in | 5 +++++
 1 file changed, 5 insertions(+)

Comments

'Thomas Petazzoni' via Amarula Linux May 30, 2026, 1:28 p.m. UTC | #1
On Sat, May 30, 2026 at 02:55:56PM +0200, Dario Binacchi wrote:
> Building babeld with a musl toolchain fails with:
>   ld: read-only segment has dynamic relocations
> 
> This happens because babeld uses text relocations (textrels), which
> are not supported by the musl dynamic loader and would cause a
> runtime crash (segmentation fault).
> 
> Since Buildroot passes '-ztext' to detect these unsafe relocations
> at build time, disable babeld entirely for musl configurations.
> 
> Fixes:
> https://autobuild.buildroot.org/results/c75643713fd5f27fe063c226630680d26a8b9487/
> 
> Suggested-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>

Applied to master, thanks!

Thomas

Patch

diff --git a/package/babeld/Config.in b/package/babeld/Config.in
index 80d27082306f..a39da7a8af07 100644
--- a/package/babeld/Config.in
+++ b/package/babeld/Config.in
@@ -1,8 +1,13 @@ 
 config BR2_PACKAGE_BABELD
 	bool "babeld"
 	depends on BR2_USE_MMU # fork()
+	depends on !BR2_TOOLCHAIN_USES_MUSL
 	help
 	  Babel is a loop-avoiding distance-vector routing protocol for
 	  IPv6 and IPv4 with fast convergence properties.
 
 	  https://www.irif.fr/~jch/software/babel/
+
+comment "babeld needs a uClibc or glibc toolchain"
+	depends on BR2_USE_MMU
+	depends on BR2_TOOLCHAIN_USES_MUSL