[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
diff --git a/cc/fuzz.go b/cc/fuzz.go
index c1754b2..d44c02d 100644
--- a/cc/fuzz.go
+++ b/cc/fuzz.go
@@ -17,6 +17,7 @@
import (
"android/soong/android"
"android/soong/cc/config"
+ "github.com/google/blueprint/proptools"
)
func init() {
@@ -120,5 +121,16 @@
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
}