Page 1 of 1

meson build failed / missing ulibc configuration

Posted: 2024-03-19 17:01
by rhoki
Hello, I am experiencing the same issue with meson and intl as posted here:
viewtopic.php?t=82
However, I cannot follow instructions because disabling libglib2 is not possible.
Screenshot_20240319_174230.png
I assume the issue comes from missing UCLIBC_HAS_LIBINTL=y option from uclibc configuration. I have found out that the file (buildroot)/package/uclibc/uClibc-ng.config has the required option set, however to my understanding buildroot has been configured to use external uClibc provided by the toolchain.
(toolchain)/arm-rockchip830-linux-uclibcgnueabihf/arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr/lib/uclibc_nonshared.a
(toolchain)/arm-rockchip830-linux-uclibcgnueabihf/arm-rockchip830-linux-uclibcgnueabihf/sysroot/lib/libuClibc-1.0.31.so
Screenshot_20240319_175614.png
Is it possible to build my own version of uClibc with intl enabled or solve the issue in other way?

Re: meson build failed / missing ulibc configuration

Posted: 2024-03-20 3:52
by Crocodile
rhoki wrote: 2024-03-19 17:01 Hello, I am experiencing the same issue with meson and intl as posted here:
viewtopic.php?t=82
However, I cannot follow instructions because disabling libglib2 is not possible.
Screenshot_20240319_174230.png
I assume the issue comes from missing UCLIBC_HAS_LIBINTL=y option from uclibc configuration. I have found out that the file (buildroot)/package/uclibc/uClibc-ng.config has the required option set, however to my understanding buildroot has been configured to use external uClibc provided by the toolchain.
(toolchain)/arm-rockchip830-linux-uclibcgnueabihf/arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr/lib/uclibc_nonshared.a
(toolchain)/arm-rockchip830-linux-uclibcgnueabihf/arm-rockchip830-linux-uclibcgnueabihf/sysroot/lib/libuClibc-1.0.31.so
Screenshot_20240319_175614.png
Is it possible to build my own version of uClibc with intl enabled or solve the issue in other way?
Hello,
The reason why libglib2 cannot be deselected may be due to your selection of options that depend on libglib2. This is a mechanism in Buildroot to ensure the proper functioning of features. Under <Luckfox-pico SDK>/sysdrv/source/buildroot/buildroot-2023.02.6/package, you'll find various libraries and related documentation files. You can refer to these to identify which library depends on libglib2.

Code: Select all

./at-spi2-atk/Config.in:9:      select BR2_PACKAGE_LIBGLIB2
./at-spi2-core/Config.in:8:     select BR2_PACKAGE_LIBGLIB2
./atk/Config.in:6:      select BR2_PACKAGE_LIBGLIB2
./babeltrace2/Config.in:6:      select BR2_PACKAGE_LIBGLIB2
./bluez-alsa/Config.in:14:      select BR2_PACKAGE_LIBGLIB2
./bluez-tools/Config.in:9:      select BR2_PACKAGE_LIBGLIB2
./bluez5_utils/Config.in:10:    select BR2_PACKAGE_LIBGLIB2
./brickd/Config.in:7:   select BR2_PACKAGE_LIBGLIB2
./bustle/Config.in:8:   select BR2_PACKAGE_LIBGLIB2
./cairomm/Config.in:9:  select BR2_PACKAGE_LIBGLIB2
./cairomm1_14/Config.in:9:      select BR2_PACKAGE_LIBGLIB2
./connman/Config.in:10: select BR2_PACKAGE_LIBGLIB2
./connman-gtk/Config.in:18:     select BR2_PACKAGE_LIBGLIB2
./cups-filters/Config.in:16:    select BR2_PACKAGE_LIBGLIB2
./curlftpfs/Config.in:8:        select BR2_PACKAGE_LIBGLIB2
./cwiid/Config.in:27:   select BR2_PACKAGE_LIBGLIB2
./dbus-glib/Config.in:7:        select BR2_PACKAGE_LIBGLIB2
./dbus-python/Config.in:7:      select BR2_PACKAGE_LIBGLIB2
./docker/Config.in:7:   select BR2_PACKAGE_LIBGLIB2
./easydbus/Config.in:7: select BR2_PACKAGE_LIBGLIB2
./enchant/Config.in:7:  select BR2_PACKAGE_LIBGLIB2
./fluidsynth/Config.in:10:      select BR2_PACKAGE_LIBGLIB2
./freerdp/Config.in:15: select BR2_PACKAGE_LIBGLIB2
./fwts/Config.in:17:    select BR2_PACKAGE_LIBGLIB2
./gamin/Config.in:6:    select BR2_PACKAGE_LIBGLIB2
./gconf/Config.in:9:    select BR2_PACKAGE_LIBGLIB2
./gcr/Config.in:11:     select BR2_PACKAGE_LIBGLIB2
./gdk-pixbuf/Config.in:6:       select BR2_PACKAGE_LIBGLIB2
./gkrellm/Config.in:7:  select BR2_PACKAGE_LIBGLIB2
./glib-networking/Config.in:7:  select BR2_PACKAGE_LIBGLIB2
./glibmm/Config.in:8:   select BR2_PACKAGE_LIBGLIB2
./glibmm2_66/Config.in:8:       select BR2_PACKAGE_LIBGLIB2
./gmpc/Config.in:8:     select BR2_PACKAGE_LIBGLIB2
./gobject-introspection/Config.in:29:   select BR2_PACKAGE_LIBGLIB2
./granite/Config.in:9:  select BR2_PACKAGE_LIBGLIB2
./gsettings-desktop-schemas/Config.in:6:        select BR2_PACKAGE_LIBGLIB2
./gssdp/Config.in:6:    select BR2_PACKAGE_LIBGLIB2
./gstreamer1/gst1-python/Config.in:11:  select BR2_PACKAGE_LIBGLIB2
./gstreamer1/gstd/Config.in:11: select BR2_PACKAGE_LIBGLIB2
./gstreamer1/gstreamer1/Config.in:10:   select BR2_PACKAGE_LIBGLIB2
./gupnp/Config.in:6:    select BR2_PACKAGE_LIBGLIB2
./gupnp-av/Config.in:6: select BR2_PACKAGE_LIBGLIB2
./gupnp-dlna/Config.in:6:       select BR2_PACKAGE_LIBGLIB2
./gvfs/Config.in:8:     select BR2_PACKAGE_LIBGLIB2
./irqbalance/Config.in:6:       select BR2_PACKAGE_LIBGLIB2
./irssi/Config.in:6:    select BR2_PACKAGE_LIBGLIB2
./janus-gateway/Config.in:9:    select BR2_PACKAGE_LIBGLIB2
./json-glib/Config.in:6:        select BR2_PACKAGE_LIBGLIB2
./kodi/Config.in:225:   select BR2_PACKAGE_LIBGLIB2
./ksmbd-tools/Config.in:6:      select BR2_PACKAGE_LIBGLIB2
./latencytop/Config.in:7:       select BR2_PACKAGE_LIBGLIB2
./lensfun/Config.in:7:  select BR2_PACKAGE_LIBGLIB2
./libblockdev/Config.in:10:     select BR2_PACKAGE_LIBGLIB2
./libfm/Config.in:11:   select BR2_PACKAGE_LIBGLIB2
./libfm-extra/Config.in:6:      select BR2_PACKAGE_LIBGLIB2
./libgdiplus/Config.in:8:       select BR2_PACKAGE_LIBGLIB2
./libgee/Config.in:7:   select BR2_PACKAGE_LIBGLIB2
./libglade/Config.in:7: select BR2_PACKAGE_LIBGLIB2
./libgtk2/Config.in:15: select BR2_PACKAGE_LIBGLIB2
./libgtk3/Config.in:32: select BR2_PACKAGE_LIBGLIB2
./libgudev/Config.in:7: select BR2_PACKAGE_LIBGLIB2
./libmanette/Config.in:8:       select BR2_PACKAGE_LIBGLIB2
./libmbim/Config.in:6:  select BR2_PACKAGE_LIBGLIB2
./libmediaart/Config.in:10:     select BR2_PACKAGE_LIBGLIB2
./libmms/Config.in:6:   select BR2_PACKAGE_LIBGLIB2
./libmpd/Config.in:6:   select BR2_PACKAGE_LIBGLIB2
./libnice/Config.in:8:  select BR2_PACKAGE_LIBGLIB2
./libostree/Config.in:11:       select BR2_PACKAGE_LIBGLIB2
./libpeas/Config.in:10: select BR2_PACKAGE_LIBGLIB2
./libqmi/Config.in:6:   select BR2_PACKAGE_LIBGLIB2
./libqrtr-glib/Config.in:7:     select BR2_PACKAGE_LIBGLIB2
./librsvg/Config.in:15: select BR2_PACKAGE_LIBGLIB2
./libsecret/Config.in:6:        select BR2_PACKAGE_LIBGLIB2
./libsigrok/Config.in:12:       select BR2_PACKAGE_LIBGLIB2
./libsigrokdecode/Config.in:7:  select BR2_PACKAGE_LIBGLIB2
./libsoup/Config.in:7:  select BR2_PACKAGE_LIBGLIB2
./libvips/Config.in:10: select BR2_PACKAGE_LIBGLIB2
./libvirt/Config.in:27: select BR2_PACKAGE_LIBGLIB2
./lttng-babeltrace/Config.in:8: select BR2_PACKAGE_LIBGLIB2
./mc/Config.in:6:       select BR2_PACKAGE_LIBGLIB2
./mender-connect/Config.in:9:   select BR2_PACKAGE_LIBGLIB2
./menu-cache/Config.in:6:       select BR2_PACKAGE_LIBGLIB2
./miraclecast/Config.in:8:      select BR2_PACKAGE_LIBGLIB2
./modem-manager/Config.in:8:    select BR2_PACKAGE_LIBGLIB2
./nbd/Config.in:6:      select BR2_PACKAGE_LIBGLIB2
./neard/Config.in:9:    select BR2_PACKAGE_LIBGLIB2
./network-manager/Config.in:13: select BR2_PACKAGE_LIBGLIB2
./ofono/Config.in:12:   select BR2_PACKAGE_LIBGLIB2
./openbox/Config.in:10: select BR2_PACKAGE_LIBGLIB2
./openvmtools/Config.in:15:     select BR2_PACKAGE_LIBGLIB2
./pango/Config.in:9:    select BR2_PACKAGE_LIBGLIB2
./pcmanfm/Config.in:12: select BR2_PACKAGE_LIBGLIB2
./pipewire/Config.in:40:        select BR2_PACKAGE_LIBGLIB2
./polkit/Config.in:12:  select BR2_PACKAGE_LIBGLIB2
./pulseaudio/Config.in:21:      select BR2_PACKAGE_LIBGLIB2
./python-gobject/Config.in:9:   select BR2_PACKAGE_LIBGLIB2
./qemu/Config.in:27:    select BR2_PACKAGE_LIBGLIB2
./qt5/qt5webengine/Config.in:44:        select BR2_PACKAGE_LIBGLIB2
./rauc/Config.in:6:     select BR2_PACKAGE_LIBGLIB2
./restorecond/Config.in:10:     select BR2_PACKAGE_LIBGLIB2
./rrdtool/Config.in:6:  select BR2_PACKAGE_LIBGLIB2
./shairport-sync/Config.in:34:  select BR2_PACKAGE_LIBGLIB2
./shared-mime-info/Config.in:6: select BR2_PACKAGE_LIBGLIB2
./slirp/Config.in:6:    select BR2_PACKAGE_LIBGLIB2
./slirp4netns/Config.in:9:      select BR2_PACKAGE_LIBGLIB2
./speechd/Config.in:8:  select BR2_PACKAGE_LIBGLIB2
./spice/Config.in:13:   select BR2_PACKAGE_LIBGLIB2
./sshfs/Config.in:8:    select BR2_PACKAGE_LIBGLIB2
./syslog-ng/Config.in:7:        select BR2_PACKAGE_LIBGLIB2
./sysprof/Config.in:9:  select BR2_PACKAGE_LIBGLIB2
./tpm2-abrmd/Config.in:7:       select BR2_PACKAGE_LIBGLIB2
./usbredir/Config.in:28:        select BR2_PACKAGE_LIBGLIB2
./wireplumber/Config.in:8:      select BR2_PACKAGE_LIBGLIB2
./wireshark/Config.in:12:       select BR2_PACKAGE_LIBGLIB2
./wmctrl/Config.in:9:   select BR2_PACKAGE_LIBGLIB2
./wpebackend-fdo/Config.in:14:  select BR2_PACKAGE_LIBGLIB2
./xdg-dbus-proxy/Config.in:6:   select BR2_PACKAGE_LIBGLIB2
./xen/Config.in:27:     select BR2_PACKAGE_LIBGLIB2
As the cross-compilation toolchain is provided by Rockchip, we lack insights into its construction principles and modifications compared to the standard uclibc. The feasibility of building our own uclibc seems unlikely. If you have specific requirements that necessitate relying on libglib2, we can discuss alternative solutions.

Hope this helps.

Re: meson build failed / missing ulibc configuration

Posted: 2024-03-20 15:04
by rhoki
Thank you for your answer. The package causing the issue was sshfs. The problem I was trying to solve was that debug builds of media and app take much more space than release. My idea was to mount <Luckfox-pico SDK>/output/out/oem to /oem over network. I can achieve similar results with nfs, or just shrink rootfs and enlarge oem partition and then copy the app binary via scp after every build. Sshfs is just more convenient.