我正在尝试构建一个相当坚固的 Gentoo 安装,并且我想至少确保所有内容都是使用-fstack-protector-strong
if not构建的-fstack-protector-all
。
我在个人hardened/linux/amd64/selinux
资料上,这是我的 make.conf:
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
USE="bindist mmx sse sse2 systemd -consolekit"
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
ACCEPT_KEYWORDS="~amd64"
Hardened 是自动设置的-fstack-protector-strong
,还是我需要将其传递给CFLAGS
?
答案1
是的,Gentoo Hardenedfstack-protector-all
默认使用,所以你不需要CFLAGS
自己去启用堆栈粉碎保护。CFLAGS
强化配置文件的默认设置包括:
CFLAGS="-fPIE -fstack-protector-all -D_FORTIFY_SOURCE=2" LDFLAGS="-Wl,-z,now -Wl,-z,relro"
看本节从 Gentoo Hardened FAQ 获取更多信息。