move fuzz/build.sh to oss-fuzz to fix fuzzing build error#763
move fuzz/build.sh to oss-fuzz to fix fuzzing build error#763xingyaner wants to merge 1 commit intoRoaringBitmap:masterfrom
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