Buildroot with glibc possible?

  • Regrettably, currently the 1106 buildroot does not support glibc. Therefore, some tools that rely on glibc cannot be used under buildroot. You can continue to use Ubuntu, but we have suspended the maintenance and support for the Ubuntu image.
  • OK, I understand.
    If this is the only issue then we can work around it.

    Is it possible to enable extra uclibc features? It seems that the missing aio.h could be provided by uclibc:

    (from git://uclibc.org/uClibc.git)

    Code: Select all

    ..
    ..
       config UCLIBC_HAS_REALTIME
    	bool "Realtime-related family of SUSv functions"
    	default y
    	help
    	  These functions are part of the Timers option and need not
    	  be available on all implementations.
    	  Includes AIO, message-queue, scheduler, semaphore functions:
    
    	  aio.h
    	  mqueue.h
    	  sched.h
    	  semaphore.h
    
    	  aio_cancel()
    	  aio_error()
    	  aio_fsync()
              ..
              ..
    
  • [root@luckfox root]# ldd --version
    ldd (Buildroot) 2.35
    Copyright (C) 2022 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    Written by Roland McGrath and Ulrich Drepper.
    [root@luckfox root]# ls -la /lib/ld-linux-armhf.so.3
    -rwxr-xr-x 1 root root 186920 May 27 2026 /lib/ld-linux-armhf.so.3
    [root@luckfox root]# ldd /usr/sbin/sshd
    libcrypt.so.1 => /lib/libcrypt.so.1 (0xa6e10000)
    libmd.so.0 => /usr/lib/libmd.so.0 (0xa6df0000)
    libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0xa6d60000)
    libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0xa6b20000)
    libz.so.1 => /usr/lib/libz.so.1 (0xa6af0000)
    libc.so.6 => /lib/libc.so.6 (0xa6990000)
    /lib/ld-linux-armhf.so.3 (0xa6f6f000)
    libatomic.so.1 => /lib/libatomic.so.1 (0xa6970000)
    [root@luckfox root]# strings /lib/libc.so.6 | grep "GNU C Library"
    GNU C Library (Buildroot) stable release version 2.35.
    [root@luckfox root]#

    Please understand that I am not very good at English.

    I needed to use dynamic linking for the libraries, so I recompiled the rootfs to use glibc.
    I received assistance from AI, and there were a few modifications.
    The result was that glibc version 2.35 was built in the Buildroot environment, yielding the outcome described above.
    Since this result was obtained after trying various complex things, the modification details are not organized.

    To mention the items I remember:

    * Config.in.options
    > There is a bug where the PREFIX is fixed to "arm-linux" across all variants. Even if you select the armv7-eabihf-glibc variant, the build fails because the correct PREFIX (arm-buildroot-linux-gnueabihf) is not set.

    * defconfig generation
    > Creates a dedicated defconfig for glibc builds. This file is saved in the configs/ directory and loaded using the make command.

    * Disable Sandbox
    > OpenSSH 9.3 uses a sandbox via the seccomp BPF filter. On ARM Cortex-A7, this syscall filter does not function correctly, causing the privsep child to crash and the SSH connection to be immediately disconnected.

    * rm -rf output/
    > If you have changed the toolchain or if there is an output/ directory from a previous build, the project may build with an incorrect toolchain due to stale stamp files. Be sure to run rm -rf output/ and rebuild.

    This image is based on Luckfox Pico Max.
    https://naver.me/G0ppUgEG
    This is the image tested above.
    Please try testing it by updating the firmware using SocToolKit.

    I hope this is the answer you need.

    This is my first time using a luckfox product.
    I plan to implement a project using pico max. I hope the forum remains active so I can gain useful information.

    Last edited by gepanow on 2026-05-27 9:22, edited 3 times in total.