使用“ --enable-vtable-verify”构建Devtoolset 7 gcc

时间:2018-10-12 23:21:16

标签: vtable gcc7 devtoolset

我的机器上安装了devtoolset7软件包

devtoolset-7-binutils-devel-2.28-11.el7.x86_64
devtoolset-7-runtime-7.1-4.el7.x86_64
devtoolset-7-binutils-2.28-11.el7.x86_64
devtoolset-7-gdb-8.0.1-36.el7.x86_64
devtoolset-7-libasan-devel-7.3.1-5.13.el7.x86_64
devtoolset-7-gcc-c++-7.3.1-5.13.el7.x86_64
devtoolset-7-libstdc++-devel-7.3.1-5.13.el7.x86_64
devtoolset-7-valgrind-3.13.0-11.el7.x86_64
devtoolset-7-gcc-7.3.1-5.13.el7.x86_64

我正在尝试使用-fvtable-verify=std

构建二进制文件

不幸的是,devtoolset 7随附的gcc不是用--enable-vtable-verify构建的

如何使用--enable-vtable-verify和devtoolset 7所使用的类似配置来重建devtoolset 7 gcc。

1 个答案:

答案 0 :(得分:1)

devtoolset的全部目的是保持与系统编译器及其较旧的libstdc++.so.6库的向后兼容性。 --enable-vtable-verify选项使用不同的ABI创建不兼容的C ++运行时,该运行时不能与未启用VTV编译的任何现有库一起使用。

创建与系统编译器明显不兼容的devtoolset编译器(旨在与系统编译器兼容)毫无意义。

如果您想使用VTV,则只需build your own GCC from source并启用VTV,但是请注意,该GCC编译的代码将与系统编译器 devtoolset编译的代码不兼容。编译器。