building fuzzer failed for espeak-ng
- Dominant language
- Shell
- Stars
- 12.6k
- Forks
- 2.9k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 62
Description
I tried to execute
```bash
python infra/helper.py build_fuzzers --sanitizer address espeak-ng
```
but got this error:
```
INFO:__main__:Running: docker build -t gcr.io/oss-fuzz/espeak-ng --file /home/jiawei/oss-repair/oss-fuzz-google/projects/espeak-ng/Dockerfile /home/jiawei/oss-repair/oss-fuzz-google/projects/espeak-ng.
[+] Building 42.7s (10/10) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.3s
=> => transferring dockerfile: 916B 0.0s
=> [internal] load metadata for gcr.io/oss-fuzz-base/base-builder:latest 0.0s
=> [internal] load .dockerignore 0.3s
=> => transferring context: 2B 0.0s
=> CACHED [1/5] FROM gcr.io/oss-fuzz-base/base-builder:latest 0.0s
=> [internal] load build context 0.3s
=> => transferring context: 940B 0.0s
=> [2/5] RUN apt-get update && apt install -y automake autoconf libtool pkg-config 35.8s
=> [3/5] RUN git clone --depth 1 https://github.com/espeak-ng/espeak-ng 4.6s
=> [4/5] COPY build.sh /src 0.3s
=> [5/5] WORKDIR /src/espeak-ng 0.2s
=> exporting to image 1.0s
=> => exporting layers 0.9s
=> => writing image sha256:f9d34198913869a23795628df110d0698da14673c7db9203a2b50edea71fbf7c 0.0s
=> => naming to gcr.io/oss-fuzz/espeak-ng 0.0s
INFO:__main__:Keeping existing build artifacts as-is (if any).
INFO:__main__:Running: docker run --privileged --shm-size=2g --platform linux/amd64 --rm -i -e FUZZING_ENGINE=libfuzzer -e SANITIZER=address -e ARCHITECTURE=x86_64 -e PROJECT_NAME=espeak-ng -e HELPER=True -e FUZZING_LANGUAGE=c++ -v /home/jiawei/oss-repair/oss-fuzz-google/build/out/espeak-ng/:/out -v /home/jiawei/oss-repair/oss-fuzz-google/build/work/espeak-ng:/work -t gcr.io/oss-fuzz/espeak-ng.
---------------------------------------------------------------
vm.mmap_rnd_bits = 28
Compiling libFuzzer to /usr/lib/libFuzzingEngine.a... done.
---------------------------------------------------------------
CC=clang
CXX=clang++
CFLAGS=-O1 -fno-omit-frame-pointer -gline-tables-only -Wno-error=enum-constexpr-conversion -Wno-error=incompatible-function-pointer-types -Wno-error=int-conversion -Wno-error=deprecated-declarations -Wno-error=implicit-function-declaration -Wno-error=implicit-int -Wno-error=vla-cxx-extension -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link
CXXFLAGS=-O1 -fno-omit-frame-pointer -gline-tables-only -Wno-error=enum-constexpr-conversion -Wno-error=incompatible-function-pointer-types -Wno-error=int-conversion -Wno-error=deprecated-declarations -Wno-error=implicit-function-declaration -Wno-error=implicit-int -Wno-error=vla-cxx-extension -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link -stdlib=libc++
RUSTFLAGS=--cfg fuzzing -Zsanitizer=address -Cdebuginfo=1 -Cforce-frame-pointers
---------------------------------------------------------------
+ export ASAN_OPTIONS=detect_leaks=0
+ ASAN_OPTIONS=detect_leaks=0
+ ./autogen.sh
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:4: installing './compile'
configure.ac:4: installing './config.guess'
configure.ac:4: installing './config.sub'
configure.ac:3: installing './install-sh
........................
Chinese (Mandarin): yes
Chinese (Cantonese): yes
+ make check
CC src/speak_ng-speak-ng.o
CC src/ucd-tools/src/libespeak_ng_la-case.lo
CC src/ucd-tools/src/libespeak_ng_la-categories.lo
CC src/ucd-tools/src/libespeak_ng_la-ctype.lo
CC src/ucd-tools/src/libespeak_ng_la-proplist.lo
CC src/ucd-tools/src/libespeak_ng_la-scripts.lo
CC src/ucd-tools/src/libespeak_ng_la-tostring.lo
CC src/libespeak-ng/la-common.lo
CC src/libespeak-ng/la-compiledata.lo
CC src/libespeak-ng/la-compiledict.lo
CC src/libespeak-ng/la-dictionary.lo
CC src/libespeak-ng/la-encoding.lo
CC src/libespeak-ng/la-error.lo
CC src/libespeak-ng/la-espeak_api.lo
CC src/libespeak-ng/la-ieee80.lo
CC src/libespeak-ng/la-intonation.lo
CC src/libespeak-ng/la-langopts.lo
CC src/libespeak-ng/la-mnemonics.lo
CC src/libespeak-ng/la-numbers.lo
CC src/libespeak-ng/la-readclause.lo
CC src/libespeak-ng/la-phoneme.lo
CC src/libespeak-ng/la-phonemelist.lo
CC src/libespeak-ng/la-setlengths.lo
CC src/libespeak-ng/la-soundicon.lo
CC src/libespeak-ng/la-spect.lo
CC src/libespeak-ng/la-speech.lo
CC src/libespeak-ng/la-ssml.lo
CC src/libespeak-ng/la-synthdata.lo
CC src/libespeak-ng/la-synthesize.lo
CC src/libespeak-ng/la-translate.lo
CC src/libespeak-ng/la-translateword.lo
CC src/libespeak-ng/la-tr_languages.lo
CC src/libespeak-ng/la-voices.lo
CC src/libespeak-ng/la-wavegen.lo
CC src/libespeak-ng/la-klatt.lo
CC src/libespeak-ng/la-mbrowrap.lo
CC src/libespeak-ng/la-synth_mbrola.lo
CC src/libespeak-ng/la-compilembrola.lo
CC src/libespeak-ng/la-espeak_command.lo
CC src/libespeak-ng/la-event.lo
CC src/libespeak-ng/la-fifo.lo
CXXLD src/libespeak-ng.la
CXXLD src/speak-ng
clang++: error: no such file or directory: 'libclang_rt.fuzzer_no_main-x86_64.a'
make: *** [Makefile:1394: src/speak-ng] Error 1
+ true
+ cp tests/ssml-fuzzer.test /out/ssml-fuzzer
cp: cannot stat 'tests/ssml-fuzzer.test': No such file or directory
ERROR:__main__:Building fuzzers failed.```
Has anyone encountered this? I followed the document here https://google.github.io/oss-fuzz/advanced-topics/reproducing/
Contributor guide
Research direction
Start with infra/helper.py and projects/espeak-ng/Dockerfile, then inspect the copied build.sh. Re-run the reported build command and trace the missing libclang_rt.fuzzer_no_main-x86_64.a and tests/ssml-fuzzer.test errors; done means the espeak-ng fuzzers build successfully and the expected output is produced.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, docker, python, shell
- Domain
- build-system, devops, testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100