* Package: sys-apps/openrc-0.44.10-r2
* Repository: core-server-kit
* USE: arm bash elibc_glibc kernel_linux ncurses pam unicode userland_GNU
* FEATURES: network-sandbox preserve-libs sandbox userpriv usersandbox
>>> Unpacking source...
>>> Unpacking openrc-0.44.10.tar.gz to /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work
>>> Source unpacked in /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work
>>> Preparing source in /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10 ...
* Applying openrc-0.40.2-systemd-cgroups.patch ...
[ ok ]
* Applying openrc-netmount-funtoo.patch ...
[ ok ]
* Applying openrc-0.44.10-filesystem-btrfs-funtoo.patch ...
[ ok ]
* Applying openrc-0.44.10-integer-expression-expected.patch ...
[ ok ]
* Applying openrc-0.44.10-cgroups.patch ...
[ ok ]
* Applying openrc-0.44.10-hwclock-grep.patch ...
[ ok ]
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10 ...
meson --buildtype plain --libdir lib --localstatedir /var/lib --prefix /usr --sysconfdir /etc --wrap-mode nodownload -Daudit=disabled -Dbranding="Macaroni OS" -Dnewnet=false -Dos=Linux -Dpam=true -Dselinux=disabled -Drootprefix= -Dshell=/bin/bash -Dtermcap=ncurses /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10 /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10-build
The Meson build system
Version: 1.8.5
Source dir: /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10
Build dir: /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10-build
Build type: native build
Project name: OpenRC
Project version: 0.44.10
C compiler for the host machine: armv7a-unknown-linux-gnueabihf-gcc (gcc 12.3.0 "armv7a-unknown-linux-gnueabihf-gcc (MacaroniOS 12.3.0) 12.3.0")
C linker for the host machine: armv7a-unknown-linux-gnueabihf-gcc ld.bfd 2.40
Host machine cpu family: arm
Host machine cpu: armv7l
Dependency audit skipped: feature audit disabled
Found pkg-config: YES (/usr/bin/armv7a-unknown-linux-gnueabihf-pkg-config) 2.2.0
Found CMake: /usr/bin/cmake (3.31.10)
Run-time dependency pam found: NO (tried pkgconfig and cmake)
Library pam found: YES
WARNING: You should add the boolean check kwarg to the run_command call.
It currently defaults to false,
but it will default to true in meson 2.0.
See also: https://github.com/mesonbuild/meson/issues/9300
Dependency libselinux skipped: feature selinux disabled
Run-time dependency ncurses found: YES 6.5.20240511
Compiler for C supports arguments -Wcast-align: YES
Compiler for C supports arguments -Wcast-qual: YES
Compiler for C supports arguments -Wdeclaration-after-statement: YES
Compiler for C supports arguments -Wformat=2: YES
Compiler for C supports arguments -Winline: YES
Compiler for C supports arguments -Wmissing-declarations: YES
Compiler for C supports arguments -Wmissing-format-attribute: YES
Compiler for C supports arguments -Wmissing-noreturn: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Wnested-externs: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Wsequence-point: YES
Compiler for C supports arguments -Wshadow: YES
Compiler for C supports arguments -Wwrite-strings: YES
Compiler for C supports arguments -Werror=implicit-function-declaration: YES
Library dl found: YES
Library util found: YES
Configuring bootmisc using configuration
Configuring filesystem using configuration
Configuring fsck using configuration
Configuring hostname using configuration
Configuring local using configuration
Configuring localmount using configuration
Configuring loopback using configuration
Configuring netmount using configuration
Configuring osclock using configuration
Configuring root using configuration
Configuring savecache using configuration
Configuring swap using configuration
Configuring swclock using configuration
Configuring sysctl using configuration
Configuring runsvdir using configuration
Configuring urandom using configuration
Configuring s6-svscan using configuration
Configuring agetty using configuration
Configuring binfmt using configuration
Configuring cgroups using configuration
Configuring consolefont using configuration
Configuring devfs using configuration
Configuring dmesg using configuration
Configuring hwclock using configuration
Configuring keymaps using configuration
Configuring killprocs using configuration
Configuring modules using configuration
Configuring mount-ro using configuration
Configuring mtab using configuration
Configuring numlock using configuration
Configuring procfs using configuration
Configuring net-online using configuration
Configuring save-keymaps using configuration
Configuring save-termencoding using configuration
Configuring sysfs using configuration
Configuring termencoding using configuration
Configuring einfo.pc using configuration
Configuring openrc.pc using configuration
Configuring rc-sstat using configuration
Configuring functions.sh using configuration
Configuring gendepends.sh using configuration
Configuring openrc-run.sh using configuration
Configuring binfmt.sh using configuration
Configuring cgroup-release-agent.sh using configuration
Configuring init-early.sh using configuration
Configuring init.sh using configuration
Found git repository at /
Found git repository at /
Configuring rc.h using configuration
Configuring avahi-dnsconfd using configuration
Configuring avahid using configuration
Configuring dhcpcd using configuration
Configuring dbus using configuration
Configuring hald using configuration
Configuring named using configuration
Configuring ntpd using configuration
Configuring openvpn using configuration
Configuring polkitd using configuration
Configuring sshd using configuration
Configuring wpa_supplicant using configuration
Build targets in project: 68
OpenRC 0.44.10
User defined options
audit : disabled
branding : "Macaroni OS"
buildtype : plain
libdir : lib
localstatedir: /var/lib
newnet : false
os : Linux
pam : true
prefix : /usr
rootprefix :
selinux : disabled
shell : /bin/bash
sysconfdir : /etc
termcap : ncurses
wrap_mode : nodownload
Found ninja-1.13.2 at /usr/bin/ninja
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
>>> Source configured.
>>> Compiling source in /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10 ...
ninja -v -j12 -l12 -C /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10-build
ninja: Entering directory `/var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10-build'
[1/231] armv7a-unknown-linux-gnueabihf-gcc -Isrc/libeinfo/libeinfo.so.1.p -Isrc/libeinfo -I../openrc-0.44.10/src/libeinfo -I../openrc-0.44.10/src/includes -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c99 -Wcast-align -Wcast-qual -Wdeclaration-after-statement -Wformat=2 -Winline -Wmissing-declarations -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wsequence-point -Wshadow -Wwrite-strings -Werror=implicit-function-declaration -O2 -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv3-d16 -mfloat-abi=hard -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DHAVE_TERMCAP -MD -MQ src/libeinfo/libeinfo.so.1.p/libeinfo.c.o -MF src/libeinfo/libeinfo.so.1.p/libeinfo.c.o.d -o src/libeinfo/libeinfo.so.1.p/libeinfo.c.o -c ../openrc-0.44.10/src/libeinfo/libeinfo.c
FAILED: [code=1] src/libeinfo/libeinfo.so.1.p/libeinfo.c.o
armv7a-unknown-linux-gnueabihf-gcc -Isrc/libeinfo/libeinfo.so.1.p -Isrc/libeinfo -I../openrc-0.44.10/src/libeinfo -I../openrc-0.44.10/src/includes -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c99 -Wcast-align -Wcast-qual -Wdeclaration-after-statement -Wformat=2 -Winline -Wmissing-declarations -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wsequence-point -Wshadow -Wwrite-strings -Werror=implicit-function-declaration -O2 -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv3-d16 -mfloat-abi=hard -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DHAVE_TERMCAP -MD -MQ src/libeinfo/libeinfo.so.1.p/libeinfo.c.o -MF src/libeinfo/libeinfo.so.1.p/libeinfo.c.o.d -o src/libeinfo/libeinfo.so.1.p/libeinfo.c.o -c ../openrc-0.44.10/src/libeinfo/libeinfo.c
../openrc-0.44.10/src/libeinfo/libeinfo.c:159:1: error: static declaration of 'strlcat' follows non-static declaration
159 | strlcat(char *dst, const char *src, size_t size)
| ^~~~~~~
In file included from ../openrc-0.44.10/src/libeinfo/libeinfo.c:32:
/usr/include/string.h:512:15: note: previous declaration of 'strlcat' with type 'size_t(char * restrict, const char * restrict, size_t)' {aka 'unsigned int(char * restrict, const char * restrict, unsigned int)'}
512 | extern size_t strlcat (char *__restrict __dest,
| ^~~~~~~
../openrc-0.44.10/src/libeinfo/libeinfo.c:18:19: warning: 'libeinfo_copyright' defined but not used [-Wunused-const-variable=]
18 | static const char libeinfo_copyright[] = "Copyright (c) 2007-2008 Roy Marples";
| ^~~~~~~~~~~~~~~~~~
[2/231] /usr/lib/python-exec/python3.9/meson --internal vcstagger ../openrc-0.44.10/src/common/version.h.in src/common/version.h 0.44.10 /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10/src/common @VCS_TAG@ '(.*)' git describe --dirty=+ --always
fatal: not a git repository (or any of the parent directories): .git
[3/231] armv7a-unknown-linux-gnueabihf-gcc -Isrc/librc/librc.so.1.p -Isrc/librc -I../openrc-0.44.10/src/librc -I../openrc-0.44.10/src/includes -Isrc/libeinfo -I../openrc-0.44.10/src/libeinfo -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c99 -D_DEFAULT_SOURCE -Wcast-align -Wcast-qual -Wdeclaration-after-statement -Wformat=2 -Winline -Wmissing-declarations -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wsequence-point -Wshadow -Wwrite-strings -Werror=implicit-function-declaration -O2 -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv3-d16 -mfloat-abi=hard -fPIC -MD -MQ src/librc/librc.so.1.p/librc-stringlist.c.o -MF src/librc/librc.so.1.p/librc-stringlist.c.o.d -o src/librc/librc.so.1.p/librc-stringlist.c.o -c ../openrc-0.44.10/src/librc/librc-stringlist.c
[4/231] armv7a-unknown-linux-gnueabihf-gcc -Isrc/librc/librc.so.1.p -Isrc/librc -I../openrc-0.44.10/src/librc -I../openrc-0.44.10/src/includes -Isrc/libeinfo -I../openrc-0.44.10/src/libeinfo -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c99 -D_DEFAULT_SOURCE -Wcast-align -Wcast-qual -Wdeclaration-after-statement -Wformat=2 -Winline -Wmissing-declarations -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wsequence-point -Wshadow -Wwrite-strings -Werror=implicit-function-declaration -O2 -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv3-d16 -mfloat-abi=hard -fPIC -MD -MQ src/librc/librc.so.1.p/librc-misc.c.o -MF src/librc/librc.so.1.p/librc-misc.c.o.d -o src/librc/librc.so.1.p/librc-misc.c.o -c ../openrc-0.44.10/src/librc/librc-misc.c
[5/231] armv7a-unknown-linux-gnueabihf-gcc -Isrc/librc/librc.so.1.p -Isrc/librc -I../openrc-0.44.10/src/librc -I../openrc-0.44.10/src/includes -Isrc/libeinfo -I../openrc-0.44.10/src/libeinfo -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c99 -D_DEFAULT_SOURCE -Wcast-align -Wcast-qual -Wdeclaration-after-statement -Wformat=2 -Winline -Wmissing-declarations -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wsequence-point -Wshadow -Wwrite-strings -Werror=implicit-function-declaration -O2 -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv3-d16 -mfloat-abi=hard -fPIC -MD -MQ src/librc/librc.so.1.p/librc-daemon.c.o -MF src/librc/librc.so.1.p/librc-daemon.c.o.d -o src/librc/librc.so.1.p/librc-daemon.c.o -c ../openrc-0.44.10/src/librc/librc-daemon.c
[6/231] armv7a-unknown-linux-gnueabihf-gcc -Isrc/librc/librc.so.1.p -Isrc/librc -I../openrc-0.44.10/src/librc -I../openrc-0.44.10/src/includes -Isrc/libeinfo -I../openrc-0.44.10/src/libeinfo -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c99 -D_DEFAULT_SOURCE -Wcast-align -Wcast-qual -Wdeclaration-after-statement -Wformat=2 -Winline -Wmissing-declarations -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wsequence-point -Wshadow -Wwrite-strings -Werror=implicit-function-declaration -O2 -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv3-d16 -mfloat-abi=hard -fPIC -MD -MQ src/librc/librc.so.1.p/librc.c.o -MF src/librc/librc.so.1.p/librc.c.o.d -o src/librc/librc.so.1.p/librc.c.o -c ../openrc-0.44.10/src/librc/librc.c
../openrc-0.44.10/src/librc/librc.c:18:19: warning: 'librc_copyright' defined but not used [-Wunused-const-variable=]
18 | static const char librc_copyright[] = "Copyright (c) 2007-2008 Roy Marples";
| ^~~~~~~~~~~~~~~
../openrc-0.44.10/src/librc/librc.c: In function 'rc_service_mark':
../openrc-0.44.10/src/librc/librc.c:800:58: warning: '/' directive output may be truncated writing 1 byte into a region of size between 0 and 4095 [-Wformat-truncation=]
800 | snprintf(was, sizeof(was), "%s/%s/%s",
| ^
../openrc-0.44.10/src/librc/librc.c:800:25: note: 'snprintf' output 3 or more bytes (assuming 4098) into a destination of size 4096
800 | snprintf(was, sizeof(was), "%s/%s/%s",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
801 | file, dir->value, base);
| ~~~~~~~~~~~~~~~~~~~~~~~
../openrc-0.44.10/src/librc/librc.c:805:58: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
805 | snprintf(was, sizeof(was), "%s/%s", file, dir->value);
| ^
../openrc-0.44.10/src/librc/librc.c:805:25: note: 'snprintf' output 2 or more bytes (assuming 4097) into a destination of size 4096
805 | snprintf(was, sizeof(was), "%s/%s", file, dir->value);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[7/231] armv7a-unknown-linux-gnueabihf-gcc -Isrc/librc/librc.so.1.p -Isrc/librc -I../openrc-0.44.10/src/librc -I../openrc-0.44.10/src/includes -Isrc/libeinfo -I../openrc-0.44.10/src/libeinfo -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Wpedantic -std=c99 -D_DEFAULT_SOURCE -Wcast-align -Wcast-qual -Wdeclaration-after-statement -Wformat=2 -Winline -Wmissing-declarations -Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wsequence-point -Wshadow -Wwrite-strings -Werror=implicit-function-declaration -O2 -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv3-d16 -mfloat-abi=hard -fPIC -MD -MQ src/librc/librc.so.1.p/librc-depend.c.o -MF src/librc/librc.so.1.p/librc-depend.c.o.d -o src/librc/librc.so.1.p/librc-depend.c.o -c ../openrc-0.44.10/src/librc/librc-depend.c
ninja: build stopped: subcommand failed.
* ERROR: sys-apps/openrc-0.44.10-r2::core-server-kit failed (compile phase):
* ninja -v -j12 -l12 -C /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10-build failed
*
* Call stack:
* ebuild.sh, line 93: Called src_compile
* environment, line 2983: Called meson_src_compile
* environment, line 1939: Called eninja '-C' '/var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10-build'
* environment, line 1340: Called die
* The specific snippet of code:
* "$@" || die "${nonfatal_args[@]}" "${*} failed"
*
* If you need support, post the output of `emerge --info '=sys-apps/openrc-0.44.10-r2::core-server-kit'`,
* the complete build log and the output of `emerge -pqv '=sys-apps/openrc-0.44.10-r2::core-server-kit'`.
* The complete build log is located at '/var/tmp/portage/sys-apps/openrc-0.44.10-r2/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/sys-apps/openrc-0.44.10-r2/temp/environment'.
* Working directory: '/var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10'
OpenRC 0.44.10-r2 fails to compile with newer glibc 2.41 because glibc now provides native strlcat() and strlcpy() declarations in string.h.
The current OpenRC source still contains its own internal static strlcat() implementation in src/libeinfo/libeinfo.c under the old assumption that glibc does not provide these functions.
This causes the following build failure:
static declaration of ‘strlcat’ follows non-static declaration
The issue is reproducible on arm32 and is not related to GCC version. The same behavior occurs because newer glibc exports strlcat().
I have been using OpenRC 0.63 for over a year on x86_64, arm64, and arm32 systems, and it builds correctly with glibc 2.41 without these conflicts.
mchroot # grep -n "strgrep -n "strlcat" /var/tmp/portage/sys-apps/openrc-0.44.10-r2/work/openrc-0.44.10/src/libeinfo/libeinfo.c
155:/* strlcat and strlcpy are nice, shame glibc does not define them */
159:strlcat(char *dst, const char *src, size_t size)
439: strlcat(tmp, tgoto(_af, 0, c & 0x07), sizeof(tmp));
we need to bump the OpenRC version beyond 0.44.10-r2 because glibc 2.41 now provides native strlcat() and strlcpy() implementations in string.h. OpenRC 0.44.10 still ships its own internal static strlcat() implementation inside libeinfo.c under the old assumption that glibc did not provide these functions. This now causes a symbol redeclaration conflict during compilation, breaking the build with “static declaration of 'strlcat' follows non-static declaration”
OpenRC 0.44.10-r2 fails to compile with newer glibc 2.41 because glibc now provides native strlcat() and strlcpy() declarations in string.h.
The current OpenRC source still contains its own internal static strlcat() implementation in src/libeinfo/libeinfo.c under the old assumption that glibc does not provide these functions.
This causes the following build failure:
static declaration of ‘strlcat’ follows non-static declaration
The issue is reproducible on arm32 and is not related to GCC version. The same behavior occurs because newer glibc exports strlcat().
I have been using OpenRC 0.63 for over a year on x86_64, arm64, and arm32 systems, and it builds correctly with glibc 2.41 without these conflicts.
we need to bump the OpenRC version beyond 0.44.10-r2 because glibc 2.41 now provides native strlcat() and strlcpy() implementations in string.h. OpenRC 0.44.10 still ships its own internal static strlcat() implementation inside libeinfo.c under the old assumption that glibc did not provide these functions. This now causes a symbol redeclaration conflict during compilation, breaking the build with “static declaration of 'strlcat' follows non-static declaration”