| Summary: | Buildroot not compiling with systemd and glibc. | ||
|---|---|---|---|
| Product: | buildroot | Reporter: | Sergio Semedi <sergio> |
| Component: | Other | Assignee: | unassigned |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | buildroot |
| Priority: | P5 | ||
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Host: | Target: | ||
| Build: | |||
With what Buildroot version are you facing this? 2022.08 or the latest master? In the latest master, we very recently updated glibc from 2.35 to 2.36 and this is know to cause a number of problems. (In reply to Thomas Petazzoni from comment #1) Hi, im indeed using master. What is the best approach for this case? Use version 2022.08 with its respective patches? some workaround to downgrade glibc? Maybe I will try the version with glibc 2.35. Thank you very much. If you're developing an actual product, I would suggest using either 2022.08 or 2022.02. If you really want to be at the tip, use master, and revert commit 80c8c15c8534a24382b900a07082a289a368f736. We have it since only a few days, precisely to see what will be the issues with the glibc 2.36 bump. Now we need to figure out the solutions to those issues :-) This has normally been fixed by https://gitlab.com/buildroot.org/buildroot/-/commit/4ed7d51d1896144caecfd40cf760cf13bbdb9c9d. |
Buildroot does not compile when I activate systemd with glibc (the only available library). I would swear that this statx redefinition bug was resolved in 2018 but I keep encountering it. To reproduce: - Defconfig of any arm architecture (raspberrypi4) - make menuconfig: - glibc as c library - systemd as init - compile the image (make). [7/626] Compiling C object src/libsystemd/libsystemd_static.a.p/sd-resolve_sd-resolve.c.o FAILED: src/libsystemd/libsystemd_static.a.p/sd-resolve_sd-resolve.c.o /usr/bin/gcc -Isrc/libsystemd/libsystemd_static.a.p -Isrc/libsystemd -I../src/libsystemd -Isrc/basic -I../src/basic -Isrc/fundamental -I../src/fundamental -Isrc/systemd -I../src/systemd -I. -I.. -I../src/libsystemd/sd-bus -I../src/libsystemd/sd-device -I../src/libsystemd/sd-event -I../src/libsystemd/sd-hwdb -I../src/libsystemd/sd-id128 -I../src/libsystemd/sd-journal -I../src/libsystemd/sd-netlink -I../src/libsystemd/sd-network -I../src/libsystemd/sd-resolve -I/home/semedi/Workspace/digien/iiot-image/buildroot/output/host/include -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu99 -O3 -Wno-format-signedness -Wno-missing-field-initializers -Wno-unused-parameter -Wdate-time -Wendif-labels -Werror=format=2 -Werror=implicit-function-declaration -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=overflow -Werror=override-init -Werror=return-type -Werror=shift-count-overflow -Werror=shift-overflow=2 -Werror=undef -Wfloat-equal -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wmissing-noreturn -Wnested-externs -Wold-style-definition -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-aliasing=2 -Wstrict-prototypes -Wsuggest-attribute=noreturn -Wunused-function -Wwrite-strings -Wno-maybe-uninitialized -Wno-unused-result -Werror=missing-declarations -Werror=missing-prototypes -fdiagnostics-show-option -fno-common -fno-strict-aliasing -fstack-protector -fstack-protector-strong -fvisibility=hidden --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -Werror=shadow -include config.h -O2 -fPIC -pthread -fvisibility=default -MD -MQ src/libsystemd/libsystemd_static.a.p/sd-resolve_sd-resolve.c.o -MF src/libsystemd/libsystemd_static.a.p/sd-resolve_sd-resolve.c.o.d -o src/libsystemd/libsystemd_static.a.p/sd-resolve_sd-resolve.c.o -c ../src/libsystemd/sd-resolve/sd-resolve.c In file included from ../src/basic/missing_syscall.h:25, from ../src/libsystemd/sd-resolve/sd-resolve.c:24: ../src/basic/missing_stat.h:39:8: error: redefinition of ‘struct statx_timestamp’ 39 | struct statx_timestamp { | ^~~~~~~~~~~~~~~ In file included from /usr/include/bits/statx.h:31, from /usr/include/sys/stat.h:465, from ../src/basic/missing_stat.h:5: /usr/include/linux/stat.h:56:8: note: originally defined here 56 | struct statx_timestamp { | ^~~~~~~~~~~~~~~ ../src/basic/missing_stat.h:45:8: error: redefinition of ‘struct statx’ 45 | struct statx STATX_DEFINITION; | ^~~~~ /usr/include/linux/stat.h:99:8: note: originally defined here 99 | struct statx { | ^~~~~ Thanks.