* [Buildroot] [PATCH 1/1] package/mpg123: remove MMU dependency
@ 2026-09-26 13:00 Bernd Kuhls
2026-10-04 7:07 ` Thomas Petazzoni via buildroot
2026-10-10 9:23 ` Thomas Perale via buildroot
0 siblings, 2 replies; 3+ messages in thread
From: Bernd Kuhls @ 2026-09-26 13:00 UTC (permalink / raw)
To: buildroot; +Cc: Hiroshi Kawashima
Buildroot commit f0862592b3caf5bc9cd347fd29634673cfbbabd7 added the
dependency to BR2_USE_MMU in 2014.
Upstream made fork() optional in 2022:
https://github.com/madebr/mpg123/commit/91f75fc026e37d88d25229b81c58bcf8d6d2a8eb
This change reveals a previously hidden build error with the toolchain
bootlin-armv7m-uclibc:
src/libmpg123/synth_arm_accurate.S: Assembler messages:
src/libmpg123/synth_arm_accurate.S:22: Error: selected processor does
not support ARM opcodes
src/libmpg123/synth_arm_accurate.S:31: Error: attempt to use an ARM
instruction on a Thumb-only processor --
`stmfd sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr}'
src/libmpg123/synth_arm_accurate.S:33: Error: attempt to use an ARM
instruction on a Thumb-only processor -- `add r0,r0,#64'
[...]
To fix the problem we limit ARM code to !BR2_ARM_INSTRUCTIONS_THUMB2.
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
Gitlab pipelines for mpg123 passed:
https://gitlab.com/bkuhls/buildroot/-/commits/85dfb60e8f4fbe0caa74674d91c54400c288ec10
Gitlab pipelines for squeezelite passed:
https://gitlab.com/bkuhls/buildroot/-/commits/f5549196dd9e923e3c83e809a5e170da44551c75
with the exception of an unrelated build error at
bootlin-x86-i686-musl/build/ffmpeg-6.1.5/.stamp_built
/builds/bkuhls/buildroot/br-test-pkg/bootlin-x86-i686-musl/host/opt/ext-toolchain/bin/../lib/gcc/i686-buildroot-linux-musl/15.3.0/../../../../i686-buildroot-linux-musl/bin/ld:
read-only segment has dynamic relocations
collect2: error: ld returned 1 exit status
package/mpg123/Config.in | 1 -
package/mpg123/mpg123.mk | 2 +-
package/squeezelite/Config.in | 2 --
3 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/package/mpg123/Config.in b/package/mpg123/Config.in
index 73ca1c740c..8cbc3a4758 100644
--- a/package/mpg123/Config.in
+++ b/package/mpg123/Config.in
@@ -1,6 +1,5 @@
config BR2_PACKAGE_MPG123
bool "mpg123"
- depends on BR2_USE_MMU # fork - in the application
help
Fast, free and portable MPEG audio player for Unix. It
supports MPEG 1.0/2.0 layers 1, 2 and 3.
diff --git a/package/mpg123/mpg123.mk b/package/mpg123/mpg123.mk
index 17445395ae..0318cb4810 100644
--- a/package/mpg123/mpg123.mk
+++ b/package/mpg123/mpg123.mk
@@ -26,7 +26,7 @@ ifeq ($(BR2_aarch64),y)
MPG123_CPU = aarch64
endif
-ifeq ($(BR2_arm),y)
+ifeq ($(BR2_arm)x$(BR2_ARM_INSTRUCTIONS_THUMB2),yx)
ifeq ($(or $(BR2_ARM_CPU_HAS_NEON),$(BR2_ARM_CPU_HAS_VFPV2)),y)
MPG123_CPU = arm_fpu
else
diff --git a/package/squeezelite/Config.in b/package/squeezelite/Config.in
index a034759143..0bdc43ce6c 100644
--- a/package/squeezelite/Config.in
+++ b/package/squeezelite/Config.in
@@ -2,7 +2,6 @@ config BR2_PACKAGE_SQUEEZELITE
bool "squeezelite"
depends on BR2_USE_WCHAR # flac
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
- depends on BR2_USE_MMU # mpg123
depends on !BR2_STATIC_LIBS # dlopen
select BR2_PACKAGE_ALSA_LIB
select BR2_PACKAGE_ALSA_LIB_MIXER
@@ -44,6 +43,5 @@ config BR2_PACKAGE_SQUEEZELITE_VISEXPORT
endif
comment "squeezelite needs a toolchain w/ wchar, NPTL, dynamic library"
- depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \
|| BR2_STATIC_LIBS
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [Buildroot] [PATCH 1/1] package/mpg123: remove MMU dependency
2026-09-26 13:00 [Buildroot] [PATCH 1/1] package/mpg123: remove MMU dependency Bernd Kuhls
@ 2026-10-04 7:07 ` Thomas Petazzoni via buildroot
2026-10-10 9:23 ` Thomas Perale via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-04 7:07 UTC (permalink / raw)
To: Bernd Kuhls; +Cc: buildroot, Hiroshi Kawashima
On Sat, Sep 26, 2026 at 03:00:06PM +0200, Bernd Kuhls wrote:
> Buildroot commit f0862592b3caf5bc9cd347fd29634673cfbbabd7 added the
> dependency to BR2_USE_MMU in 2014.
> Upstream made fork() optional in 2022:
> https://github.com/madebr/mpg123/commit/91f75fc026e37d88d25229b81c58bcf8d6d2a8eb
>
> This change reveals a previously hidden build error with the toolchain
> bootlin-armv7m-uclibc:
>
> src/libmpg123/synth_arm_accurate.S: Assembler messages:
> src/libmpg123/synth_arm_accurate.S:22: Error: selected processor does
> not support ARM opcodes
> src/libmpg123/synth_arm_accurate.S:31: Error: attempt to use an ARM
> instruction on a Thumb-only processor --
> `stmfd sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr}'
> src/libmpg123/synth_arm_accurate.S:33: Error: attempt to use an ARM
> instruction on a Thumb-only processor -- `add r0,r0,#64'
> [...]
So the ARM support needs support for ARM instructions.
> To fix the problem we limit ARM code to !BR2_ARM_INSTRUCTIONS_THUMB2.
Therefore it is most logical to require BR2_ARM_CPU_HAS_ARM than
!BR2_ARM_INSTRUCTIONS_THUMB2.
So I've changed:
> +ifeq ($(BR2_arm)x$(BR2_ARM_INSTRUCTIONS_THUMB2),yx)
to:
ifeq ($(BR2_arm)$(BR2_ARM_CPU_HAS_ARM),yy)
and applied. Thanks!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [Buildroot] [PATCH 1/1] package/mpg123: remove MMU dependency
2026-09-26 13:00 [Buildroot] [PATCH 1/1] package/mpg123: remove MMU dependency Bernd Kuhls
2026-10-04 7:07 ` Thomas Petazzoni via buildroot
@ 2026-10-10 9:23 ` Thomas Perale via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Perale via buildroot @ 2026-10-10 9:23 UTC (permalink / raw)
To: Bernd Kuhls; +Cc: Thomas Perale, buildroot
In reply of:
> Buildroot commit f0862592b3caf5bc9cd347fd29634673cfbbabd7 added the
> dependency to BR2_USE_MMU in 2014.
> Upstream made fork() optional in 2022:
> https://github.com/madebr/mpg123/commit/91f75fc026e37d88d25229b81c58bcf8d6d2a8eb
>
> This change reveals a previously hidden build error with the toolchain
> bootlin-armv7m-uclibc:
>
> src/libmpg123/synth_arm_accurate.S: Assembler messages:
> src/libmpg123/synth_arm_accurate.S:22: Error: selected processor does
> not support ARM opcodes
> src/libmpg123/synth_arm_accurate.S:31: Error: attempt to use an ARM
> instruction on a Thumb-only processor --
> `stmfd sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr}'
> src/libmpg123/synth_arm_accurate.S:33: Error: attempt to use an ARM
> instruction on a Thumb-only processor -- `add r0,r0,#64'
> [...]
>
> To fix the problem we limit ARM code to !BR2_ARM_INSTRUCTIONS_THUMB2.
>
> Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Applied to 2025.02.x & 2026.08.x. Thanks
> ---
> Gitlab pipelines for mpg123 passed:
> https://gitlab.com/bkuhls/buildroot/-/commits/85dfb60e8f4fbe0caa74674d91c54400c288ec10
>
> Gitlab pipelines for squeezelite passed:
> https://gitlab.com/bkuhls/buildroot/-/commits/f5549196dd9e923e3c83e809a5e170da44551c75
>
> with the exception of an unrelated build error at
> bootlin-x86-i686-musl/build/ffmpeg-6.1.5/.stamp_built
>
> /builds/bkuhls/buildroot/br-test-pkg/bootlin-x86-i686-musl/host/opt/ext-toolchain/bin/../lib/gcc/i686-buildroot-linux-musl/15.3.0/../../../../i686-buildroot-linux-musl/bin/ld:
> read-only segment has dynamic relocations
> collect2: error: ld returned 1 exit status
>
> package/mpg123/Config.in | 1 -
> package/mpg123/mpg123.mk | 2 +-
> package/squeezelite/Config.in | 2 --
> 3 files changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/package/mpg123/Config.in b/package/mpg123/Config.in
> index 73ca1c740c..8cbc3a4758 100644
> --- a/package/mpg123/Config.in
> +++ b/package/mpg123/Config.in
> @@ -1,6 +1,5 @@
> config BR2_PACKAGE_MPG123
> bool "mpg123"
> - depends on BR2_USE_MMU # fork - in the application
> help
> Fast, free and portable MPEG audio player for Unix. It
> supports MPEG 1.0/2.0 layers 1, 2 and 3.
> diff --git a/package/mpg123/mpg123.mk b/package/mpg123/mpg123.mk
> index 17445395ae..0318cb4810 100644
> --- a/package/mpg123/mpg123.mk
> +++ b/package/mpg123/mpg123.mk
> @@ -26,7 +26,7 @@ ifeq ($(BR2_aarch64),y)
> MPG123_CPU = aarch64
> endif
>
> -ifeq ($(BR2_arm),y)
> +ifeq ($(BR2_arm)x$(BR2_ARM_INSTRUCTIONS_THUMB2),yx)
> ifeq ($(or $(BR2_ARM_CPU_HAS_NEON),$(BR2_ARM_CPU_HAS_VFPV2)),y)
> MPG123_CPU = arm_fpu
> else
> diff --git a/package/squeezelite/Config.in b/package/squeezelite/Config.in
> index a034759143..0bdc43ce6c 100644
> --- a/package/squeezelite/Config.in
> +++ b/package/squeezelite/Config.in
> @@ -2,7 +2,6 @@ config BR2_PACKAGE_SQUEEZELITE
> bool "squeezelite"
> depends on BR2_USE_WCHAR # flac
> depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> - depends on BR2_USE_MMU # mpg123
> depends on !BR2_STATIC_LIBS # dlopen
> select BR2_PACKAGE_ALSA_LIB
> select BR2_PACKAGE_ALSA_LIB_MIXER
> @@ -44,6 +43,5 @@ config BR2_PACKAGE_SQUEEZELITE_VISEXPORT
> endif
>
> comment "squeezelite needs a toolchain w/ wchar, NPTL, dynamic library"
> - depends on BR2_USE_MMU
> depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \
> || BR2_STATIC_LIBS
> --
> 2.47.3
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-10 9:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-26 13:00 [Buildroot] [PATCH 1/1] package/mpg123: remove MMU dependency Bernd Kuhls
2026-10-04 7:07 ` Thomas Petazzoni via buildroot
2026-10-10 9:23 ` Thomas Perale via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.