Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 834910

Summary: sys-fs/cryfs-0.10.3-r1 does not emerge
Product: Gentoo Linux Reporter: Stuart Meya <stuartmeya>
Component: Current packagesAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: RESOLVED NEEDINFO    
Severity: major CC: stuartmeya
Priority: Normal    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: build.log
correct build.log

Description Stuart Meya 2022-03-10 10:47:21 UTC
I need to emerge sys-fs/cryfs, but simply can't. I've tried it with GCC, GCC without LTO, Clang and Clang without LTO.

emerge -pvq: http://0x0.st/oZKQ.txt
emerge --info: http://0x0.st/oZKQ.txt

I really hope someone finds a solution.
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-03-10 10:48:26 UTC
You need to attach all information (no external links) including the full build.log of the failure.
Comment 2 Stuart Meya 2022-03-10 10:59:13 UTC
Created attachment 766738 [details]
build.log

Here's the full build.log.
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-03-10 11:01:38 UTC
Your Pango is somehow underlinked:
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../lib64/libpango-1.0.so: undefined reference to `hb_ot_layout_get_horizontal_baseline_tag_for_script'

emerge -v1 x11-libs/pango. May well be as a result of extreme optimisations.
Comment 4 Stuart Meya 2022-03-10 11:03:44 UTC
Comment on attachment 766738 [details]
build.log

wrong build.log
Comment 5 Stuart Meya 2022-03-10 11:05:18 UTC
Created attachment 766739 [details]
correct build.log

original build.log
Comment 6 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-03-10 11:08:40 UTC
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: src/cryfs-unmount/libcryfs-unmount.a(ProgramOptions.cpp.o): undefined reference to symbol '_ZTVN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/libstdc++.so.6: error adding symbols: DSO missing from command line

You may have done something horrific to your system. Please share exsctly how you're setting GCC and Clang (the package.env snippets) and also fix the Pango issue for librsvg I mentioned, then we'll go from there.

Given this is the second weird thing, I'd go back to GCC, unset the Clang bits temporarily, and emerge -ev @world with boring flags.
Comment 7 Stuart Meya 2022-03-10 11:12:18 UTC
my make conf:
# Use clang instead of gcc
CC="clang"
CXX="clang++"
LD="ld.lld"

# Use the proper tools capable of dealing with LLVM bitcode
AR="llvm-ar"
NM="llvm-nm"
RANLIB="llvm-ranlib"
STRIP="llvm-strip"
OBJDUMP="llvm-objdump"
OBJCOPY="llvm-objcopy"
OBJSIZE="llvm-objsize"
STRINGS="llvm-strings"
READELF="llvm-readelf"

# Standard flags that normally don't cause problems
COMMON_FLAGS="-march=native -O3 -pipe"

# Flags for compile-time hardening
HARDENED_FLAGS="${COMMON_FLAGS} -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -fstack-clash-protection"

LTO_FLAGS_THIN="-flto=thin"

CFLAGS="${HARDENED_FLAGS} ${LTO_FLAGS_THIN}"
# Use libc++ as the standard C++ library
CXXFLAGS="${HARDENED_FLAGS} ${LTO_FLAGS_THIN} -stdlib=libc++"
# Hardened LDFLAGS and use lld as the default linker
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-S -Wl,-z,now -Wl,-z,relro -fuse-ld=lld -Wl,-unwindlib=libunwind"

my /etc/portage/env/compiler-gcc:
CC="gcc"
CXX="g++"
AR="ar"
NM="nm"
RANLIB="ranlib"
LD="ld.bfd"

COMMON_FLAGS="-march=native -O3 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
RUSTFLAGS="${RUSTFLAGS} -Copt-level=3 -Ctarget-cpu=native"

It is a new system, I wanted to build one mainly based on clang with gcc only fallback.
Comment 8 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-03-10 11:13:05 UTC
aaaand now I see the libc++. Please be extremely careful in transitioning to libc++ as it's not ABI compatible with libstdc++.

If using it, you also need to always tell GCC that too. They cannot be mixed.
Comment 9 Stuart Meya 2022-03-10 11:18:05 UTC
(In reply to Sam James from comment #8)
> aaaand now I see the libc++. Please be extremely careful in transitioning to
> libc++ as it's not ABI compatible with libstdc++.
> 
> If using it, you also need to always tell GCC that too. They cannot be mixed.

Oh damn. I wanted to use libstdc++. Need to re-do my configs and do an emerge -e @world now.