Comments (4)
I use llvm version 4.0.0. AFLGo is currently "sensitive" with the clang version. We also plan to use the latest verion of llvm 8.
Please let me know if you can use pre-built binaries of llvm and clang to run AFLGo. We will update the building script. Thanks.
from aflgo.
Besides, aflgo-build.sh compile clang and llvm from source code, which takes long time (longer than 4 hours), and makes DockerHub automated build time out.
I propose change to download and decompress pre-built binaries, like what Angora did: https://github.com/AngoraFuzzer/Angora/blob/master/build/install_llvm.sh
from aflgo.
It seems not that easy to skip compiling LLVM, since the pre-built binaries does not include LLVM-Gold plugin. (Besides, llvm.org does not provide version 4.0.1 pre-built binaries for ubuntu, wierd...)
After many tries, I still cannot find aflgo-compatible LLVM install methods without building LLVM.
Here are my failed tries, may be useful for further investigation:
- use default apt clang-4.0
aflgo can be built, but cannot build target programs.
ar
and ranlib
not working, asm-instrumentation registered more than once
, issue: http://lists.llvm.org/pipermail/llvm-bugs/2016-April/046663.html
- use apt.llvm.org provided clang-4.0
apt install clang-4.0=1:4.0~svn305264-1~exp1 libclang1-4.0=1:4.0~svn305264-1~exp1 libclang-common-4.0-dev=1:4.0~svn305264-1~exp1 libllvm4.0=1:4.0~svn305264-1~exp1 llvm-4.0-tools=1:4.0~svn305264-1~exp1 llvm-4.0-dev=1:4.0~svn305264-1~exp1 llvm-4.0=1:4.0~svn305264-1~exp1 llvm-4.0-runtime=1:4.0~svn305264-1~exp1 libclang-4.0-dev=1:4.0~svn305264-1~exp1
ld do not support certain parameter (I forget to record error message). aflgo llvm-mode cannot be built.
- use default apt clang-4.0 but add my pre-built LLVMgold.so to
/usr/lib/bfd-plugins
(from previous full build)
Both aflgo and target program can be built. But [!] Could not generate call graph. Repeating..
- only build LLVMgold by
ninja LLVMgold
This build generate a huge LLVMgold.so (425MB, compared to 25M from full build).
cannot link target program: undefined reference to __afl_area_ptr
from aflgo.
Thanks @zjuchenyuan for your tries. I think we have tried some cases, but got a conclusion to use oss-fuzz's building script. Also, if we use the newest version of clang and llvm, we may need to update llvm-mode.
from aflgo.
Related Issues (20)
- invalid syntax when execute gen_distance_fast.py HOT 1
- typo of AFLGO_PROFILER_FILE HOT 1
- Incorrect method of merge call graph HOT 2
- Some incorrect lines caused the script gen_distance_fast.py to abort.
- Can't build libxml2 HOT 1
- Function distance calculation differs from paper HOT 3
- Can afl-llvm-pass.so.cc:366 solve the same name issue of basic block? HOT 2
- Build sqlite by afl-clang-fast HOT 1
- Cannot observe the crash in simple C program HOT 1
- Build libxml2: C compiler cannot create executables
- cannot access 'TMP_DIR/dot-files': No such file or directory HOT 4
- How to direct to code in a shared library HOT 1
- Erros when generating distance file HOT 5
- Distance calculation optimization in distance.py
- Details about AFLGo for patch testing
- Troubles Encountered in Distance Calculation HOT 3
- Link DG with AFLGo HOT 12
- gen_distance_fast.py: error: Couldn't find any binaries in folder /home/chen/aflgo/libxml2. HOT 1
- the
- The same name for BasicBlock
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aflgo.