Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Unified Diff: third_party/instrumented_libraries/BUILD.gn

Issue 2103683002: Add GN rules for building instrumented libraries. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/toolchain/gcc_toolchain.gni ('k') | third_party/instrumented_libraries/scripts/build_and_package.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/instrumented_libraries/BUILD.gn
diff --git a/third_party/instrumented_libraries/BUILD.gn b/third_party/instrumented_libraries/BUILD.gn
index cbaf7f57b024fea6cdb35656b549057f8bf88a89..2309519a46ccd44ef1817b83a13a22947f6266cc 100644
--- a/third_party/instrumented_libraries/BUILD.gn
+++ b/third_party/instrumented_libraries/BUILD.gn
@@ -3,6 +3,15 @@
# found in the LICENSE file.
import("//build/config/sanitizers/sanitizers.gni")
+import("//build/toolchain/goma.gni")
+
+declare_args() {
+ # The default number of jobs to use when building instrumented libraries.
+ instrumented_libraries_jobs = 8
+
+ # The platform on which the instrumented libraries are being built.
+ instrumented_libraries_platform = "trusty"
+}
group("deps") {
if (use_prebuilt_instrumented_libraries) {
@@ -16,6 +25,19 @@ group("deps") {
":prebuilt",
]
}
+ if (use_locally_built_instrumented_libraries) {
+ deps = [
+ ":locally_built",
+ ]
+ }
+}
+
+if (is_msan) {
+ sanitizer_type = "msan"
+} else if (is_asan) {
+ sanitizer_type = "asan"
+} else if (is_tsan) {
+ sanitizer_type = "tsan"
}
if (prebuilt_instrumented_libraries_available) {
@@ -31,7 +53,6 @@ if (prebuilt_instrumented_libraries_available) {
}
if (is_msan) {
- sanitizer_type = "msan"
if (msan_track_origins == 0) {
archive_prefix = "msan-no-origins"
} else if (msan_track_origins == 2) {
@@ -49,8 +70,8 @@ if (prebuilt_instrumented_libraries_available) {
args = [
archive_prefix,
rebase_path("binaries"),
- rebase_path(root_build_dir + "/instrumented_libraries_prebuilt"),
- rebase_path(target_out_dir, root_build_dir),
+ rebase_path(root_out_dir + "/instrumented_libraries_prebuilt"),
+ rebase_path(target_out_dir, root_out_dir),
]
outputs = [
"$target_out_dir/$archive_prefix.txt",
@@ -69,4 +90,731 @@ if (prebuilt_instrumented_libraries_available) {
]
}
}
-# TODO(GYP): Support building instrumented libraries from source.
+
+if (use_locally_built_instrumented_libraries) {
+ if (instrumented_libraries_platform == "precise") {
+ is_precise = true
+ is_trusty = false
+ } else if (instrumented_libraries_platform == "trusty") {
+ is_precise = false
+ is_trusty = true
+ } else {
+ assert(false, "Unsupported platform " + instrumented_libraries_platform)
+ }
+ group("locally_built") {
+ visibility = [ ":deps" ]
+ deps = [
+ ":atk1.0",
+ ":brltty",
+ ":dee",
+ ":freetype",
+ ":libappindicator1",
+ ":libasound2",
+ ":libcairo2",
+ ":libcap2",
+ ":libcredentialkit_pkcs11",
+ ":libdbus-1-3",
+ ":libdbus-glib-1-2",
+ ":libdbusmenu",
+ ":libdbusmenu-glib4",
+ ":libexpat1",
+ ":libffi6",
+ ":libfontconfig1",
+ ":libgconf-2-4",
+ ":libgcrypt11",
+ ":libgdk-pixbuf2.0-0",
+ ":libglib2.0-0",
+ ":libgnome-keyring0",
+ ":libgpg-error0",
+ ":libgtk2.0-0",
+ ":libnspr4",
+ ":libp11-kit0",
+ ":libpci3",
+ ":libpcre3",
+ ":libpixman-1-0",
+ ":libunity9",
+ ":libva1",
+ ":libx11-6",
+ ":libxau6",
+ ":libxcb1",
+ ":libxcomposite1",
+ ":libxcursor1",
+ ":libxdamage1",
+ ":libxdmcp6",
+ ":libxext6",
+ ":libxfixes3",
+ ":libxi6",
+ ":libxinerama1",
+ ":libxrandr2",
+ ":libxrender1",
+ ":libxss1",
+ ":libxtst6",
+ ":nss",
+ ":pango1.0",
+ ":pulseaudio",
+ ":udev",
+ ":zlib1g",
+ ]
+ if (is_precise) {
+ deps += [ ":libtasn1-3" ]
+ }
+ if (is_trusty) {
+ deps += [
+ ":harfbuzz",
+ ":libsecret",
+ ":libtasn1-6",
+ ]
+ }
+ if (is_msan) {
+ deps += [ ":libcups2" ]
+ }
+ if (!is_tsan) {
+ deps += [ ":libpng12-0" ]
+ }
+ data = [
+ "${root_out_dir}/instrumented_libraries/${sanitizer_type}/lib",
+ ]
+ }
+
+ config("locally_built_ldflags") {
+ ldflags = [
+ # Add a relative RPATH entry to Chromium binaries. This puts instrumented
+ # DSOs before system-installed versions in library search path.
+ "-Wl,-R,\$ORIGIN/instrumented_libraries/${sanitizer_type}/lib",
+ "-Wl,-z,origin",
+ ]
+ }
+
+ template("instrumented_library") {
+ action(target_name) {
+ script = "scripts/download_build_install.py"
+ build_method = "destdir"
+ if (defined(invoker.build_method)) {
+ build_method = invoker.build_method
+ }
+
+ cc = rebase_path("//third_party/llvm-build/Release+Asserts/bin/clang")
+ cxx = rebase_path("//third_party/llvm-build/Release+Asserts/bin/clang++")
+ if (use_goma) {
+ cc = "${goma_dir}/gomacc ${cc}"
+ cxx = "${goma_dir}/gomacc ${cxx}"
+ }
+ jobs = instrumented_libraries_jobs
+ if (defined(invoker.jobs)) {
+ jobs = invoker.jobs
+ }
+ package_cflags = [
+ "-O2",
+ "-gline-tables-only",
+ "-fPIC",
+ "-w",
+ "-U_FORITFY_SOURCE",
+ "-fno-omit-frame-pointer",
+ ]
+ package_ldflags = []
+ if (is_asan) {
+ package_cflags += [ "-fsanitize=address" ]
+ package_ldflags = [ "-fsanitize=address" ]
+ } else if (is_msan) {
+ package_cflags += [
+ "-fsanitize=memory",
+ "-fsanitize-memory-track-origins=${msan_track_origins}",
+ ]
+ package_ldflags = [ "-fsanitize=memory" ]
+ } else if (is_tsan) {
+ package_cflags += [ "-fsanitize=thread" ]
+ package_ldflags = [ "-fsanitize=thread" ]
+ }
+ if (defined(invoker.package_cflags)) {
+ package_cflags += invoker.package_cflags
+ }
+ if (defined(invoker.package_ldflags)) {
+ package_ldflags += invoker.package_ldflags
+ }
+ if (defined(invoker.deps)) {
+ deps = invoker.deps
+ }
+ product_dir = rebase_path(root_out_dir)
+ intermediate_dir = rebase_path(target_gen_dir)
+ args = [
+ "--build-method=${build_method}",
+ "--cc=${cc}",
+ "--cxx=${cxx}",
+ "--intermediate-dir=${intermediate_dir}",
+ "--jobs=${jobs}",
+ "--libdir=lib",
+ "--package=${target_name}",
+ "--product-dir=${product_dir}",
+ "--cflags=${package_cflags}",
+ "--ldflags=${package_ldflags}",
+ "--sanitizer=${sanitizer_type}",
+ ]
+ outputs = [
+ "${root_out_dir}/instrumented_libraries/${sanitizer_type}/${target_name}.txt",
+ ]
+ inputs = []
+ if (defined(invoker.pre_build)) {
+ inputs += [ invoker.pre_build ]
+ args += [ "--pre-build=${invoker.pre_build}" ]
+ }
+ if (defined(invoker.patch)) {
+ inputs += [ invoker.patch ]
+ args += [ "--patch=${invoker.patch}" ]
+ }
+ if (defined(invoker.asan_blacklist)) {
+ if (is_asan) {
+ inputs += [ invoker.asan_blacklist ]
+ args += [ "--sanitizer-blacklist=${invoker.asan_blacklist}" ]
+ } else {
+ assert(invoker.asan_blacklist != "", "")
+ }
+ }
+ if (defined(invoker.msan_blacklist)) {
+ if (is_msan) {
+ inputs += [ invoker.msan_blacklist ]
+ args += [ "--sanitizer-blacklist=${invoker.msan_blacklist}" ]
+ } else {
+ assert(invoker.msan_blacklist != "", "")
+ }
+ }
+
+ if (defined(invoker.extra_configure_flags)) {
+ args += [ "--extra-configure-flags=${invoker.extra_configure_flags}" ]
+ }
+ }
+ }
+
+ instrumented_library("atk1.0") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # See above.
+ "--disable-introspection",
+ ]
+ }
+
+ instrumented_library("brltty") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--without-viavoice",
+ "--without-theta",
+ "--without-swift",
+ "--bindir=/sbin",
+ "--with-curses=ncursesw",
+ "--disable-stripping",
+
+ # We don't need any of those.
+ "--disable-java-bindings",
+ "--disable-lisp-bindings",
+ "--disable-ocaml-bindings",
+ "--disable-python-bindings",
+ "--disable-tcl-bindings",
+ ]
+ }
+
+ instrumented_library("dee") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # See above.
+ "--disable-introspection",
+ ]
+ pre_build = "scripts/pre-build/autogen.sh"
+ }
+
+ instrumented_library("freetype") {
+ pre_build = "scripts/pre-build/freetype.sh"
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("harfbuzz") {
+ package_cflags = [ "-Wno-c++11-narrowing" ]
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--with-graphite2=yes",
+ "--with-gobject",
+
+ # See above.
+ "--disable-introspection",
+ ]
+ }
+
+ instrumented_library("libappindicator1") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # See above.
+ "--disable-introspection",
+ ]
+ jobs = 1
+ pre_build = "scripts/pre-build/autogen.sh"
+ }
+
+ instrumented_library("libasound2") {
+ extra_configure_flags = [ "--disable-static" ]
+ pre_build = "scripts/pre-build/libasound2.sh"
+ }
+
+ instrumented_library("libcairo2") {
+ extra_configure_flags = [
+ "--disable-gtk-doc",
+ "--disable-static",
+ ]
+ }
+
+ instrumented_library("libcap2") {
+ extra_configure_flags = [ "--disable-static" ]
+ build_method = "custom_libcap"
+ }
+
+ instrumented_library("libcredentialkit_pkcs11") {
+ build_method = "stub"
+ }
+
+ instrumented_library("libcups2") {
+ patch = "patches/libcups2.diff"
+ jobs = 1
+ extra_configure_flags = [
+ "--disable-static",
+
+ # All from debian/rules.
+ "--localedir=/usr/share/cups/locale",
+ "--enable-slp",
+ "--enable-libpaper",
+ "--enable-ssl",
+ "--enable-gnutls",
+ "--disable-openssl",
+ "--enable-threads",
+ "--enable-debug",
+ "--enable-dbus",
+ "--with-dbusdir=/etc/dbus-1",
+ "--enable-gssapi",
+ "--enable-avahi",
+ "--with-pdftops=/usr/bin/gs",
+ "--disable-launchd",
+ "--with-cups-group=lp",
+ "--with-system-groups=lpadmin",
+ "--with-printcap=/var/run/cups/printcap",
+ "--with-log-file-perm=0640",
+ "--with-local_protocols=\"CUPS dnssd\"",
+ "--with-remote_protocols=\"CUPS dnssd\"",
+ "--enable-libusb",
+ ]
+ pre_build = "scripts/pre-build/libcups2.sh"
+ }
+
+ instrumented_library("libdbus-1-3") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--disable-libaudit",
+ "--enable-apparmor",
+ "--enable-systemd",
+ "--libexecdir=/lib/dbus-1.0",
+ "--with-systemdsystemunitdir=/lib/systemd/system",
+ "--disable-tests",
+ "--exec-prefix=/",
+
+ # From dh_auto_configure.
+ "--prefix=/usr",
+ "--localstatedir=/var",
+ ]
+ }
+
+ instrumented_library("libdbus-glib-1-2") {
+ extra_configure_flags = [
+ # Use system dbus-binding-tool. The just-built one is instrumented but
+ # doesn't have the correct RPATH, and will crash.
+ "--with-dbus-binding-tool=dbus-binding-tool",
+ "--disable-static",
+ ]
+ }
+
+ instrumented_library("libdbusmenu") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--disable-scrollkeeper",
+ "--with-gtk=2",
+
+ # See above.
+ "--disable-introspection",
+ "--disable-vala",
+ ]
+ pre_build = "scripts/pre-build/autogen.sh"
+ }
+
+ instrumented_library("libdbusmenu-glib4") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--disable-scrollkeeper",
+ "--enable-gtk-doc",
+
+ # --enable-introspection introduces a build step that attempts to run
+ # a just-built binary and crashes. Vala requires introspection.
+ # TODO(eugenis): find a better fix.
+ "--disable-introspection",
+ "--disable-vala",
+ ]
+ pre_build = "scripts/pre-build/autogen.sh"
+ }
+
+ instrumented_library("libexpat1") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libffi6") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libfontconfig1") {
+ extra_configure_flags = [
+ "--disable-docs",
+ "--sysconfdir=/etc/",
+ "--disable-static",
+
+ # From debian/rules.
+ "--with-add-fonts=/usr/X11R6/lib/X11/fonts,/usr/local/share/fonts",
+ ]
+ patch = "patches/libfontconfig.${instrumented_libraries_platform}.diff"
+ }
+
+ instrumented_library("libgconf-2-4") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules. (Even though --with-gtk=3.0 doesn't make sense.)
+ "--with-gtk=3.0",
+ "--disable-orbit",
+
+ # See above.
+ "--disable-introspection",
+ ]
+ }
+
+ instrumented_library("libgcrypt11") {
+ package_ldflags = [ "-Wl,-z,muldefs" ]
+ extra_configure_flags = [
+ # From debian/rules.
+ "--enable-noexecstack",
+ "--enable-ld-version-script",
+ "--disable-static",
+
+ # http://crbug.com/344505
+ "--disable-asm",
+ ]
+ }
+
+ instrumented_library("libgdk-pixbuf2.0-0") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--with-libjasper",
+ "--with-x11",
+
+ # Make the build less problematic.
+ "--disable-introspection",
+
+ # Do not use loadable modules. Same as with Pango, there's no easy way
+ # to make gdk-pixbuf pick instrumented versions over system-installed
+ # ones.
+ "--disable-modules",
+ ]
+ pre_build = "scripts/pre-build/libgdk-pixbuf2.0-0.sh"
+ }
+
+ instrumented_library("libglib2.0-0") {
+ extra_configure_flags = [
+ "--disable-gtk-doc",
+ "--disable-gtk-doc-html",
+ "--disable-gtk-doc-pdf",
+ "--disable-static",
+ ]
+ asan_blacklist = "blacklists/asan/libglib2.0-0.txt"
+ msan_blacklist = "blacklists/msan/libglib2.0-0.txt"
+ pre_build = "scripts/pre-build/autogen.sh"
+ }
+
+ instrumented_library("libgnome-keyring0") {
+ extra_configure_flags = [
+ "--disable-static",
+ "--enable-tests=no",
+
+ # Make the build less problematic.
+ "--disable-introspection",
+ ]
+ package_ldflags = [ "-Wl,--as-needed" ]
+ }
+
+ instrumented_library("libgpg-error0") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libgtk2.0-0") {
+ package_cflags = [ "-Wno-return-type" ]
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--prefix=/usr",
+ "--sysconfdir=/etc",
+ "--enable-test-print-backend",
+ "--enable-introspection=no",
+ "--with-xinput=yes",
+ ]
+ patch = "patches/libgtk2.0-0.${instrumented_libraries_platform}.diff"
+ pre_build = "scripts/pre-build/libgtk2.0-0.sh"
+ }
+
+ instrumented_library("libnspr4") {
+ extra_configure_flags = [
+ "--enable-64bit",
+ "--disable-static",
+
+ # TSan reports data races on debug variables.
+ "--disable-debug",
+ ]
+ pre_build = "scripts/pre-build/libnspr4.sh"
+ }
+
+ instrumented_library("libp11-kit0") {
+ extra_configure_flags = [ "--disable-static" ]
+
+ # Required on Trusty due to autoconf version mismatch.
+ pre_build = "scripts/pre-build/autoreconf.sh"
+ }
+
+ instrumented_library("libpci3") {
+ extra_configure_flags = [ "--disable-static" ]
+ build_method = "custom_libpci3"
+ jobs = 1
+ }
+
+ instrumented_library("libpcre3") {
+ extra_configure_flags = [
+ "--enable-utf8",
+ "--enable-unicode-properties",
+ "--disable-static",
+ ]
+ }
+
+ instrumented_library("libpixman-1-0") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--disable-gtk",
+ "--disable-silent-rules",
+
+ # Avoid a clang issue. http://crbug.com/449183
+ "--disable-mmx",
+ ]
+ patch = "patches/libpixman-1-0.diff"
+ }
+
+ instrumented_library("libpng12-0") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libsecret") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # See above.
+ "--disable-introspection",
+ ]
+ pre_build = "scripts/pre-build/autoreconf.sh"
+ }
+
+ instrumented_library("libtasn1-3") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--enable-ld-version-script",
+ ]
+ }
+
+ instrumented_library("libtasn1-6") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--enable-ld-version-script",
+ ]
+ }
+
+ instrumented_library("libunity9") {
+ extra_configure_flags = [ "--disable-static" ]
+ pre_build = "scripts/pre-build/autogen.sh"
+ }
+
+ instrumented_library("libva1") {
+ extra_configure_flags = [ "--disable-static" ]
+
+ # Backport a use-after-free fix:
+ # http://cgit.freedesktop.org/libva/diff/va/va.c?h=staging&id=d4988142a3f2256e38c5c5cdcdfc1b4f5f3c1ea9
+ patch = "patches/libva1.diff"
+ pre_build = "scripts/pre-build/libva1.sh"
+ }
+
+ instrumented_library("libx11-6") {
+ extra_configure_flags = [
+ "--disable-specs",
+ "--disable-static",
+ ]
+ msan_blacklist = "blacklists/msan/libx11-6.txt"
+
+ # Required on Trusty due to autoconf version mismatch.
+ pre_build = "scripts/pre-build/autoreconf.sh"
+ }
+
+ instrumented_library("libxau6") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libxcb1") {
+ extra_configure_flags = [
+ "--disable-build-docs",
+ "--disable-static",
+ ]
+ pre_build = "scripts/pre-build/autoreconf.sh"
+ if (is_precise) {
+ patch = "patches/libxcb1.precise.diff"
+ }
+ }
+
+ instrumented_library("libxcomposite1") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libxcursor1") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libxdamage1") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libxdmcp6") {
+ extra_configure_flags = [
+ "--disable-docs",
+ "--disable-static",
+ ]
+ }
+
+ instrumented_library("libxext6") {
+ extra_configure_flags = [
+ "--disable-specs",
+ "--disable-static",
+ ]
+ }
+
+ instrumented_library("libxfixes3") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libxi6") {
+ extra_configure_flags = [
+ "--disable-specs",
+ "--disable-docs",
+ "--disable-static",
+ ]
+ }
+
+ instrumented_library("libxinerama1") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libxrandr2") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libxrender1") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libxss1") {
+ extra_configure_flags = [ "--disable-static" ]
+ }
+
+ instrumented_library("libxtst6") {
+ extra_configure_flags = [
+ "--disable-specs",
+ "--disable-static",
+ ]
+ }
+
+ instrumented_library("nss") {
+ # TODO(eugenis): get rid of this dependency
+ deps = [
+ ":libnspr4",
+ ]
+ patch = "patches/nss.diff"
+ build_method = "custom_nss"
+ }
+
+ instrumented_library("pango1.0") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # Avoid https://bugs.gentoo.org/show_bug.cgi?id=425620
+ "--enable-introspection=no",
+
+ # Pango is normally used with dynamically loaded modules. However,
+ # ensuring pango is able to find instrumented versions of those modules
+ # is a huge pain in the neck. Let's link them statically instead, and
+ # hope for the best.
+ "--with-included-modules=yes",
+ ]
+ }
+
+ instrumented_library("pulseaudio") {
+ # New location of libpulsecommon.
+ if (is_precise) {
+ patch = "patches/pulseaudio.precise.diff"
+ jobs = 1
+ }
+ if (is_trusty) {
+ package_ldflags = [ "-Wl,-R,XORIGIN/pulseaudio/." ]
+ }
+ extra_configure_flags = [
+ "--disable-static",
+
+ # From debian/rules.
+ "--enable-x11",
+ "--disable-hal-compat",
+
+ # Disable some ARM-related code that fails compilation. No idea why
+ # this even impacts x86-64 builds.
+ "--disable-neon-opt",
+ ]
+ pre_build = "scripts/pre-build/pulseaudio.sh"
+ }
+
+ instrumented_library("udev") {
+ extra_configure_flags = [
+ "--disable-static",
+
+ # Without this flag there's a linking step that doesn't honor LDFLAGS
+ # and fails.
+ # TODO(eugenis): find a better fix.
+ "--disable-gudev",
+ ]
+ pre_build = "scripts/pre-build/udev.sh"
+ }
+
+ instrumented_library("zlib1g") {
+ # --disable-static is not supported
+ patch = "patches/zlib1g.diff"
+ }
+}
« no previous file with comments | « build/toolchain/gcc_toolchain.gni ('k') | third_party/instrumented_libraries/scripts/build_and_package.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698