rearrange environment info for afl-gcc and -h
MODIFY
src/afl-gcc.c
src/afl-gcc.c
@@ -342,11 +342,37 @@ static void edit_params(u32 argc, char** argv) {
int main(int argc, char** argv) {
+ char *env_info =
+ "Environment variables used by afl-gcc:\n"
+ "AFL_CC: path to the C compiler to use\n"
+ "AFL_CXX: path to the C++ compiler to use\n"
+ "AFL_GCJ: path to the java compiler to use\n"
+ "AFL_PATH: path to the instrumenting assembler\n"
+ "AFL_DONT_OPTIMIZE: disable optimization instead of -O3\n"
+ "AFL_NO_BUILTIN: compile for use with libtokencap.so\n"
+ "AFL_QUIET: suppress verbose output\n"
+ "AFL_CAL_FAST: speed up the initial calibration\n"
+ "AFL_HARDEN: adds code hardening to catch memory bugs\n"
+ "AFL_USE_ASAN: activate address sanitizer\n"
+ "AFL_USE_MSAN: activate memory sanitizer\n"
+ "AFL_USE_UBSAN: activate undefined behaviour sanitizer\n"
+
+ "\nEnvironment variables used by afl-as (called by afl-gcc):\n"
+ "AFL_AS: path to the assembler to use\n"
+ "TMPDIR: set the directory for temporary files of afl-as\n"
+ "TEMP: fall back path to directory for temporary files\n"
+ "TMP: fall back path to directory for temporary files\n"
+ "AFL_INST_RATIO: percentage of branches to instrument\n"
+ "AFL_QUIET: suppress verbose output\n"
+ "AFL_KEEP_ASSEMBLY: leave instrumented assembly files\n"
+ "AFL_AS_FORCE_INSTRUMENT: force instrumentation for asm sources\n"
+ ;
+
if (argc == 2 && strcmp(argv[1], "-h") == 0) {
printf("afl-cc" VERSION " by Michal Zalewski\n\n");
printf("%s \n\n", argv[0]);
- printf("afl-gcc has no command line options\n");
+ printf("afl-gcc has no command line options\n\n%s", env_info);
printf(
"NOTE: afl-gcc is deprecated, llvm_mode is much faster and has more "
"options\n");
@@ -382,32 +408,9 @@ int main(int argc, char** argv) {
"You can specify custom next-stage toolchain via AFL_CC, AFL_CXX, and "
"AFL_AS.\n"
"Setting AFL_HARDEN enables hardening optimizations in the compiled "
- "code.\n\n"
+ "code.\n\n%s"
- "Environment variables used by afl-gcc:\n"
- "AFL_CC: path to the C compiler to use\n"
- "AFL_CXX: path to the C++ compiler to use\n"
- "AFL_GCJ: path to the java compiler to use\n"
- "AFL_PATH: path to the instrumenting assembler\n"
- "AFL_DONT_OPTIMIZE: disable optimization instead of -O3\n"
- "AFL_NO_BUILTIN: compile for use with libtokencap.so\n"
- "AFL_QUIET: suppress verbose output\n"
- "AFL_CAL_FAST: speed up the initial calibration\n"
- "AFL_HARDEN: adds code hardening to catch memory bugs\n"
- "AFL_USE_ASAN: activate address sanitizer\n"
- "AFL_USE_MSAN: activate memory sanitizer\n"
- "AFL_USE_UBSAN: activate undefined behaviour sanitizer\n"
-
- "\nEnvironment variables used by afl-as (called by afl-gcc):\n"
- "AFL_AS: path to the assembler to use\n"
- "TMPDIR: set the directory for temporary files of afl-as\n"
- "TEMP: fall back path to directory for temporary files\n"
- "TMP: fall back path to directory for temporary files\n"
- "AFL_INST_RATIO: percentage of branches to instrument\n"
- "AFL_QUIET: suppress verbose output\n"
- "AFL_KEEP_ASSEMBLY: leave instrumented assembly files\n"
- "AFL_AS_FORCE_INSTRUMENT: force instrumentation for asm sources\n"
- , BIN_PATH, BIN_PATH);
+ , BIN_PATH, BIN_PATH, env_info);
exit(1);

rearrange environment info for afl-gcc and -h