On Tue, Feb 13, 2018 at 10:18:05AM +0000, Richard W.M. Jones wrote:
My build of american-fuzzy-lop fails because clang doesn't understand the ‘-mcet -fcf-protection’ flags which seem to be added by RPM.
clang -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -mcet -fcf-protection -Wall -D_FORTIFY_SOURCE=2 -g -Wno-pointer-sign -DAFL_PATH="/usr/lib64/afl" -DBIN_PATH="/usr/bin" -DVERSION="2.52b" afl-clang-fast.c -o ../afl-clang-fast clang-6.0: error: unknown argument: '-mcet' clang-6.0: error: unknown argument: '-fcf-protection'
(https://koji.fedoraproject.org/koji/taskinfo?taskID=25000571)
This suggests a bug in our RPM configuration.
Not much more info about what these flags do, but the change was recorded here with an opaque "Intel says we need this" rationale:
https://bugzilla.redhat.com/show_bug.cgi?id=1538725
redhat-rpm-config flags have usually been compatible with both gcc and clang, so if there's no newer clang that supports this, it feels like we've a few options
1. Have the RPM spec for apps using clang filter these flags out of the RPM cflags. 2. Revert the change in redhat-rpm-config so we're compatible with clang 3. Provide a second macro in redhat-rpm-config that is the cut down set of cflags which still work with clang, that apps can opt for.
Regards, Daniel