Comments (6)
If I understand the FuzzBench configuration correctly, they use a fork by AdaLogics. The fork doesn't seem to follow our changes, so I'm not sure whether we would actually break anything by dropping support for old LLVM versions. However, it still seems a good idea to stay compatible with the FuzzBench base image so that people can use our version of SymCC in FuzzBench if they want. The base image uses Ubuntu 20.04, so we may have to keep LLVM 12 in the list of supported versions until FuzzBench moves to Ubuntu 22.04.
from symcc.
Hi Sebastian,
you are right it's not needed, and painful, to keep compatibility with all LLVM versions.
I like the idea to keep compatibility with the last 2 Ubuntu LTS versions, but keeping last 3 LLVM versions does not guaranty this... Also some people may run Debian stable which is at version 11 (although LLVM provides some package, I don't know if they introduce some issues).
How about we keep 3 LLVM versions but when we drop the support for an Ubuntu LTS+debian stable we make a branch for this version ?
This will potentially make life easier to anyone who needs a specific compatibility (like if SymCC is combined with another tool that doesn't support up to date LLVM). We can put a warning that the branch is for convenience, without any guaranty/support, and only accept some pull requests proposing backports from main branch that pass CI tests (with specific distribution in the CI).
Or will this be too much overhead?
from symcc.
I like the idea of marking the last commit that is compatible with a given LLVM version. But I think you might be right that a dedicated branch with backports will cause a lot of overhead. Shall we just put a label on the commit? It shouldn't be a huge problem for people to build Clang from source if they need or want to stay on an old operating system for some reason.
from symcc.
I like the idea of marking the last commit that is compatible with a given LLVM version. But I think you might be right that a dedicated branch with backports will cause a lot of overhead. Shall we just put a label on the commit? It shouldn't be a huge problem for people to build Clang from source if they need or want to stay on an old operating system for some reason.
OK for me !
Aurélien
from symcc.
I strongly agree that trying to maintain support for ever-changing LLVM APIs is a losing battle.
I don't have much to add, but is maintaining fuzzbench support important to symcc? I say this because it is by far the most commonly used fuzzing benchmark, so ensuring compatibility seems important (eg for building and expanding on symcc, and evaluating their fuzzers against symcc). I note that currently fuzzbench uses a symcc fork. I have no idea how much work this would involve, but potentially something to think about.
from symcc.
That's a good point. I'm not sure how much the fork has diverged, but I'll have a look to see which base image is used there.
from symcc.
Related Issues (20)
- Change the license of the runtime to LGPL HOT 6
- Support for variadic functions HOT 1
- Failed to build the Vagrantfile
- Can't create expressions for concrete non-undef structs HOT 2
- _sym_get_input_byte() in simple backend
- sprintf wrapper
- Crash when concrete non-undef structs contain floats
- afl-showmap generating incorrectly sized map HOT 1
- SymCC may crash if test-case handlers are instrumented
- cannot generate new testcase for a simple case
- program links to libstdc++, not instructmented libc++
- Could not compile libcxx: malloc/malloc.h not found HOT 7
- Fail to compile gpac with clang frontend error HOT 1
- Fuzzing with AFL and Symcc does not work HOT 2
- SymCC fails to compile with -DTARGET_32BIT=ON HOT 5
- DockerHub Image? HOT 5
- Config_site issue when using the sample.cpp on Docker HOT 1
- Requesting example of running symcc with symbolic input file HOT 4
- Missing support for arithmetic on booleans and vector types HOT 2
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 symcc.