-
Notifications
You must be signed in to change notification settings - Fork 304
move fuzz/build.sh to oss-fuzz to fix fuzzing build error #763
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Wouldn't it be easier to fix the |
|
The CI failures are assuredly not related. |
|
I regret to clarify that creating a dedicated build.sh within the OSS-Fuzz project structure is necessary because our project's build system employs a highly integrated configuration for compilers and flags. This design expects full autonomy over the build process and does not readily accommodate external control. The fundamental issue is a binary format mismatch: the Fuzzer object files are fully instrumented with Sanitizers using OSS-Fuzz's toolchain, while the libroaring. a library is not. This incompatibility prevents them from being merged during the linking phase, resulting in the linker error. The reason modifying CRoaring/fuzz/build.sh proves ineffective lies in the core design philosophy of the OSS-Fuzz build system, specifically its "convention over configuration" principle, which is strictly enforced by the infra/helper.py script. Its behavior is determined as follows:
If you have an alternative approach, I would be glad to discuss it. |
|
You have not answered my question in a clear manner. We do not merge pull requests without a full understanding of what is involved. Please use straight and direct language. You sound like an AI bot right now. Your behaviour is suspicious. I am closing this issue. |
|
What I mean is that if build.sh only exists in croaring, the infra/helper.py script of oss-fuzz will ignore build.sh and the changes made to it. Instead, it will generate a template-based build.sh to override /src/build.sh in the container. |
|
CRoaring has been tested by oss-fuzz for years, in the current form. It worked until a few weeks ago (up til october) and then the build failed. https://oss-fuzz-build-logs.storage.googleapis.com/index.html#croaring I maintain several other libraries that are fuzzed by oss-fuzz and the build.sh script is inside the repo, and they build fine. We will happily build on your expertise, but please explain in clear terms:
We need to understand. |
|
#758
Error log shows "/usr/bin/ld: /src/croaring/build-dir/src/libroaring.a: error adding symbols: file format not recognized If we delete this line of code, it will terminate the IPO/LTO and restore the fuzzing build to the "successful" state. This is the simplest method. |
|
Thanks! The issue should be fixed. |
|
I'm very glad that my suggestion can be of some help. |
The fix involves moving the fuzz/build.sh file to the oss-fuzz/projects/croaring/ directory and applying specific modifications to correct the fuzzing build failures. I will subsequently submit a Pull Request to the oss-fuzz repository to implement this solution.
https://github.com/RoaringBitmap/CRoaring/issues/762
https://oss-fuzz-build-logs.storage.googleapis.com/log-73d6d8bb-72ed-4d72-b403-5b1ef5afb33b.txt