rust-fuzz / afl.rs

🐇 Fuzzing Rust code with American Fuzzy Lop
https://rust-fuzz.github.io/book/afl.html
Apache License 2.0
1.63k stars 105 forks source link

Troubleshooting: linking with `cc` failed #141

Open AljoschaMeyer opened 6 years ago

AljoschaMeyer commented 6 years ago

Hey,

I wanted to try some basic rust fuzzing, following the tutorial, but cargo afl build fails. I have no idea how to start troubleshooting this, so I'd be thankful for any pointers. I'm just pasting foo --version --verbose output for a bunch of stuff that might be relevant.

I'm on x86-64 Linux (arch linux), and there's a system-wide afl installation.

Gist of the error message (full output at the end of this issue)

error: linking with `cc` failed: exit code: 1
[...]
/usr/bin/ld: final link failed: bad value                                                                         
          collect2: error: ld returned 1 exit status

/home/aljoscha/projects/rsssb/fuzz-legacy-msg/src/main.rs

#[macro_use]
extern crate afl;
extern crate ssb_legacy_msg;

use ssb_legacy_msg::json::{from_slice, Value};

fn main() {
    fuzz!(|data: &[u8]| {
              // This comment keeps rustfmt from breaking the fuzz macro...
              match from_slice::<Value>(data) {
                  Ok(_) => std::process::abort(),
                  Err(_) => {}
              }
          });
}

cargo.toml

[package]
name = "fuzz-legacy-msg"
version = "0.1.0"
authors = ["AljoschaMeyer <mail@aljoscha-meyer.de>"]
edition = "2018"

[dependencies]
afl = "0.4"
ssb-legacy-msg = { path = "../ssb-legacy-msg" }

cargo afl --version

cargo-afl 0.4.0

cargo --version --verbose

release: 1.31.0
commit-hash: de314a8b2d45bce4958fc23939c5e4286e31621c
commit-date: 2018-09-21

rustc --version --verbose

rustc 1.31.0-nightly (de3d640f5 2018-10-01)
binary: rustc
commit-hash: de3d640f59c4fa4a09faf2a8d6b0a812aaa6d6cb
commit-date: 2018-10-01
host: x86_64-unknown-linux-gnu
release: 1.31.0-nightly
LLVM version: 8.0

cc --version --verbose

Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/lto-wrapper
cc (GCC) 8.2.1 20180831
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release --enable-default-pie --enable-default-ssp --enable-cet=auto
Thread model: posix
gcc version 8.2.1 20180831 (GCC) 
COLLECT_GCC_OPTIONS='--version' '-v' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/cc1 -quiet -v help-dummy -quiet -dumpbase help-dummy -mtune=generic -march=x86-64 -auxbase help-dummy -version --version -o /tmp/ccllaowH.s
GNU C17 (GCC) version 8.2.1 20180831 (x86_64-pc-linux-gnu)
    compiled by GNU C version 8.2.1 20180831, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
COLLECT_GCC_OPTIONS='--version' '-v' '-mtune=generic' '-march=x86-64'
 as -v --64 --version -o /tmp/ccfbTZOe.o /tmp/ccllaowH.s
GNU assembler version 2.31.1 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.31.1
GNU assembler (GNU Binutils) 2.31.1
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `x86_64-pc-linux-gnu'.
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='--version' '-v' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cciH7a8L.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie --version /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../.. /tmp/ccfbTZOe.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../lib/crtn.o
collect2 version 8.2.1 20180831
/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cciH7a8L.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie --version /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../.. /tmp/ccfbTZOe.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../lib/crtn.o
GNU ld (GNU Binutils) 2.31.1
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
COLLECT_GCC_OPTIONS='--version' '-v' '-mtune=generic' '-march=x86-64'

ld --version --verbose

GNU ld (GNU Binutils) 2.31.1
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.

Error log of cargo afl build --verbose

   Compiling semver-parser v0.7.0                                                                                           
       Fresh unicode-width v0.1.5                                                                                           
       Fresh libc v0.2.43                                                                                                   
   Compiling xdg v2.1.0                                                                                                     
     Running `rustc --crate-name semver_parser /home/aljoscha/.cargo/registry/src/github.com-1ecc6299db9ec823/semver-parser-0.7.0/src/lib.rs --color always --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=d192ee5d967b9ab0 -C extra-filename=-d192ee5d967b9ab0 --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt`
   Compiling ryu-ecmascript v0.1.0                                                                                          
     Running `rustc --crate-name xdg /home/aljoscha/.cargo/registry/src/github.com-1ecc6299db9ec823/xdg-2.1.0/src/lib.rs --color always --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=d78babd39ee3bda1 -C extra-filename=-d78babd39ee3bda1 --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt`
       Fresh strsim v0.7.0                                                                                                  
     Running `rustc --crate-name build_script_build /home/aljoscha/.cargo/registry/src/github.com-1ecc6299db9ec823/ryu-ecmascript-0.1.0/build.rs --color always --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=6826ee5f6622fe88 -C extra-filename=-6826ee5f6622fe88 --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/build/ryu-ecmascript-6826ee5f6622fe88 -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt`
       Fresh bitflags v1.0.4                                                                                                
       Fresh vec_map v0.8.1                                                                                                 
       Fresh ansi_term v0.11.0                                                                                              
       Fresh cc v1.0.25                                                                                                     
       Fresh encode_unicode v0.3.2                                                                                          
       Fresh indexmap v1.0.1                                                                                                
       Fresh textwrap v0.10.0                                                                                               
       Fresh atty v0.2.11                                                                                                   
       Fresh clap v2.32.0                                                                                                   
     Running `/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/build/ryu-ecmascript-6826ee5f6622fe88/build-script-build`
     Running `rustc --crate-name ryu_ecmascript /home/aljoscha/.cargo/registry/src/github.com-1ecc6299db9ec823/ryu-ecmascript-0.1.0/src/lib.rs --color always --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=a9ec477208b69f21 -C extra-filename=-a9ec477208b69f21 --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt --cfg integer128 --cfg must_use_return`
   Compiling semver v0.9.0                                                                                                  
     Running `rustc --crate-name semver /home/aljoscha/.cargo/registry/src/github.com-1ecc6299db9ec823/semver-0.9.0/src/lib.rs --color always --crate-type lib --emit=dep-info,link -C debuginfo=2 --cfg 'feature="default"' -C metadata=843f695fa8ece667 -C extra-filename=-843f695fa8ece667 --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --extern semver_parser=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libsemver_parser-d192ee5d967b9ab0.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt`
   Compiling ssb-legacy-msg v0.1.0 (/home/aljoscha/projects/rsssb/ssb-legacy-msg)                                           
     Running `rustc --crate-name ssb_legacy_msg /home/aljoscha/projects/rsssb/ssb-legacy-msg/src/lib.rs --color always --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=ce25ee93d7e58296 -C extra-filename=-ce25ee93d7e58296 --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps -C incremental=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/incremental -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --extern encode_unicode=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libencode_unicode-283dc2d0950a1c26.rlib --extern indexmap=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libindexmap-b4697209a357a291.rlib --extern ryu_ecmascript=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libryu_ecmascript-a9ec477208b69f21.rlib --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt`
   Compiling rustc_version v0.2.3                                                                                           
     Running `rustc --crate-name rustc_version /home/aljoscha/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc_version-0.2.3/src/lib.rs --color always --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=3d4189cf1addeb47 -C extra-filename=-3d4189cf1addeb47 --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --extern semver=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libsemver-843f695fa8ece667.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt`
   Compiling afl v0.4.0                                                                                                     
     Running `rustc --crate-name build_script_build /home/aljoscha/.cargo/registry/src/github.com-1ecc6299db9ec823/afl-0.4.0/build.rs --color always --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=e6a7936995a5c78c -C extra-filename=-e6a7936995a5c78c --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/build/afl-e6a7936995a5c78c -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --extern rustc_version=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/librustc_version-3d4189cf1addeb47.rlib --extern xdg=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libxdg-d78babd39ee3bda1.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt`
     Running `/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/build/afl-e6a7936995a5c78c/build-script-build`     
     Running `rustc --crate-name afl /home/aljoscha/.cargo/registry/src/github.com-1ecc6299db9ec823/afl-0.4.0/src/lib.rs --color always --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=c22660126f129d94 -C extra-filename=-c22660126f129d94 --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --extern cc=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libcc-0c988083f9cb93d1.rlib --extern clap=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libclap-c8fca7a762cd4937.rlib --extern rustc_version=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/librustc_version-3d4189cf1addeb47.rlib --extern xdg=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libxdg-d78babd39ee3bda1.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt`
   Compiling fuzz-legacy-msg v0.1.0 (/home/aljoscha/projects/rsssb/fuzz-legacy-msg)                                         
     Running `rustc --edition=2018 --crate-name fuzz_legacy_msg src/main.rs --color always --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=76eedfad431fc184 -C extra-filename=-76eedfad431fc184 --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps -C incremental=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/incremental -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --extern afl=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libafl-c22660126f129d94.rlib --extern ssb_legacy_msg=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libssb_legacy_msg-ce25ee93d7e58296.rlib --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt`
error: linking with `cc` failed: exit code: 1                                                                               
  |                                                                                                                         
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.14yyy110mel5ktff.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.1g4zpl9i8lx3h2mm.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.1rmagjxo9ve2xs6n.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.1zx2r20vh5c59myy.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.2764v71i8kejldxm.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.2l90sczt5xy16nmj.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.2t4fj8sstrc5poze.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.2yq8iph4b2vodf24.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.38m6v8xj6wag3dsf.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.3zg9pk7pf6k34nx.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.41vt0g0scilbdusu.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.438ed5s5r9sqoaqp.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.47c021knwugod2td.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.4akre96j5cn5irvc.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.4jk6hqar9oroum5l.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.512acwa8rok5d2jz.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.5e55a046mt1u4mte.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.5fplb9h1ooldbk0q.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.5vmknhn95f32jr.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.75334emkraqgjki.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.b862g4g8m3uhs68.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.e9o00xc18b703lx.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.hqp7ome1koww9mn.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.kyaxmxe7o0w1ayv.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.nr19oqhws91drwu.rcgu.o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.tjhtqufrcw7dv9c.rcgu.o" "-o" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.2a0yp9afth6rn8b5.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps" "-L" "/home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt" "-L" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-lafl-llvm-rt" "-Wl,-Bstatic" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libssb_legacy_msg-ce25ee93d7e58296.rlib" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libencode_unicode-283dc2d0950a1c26.rlib" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libryu_ecmascript-a9ec477208b69f21.rlib" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libindexmap-b4697209a357a291.rlib" "/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libafl-c22660126f129d94.rlib" "-Wl,--start-group" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-027a89be167b265b.rlib" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-efa06fb124dba20d.rlib" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-42fae5dd1c152cb8.rlib" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-95f74442e79def6e.rlib" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_system-98b41d45b3686f4d.rlib" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-7899d3c8c19ca5e1.rlib" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-c5d3fd47d77e21ad.rlib" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-0a980ea71709207b.rlib" "-Wl,--end-group" "/home/aljoscha/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-edd9753c2ed7ad48.rlib" "-Wl,-Bdynamic" "-lafl-llvm-rt" "-lafl-llvm-rt" "-lafl-llvm-rt" "-lafl-llvm-rt" "-lafl-llvm-rt" "-ldl" "-lrt" "-lpthread" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: /usr/bin/ld: __sancov_guards has both ordered [`__sancov_guards' in /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.2yq8iph4b2vodf24.rcgu.o] and unordered [`__sancov_guards' in /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/fuzz_legacy_msg-76eedfad431fc184.2yq8iph4b2vodf24.rcgu.o] sections
          /usr/bin/ld: final link failed: bad value                                                                         
          collect2: error: ld returned 1 exit status                                                                        

error: aborting due to previous error                                                                                       

error: Could not compile `fuzz-legacy-msg`.                                                                                 

Caused by:
  process didn't exit successfully: `rustc --edition=2018 --crate-name fuzz_legacy_msg src/main.rs --color always --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=76eedfad431fc184 -C extra-filename=-76eedfad431fc184 --out-dir /home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps -C incremental=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/incremental -L dependency=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps --extern afl=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libafl-c22660126f129d94.rlib --extern ssb_legacy_msg=/home/aljoscha/projects/rsssb/fuzz-legacy-msg/target/debug/deps/libssb_legacy_msg-ce25ee93d7e58296.rlib --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/aljoscha/.local/share/afl.rs/rustc-1.31.0-nightly-de3d640/afl.rs-0.4.0/afl-llvm-rt` (exit code: 1)
frewsxcv commented 6 years ago

This looks like https://github.com/rust-lang/rust/issues/53945

We may want to add this Rust flag temporarily as a workaround https://github.com/rust-fuzz/honggfuzz-rs/commit/44167fe733ed526305d4462a126ac657179049f7

frewsxcv commented 5 years ago

a temporary fix was merged in https://github.com/rust-fuzz/afl.rs/pull/144 and just published in 0.4.2

yorickpeterse commented 5 years ago

I'm running into this exact same error when using AFL.rs 0.4.3, also on Arch Linux:

       Fresh version_check v0.1.5
       Fresh cfg-if v0.1.6
       Fresh lazy_static v1.2.0
       Fresh ucd-util v0.1.3
       Fresh glob v0.2.11
       Fresh utf8-ranges v1.0.2
       Fresh unicode-width v0.1.5
       Fresh vec_map v0.8.1
       Fresh bitflags v1.0.4
       Fresh strsim v0.7.0
       Fresh ansi_term v0.11.0
       Fresh lazy_static v0.2.11
       Fresh nodrop v0.1.13
       Fresh quote v0.3.15
       Fresh peeking_take_while v0.1.2
       Fresh semver-parser v0.7.0
       Fresh pkg-config v0.3.14
       Fresh memoffset v0.2.1
       Fresh void v1.0.2
       Fresh make-cmd v0.1.0
       Fresh scopeguard v0.3.3
       Fresh cc v1.0.26
       Fresh xdg v2.2.0
       Fresh stable_deref_trait v1.1.1
       Fresh either v1.5.0
       Fresh abort_on_panic v1.0.0
       Fresh fnv v1.0.6
   Compiling memchr v2.1.2
       Fresh log v0.4.6
       Fresh crossbeam-utils v0.2.2
       Fresh thread_local v0.3.6
       Fresh regex-syntax v0.5.6
     Running `rustc --crate-name build_script_build /home/yorickpeterse/.cargo/registry/src/github.com-1ecc6299db9ec823/memchr-2.1.2/build.rs --color never --crate-type bin --emit=dep-info,link -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="libc"' --cfg 'feature="use_std"' -C metadata=71fd26a30f9af501 -C extra-filename=-71fd26a30f9af501 --out-dir /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501 -L dependency=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps --extern version_check=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libversion_check-605eabd9670d7fae.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/yorickpeterse/.local/share/afl.rs/rustc-1.31.0-abe02ce/afl.rs-0.4.3/afl-llvm-rt`
       Fresh textwrap v0.10.0
       Fresh getopts v0.2.18
       Fresh semver v0.9.0
   Compiling unreachable v1.0.0
   Compiling libloading v0.5.0
     Running `rustc --crate-name unreachable /home/yorickpeterse/.cargo/registry/src/github.com-1ecc6299db9ec823/unreachable-1.0.0/src/lib.rs --color never --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=ea3d8389ce0e7842 -C extra-filename=-ea3d8389ce0e7842 --out-dir /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps -L dependency=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps --extern void=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libvoid-f6bd5365a7c87038.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/yorickpeterse/.local/share/afl.rs/rustc-1.31.0-abe02ce/afl.rs-0.4.3/afl-llvm-rt`
     Running `rustc --crate-name build_script_build /home/yorickpeterse/.cargo/registry/src/github.com-1ecc6299db9ec823/libloading-0.5.0/build.rs --color never --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=db0490d01b893126 -C extra-filename=-db0490d01b893126 --out-dir /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126 -L dependency=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps --extern cc=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libcc-58e69f9c4fe45bd6.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/yorickpeterse/.local/share/afl.rs/rustc-1.31.0-abe02ce/afl.rs-0.4.3/afl-llvm-rt`
   Compiling owning_ref v0.3.3
     Running `rustc --crate-name owning_ref /home/yorickpeterse/.cargo/registry/src/github.com-1ecc6299db9ec823/owning_ref-0.3.3/src/lib.rs --color never --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=3a45bd06483761fc -C extra-filename=-3a45bd06483761fc --out-dir /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps -L dependency=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps --extern stable_deref_trait=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libstable_deref_trait-5f089598037b9a34.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/yorickpeterse/.local/share/afl.rs/rustc-1.31.0-abe02ce/afl.rs-0.4.3/afl-llvm-rt`
   Compiling libc v0.2.45
     Running `rustc --crate-name libc /home/yorickpeterse/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.45/src/lib.rs --color never --crate-type lib --emit=dep-info,link -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=4d78cad6884ff312 -C extra-filename=-4d78cad6884ff312 --out-dir /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps -L dependency=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/yorickpeterse/.local/share/afl.rs/rustc-1.31.0-abe02ce/afl.rs-0.4.3/afl-llvm-rt --cfg core_cvoid`
   Compiling log v0.3.9
     Running `rustc --crate-name log /home/yorickpeterse/.cargo/registry/src/github.com-1ecc6299db9ec823/log-0.3.9/src/lib.rs --color never --crate-type lib --emit=dep-info,link -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="log"' --cfg 'feature="use_std"' -C metadata=3fb2e6e89f4c5a33 -C extra-filename=-3fb2e6e89f4c5a33 --out-dir /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps -L dependency=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps --extern log=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/liblog-e7d11455959bf2da.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/yorickpeterse/.local/share/afl.rs/rustc-1.31.0-abe02ce/afl.rs-0.4.3/afl-llvm-rt`
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501/build_script_build-71fd26a30f9af501.build_script_build.bk5tw3ux-cgu.0.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501/build_script_build-71fd26a30f9af501.build_script_build.bk5tw3ux-cgu.1.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501/build_script_build-71fd26a30f9af501.build_script_build.bk5tw3ux-cgu.2.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501/build_script_build-71fd26a30f9af501.build_script_build.bk5tw3ux-cgu.3.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501/build_script_build-71fd26a30f9af501.build_script_build.bk5tw3ux-cgu.4.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501/build_script_build-71fd26a30f9af501.build_script_build.bk5tw3ux-cgu.5.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501/build_script_build-71fd26a30f9af501.build_script_build.bk5tw3ux-cgu.6.rcgu.o" "-o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501/build_script_build-71fd26a30f9af501" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501/build_script_build-71fd26a30f9af501.9xotgh50119ferc.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps" "-L" "/home/yorickpeterse/.local/share/afl.rs/rustc-1.31.0-abe02ce/afl.rs-0.4.3/afl-llvm-rt" "-L" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-lafl-llvm-rt" "-Wl,-Bstatic" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libversion_check-605eabd9670d7fae.rlib" "-Wl,--start-group" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-52f862a21e09568c.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-b89f1a9b548bfef9.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-a7f738f7aa980965.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-4c9cbe622de116ab.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_system-48c8a8552cff934e.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-517830e9d56bab97.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-2d44723f32308cf8.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-f2133e8b70369157.rlib" "-Wl,--end-group" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-71671e8958739d51.rlib" "-Wl,-Bdynamic" "-lafl-llvm-rt" "-ldl" "-lrt" "-lpthread" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: /usr/bin/ld: __sancov_guards has both ordered [`__sancov_guards' in /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libversion_check-605eabd9670d7fae.rlib(version_check-605eabd9670d7fae.version_check.1kqjzbmc-cgu.3.rcgu.o)] and unordered [`__sancov_guards' in /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libversion_check-605eabd9670d7fae.rlib(version_check-605eabd9670d7fae.version_check.1kqjzbmc-cgu.3.rcgu.o)] sections
          /usr/bin/ld: final link failed: bad value
          collect2: error: ld returned 1 exit status

error: aborting due to previous error

error: Could not compile `memchr`.

Caused by:
  process didn't exit successfully: `rustc --crate-name build_script_build /home/yorickpeterse/.cargo/registry/src/github.com-1ecc6299db9ec823/memchr-2.1.2/build.rs --color never --crate-type bin --emit=dep-info,link -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="libc"' --cfg 'feature="use_std"' -C metadata=71fd26a30f9af501 -C extra-filename=-71fd26a30f9af501 --out-dir /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/memchr-71fd26a30f9af501 -L dependency=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps --extern version_check=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libversion_check-605eabd9670d7fae.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/yorickpeterse/.local/share/afl.rs/rustc-1.31.0-abe02ce/afl.rs-0.4.3/afl-llvm-rt` (exit code: 1)
warning: build failed, waiting for other jobs to finish...
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.0.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.1.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.10.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.11.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.12.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.13.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.14.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.15.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.2.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.3.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.4.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.5.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.6.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.7.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.8.rcgu.o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.build_script_build.deonwpyc-cgu.9.rcgu.o" "-o" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126/build_script_build-db0490d01b893126.207phxhwnzfjnsqz.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps" "-L" "/home/yorickpeterse/.local/share/afl.rs/rustc-1.31.0-abe02ce/afl.rs-0.4.3/afl-llvm-rt" "-L" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-lafl-llvm-rt" "-Wl,-Bstatic" "/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libcc-58e69f9c4fe45bd6.rlib" "-Wl,--start-group" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-52f862a21e09568c.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-b89f1a9b548bfef9.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-a7f738f7aa980965.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-4c9cbe622de116ab.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_system-48c8a8552cff934e.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-517830e9d56bab97.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-2d44723f32308cf8.rlib" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-f2133e8b70369157.rlib" "-Wl,--end-group" "/home/yorickpeterse/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-71671e8958739d51.rlib" "-Wl,-Bdynamic" "-lafl-llvm-rt" "-ldl" "-lrt" "-lpthread" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: /usr/bin/ld: __sancov_guards has both ordered [`__sancov_guards' in /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libcc-58e69f9c4fe45bd6.rlib(cc-58e69f9c4fe45bd6.cc.c8gg4gin-cgu.11.rcgu.o)] and unordered [`__sancov_guards' in /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libcc-58e69f9c4fe45bd6.rlib(cc-58e69f9c4fe45bd6.cc.c8gg4gin-cgu.11.rcgu.o)] sections
          /usr/bin/ld: final link failed: bad value
          collect2: error: ld returned 1 exit status

error: aborting due to previous error

error: Could not compile `libloading`.

Caused by:
  process didn't exit successfully: `rustc --crate-name build_script_build /home/yorickpeterse/.cargo/registry/src/github.com-1ecc6299db9ec823/libloading-0.5.0/build.rs --color never --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=db0490d01b893126 -C extra-filename=-db0490d01b893126 --out-dir /home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/build/libloading-db0490d01b893126 -L dependency=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps --extern cc=/home/yorickpeterse/Projects/inko/inko/vm/fuzzing/target/debug/deps/libcc-58e69f9c4fe45bd6.rlib --cap-lints allow --cfg fuzzing -C debug-assertions -C overflow_checks -C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -C llvm-args=-sanitizer-coverage-trace-pc-guard -C llvm-args=-sanitizer-coverage-prune-blocks=0 -C opt-level=3 -C target-cpu=native -C debuginfo=0 -l afl-llvm-rt -L /home/yorickpeterse/.local/share/afl.rs/rustc-1.31.0-abe02ce/afl.rs-0.4.3/afl-llvm-rt` (exit code: 1)
warning: build failed, waiting for other jobs to finish...
error: build failed
hahseba commented 5 years ago

Indeed, it seems like crates relying on cc to build don't work. Perhaps some Options have to be provided to cc?

lukehsiao commented 5 years ago

I also have a similar compile issue with cc, using afl.rs v0.4.3, with rustc 1.32.0.

error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" [...] "-Wl,-Bdynamic" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: /usr/bin/ld: __sancov_guards has both ordered [`__sancov_guards[_ZN55_$LT$$RF$T$u20$as$u20$core..convert..AsRef$LT$U$GT$$GT$6as_ref17h9e6557eb3a62b5e9E]' in [...]/target/debug/build/failure_derive-838ca9ab30299771/build_script_build-838ca9ab30299771.build_script_build.ewjo15gi-cgu.0.rcgu.o] and unordered [`__sancov_guards' in [...]/target/debug/build/failure_derive-838ca9ab30299771/build_script_build-838ca9ab30299771.build_script_build.ewjo15gi-cgu.0.rcgu.o] sections
          /usr/bin/ld: final link failed: Bad value
          collect2: error: ld returned 1 exit status

error: aborting due to previous error

error: Could not compile `failure_derive`.
warning: build failed, waiting for other jobs to finish...
error: build failed

I also notice that I do not see the flags added in #144 listed during the linking.

I can confirm that adding user-provided flags via

$ export RUSTFLAGS="-Clink-arg=-fuse-ld=gold"

does result in a successful build. I'm on Ubuntu 18.04, so it seems strange that this was not added automatically given this condition:

https://github.com/rust-fuzz/afl.rs/blob/0fbe9c51fe47b341486ba338d2d35f98e5c3955e/src/bin/cargo-afl.rs#L193-L199