Git Product home page Git Product logo

Comments (6)

maflcko avatar maflcko commented on May 25, 2024

I might try clang-14 to see if that fixes it

from fuzz-introspector.

DavidKorczynski avatar DavidKorczynski commented on May 25, 2024

I haven't seen this issue before, but I will take a loot in the near future. There are a few things that could be improved in the llvm pass, which may assist here.

Is bitcoin-core able to compile with LTO by default?

from fuzz-introspector.

maflcko avatar maflcko commented on May 25, 2024

Looks like clang-14 fixed it #29 for me. No idea why 🤷‍♂️

from fuzz-introspector.

maflcko avatar maflcko commented on May 25, 2024

Oh, apologies. I forgot to press CTRL+C to continue the compilation.

clang-14 fails with some lto issue in cryptofuzz (which is part of OSS-Fuzz bitcoin-core):

[ 55%] Linking C static library libcpu_features.a
make[3]: Leaving directory '/src/cryptofuzz/third_party/cpu_features/build'
[ 55%] Built target cpu_features
make[3]: Entering directory '/src/cryptofuzz/third_party/cpu_features/build'
make[3]: Leaving directory '/src/cryptofuzz/third_party/cpu_features/build'
make[3]: Entering directory '/src/cryptofuzz/third_party/cpu_features/build'
[ 66%] Building C object CMakeFiles/list_cpu_features.dir/src/utils/list_cpu_features.c.o
[ 77%] Linking C executable list_cpu_features
make[3]: Leaving directory '/src/cryptofuzz/third_party/cpu_features/build'
[ 77%] Built target list_cpu_features
make[3]: Entering directory '/src/cryptofuzz/third_party/cpu_features/build'
make[3]: Leaving directory '/src/cryptofuzz/third_party/cpu_features/build'
make[3]: Entering directory '/src/cryptofuzz/third_party/cpu_features/build'
[ 88%] Building C object CMakeFiles/unix_based_hardware_detection.dir/src/hwcaps.c.o
[100%] Building C object CMakeFiles/unix_based_hardware_detection.dir/src/unix_features_aggregator.c.o
make[3]: Leaving directory '/src/cryptofuzz/third_party/cpu_features/build'
[100%] Built target unix_based_hardware_detection
make[2]: Leaving directory '/src/cryptofuzz/third_party/cpu_features/build'
make[1]: Leaving directory '/src/cryptofuzz/third_party/cpu_features/build'
clang++ -O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -flto -fsanitize=fuzzer-no-link -stdlib=libc++ -DCRYPTOFUZZ_NO_OPENSSL -I /src/boost_1_74_0/ -DCRYPTOFUZZ_SECP256K1 -DCRYPTOFUZZ_TREZOR_FIRMWARE -DCRYPTOFUZZ_BOTAN -DCRYPTOFUZZ_BOTAN_IS_ORACLE -DCRYPTOFUZZ_BITCOIN -Wall -Wextra -std=c++17 -I include/ -I . -I fuzzing-headers/include -DFUZZING_HEADERS_NO_IMPL repository.cpp -c -o repository.o
In file included from driver.cpp:4:
./executor.h:36:78: warning: unused parameter 'module' [-Wunused-parameter]
        virtual std::optional<ResultType> callModule(std::shared_ptr<Module> module, OperationType& op) const { ::abort(); }
                                                                             ^
./executor.h:36:101: warning: unused parameter 'op' [-Wunused-parameter]
        virtual std::optional<ResultType> callModule(std::shared_ptr<Module> module, OperationType& op) const { ::abort(); }
                                                                                                    ^
In file included from executor.cpp:1:
./executor.h:36:78: warning: unused parameter 'module' [-Wunused-parameter]
        virtual std::optional<ResultType> callModule(std::shared_ptr<Module> module, OperationType& op) const { ::abort(); }
                                                                             ^
./executor.h:36:101: warning: unused parameter 'op' [-Wunused-parameter]
        virtual std::optional<ResultType> callModule(std::shared_ptr<Module> module, OperationType& op) const { ::abort(); }
                                                                                                    ^
2 warnings generated.
executor.cpp:1422:150: warning: unused parameter 'op' [-Wunused-parameter]
template<> void ExecutorBase<component::Bignum, operation::BLS_Compress_G1>::postprocess(std::shared_ptr<Module> module, operation::BLS_Compress_G1& op, const ExecutorBase<component::Bignum, operation::BLS_Compress_G1>::ResultPair& result) const {
                                                                                                                                                     ^
3 warnings generated.
test -fsanitize=fuzzer
clang++ -O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -flto -fsanitize=fuzzer-no-link -stdlib=libc++ -DCRYPTOFUZZ_NO_OPENSSL -I /src/boost_1_74_0/ -DCRYPTOFUZZ_SECP256K1 -DCRYPTOFUZZ_TREZOR_FIRMWARE -DCRYPTOFUZZ_BOTAN -DCRYPTOFUZZ_BOTAN_IS_ORACLE -DCRYPTOFUZZ_BITCOIN -Wall -Wextra -std=c++17 -I include/ -I . -I fuzzing-headers/include -DFUZZING_HEADERS_NO_IMPL driver.o executor.o util.o entry.o tests.o operation.o datasource.o repository.o options.o components.o wycheproof.o crypto.o mutator.o numbers.o mutatorpool.o ecc_diff_fuzzer_importer.o ecc_diff_fuzzer_exporter.o botan_importer.o modules/bitcoin/module.a modules/secp256k1/module.a modules/trezor/module.a modules/botan/module.a -fsanitize=fuzzer third_party/cpu_features/build/libcpu_features.a  -o cryptofuzz
/usr/bin/ld: error: LLVM gold plugin: <unknown>:0: Undefined temporary symbol .Ltmp124085

clang-14: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:49: cryptofuzz] Error 1
ERROR:root:Building fuzzers failed.

from fuzz-introspector.

DavidKorczynski avatar DavidKorczynski commented on May 25, 2024

Oh, apologies. I forgot to press CTRL+C to continue the compilation.

This is also an inconvenient aspect of the oss-fuzz integration. I added to the patch such that the webserver won't be launched 1520b5d so no more CTRL-C

from fuzz-introspector.

maflcko avatar maflcko commented on May 25, 2024

I think this was fixed. Will open a new issue if it happens again.

from fuzz-introspector.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.