mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-10 17:21:33 +00:00
reenable afl-clang(++)
This commit is contained in:
parent
5a84db7c67
commit
ded80870a9
@ -538,7 +538,7 @@ all_done: test_build
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f $(PROGS) libradamsa.so afl-fuzz-document afl-as as afl-g++ afl-clang afl-clang++ *.o src/*.o *~ a.out core core.[1-9][0-9]* *.stackdump .test .test1 .test2 test-instr .test-instr0 .test-instr1 afl-qemu-trace afl-gcc-fast afl-gcc-pass.so afl-g++-fast ld *.so *.8 test/unittests/*.o test/unittests/unit_maybe_alloc test/unittests/preallocable .afl-* afl-gcc afl-g++ test/unittests/unit_hash test/unittests/unit_rand
|
||||
rm -f $(PROGS) libradamsa.so afl-fuzz-document afl-as as afl-g++ afl-clang afl-clang++ *.o src/*.o *~ a.out core core.[1-9][0-9]* *.stackdump .test .test1 .test2 test-instr .test-instr0 .test-instr1 afl-qemu-trace afl-gcc-fast afl-gcc-pass.so afl-g++-fast ld *.so *.8 test/unittests/*.o test/unittests/unit_maybe_alloc test/unittests/preallocable .afl-* afl-gcc afl-g++ afl-clang afl-clang++ test/unittests/unit_hash test/unittests/unit_rand
|
||||
-$(MAKE) -f GNUmakefile.llvm clean
|
||||
-$(MAKE) -f GNUmakefile.gcc_plugin clean
|
||||
$(MAKE) -C libdislocator clean
|
||||
@ -633,6 +633,8 @@ install: all $(MANPAGES)
|
||||
-$(MAKE) -f GNUmakefile.gcc_plugin install
|
||||
ln -sf afl-cc $${DESTDIR}$(BIN_PATH)/afl-gcc
|
||||
ln -sf afl-cc $${DESTDIR}$(BIN_PATH)/afl-g++
|
||||
ln -sf afl-cc $${DESTDIR}$(BIN_PATH)/afl-clang
|
||||
ln -sf afl-cc $${DESTDIR}$(BIN_PATH)/afl-clang++
|
||||
@mkdir -m 0755 -p ${DESTDIR}$(MAN_PATH)
|
||||
install -m0644 *.8 ${DESTDIR}$(MAN_PATH)
|
||||
install -m 755 afl-as $${DESTDIR}$(HELPER_PATH)
|
||||
|
@ -361,6 +361,8 @@ instrumentation/afl-common.o: ./src/afl-common.c
|
||||
@ln -sf afl-cc ./afl-c++
|
||||
@ln -sf afl-cc ./afl-gcc
|
||||
@ln -sf afl-cc ./afl-g++
|
||||
@ln -sf afl-cc ./afl-clang
|
||||
@ln -sf afl-cc ./afl-clang++
|
||||
@ln -sf afl-cc ./afl-clang-fast
|
||||
@ln -sf afl-cc ./afl-clang-fast++
|
||||
ifneq "$(AFL_CLANG_FLTO)" ""
|
||||
|
43
src/afl-cc.c
43
src/afl-cc.c
@ -48,6 +48,7 @@
|
||||
static u8 * obj_path; /* Path to runtime libraries */
|
||||
static u8 **cc_params; /* Parameters passed to the real CC */
|
||||
static u32 cc_par_cnt = 1; /* Param count, including argv0 */
|
||||
static u8 clang_mode; /* Invoked as afl-clang*? */
|
||||
static u8 llvm_fullpath[PATH_MAX];
|
||||
static u8 instrument_mode, instrument_opt_mode, ngram_size, lto_mode;
|
||||
static u8 compiler_mode, plusplus_mode, have_instr_env = 0;
|
||||
@ -288,7 +289,15 @@ static void edit_params(u32 argc, char **argv, char **envp) {
|
||||
|
||||
if (compiler_mode >= GCC_PLUGIN) {
|
||||
|
||||
alt_cxx = "g++";
|
||||
if (compiler_mode == GCC) {
|
||||
|
||||
alt_cxx = clang_mode ? "clang++" : "g++";
|
||||
|
||||
} else {
|
||||
|
||||
alt_cxx = "g++";
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
@ -313,7 +322,15 @@ static void edit_params(u32 argc, char **argv, char **envp) {
|
||||
|
||||
if (compiler_mode >= GCC_PLUGIN) {
|
||||
|
||||
alt_cc = "gcc";
|
||||
if (compiler_mode == GCC) {
|
||||
|
||||
alt_cc = clang_mode ? "clang" : "gcc";
|
||||
|
||||
} else {
|
||||
|
||||
alt_cc = "gcc";
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
@ -337,6 +354,11 @@ static void edit_params(u32 argc, char **argv, char **envp) {
|
||||
cc_params[cc_par_cnt++] = "-B";
|
||||
cc_params[cc_par_cnt++] = obj_path;
|
||||
|
||||
if (clang_mode) {
|
||||
|
||||
cc_params[cc_par_cnt++] = "-no-integrated-as";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (compiler_mode == GCC_PLUGIN) {
|
||||
@ -934,7 +956,9 @@ int main(int argc, char **argv, char **envp) {
|
||||
|
||||
} else if (strncmp(callname, "afl-gcc", 7) == 0 ||
|
||||
|
||||
strncmp(callname, "afl-g++", 7) == 0) {
|
||||
strncmp(callname, "afl-g++", 7) == 0 ||
|
||||
|
||||
strncmp(callname, "afl-clang", 9) == 0) {
|
||||
|
||||
compiler_mode = GCC;
|
||||
|
||||
@ -978,6 +1002,19 @@ int main(int argc, char **argv, char **envp) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (strncmp(callname, "afl-clang", 9) == 0) {
|
||||
|
||||
clang_mode = 1;
|
||||
|
||||
if (strncmp(callname, "afl-clang++", 11) == 0) {
|
||||
|
||||
plusplus_mode = 1;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
|
||||
if (strncmp(argv[i], "--afl", 5) == 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user