Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 912223 - sys-devel/clang-common: uses deprecated _LIBCPP_ENABLE_ASSERTIONS (breaks cmake: The C++ compiler does not support C++11 (e.g. std::unique_ptr))
Summary: sys-devel/clang-common: uses deprecated _LIBCPP_ENABLE_ASSERTIONS (breaks cma...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: LLVM support project
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2023-08-13 10:15 UTC by Alfred Wingate
Modified: 2023-09-19 09:14 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
dev-util/cmake-3.27.2 build log (cmake-3.27.2.log.gz,3.50 KB, application/gzip)
2023-08-13 10:16 UTC, Alfred Wingate
Details
CMakeError.log showing the failing check (CMakeError.log,5.53 KB, text/plain)
2023-08-13 10:17 UTC, Alfred Wingate
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alfred Wingate 2023-08-13 10:15:52 UTC
Full LLVM system with llvm-17.0.0_rc2 and configured to use libcxx

Similar to https://bugs.gentoo.org/691544 except the warning is from https://github.com/llvm/llvm-project/blob/llvmorg-17.0.0-rc2/libcxx/include/__config#L211..L222 when -W#warnings.

Reproducible: Always

Steps to Reproduce:
1.Use llvm-17 release candidate with clang configured to use libcxx
2.emerge cmake
Actual Results:  
Configure check fails

Expected Results:  
It builds

Portage 3.0.50 (python 3.11.4-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-13, glibc-2.37-r4, 6.4.8-gentoo-dist x86_64)
=================================================================
System uname: Linux-6.4.8-gentoo-dist-x86_64-AMD_Ryzen_7_5800U_with_Radeon_Graphics-with-glibc2.37
KiB Mem:    14168652 total,   9774628 free
KiB Swap:   20971516 total,  19904664 free
Timestamp of repository gentoo: Sat, 12 Aug 2023 09:16:33 +0000
Head commit of repository gentoo: 103a2c8daae4d66d90a2ecc5dc52d24eb0a4f01f

Head commit of repository parona-overlay: 9be9fca4583c51540e3a89772a4c408dd39aae73

Timestamp of repository src_prepare-overlay: Sat, 12 Aug 2023 02:01:33 +0000
Head commit of repository src_prepare-overlay: 4f06db29fb2d0a9231ce92fb637db717acac57b9

sh bash 5.2_p15-r6
ld GNU ld (Gentoo 2.40 p6) 2.40.0
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.2_p15-r6::gentoo
dev-lang/perl:             5.38.0-r1::gentoo
dev-lang/python:           3.11.4::gentoo, 3.12.0_rc1_p1::gentoo
dev-lang/rust-bin:         1.71.1::gentoo
dev-util/cmake:            3.27.2::gentoo
dev-util/meson:            1.2.1::gentoo
sys-apps/baselayout:       2.14::gentoo
sys-apps/openrc:           0.48::gentoo
sys-apps/sandbox:          2.38::gentoo
sys-devel/autoconf:        2.13-r8::gentoo, 2.71-r7::gentoo
sys-devel/automake:        1.16.5-r1::gentoo
sys-devel/binutils:        2.40-r7::gentoo, 2.41-r1::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/clang:           15.0.7-r3::gentoo, 16.0.6::gentoo, 17.0.0_rc2::gentoo
sys-devel/gcc:             13.2.0::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-devel/libtool:         2.4.7-r1::gentoo
sys-devel/lld:             15.0.7::gentoo, 16.0.6::gentoo, 17.0.0_rc2::gentoo
sys-devel/llvm:            15.0.7-r3::gentoo, 16.0.6::gentoo, 17.0.0_rc2::gentoo
sys-devel/make:            4.4.1-r1::gentoo
sys-kernel/linux-headers:  6.4::gentoo (virtual/os-headers)
sys-libs/glibc:            2.37-r4::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/gentoo.git
    priority: -1000
    volatile: False

parona-overlay
    location: /var/db/repos/parona-overlay
    sync-type: git
    sync-uri: https://gitlab.com/Parona/parona-overlay.git
    masters: gentoo
    volatile: False

src_prepare-overlay
    location: /var/db/repos/src_prepare-overlay
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/src_prepare-overlay.git
    masters: gentoo
    volatile: False

Installed sets: @llvm
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="@FREE"
ADDR2LINE="llvm-addr2line"
AR="llvm-ar"
AS="clang -c"
CBUILD="x86_64-pc-linux-gnu"
CC="clang"
CFLAGS="-O3 -pipe -march=znver3 -flto=thin"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo"
CPP="clang-cpp"
CXX="clang++"
CXXFLAGS="-O3 -pipe -march=znver3 -flto=thin"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-O3 -pipe -march=znver3 -flto=thin"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live candy clean-logs compress-build-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch parallel-install pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms split-elog split-log strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O3 -pipe -march=znver3 -flto=thin"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_GB.utf8"
LD="ld.lld"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind -Wl,--as-needed  -Wl,--defsym=__gentoo_check_ldflags__=0"
LEX="flex"
MAKEOPTS="-j16 -l17"
NM="llvm-nm"
OBJCOPY="llvm-objcopy"
OBJDUMP="llvm-objdump"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
RANLIB="llvm-ranlib"
READELF="llvm-readelf"
SHELL="/bin/bash"
STRINGS="llvm-strings"
STRIP="llvm-strip"
USE="a52 aac acl acpi activities alsa amd64 bluetooth branding bzip2 cairo cdda cdr clang cli crypt cups dbus declarative dri dts dvd dvdr elogind encode exif flac fortran gdbm gif gpm grub gtk gui iconv icu ipv6 jpeg kde kwallet lcms libnotify libtirpc llvm-libunwind mad mng mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf pipewire plasma png policykit ppds pulseaudio qml qt5 readline screencast sdl seccomp semantic-desktop sound spell split-usr ssl startup-notification svg test-rust tiff truetype udev udisks unicode upower usb vorbis vulkan wayland widgets wxwidgets x264 xattr xcb xft xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2021" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  ARFLAGS, ASFLAGS, CCLD, CONFIG_SHELL, CPPFLAGS, CTARGET, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS, SIZE, YACC, YFLAGS
Comment 1 Alfred Wingate 2023-08-13 10:16:34 UTC
Created attachment 867779 [details]
dev-util/cmake-3.27.2 build log
Comment 2 Alfred Wingate 2023-08-13 10:17:15 UTC
Created attachment 867780 [details]
CMakeError.log showing the failing check
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-08-13 10:18:44 UTC
We need to update clang-common. Thanks!
Comment 4 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-08-13 10:19:02 UTC
I'll change it to _LIBCPP_ENABLE_HARDENED_MODE later.
Comment 5 Alfred Wingate 2023-08-13 10:20:41 UTC
Yep, workaround of course is -Wno-#warnings
Comment 6 Larry the Git Cow gentoo-dev 2023-08-18 01:31:05 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1dd3378347f15c27b82237443f3a4825b4e70b3d

commit 1dd3378347f15c27b82237443f3a4825b4e70b3d
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-08-17 03:17:05 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-08-18 01:30:15 +0000

    toolchain-funcs.eclass: tc-enables-fortify-source: update for newer libcxx
    
    Newer libcxx uses _LIBCPP_ENABLE_HARDENED_MODE instead of _LIBCPP_ENABLE_ASSERTIONS
    which is now deprecated.
    
    Bug: https://bugs.gentoo.org/912223
    Signed-off-by: Sam James <sam@gentoo.org>

 eclass/toolchain-funcs.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Comment 7 Larry the Git Cow gentoo-dev 2023-08-18 09:22:58 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=84bffb47c84bc57fbbd409a72e5ae3d1cdb8cf9e

commit 84bffb47c84bc57fbbd409a72e5ae3d1cdb8cf9e
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-08-18 02:02:18 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-08-18 09:22:31 +0000

    sys-devel/clang-common: update for newer libcxx
    
    Newer libcxx (>=17) uses _LIBCPP_ENABLE_HARDENED_MODE instead of _LIBCPP_ENABLE_ASSERTIONS
    which is now deprecated.
    
    Closes: https://bugs.gentoo.org/912223
    Signed-off-by: Sam James <sam@gentoo.org>

 sys-devel/clang-common/clang-common-17.0.0.9999.ebuild                 | 3 ++-
 ...lang-common-17.0.0_rc2.ebuild => clang-common-17.0.0_rc2-r1.ebuild} | 3 ++-
 sys-devel/clang-common/clang-common-18.0.0.9999.ebuild                 | 3 ++-
 sys-devel/clang-common/clang-common-18.0.0_pre20230803.ebuild          | 3 ++-
 sys-devel/clang-common/clang-common-18.0.0_pre20230810.ebuild          | 3 ++-
 5 files changed, 10 insertions(+), 5 deletions(-)
Comment 8 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-09-19 08:11:56 UTC
Unfortunately, we have to roll this back. See https://reviews.llvm.org/D159171.
Comment 9 Larry the Git Cow gentoo-dev 2023-09-19 09:14:29 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=01362dba1be773ca4782e753a5e63d68da43787d

commit 01362dba1be773ca4782e753a5e63d68da43787d
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-09-19 09:12:36 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-09-19 09:12:36 +0000

    sys-devel/clang-common: adapt to 17 final (hardened mode); disable F_S for freestanding
    
    * In 84bffb47c84bc57fbbd409a72e5ae3d1cdb8cf9e, we changed from
      -D_LIBCPP_ENABLE_ASSERTIONS=1 to -D_LIBCPP_ENABLE_HARDENED_MODE=1.
    
      Unfortunately, LLVM upstream has reverted last minute back to _ENABLE_ASSERTIONS
      in https://reviews.llvm.org/D159171.
    
      This didn't land in any RCs.
    
      Go back for 17.x (but not 18.x).
    
    * Disable F_S for freestanding (thanks ceamac!) as it might emit calls to
      e.g. _memcpy_chk.
    
    Closes: https://bugs.gentoo.org/912223
    Signed-off-by: Sam James <sam@gentoo.org>

 sys-devel/clang-common/clang-common-17.0.0.9999.ebuild | 11 +++++++++--
 sys-devel/clang-common/clang-common-18.0.0.9999.ebuild |  9 ++++++++-
 2 files changed, 17 insertions(+), 3 deletions(-)