Open grubles opened 7 years ago
Same problem here on Gentoo, without hardened.
Ok, I managed to fix this by disabling ricochets makefile own hardening compiler flags by setting CONFIG+=no-hardened
. This is my full ebuild, tested with ricochet-1.1.4:
# Distributed under the terms of the GNU General Public License v2
# $Header: $
#
# Not suitable for chatrooms but certainly better for one-on-one conversations
# than anything that goes through servers. --lynX 2015
#
# http://youbroketheinternet.org
EAPI=6
DESCRIPTION="End-to-end-encrypted instant messaging UI using Tor hidden services"
HOMEPAGE="https://ricochet.im"
LICENSE="BSD GPL-2"
inherit qmake-utils
SRC_URI="https://ricochet.im/releases/1.1.4/ricochet-1.1.4-src.tar.bz2"
KEYWORDS="~amd64 ~arm ~ppc64 ~x86"
SLOT="0"
IUSE=""
DEPEND="
virtual/pkgconfig
dev-qt/qtcore:5
dev-qt/qtmultimedia:5
dev-qt/qtquickcontrols:5
dev-qt/qtnetwork:5
dev-qt/linguist-tools:5
dev-libs/protobuf
dev-libs/openssl"
RDEPEND="${DEPEND}
net-misc/tor"
src_configure() {
eqmake5 ${PN}.pro DEFINES+=RICOCHET_NO_PORTABLE CONFIG+=release CONFIG+=no-hardened
}
src_install() {
dobin "${S}/ricochet"
doicon -s 48x48 "${S}/icons/ricochet.png"
doicon -s scalable "${S}/icons/ricochet.svg"
domenu "${S}/src/ricochet.desktop"
}
Using this, also a lot of compiler warnings disappear.
Still don't know why the hardened build failed with "Unable to verify vtable pointer", though. My gcc is built with enabled vtv (virtual table verification) support:
sys-devel/gcc-4.9.4::gentoo was built with the following:
USE="cxx fortran (multilib) nls nptl openmp sanitize vtv (-altivec) (-awt) -cilk -debug -doc (-fixed-point) -gcj -go -graphite (-hardened) (-libssp) -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla" ABI_X86="64"
The issue here might be that ricochet just doesn't work with -fvtable-verify=std
. It doesn't exist on most systems because it requires system-level support outside the compiler.
It would not surprise me if Qt breaks under VTV. Seeing the full backtrace out of a debug build would be interesting.
ricochet was built from the "booboo" gentoo overlay.