Re: [Buildroot] [PATCH 1/6] configs/stm32f429_disco_xip: fix boot failure after uClibc bump

Julien Olivain via buildroot <[email protected]>
Newsgroups net.busybox.buildroot
Message-ID <[email protected]>
Hi Dario,

On 21/07/2026 20:42, Dario Binacchi wrote:
> Since uClibc was bumped to 1.0.58 (c7fef3704c70, "package/uclibc:
> bump to 1.0.58"), the board fails to boot:
> 
>     sh: out of memory
>     Kernel panic - not syncing: Attempted to kill init! 
> exitcode=0x00000100
>     CPU: 0 PID: 1 Comm: init Not tainted 6.1.167 #2
>     Hardware name: STM32 (Device Tree Support)
>     Function entered at [<0800ea1e>] from [<0800de7b>]
>     Function entered at [<0800de7b>] from [<080e4991>]
>     Function entered at [<080e4991>] from [<080e2d19>]
>     Function entered at [<080e2d19>] from [<080125eb>]
>     Function entered at [<080125eb>] from [<08012b09>]
>     Function entered at [<08012b09>] from [<08012b69>]
>     ---[ end Kernel panic - not syncing: Attempted to kill init! 
> exitcode=0x00000100 ]---
> 
> The STM32F429 has no MMU, and uClibc's standard malloc() implementation
> returns NULL for allocations performed during early init on this 
> target,
> causing init to abort immediately.
> 
> Fix this by switching to MALLOC_SIMPLE, a plain mmap-based allocator
> meant for small/noMMU systems, via a uClibc config fragment. The
> fragment is placed under board/stmicroelectronics/common/stm32f4xx/,
> rather than under the board-specific directory, so that it can be
> shared with the STM32F469, another Cortex-M4/noMMU board affected by
> the same issue, which will be fixed in a subsequent patch.

For info, the issue may have been introduced by uclibc commit:
https://github.com/wbx-github/uclibc-ng/commit/487af14988c3c923aa661f204642597cff356a83

There is an upstream fix, not released yet,  which seems to fix the 
issue:
https://github.com/wbx-github/uclibc-ng/commit/7730f0d05a51cd89a7123bd696e4638c3c035d7b

You could possibly drop this malloc config change after the next uclibc 
bump.

> Signed-off-by: Dario Binacchi <[email protected]>

In the meantime, I applied this series to master, thanks.

> ---
>  .../stmicroelectronics/common/stm32f4xx/uclibc-fragment.config  | 2 ++
>  configs/stm32f429_disco_xip_defconfig                           | 1 +
>  2 files changed, 3 insertions(+)
>  create mode 100644 
> board/stmicroelectronics/common/stm32f4xx/uclibc-fragment.config
> 
> diff --git 
> a/board/stmicroelectronics/common/stm32f4xx/uclibc-fragment.config 
> b/board/stmicroelectronics/common/stm32f4xx/uclibc-fragment.config
> new file mode 100644
> index 000000000000..fb8fa9ee01c3
> --- /dev/null
> +++ b/board/stmicroelectronics/common/stm32f4xx/uclibc-fragment.config
> @@ -0,0 +1,2 @@
> +# MALLOC is not set
> +MALLOC_SIMPLE=y
> diff --git a/configs/stm32f429_disco_xip_defconfig 
> b/configs/stm32f429_disco_xip_defconfig
> index 489303b93e0d..e6edfa906177 100644
> --- a/configs/stm32f429_disco_xip_defconfig
> +++ b/configs/stm32f429_disco_xip_defconfig
> @@ -1,6 +1,7 @@
>  BR2_arm=y
>  BR2_cortex_m4=y
>  BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y
> +BR2_UCLIBC_CONFIG_FRAGMENT_FILES="board/stmicroelectronics/common/stm32f4xx/uclibc-fragment.config"
>  # BR2_UCLIBC_INSTALL_UTILS is not set
>  BR2_ENABLE_LTO=y
>  
> BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f429-disco/patches"
> --
> 2.43.0

Best regards,

Julien.
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.