Summary: | >=sys-devel/gcc-4.9: add USE=vtv to control vtable support | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Justin N. Ferguson <jf> |
Component: | [OLD] Development | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gentoo_usr, jf |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 544980 |
Description
Justin N. Ferguson
2015-04-19 02:11:06 UTC
While writing a patch to GCC to address this issue, I forgot to run autoreconf and ended up with a toolchain that exactly emulates the issue: $ ./usr/x86_64-pc-linux-gnu/gcc-bin/4.9.2/g++ -o tmp tmp.cpp -fvtable-verify=yes /usr/bin/ld: cannot find vtv_start.o: No such file or directory $ find /var/tmp/chroot-work/ -name vtv_start.o $ i'll add a USE=vtv flag to control libvtv and the the vtable-verify configure flags and default it to on -- the build overhead should be trivial and the runtime overhead (when not using vtable) should be non-existent. looks like we'll want to mask it on non-x86 targets just so users don't get confused. should be all set now: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f4dd949d7671bd86610836d5ac270430be37a4c Is it intentional that the USE flag 'vtv' is masked on amd64 hardened profile (more precisely hardened/linux/amd64/selinux)? If not, please remove the masking. Here is the list of profiles included/parented for a selection of different hardened profiles on amd64. Note that the profile 'default/linux/amd64', which unmasks the USE flag 'vtv', is not amongst them. /usr/portage/profiles/hardened/linux/amd64/selinux -> /usr/portage/profiles/base /usr/portage/profiles/default/linux /usr/portage/profiles/arch/base /usr/portage/profiles/features/multilib /usr/portage/profiles/features/multilib/lib32 /usr/portage/profiles/arch/amd64 /usr/portage/profiles/releases /usr/portage/profiles/releases/13.0 /usr/portage/profiles/hardened/linux /usr/portage/profiles/hardened/linux/amd64 /usr/portage/profiles/features/selinux /usr/portage/profiles/hardened/linux/amd64/selinux /usr/portage/profiles/hardened/linux/amd64 -> /usr/portage/profiles/base /usr/portage/profiles/default/linux /usr/portage/profiles/arch/base /usr/portage/profiles/features/multilib /usr/portage/profiles/features/multilib/lib32 /usr/portage/profiles/arch/amd64 /usr/portage/profiles/releases /usr/portage/profiles/releases/13.0 /usr/portage/profiles/hardened/linux /usr/portage/profiles/hardened/linux/amd64 /usr/portage/profiles/hardened/linux/musl/amd64 -> /usr/portage/profiles/base /usr/portage/profiles/default/linux /usr/portage/profiles/hardened/linux/musl /usr/portage/profiles/hardened/linux/musl/amd64 /usr/portage/profiles/hardened/linux/amd64/no-multilib/selinux -> /usr/portage/profiles/base /usr/portage/profiles/default/linux /usr/portage/profiles/arch/base /usr/portage/profiles/features/multilib /usr/portage/profiles/features/multilib/lib32 /usr/portage/profiles/arch/amd64 /usr/portage/profiles/releases /usr/portage/profiles/releases/13.0 /usr/portage/profiles/hardened/linux /usr/portage/profiles/hardened/linux/amd64 /usr/portage/profiles/features/64bit-native /usr/portage/profiles/hardened/linux/amd64/no-multilib /usr/portage/profiles/features/selinux /usr/portage/profiles/hardened/linux/amd64/no-multilib/selinux Fixed in the hardened profile https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=851733e06b7240fe71c08374135c362bebed495d |