x86_64-gentoo-linux-musl-gcc -DHAVE_CONFIG_H -I. -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D_FORTIFY_SOURCE=2 -DPARANOID -DREVISION=\-release\ -DTHREADING_SUPPORT -DINOTIFY_SUPPORT -DBACKTRACE_SUPPORT -DCAPABILITIES_SUPPORT -DSECCOMP_SUPPORT -DGETMNTENT_SUPPORT -DHL_LOCKS -O2 -pipe -march=native -fstack-protector-all -Wall --param ssp-buffer-size=4 -fstack-check -c -o clsync-error.o test -f error.c || echo ./error.c cc1: warning: -fstack-check= and -fstack-clash_protection are mutually exclusive. Disabling -fstack-check= error.c:26:10: fatal error: execinfo.h: No such file or directory 26 | #include <execinfo.h> | ^~~~~~~~~~~~ compilation terminated. ------------------------------------------------------------------- This is an unstable amd64 chroot image at a tinderbox (==build bot) name: 17.0_musl_hardened-20200328-201618 ------------------------------------------------------------------- Please see the tracker bug for details. gcc-config -l: [1] x86_64-gentoo-linux-musl-9.3.0 * clang version 10.0.0 Target: x86_64-gentoo-linux-musl Thread model: posix InstalledDir: /usr/lib/llvm/10/bin /usr/lib/llvm/10 10.0.0 Available Python interpreters, in order of preference: [1] python3.8 [2] python3.7 [3] python3.6 [4] python2.7 (fallback) Available Ruby profiles: [1] ruby24 (with Rubygems) [2] ruby25 (with Rubygems) * Available Rust versions: [1] rust-bin-1.42.0 [2] rust-1.42.0 * Available Java Virtual Machines: (none found) timestamp of HEAD at this tinderbox image: /var/db/repos/gentoo Mon Apr 13 14:38:13 UTC 2020 /var/db/repos/musl Sun Apr 12 18:47:42 UTC 2020 emerge -qpvO app-admin/clsync [ebuild N ] app-admin/clsync-0.4.2 USE="caps hardened highload-locks inotify seccomp -cgroups (-cluster) -control-socket -debug -extra-debug -extra-hardened -gio (-mhash) -namespaces"
Created attachment 632686 [details] emerge-info.txt
Created attachment 632688 [details] app-admin:clsync-0.4.2:20200413-153039.log
Created attachment 632690 [details] emerge-history.txt
Created attachment 632692 [details] environment
Created attachment 632694 [details] etc.portage.tbz2
Created attachment 632696 [details] logs.tbz2
Created attachment 632698 [details] temp.tbz2
While it is clearly deficiency in musl lacking backtrace support, clsync can be configured to omit this functionality. This quirk was activated only for BSD setups, but apparently musl needs this as well. This problem will be worked around in clsync-0.4.4 we are preparing for release now.
*** Bug 717306 has been marked as a duplicate of this bug. ***
One of the options advocated by upstream (musl) is https://www.nongnu.org/libunwind/ . It may/may not be an option, but throwing it into the mix for consideration.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=280c2145ce00536797fa0f53e53fadca090ab72a commit 280c2145ce00536797fa0f53e53fadca090ab72a Author: Andrew Savchenko <bircoph@gentoo.org> AuthorDate: 2020-05-05 15:36:50 +0000 Commit: Andrew Savchenko <bircoph@gentoo.org> CommitDate: 2020-05-05 15:52:12 +0000 app-admin/clsync: version bump Closes: https://bugs.gentoo.org/717340 Package-Manager: Portage-2.3.82, Repoman-2.3.20 Signed-off-by: Andrew Savchenko <bircoph@gentoo.org> app-admin/clsync/Manifest | 1 + app-admin/clsync/clsync-0.4.4.ebuild | 104 +++++++++++++++++++++++++++++++++++ app-admin/clsync/metadata.xml | 2 +- 3 files changed, 106 insertions(+), 1 deletion(-)
This problem should be fixed in 0.4.4: I added execinfo.h check and if not found backtracing will be disabled. (In reply to Michael 'veremitz' Everitt from comment #10) > One of the options advocated by upstream (musl) is > https://www.nongnu.org/libunwind/ . It may/may not be an option, but > throwing it into the mix for consideration. Strace upstream recommends to use libdw instead of libunwind, though I don't know how libdw works on musl. Either way clsync upstream don't mind to have libunwind and/or libdw optional support for backtracing, but this is a low priority task, so patches or pull requests are welcome :)
Also if you could check build with musl it will be interesting, since we have another musl-related bug: https://github.com/clsync/clsync/issues/150 Back in 2016 musl defined lstat64 via global macro as lstat and this lead to the name collision with lstat variable in our code. I don't know if this is still an issue, so testing would be nice. Please open a separate bug if you'll find a problem with lstat.
(In reply to Andrew Savchenko from comment #12) > This problem should be fixed in 0.4.4: I added execinfo.h check and if not > found backtracing will be disabled. > > (In reply to Michael 'veremitz' Everitt from comment #10) > > One of the options advocated by upstream (musl) is > > https://www.nongnu.org/libunwind/ . It may/may not be an option, but > > throwing it into the mix for consideration. > > Strace upstream recommends to use libdw instead of libunwind, though I don't > know how libdw works on musl. > > Either way clsync upstream don't mind to have libunwind and/or libdw > optional support for backtracing, but this is a low priority task, so > patches or pull requests are welcome :) We have elfutils in the ::musl overlay and, as far as I know, it's not clobbered, so libdw should exist at the very least; not that I've tried it personally though - https://gitweb.gentoo.org/proj/musl.git/tree/dev-libs/elfutils . I think conditional disabling of backtracking support is fair enough at this time, and as you suggest, support can be added upstream when it becomes available.
I made more comprehensive tests on musl-hardened profile: the fix in 0.4.4 was incomplete, fixed now upstream and will be in 0.4.5 release. Fixing this issue was not enough, so two more musl-related issues were fixed upstream: collision between local lstat variable and musl-provided implementation and use of external fts by musl.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b1da862281d2c97a9fc1e6a63c377a30eefa4fbd commit b1da862281d2c97a9fc1e6a63c377a30eefa4fbd Author: Andrew Savchenko <bircoph@gentoo.org> AuthorDate: 2020-11-08 14:30:53 +0000 Commit: Andrew Savchenko <bircoph@gentoo.org> CommitDate: 2020-11-08 14:35:40 +0000 app-admin/clsync: version bump - Update to 0.4.5 - Enable LTO support - Merge back dev-libs/libclsync and app-doc/clsync-docs into app-admin/clsync Bug: https://bugs.gentoo.org/749978 Bug: https://bugs.gentoo.org/750356 Closes: https://bugs.gentoo.org/717340 Package-Manager: Portage-3.0.8, Repoman-3.0.1 Signed-off-by: Andrew Savchenko <bircoph@gentoo.org> app-admin/clsync/Manifest | 1 + app-admin/clsync/clsync-0.4.5.ebuild | 144 +++++++++++++++++++++++++++++++++++ 2 files changed, 145 insertions(+)