Created attachment 824331 [details, diff] Patch to remove the check for libatomic When using clang with -rtlib=compiler-rt, systemd-utils-251.6 fails with the following error: Checking if "Atomic builtin requires -latomic" : links: NO ../systemd-stable-251.6/meson.build:1002:8: ERROR: C shared or static library 'atomic' not found
Simply patching out the check is not a sustainable fix, although thanks for providing a patch. Could you provide the full build.log & emerge --info of it failing? Caused by https://github.com/systemd/systemd-stable/commit/738eca5e05cf6494dc3f4126f6e33f03c7bac54d.
* Package: sys-apps/systemd-utils-251.6:0 * Repository: gentoo * Maintainer: systemd@gentoo.org * USE: abi_x86_64 acl amd64 elibc_musl kernel_linux kmod split-usr tmpfiles udev userland_GNU * FEATURES: network-sandbox preserve-libs sandbox userpriv usersandbox * Checking whether python3_11 is suitable ... * >=dev-lang/python-3.11.0_beta4:3.11 ... [ ok ] * python_check_deps ... * dev-python/jinja[python_targets_python3_11(-)] ... [ !! ] [ !! ] * Checking whether python3_10 is suitable ... * >=dev-lang/python-3.10.4:3.10 ... [ ok ] * python_check_deps ... * dev-python/jinja[python_targets_python3_10(-)] ... [ ok ] [ ok ] * Using python3.10 to build (via PYTHON_COMPAT iteration) >>> Unpacking source... >>> Unpacking systemd-stable-251.6.tar.gz to /var/tmp/portage/sys-apps/systemd-utils-251.6/work >>> Unpacking systemd-musl-patches-251.2.tar.gz to /var/tmp/portage/sys-apps/systemd-utils-251.6/work >>> Source unpacked in /var/tmp/portage/sys-apps/systemd-utils-251.6/work >>> Preparing source in /var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-stable-251.6 ... * Applying 251-revert-fortify-source-3-fix.patch ... [ ok ] * Applying 251-gpt-auto-no-cryptsetup.patch ... [ ok ] * Applying patches from /var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-musl-patches-251.2 ... * 0001-Adjust-for-musl-headers.patch ... [ ok ] * 0001-pass-correct-parameters-to-getdents64.patch ... [ ok ] * 0002-Add-sys-stat.h-for-S_IFDIR.patch ... [ ok ] * 0003-missing_type.h-add-comparison_fn_t.patch ... [ ok ] * 0004-add-fallback-parse_printf_format-implementation.patch ... [ ok ] * 0005-src-basic-missing.h-check-for-missing-strndupa.patch ... [ ok ] * 0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch ... [ ok ] * 0008-add-missing-FTW_-macros-for-musl.patch ... [ ok ] * 0010-Use-uintmax_t-for-handling-rlim_t.patch ... [ ok ] * 0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch ... [ ok ] * 0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch ... [ ok ] * 0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch ... [ ok ] * 0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch ... [ ok ] * 0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch ... [ ok ] * 0018-avoid-redefinition-of-prctl_mm_map-structure.patch ... [ ok ] * 0022-do-not-disable-buffer-in-writing-files.patch ... [ ok ] * 0025-Handle-__cpu_mask-usage.patch ... [ ok ] * 0026-Handle-missing-gshadow.patch ... [ ok ] * 0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch ... [ ok ] >>> Source prepared. >>> Configuring source in /var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-stable-251.6 ... * abi_x86_64.amd64: running multilib-minimal_abi_src_configure meson setup --libdir lib --localstatedir /var/lib --prefix /usr --sysconfdir /etc --wrap-mode nodownload --build.pkg-config-path /var/tmp/portage/sys-apps/systemd-utils-251.6/temp/python3.10/pkgconfig:/usr/share/pkgconfig --pkg-config-path /var/tmp/portage/sys-apps/systemd-utils-251.6/temp/python3.10/pkgconfig:/usr/share/pkgconfig --native-file /var/tmp/portage/sys-apps/systemd-utils-251.6/temp/meson.x86_64-gentoo-linux-musl.amd64.ini -Db_pch=false -Dwerror=false --buildtype plain -Dsplit-usr=true -Dsplit-bin=true -Drootprefix=/ -Drootlibdir=/usr/lib -Dsysvinit-path= -Defi=false -Dgnu-efi=false -Dkernel-install=false -Dselinux=false -Dsysusers=false -Dtests=false -Dtmpfiles=true -Dhwdb=true -Defi-libdir=/usr/lib -Dlink-boot-shared=false -Dlink-udev-shared=false -Dstandalone-binaries=true -Dadm-group=false -Danalyze=false -Dapparmor=false -Daudit=false -Dbacklight=false -Dbinfmt=false -Dbzip2=false -Dcoredump=false -Ddbus=false -Delfutils=false -Denvironment-d=false -Dfdisk=false -Dgcrypt=false -Dglib=false -Dgshadow=false -Dgnutls=false -Dhibernate=false -Dhostnamed=false -Didn=false -Dima=false -Dinitrd=false -Dfirstboot=false -Dldconfig=false -Dlibcryptsetup=false -Dlibcurl=false -Dlibfido2=false -Dlibidn=false -Dlibidn2=false -Dlibiptc=false -Dlocaled=false -Dlogind=false -Dlz4=false -Dmachined=false -Dmicrohttpd=false -Dnetworkd=false -Dnscd=false -Dnss-myhostname=false -Dnss-resolve=false -Dnss-systemd=false -Doomd=false -Dopenssl=false -Dp11kit=false -Dpam=false -Dpcre2=false -Dpolkit=false -Dportabled=false -Dpstore=false -Dpwquality=false -Drandomseed=false -Dresolve=false -Drfkill=false -Dseccomp=false -Dsmack=false -Dsysext=false -Dtimedated=false -Dtimesyncd=false -Dtpm=false -Dqrencode=false -Dquotacheck=false -Duserdb=false -Dutmp=false -Dvconsole=false -Dwheel-group=false -Dxdg-autostart=false -Dxkbcommon=false -Dxz=false -Dzlib=false -Dzstd=false -Dacl=true -Dkmod=true /var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-stable-251.6 /var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-stable-251.6-abi_x86_64.amd64 The Meson build system Version: 0.63.2 Source dir: /var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-stable-251.6 Build dir: /var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-stable-251.6-abi_x86_64.amd64 Build type: native build Project name: systemd Project version: 251 C compiler for the host machine: clang (clang 15.0.2 "clang version 15.0.2") C linker for the host machine: clang ld.lld 15.0.2 Host machine cpu family: x86_64 Host machine cpu: x86_64 Program tools/add-git-hook.sh found: YES (/var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-stable-251.6/tools/add-git-hook.sh) ../systemd-stable-251.6/meson.build:82: WARNING: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! split-usr mode is going to be removed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Program tools/meson-build.sh found: YES (/var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-stable-251.6/tools/meson-build.sh) C++ compiler for the host machine: clang++ (clang 15.0.2 "clang version 15.0.2") C++ linker for the host machine: clang++ ld.lld 15.0.2 Compiler for C supports arguments -Wno-format-signedness: NO Compiler for C supports arguments -Wno-missing-field-initializers: YES Compiler for C supports arguments -Wno-unused-parameter: YES Compiler for C supports arguments -Wdate-time: YES Compiler for C supports arguments -Wendif-labels: YES Compiler for C supports arguments -Werror=format=2: YES Compiler for C supports arguments -Werror=implicit-function-declaration: YES Compiler for C supports arguments -Werror=incompatible-pointer-types: YES Compiler for C supports arguments -Werror=int-conversion: YES Compiler for C supports arguments -Werror=overflow: YES Compiler for C supports arguments -Werror=override-init: YES Compiler for C supports arguments -Werror=return-type: YES Compiler for C supports arguments -Werror=shift-count-overflow: YES Compiler for C supports arguments -Werror=shift-overflow=2: NO Compiler for C supports arguments -Werror=undef: YES Compiler for C supports arguments -Wfloat-equal: YES Compiler for C supports arguments -Wimplicit-fallthrough=5: NO Compiler for C supports arguments -Winit-self: YES Compiler for C supports arguments -Wlogical-op: NO Compiler for C supports arguments -Wmissing-include-dirs: YES Compiler for C supports arguments -Wmissing-noreturn: YES Compiler for C supports arguments -Wnested-externs: YES Compiler for C supports arguments -Wold-style-definition: YES Compiler for C supports arguments -Wpointer-arith: YES Compiler for C supports arguments -Wredundant-decls: YES Compiler for C supports arguments -Wshadow: YES Compiler for C supports arguments -Wstrict-aliasing=2: YES Compiler for C supports arguments -Wstrict-prototypes: YES Compiler for C supports arguments -Wsuggest-attribute=noreturn: NO Compiler for C supports arguments -Wunused-function: YES Compiler for C supports arguments -Wwrite-strings: YES Compiler for C supports arguments -Wno-error=#warnings: YES Compiler for C supports arguments -Wno-string-plus-int: YES Compiler for C supports arguments -Wno-typedef-redefinition: YES Compiler for C supports arguments -Wno-gnu-variable-sized-type-not-at-end: YES Compiler for C supports arguments -Werror=missing-declarations: YES Compiler for C supports arguments -Werror=missing-prototypes: YES Compiler for C supports arguments -fdiagnostics-show-option: YES Compiler for C supports arguments -fno-common: YES Compiler for C supports arguments -fno-strict-aliasing: YES Compiler for C supports arguments -fstack-protector: YES Compiler for C supports arguments -fstack-protector-strong: YES Compiler for C supports arguments -fvisibility=hidden: YES Compiler for C supports arguments --param=ssp-buffer-size=4: YES Compiler for C supports arguments -ffunction-sections: YES Compiler for C supports arguments -fdata-sections: YES Compiler for C supports link arguments -Wl,--fatal-warnings: YES Compiler for C supports link arguments -Wl,-z,now: YES Compiler for C supports link arguments -Wl,-z,relro: YES Compiler for C supports link arguments -fstack-protector: YES Compiler for C supports link arguments -Wl,--warn-common: YES Compiler for C supports link arguments -Wl,--gc-sections: YES Compiler for C supports arguments -Wzero-length-bounds: NO Checking if "-Werror=shadow with local shadowing" compiles: YES Compiler for C++ supports arguments -Wno-format-signedness: NO Compiler for C++ supports arguments -Wno-missing-field-initializers: YES Compiler for C++ supports arguments -Wno-unused-parameter: YES Compiler for C supports arguments -Wstringop-truncation: NO Checking for size of "dev_t" : 8 Checking for size of "ino_t" : 8 Checking for size of "time_t" : 8 Checking for size of "rlim_t" : 8 Checking for size of "typeof(((struct timex *)0)->freq)" : 8 Checking for size of "char16_t" : 2 Checking for size of "char32_t" : 4 Checking for size of "struct mount_attr" : -1 Checking for size of "struct mount_attr" : 32 Checking for size of "struct statx" : -1 Checking for size of "struct statx" : 256 Checking for function "secure_getenv" : YES Checking for function "__secure_getenv" : NO Checking for function "strndupa" : NO Checking for function "memfd_create" : YES Checking for function "gettid" : YES Checking for function "pivot_root" : NO Checking for function "ioprio_get" : NO Checking for function "ioprio_set" : NO Checking for function "name_to_handle_at" : YES Checking for function "setns" : YES Checking for function "renameat2" : NO Checking for function "kcmp" : NO Checking for function "keyctl" : NO Checking for function "copy_file_range" : YES Checking for function "bpf" : NO Checking for function "statx" : NO Checking for function "explicit_bzero" : YES Checking for function "reallocarray" : YES Checking for function "set_mempolicy" : NO Checking for function "get_mempolicy" : NO Checking for function "pidfd_send_signal" : NO Checking for function "pidfd_open" : NO Checking for function "rt_sigqueueinfo" : NO Checking for function "mallinfo" : NO Checking for function "mallinfo2" : NO Checking for function "execveat" : NO Checking for function "close_range" : NO Checking for function "epoll_pwait2" : NO Checking for function "mount_setattr" : NO Checking for function "move_mount" : NO Checking for function "open_tree" : NO Checking for function "getdents64" : YES Checking for function "getrandom" : YES Program sh found: YES (/bin/sh) Program echo found: YES (/bin/echo) Program sed found: YES (/bin/sed) Program awk found: YES (/usr/bin/awk) Program stat found: YES (/usr/bin/stat) Program ln found: YES (/bin/ln) Program git found: YES (/usr/bin/git) Program env found: YES (/usr/bin/env) Program perl found: YES (/usr/bin/perl) Program rsync found: YES (/usr/bin/rsync) Program quotaon /usr/sbin/quotaon /sbin/quotaon found: NO Program quotacheck /usr/sbin/quotacheck /sbin/quotacheck found: NO Program kmod found: YES (/bin/kmod) Program kexec /usr/sbin/kexec /sbin/kexec found: NO Program sulogin found: YES (/sbin/sulogin) Program mount found: YES (/bin/mount) Program umount found: YES (/bin/umount) Program loadkeys found: YES (/usr/bin/loadkeys) Program setfont found: YES (/usr/bin/setfont) Program nologin found: YES (/sbin/nologin) Program python3 found: YES (/var/tmp/portage/sys-apps/systemd-utils-251.6/temp/python3.10/bin/python3) Program gperf found: YES (/usr/bin/gperf) Message: gperf len type is size_t Has header "sys/capability.h" : YES Has header "crypt.h" : YES Has header "linux/memfd.h" : YES Has header "linux/vm_sockets.h" : YES Has header "printf.h" : NO Has header "sys/auxv.h" : YES Has header "valgrind/memcheck.h" : NO Has header "valgrind/valgrind.h" : NO Has header "linux/time_types.h" : YES Has header "sys/sdt.h" : NO Program tools/choose-default-locale.sh found: YES (/var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-stable-251.6/tools/choose-default-locale.sh) Checking if "Atomic builtin requires -latomic" : links: NO ../systemd-stable-251.6/meson.build:1002:8: ERROR: C shared or static library 'atomic' not found
It checks for __atomic_exchange_1 which only compiles on gcc. The LLVM docs state that __atomic_exchange_1 is supported but somehow clang fails with this: /var/tmp/portage/sys-apps/systemd-utils-251.6/work/systemd-stable-251.6-abi_x86_64.amd64/meson-private/tmp86noe6iv/testfile.c:4:22: error: call to undeclared function '__atomic_exchange_1'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] __atomic_exchange_1(&i, 1, 0); ^ changing __atomic_exchange_1 to __atomic_exchange_n does work tho
Filed an issue upstream as https://github.com/systemd/systemd/issues/25057
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc10f4b653fab6f4775ebf3623ba1775b797f9c5 commit bc10f4b653fab6f4775ebf3623ba1775b797f9c5 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-10-25 05:46:47 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-10-25 05:51:11 +0000 sys-apps/systemd-utils: add 251.7 Closes: https://bugs.gentoo.org/877259 Signed-off-by: Sam James <sam@gentoo.org> sys-apps/systemd-utils/Manifest | 1 + sys-apps/systemd-utils/systemd-utils-251.7.ebuild | 525 ++++++++++++++++++++++ 2 files changed, 526 insertions(+) Additionally, it has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed3d7f22755dd463a1398f7e6ed0273cb015ae85 commit ed3d7f22755dd463a1398f7e6ed0273cb015ae85 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-10-25 05:45:09 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-10-25 05:51:10 +0000 sys-apps/systemd: add 251.7 Bug: https://bugs.gentoo.org/877259 Signed-off-by: Sam James <sam@gentoo.org> sys-apps/systemd/Manifest | 1 + sys-apps/systemd/systemd-251.7.ebuild | 530 ++++++++++++++++++++++++++++++++++ 2 files changed, 531 insertions(+)