I just upgraded GCC to the 6.2.0 version on my system, but app-antivirus/clamav-0.99.2 cannot be built with it. Works fine with gcc-5.4.0. Also works fine when setting CXXFLAGS="${CXXFLAGS} -std=gnu++98". --------------- # emerge -pv clamav These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] app-antivirus/clamav-0.99.2::gentoo USE="bzip2 iconv ipv6 -clamdtop -libressl -metadata-analysis-api -milter (-selinux) -static-libs (-uclibc)" 0 KiB Total: 1 package (1 reinstall), Size of downloads: 0 KiB ---------------
Created attachment 444432 [details] clamav-0.99.2 build log using gcc-6.2.0
Created attachment 444434 [details] clamav-0.99.2 build log using gcc-6.2.0 (hopefully with proper encoding)
The problem is that 'alignof' is a reserved word in >=C++11. clamav bundles an old llvm in "${S}/libclamav/c++/llvm" that is unaware of this. Trying to compile with the system llvm using EXTRA_ECONF="--with-system-llvm" fails for me with "error: LLVM < 3.7 required, but "3.8.1"(381) found". And sys-devel/llvm doesn't support "multislot" so you can only commit to a 3.6.X version if you have no other world packages requiring >=sys-devel/llvm=3.7.0. The other option is forcing CXXFLAG "-std=c++98".
Pushed a tweak as: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=65711d60b5d0c971790381f4efabbaf0f3c2610d Thank you!