Bootstrapping fails on sys-libs/compiler-rt-sanitizers-7.0.0 with the first error seeming to be .../Gentoo/var/tmp/portage/sys-libs/compiler-rt-sanitizers-7.0.0/work/compiler-rt-7.0.0.src/lib/xray/xray_basic_logging.cc:300:32: error: use of undeclared identifier 'CLOCK_REALTIME' According to Googlable source CLOCK_REALTIME does not exist on OS X v10.11 and earlier. Reproducible: Always Steps to Reproduce: 1.Get bootstrap script on Mac OS X v10.11 (my case) 2.Run it 3.Observe error Actual Results: sys-libs/compiler-rt-sanitizers-7.0.0 fails with the first error seeming to be .../Gentoo/var/tmp/portage/sys-libs/compiler-rt-sanitizers-7.0.0/work/compiler-rt-7.0.0.src/lib/xray/xray_basic_logging.cc:300:32: error: use of undeclared identifier 'CLOCK_REALTIME' Expected Results: sys-libs/compiler-rt-sanitizers-7.0.0 should merge successfully
Don't know if the patch below works yet, because the failure of compiling this package screwed up the bootstrap beyond a simple resume ('emerge -u system' did nothing, while 'emerge --depclean' bailed out) --- compiler-rt-sanitizers-7.0.0.ebuild.orig 2018-10-30 10:26:00.000000000 +0100 +++ compiler-rt-sanitizers-7.0.0.ebuild 2018-11-30 15:07:30.000000000 +0100 @@ -138,6 +138,15 @@ ) fi + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + local _uname_r=$(uname -r | sed -E 's@\.@@g') + if [[ ${_uname_r} -le 1560 ]] ; then + mycmakeargs+=( + -DCOMPILER_RT_BUILD_XRAY=OFF + ) + fi + fi + cmake-utils_src_configure if use test; then
if [[ ${CHOST} == *-darwin* && ${CHOST#*darwin} -lt 18 ]] ; then # disable XRAY fi
Right. I'll try that :)
@llvm: do you have suggestions here? Are you OK with applying a workaround for Darwin?
I think it'd be cleaner to add a flag for xray, and mask it in those profiles.
that works for us, do you want a patch for that?
No need to, I'll do the ebuild part this evening. Just let me know which versions you need.
I mean, compiler-rt versions.
At this point it seems like 6 and up.
FTR, this may take a while longer since I want to test if all components are suitable for disabling via USE flags.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e9d44197c21230b01df34d3a726fef5707a0033b commit e9d44197c21230b01df34d3a726fef5707a0033b Author: Michał Górny <mgorny@gentoo.org> AuthorDate: 2018-12-06 18:59:33 +0000 Commit: Michał Górny <mgorny@gentoo.org> CommitDate: 2018-12-06 19:08:59 +0000 sys-libs/compiler-rt-sanitizers: Add explicit flags for components Bug: https://bugs.gentoo.org/672294 Signed-off-by: Michał Górny <mgorny@gentoo.org> .../compiler-rt-sanitizers-6.0.1.ebuild | 12 +++++++----- .../compiler-rt-sanitizers-7.0.0.ebuild | 12 +++++++----- .../compiler-rt-sanitizers-7.0.1_rc2.ebuild | 12 +++++++----- .../compiler-rt-sanitizers-7.0.9999.ebuild | 12 +++++++----- .../compiler-rt-sanitizers-9999.ebuild | 12 +++++++----- sys-libs/compiler-rt-sanitizers/metadata.xml | 4 ++++ 6 files changed, 39 insertions(+), 25 deletions(-)
Please test and mask as appropriate.
Basically, obsolete from my point of view. GCC is working much (much!) better, in particular on older systems. LLVM/Clang bootstraps are still broken, and it is questionable we will ever be able to support it due to it's abundance of complexities.