From d0bd16d9d107a94631c925119e1a091087570951 Mon Sep 17 00:00:00 2001 From: Mitch Phillips Date: Thu, 22 Aug 2019 15:47:09 -0700 Subject: [PATCH] [cc_fuzz] Statically link libcxx. Statically links libcxx in order to not require shared library deployment during packing of fuzz targets. Test: m example_fuzzer && ldd $ANDROID_HOST_OUT/fuzz/example_fuzzer. Note that the ldd results don't include libc++.so. Bug: 139880425 Change-Id: I86d1945768de53217d54cb762392c20714494416 --- cc/fuzz.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cc/fuzz.go b/cc/fuzz.go index c1754b2da..d44c02de6 100644 --- a/cc/fuzz.go +++ b/cc/fuzz.go @@ -17,6 +17,7 @@ package cc import ( "android/soong/android" "android/soong/cc/config" + "github.com/google/blueprint/proptools" ) func init() { @@ -120,5 +121,16 @@ func NewFuzz(hod android.HostOrDeviceSupported) *Module { ctx.AppendProperties(&disableDarwinAndLinuxBionic) }) + // Statically link the STL. This allows fuzz target deployment to not have to + // include the STL. + android.AddLoadHook(module, func(ctx android.LoadHookContext) { + staticStlLinkage := struct { + Stl *string + }{} + + staticStlLinkage.Stl = proptools.StringPtr("libc++_static") + ctx.AppendProperties(&staticStlLinkage) + }) + return module }