[PATCH] D73329: [libFuzzer] communicate through pipe to subprocess for MinimizeCrashInput

Chen, Yuanfang via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 12 14:11:48 PST 2020


Apologies that I did not add `OpenProcessPipe` implementation on Fushia. Quick question is there popen/pclose on Fushia? Thanks.


-Yuanfang

> -----Original Message-----
> From: Leonard Chan via Phabricator <reviews at reviews.llvm.org>
> Sent: Wednesday, February 12, 2020 2:06 PM
> To: Chen, Yuanfang <Yuanfang.Chen at sony.com>; kcc at google.com;
> vitalybuka at google.com
> Cc: leonardchan at google.com; zhaixiang at loongson.cn;
> filcab+llvm.phabricator at gmail.com; mracek at apple.com; peter at pcc.me.uk;
> vonosmas at gmail.com; glider at google.com; krasin at chromium.org;
> krasin at google.com; eugenis at google.com; aizatsky at google.com;
> mamcgove at microsoft.com; jatin.bhateja at gmail.com; llvm-
> commits at lists.llvm.org; kschimpf at google.com; zturner at roblox.com;
> peter.waller at arm.com
> Subject: [PATCH] D73329: [libFuzzer] communicate through pipe to
> subprocess for MinimizeCrashInput
> 
> leonardchan added a comment.
> 
> Hi, a bisect seems to show that this patch resulted in a series of linker errors
> when building fuzzers fuchsia:
> 
>   [48364/49380] LINK user.fuzzer-x64-asan-
> ubsan/obj/system/ulib/elfload/test/elfload-fuzzer
>   FAILED: user.fuzzer-x64-asan-ubsan/obj/system/ulib/elfload/test/elfload-
> fuzzer user.fuzzer-x64-asan-ubsan/obj/system/ulib/elfload/test/elfload-
> fuzzer.debug user.fuzzer-x64-asan-
> ubsan/obj/system/ulib/elfload/test/elfload-fuzzer.map
>   ../../../recipe_cleanup/clang9HU4mg/bin/clang++ -o user.fuzzer-x64-asan-
> ubsan/obj/system/ulib/elfload/test/elfload-fuzzer.debug -fuse-ld=lld -Wl,--
> threads -Wl,-z,combreloc -Wl,-z,relro -Wl,-z,now -Wl,-z,text -Wl,--pack-dyn-
> relocs=relr --target=x86_64-fuchsia -mcx16 -march=x86-64 -fcrash-
> diagnostics-dir=clang-crashreports -fcolor-diagnostics -Wl,--color-diagnostics
> -Wl,-z,max-page-size=4096 -ffile-prefix-
> map=/b/s/w/ir/k/fuchsia/out/default.zircon=. -ffile-prefix-
> map=/b/s/w/ir/k/fuchsia/out=.. -ffile-prefix-map=/b/s/w/ir/k/fuchsia=../.. -
> no-canonical-prefixes -O2 -Wl,--icf=all -g3 -ffunction-sections -Wl,--gc-
> sections -fdata-sections -fno-exceptions -fno-rtti -nostartfiles -nolibc -Wl,-
> dynamic-linker=fuzzer.asan-ubsan/ld.so.1 -fsanitize=fuzzer -
> fsanitize=undefined -fsanitize=address -L../../zircon/public/gn/config/libc-
> dummy -Wl,-Map,user.fuzzer-x64-asan-
> ubsan/obj/system/ulib/elfload/test/elfload-fuzzer.map -Wl,--start-group
> @'user.fuzzer-x64-asan-ubsan/obj/system/ulib/elfload/test/elfload-
> fuzzer.rsp' -lunwind -Wl,--end-group user.vdso-x64-
> clang.shlib/obj/system/ulib/zircon/libzircon.so.debug user.fuzzer-x64-asan-
> ubsan.shlib/obj/system/ulib/c/libc.so.debug user-x64-asan-
> ubsan.shlib/obj/system/ulib/fdio/libfdio.so.debug
> && ../../../recipe_cleanup/clang9HU4mg/bin/llvm-objcopy --strip-sections
> "user.fuzzer-x64-asan-ubsan/obj/system/ulib/elfload/test/elfload-
> fuzzer.debug" "user.fuzzer-x64-asan-
> ubsan/obj/system/ulib/elfload/test/elfload-fuzzer" && case '-fuse-ld=lld -
> Wl,--threads -Wl,-z,combreloc -Wl,-z,relro -Wl,-z,now -Wl,-z,text -Wl,--pack-
> dyn-relocs=relr --target=x86_64-fuchsia -mcx16 -march=x86-64 -fcrash-
> diagnostics-dir=clang-crashreports -fcolor-diagnostics -Wl,--color-diagnostics
> -Wl,-z,max-page-size=4096 -ffile-prefix-
> map=/b/s/w/ir/k/fuchsia/out/default.zircon=. -ffile-prefix-
> map=/b/s/w/ir/k/fuchsia/out=.. -ffile-prefix-map=/b/s/w/ir/k/fuchsia=../.. -
> no-canonical-prefixes -O2 -Wl,--icf=all -g3 -ffunction-sections -Wl,--gc-
> sections -fdata-sections -fno-exceptions -fno-rtti -nostartfiles -nolibc -Wl,-
> dynamic-linker=fuzzer.asan-ubsan/ld.so.1 -fsanitize=fuzzer -
> fsanitize=undefined -fsanitize=address -L../../zircon/public/gn/config/libc-
> dummy' in *build-id=none*) ;; *) ../../prebuilt/tools/buildidtool/linux-
> x64/buildidtool -build-id-dir ".build-id" -stamp "user.fuzzer-x64-asan-
> ubsan/obj/system/ulib/elfload/test/elfload-fuzzer.build-id.stamp" -entry
> "=user.fuzzer-x64-asan-ubsan/obj/system/ulib/elfload/test/elfload-fuzzer"
> -entry ".debug=user.fuzzer-x64-asan-
> ubsan/obj/system/ulib/elfload/test/elfload-fuzzer.debug" ;; esac
>   ld.lld: error: undefined symbol: fuzzer::OpenProcessPipe(char const*, char
> const*)
>   >>> referenced by FuzzerDriver.cpp:321 (compiler-
> rt/lib/fuzzer/FuzzerDriver.cpp:321)
>   >>>
> fuzzer.o:(fuzzer::ExecuteCommandWithPopen(fuzzer::Command const&,
> std::__Fuzzer::basic_string<char, std::__Fuzzer::char_traits<char>,
> std::__Fuzzer::allocator<char> >*)) in
> archive ../../../recipe_cleanup/clang9HU4mg/lib/clang/11.0.0/lib/x86_64-
> unknown-fuchsia/libclang_rt.fuzzer.a
> 
>   ... and many more
> 
> Could you take a look or revert this patch? Thanks.
> 
> I tested and if there will be a revert,
> 4f3c3bbbf85a1283796e0e80c654779e40ce328e
> <https://reviews.llvm.org/rG4f3c3bbbf85a1283796e0e80c654779e40ce328e>
> may also need to be reverted since it depends on this patch.
> 
> Builder link:
> https://ci.chromium.org/p/fuchsia/builders/ci/clang_toolchain.fuchsia-x64-
> debug-subbuild/b8888652956426122432
> 
> 
> Repository:
>   rG LLVM Github Monorepo
> 
> CHANGES SINCE LAST ACTION
>   https://reviews.llvm.org/D73329/new/
> 
> https://reviews.llvm.org/D73329
> 
> 



More information about the llvm-commits mailing list