Don't preload rarely seen large images
[chromium-blink-merge.git] / third_party / instrumented_libraries / instrumented_libraries.gyp
blob307aed194091c0b5ef2c5abd242c3c84a009952d
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   'variables': {
7     'verbose_libraries_build%': 0,
8     'instrumented_libraries_jobs%': 1,
9     'instrumented_libraries_cc%': '<!(cd <(DEPTH) && pwd -P)/<(make_clang_dir)/bin/clang',
10     'instrumented_libraries_cxx%': '<!(cd <(DEPTH) && pwd -P)/<(make_clang_dir)/bin/clang++',
11   },
13   'libdir': 'lib',
14   'ubuntu_release': '<!(lsb_release -cs)',
16   'conditions': [
17     ['asan==1', {
18       'sanitizer_type': 'asan',
19     }],
20     ['msan==1', {
21       'sanitizer_type': 'msan',
22     }],
23     ['tsan==1', {
24       'sanitizer_type': 'tsan',
25     }],
26     ['use_goma==1', {
27       'cc': '<(gomadir)/gomacc <(instrumented_libraries_cc)',
28       'cxx': '<(gomadir)/gomacc <(instrumented_libraries_cxx)',
29     }, {
30       'cc': '<(instrumented_libraries_cc)',
31       'cxx': '<(instrumented_libraries_cxx)',
32     }],
33   ],
35   'target_defaults': {
36     'build_method': 'destdir',
37     # Every package must have --disable-static in configure flags to avoid
38     # building unnecessary static libs. Ideally we should add it here.
39     # Unfortunately, zlib1g doesn't support that flag and for some reason it
40     # can't be removed with a GYP exclusion list. So instead we add that flag
41     # manually to every package but zlib1g.
42     'extra_configure_flags': [],
43     'jobs': '<(instrumented_libraries_jobs)',
44     'package_cflags': [
45       '-O2',
46       '-gline-tables-only',
47       '-fPIC',
48       '-w',
49       '-U_FORITFY_SOURCE',
50       '-fno-omit-frame-pointer'
51     ],
52     'package_ldflags': [
53       '-Wl,-z,origin',
54       # We set RPATH=XORIGIN when building the package and replace it with
55       # $ORIGIN later. The reason is that this flag goes through configure/make
56       # differently for different packages. Because of this, we can't escape the
57       # $ character in a way that would work for every package.
58       '-Wl,-R,XORIGIN/.'
59     ],
60     'patch': '',
61     'pre_build': '',
62     'asan_blacklist': '',
63     'msan_blacklist': '',
64     'tsan_blacklist': '',
66     'conditions': [
67       ['asan==1', {
68         'package_cflags': ['-fsanitize=address'],
69         'package_ldflags': ['-fsanitize=address'],
70       }],
71       ['msan==1', {
72         'package_cflags': [
73           '-fsanitize=memory',
74           '-fsanitize-memory-track-origins=<(msan_track_origins)'
75         ],
76         'package_ldflags': ['-fsanitize=memory'],
77       }],
78       ['tsan==1', {
79         'package_cflags': ['-fsanitize=thread'],
80         'package_ldflags': ['-fsanitize=thread'],
81       }],
82     ],
83   },
85   'targets': [
86     {
87       'target_name': 'prebuilt_instrumented_libraries',
88       'type': 'none',
89       'variables': {
90         'prune_self_dependency': 1,
91         # Don't add this target to the dependencies of targets with type=none.
92         'link_dependency': 1,
93         'conditions': [
94           ['msan==1', {
95             'conditions': [
96               ['msan_track_origins==2', {
97                 'archive_prefix': 'msan-chained-origins',
98               }, {
99                 'conditions': [
100                   ['msan_track_origins==0', {
101                     'archive_prefix': 'msan-no-origins',
102                   }, {
103                     'archive_prefix': 'UNSUPPORTED_CONFIGURATION'
104                   }],
105               ]}],
106           ]}, {
107               'archive_prefix': 'UNSUPPORTED_CONFIGURATION'
108           }],
109         ],
110       },
111       'actions': [
112         {
113           'action_name': 'unpack_<(archive_prefix)-<(_ubuntu_release).tgz',
114           'inputs': [
115             'binaries/<(archive_prefix)-<(_ubuntu_release).tgz',
116           ],
117           'outputs': [
118             '<(PRODUCT_DIR)/instrumented_libraries_prebuilt/<(archive_prefix).txt',
119           ],
120           'action': [
121             'scripts/unpack_binaries.py',
122             '<(archive_prefix)',
123             'binaries',
124             '<(PRODUCT_DIR)/instrumented_libraries_prebuilt/',
125           ],
126         },
127       ],
128       'direct_dependent_settings': {
129         'target_conditions': [
130           ['_toolset=="target"', {
131             'ldflags': [
132               # Add a relative RPATH entry to Chromium binaries. This puts
133               # instrumented DSOs before system-installed versions in library
134               # search path.
135               '-Wl,-R,\$$ORIGIN/instrumented_libraries_prebuilt/<(_sanitizer_type)/<(_libdir)/',
136               '-Wl,-z,origin',
137             ],
138           }],
139         ],
140       },
141     },
142     {
143       'target_name': 'instrumented_libraries',
144       'type': 'none',
145       'variables': {
146         'prune_self_dependency': 1,
147         # Don't add this target to the dependencies of targets with type=none.
148         'link_dependency': 1,
149       },
150       # NOTE: Please keep install-build-deps.sh in sync with this list.
151       'dependencies': [
152         '<(_sanitizer_type)-freetype',
153         '<(_sanitizer_type)-libcairo2',
154         '<(_sanitizer_type)-libexpat1',
155         '<(_sanitizer_type)-libffi6',
156         '<(_sanitizer_type)-libgcrypt11',
157         '<(_sanitizer_type)-libgpg-error0',
158         '<(_sanitizer_type)-libnspr4',
159         '<(_sanitizer_type)-libp11-kit0',
160         '<(_sanitizer_type)-libpcre3',
161         '<(_sanitizer_type)-libpng12-0',
162         '<(_sanitizer_type)-libx11-6',
163         '<(_sanitizer_type)-libxau6',
164         '<(_sanitizer_type)-libxcb1',
165         '<(_sanitizer_type)-libxcomposite1',
166         '<(_sanitizer_type)-libxcursor1',
167         '<(_sanitizer_type)-libxdamage1',
168         '<(_sanitizer_type)-libxdmcp6',
169         '<(_sanitizer_type)-libxext6',
170         '<(_sanitizer_type)-libxfixes3',
171         '<(_sanitizer_type)-libxi6',
172         '<(_sanitizer_type)-libxinerama1',
173         '<(_sanitizer_type)-libxrandr2',
174         '<(_sanitizer_type)-libxrender1',
175         '<(_sanitizer_type)-libxss1',
176         '<(_sanitizer_type)-libxtst6',
177         '<(_sanitizer_type)-zlib1g',
178         '<(_sanitizer_type)-libglib2.0-0',
179         '<(_sanitizer_type)-libdbus-1-3',
180         '<(_sanitizer_type)-libdbus-glib-1-2',
181         '<(_sanitizer_type)-nss',
182         '<(_sanitizer_type)-libfontconfig1',
183         '<(_sanitizer_type)-pulseaudio',
184         '<(_sanitizer_type)-libasound2',
185         '<(_sanitizer_type)-pango1.0',
186         '<(_sanitizer_type)-libcap2',
187         '<(_sanitizer_type)-udev',
188         '<(_sanitizer_type)-libgnome-keyring0',
189         '<(_sanitizer_type)-libgtk2.0-0',
190         '<(_sanitizer_type)-libgdk-pixbuf2.0-0',
191         '<(_sanitizer_type)-libpci3',
192         '<(_sanitizer_type)-libdbusmenu-glib4',
193         '<(_sanitizer_type)-libgconf-2-4',
194         '<(_sanitizer_type)-libappindicator1',
195         '<(_sanitizer_type)-libdbusmenu',
196         '<(_sanitizer_type)-atk1.0',
197         '<(_sanitizer_type)-libunity9',
198         '<(_sanitizer_type)-dee',
199         '<(_sanitizer_type)-libpixman-1-0',
200         '<(_sanitizer_type)-brltty',
201         '<(_sanitizer_type)-libva1',
202       ],
203       'conditions': [
204         ['"<(_ubuntu_release)"=="precise"', {
205           'dependencies': [
206             '<(_sanitizer_type)-libtasn1-3',
207           ],
208         }, {
209           'dependencies': [
210             # Trusty and above.
211             '<(_sanitizer_type)-libtasn1-6',
212             '<(_sanitizer_type)-harfbuzz',
213             '<(_sanitizer_type)-libsecret',
214           ],
215         }],
216         ['msan==1', {
217           'dependencies': [
218             '<(_sanitizer_type)-libcups2',
219           ],
220         }],
221         ['tsan==1', {
222           'dependencies!': [
223             '<(_sanitizer_type)-libpng12-0',
224           ],
225         }],
226       ],
227       'direct_dependent_settings': {
228         'target_conditions': [
229           ['_toolset=="target"', {
230             'ldflags': [
231               # Add a relative RPATH entry to Chromium binaries. This puts
232               # instrumented DSOs before system-installed versions in library
233               # search path.
234               '-Wl,-R,\$$ORIGIN/instrumented_libraries/<(_sanitizer_type)/<(_libdir)/',
235               '-Wl,-z,origin',
236             ],
237           }],
238         ],
239       },
240     },
241     {
242       'package_name': 'freetype',
243       'dependencies=': [],
244       'extra_configure_flags': ['--disable-static'],
245       'pre_build': 'scripts/pre-build/freetype.sh',
246       'includes': ['standard_instrumented_package_target.gypi'],
247     },
248     {
249       'package_name': 'libcairo2',
250       'dependencies=': [],
251       'extra_configure_flags': [
252           '--disable-gtk-doc',
253           '--disable-static',
254       ],
255       'includes': ['standard_instrumented_package_target.gypi'],
256     },
257     {
258       'package_name': 'libdbus-1-3',
259       'dependencies=': [],
260       'extra_configure_flags': [
261         '--disable-static',
262         # From debian/rules.
263         '--disable-libaudit',
264         '--enable-apparmor',
265         '--enable-systemd',
266         '--libexecdir=/lib/dbus-1.0',
267         '--with-systemdsystemunitdir=/lib/systemd/system',
268         '--disable-tests',
269         '--exec-prefix=/',
270         # From dh_auto_configure.
271         '--prefix=/usr',
272         '--localstatedir=/var',
273       ],
274       'includes': ['standard_instrumented_package_target.gypi'],
275     },
276     {
277       'package_name': 'libdbus-glib-1-2',
278       'dependencies=': [],
279       'extra_configure_flags': [
280           # Use system dbus-binding-tool. The just-built one is instrumented but
281           # doesn't have the correct RPATH, and will crash.
282           '--with-dbus-binding-tool=dbus-binding-tool',
283           '--disable-static',
284       ],
285       'includes': ['standard_instrumented_package_target.gypi'],
286     },
287     {
288       'package_name': 'libexpat1',
289       'dependencies=': [],
290       'extra_configure_flags': ['--disable-static'],
291       'includes': ['standard_instrumented_package_target.gypi'],
292     },
293     {
294       'package_name': 'libffi6',
295       'dependencies=': [],
296       'extra_configure_flags': ['--disable-static'],
297       'includes': ['standard_instrumented_package_target.gypi'],
298     },
299     {
300       'package_name': 'libfontconfig1',
301       'dependencies=': [],
302       'extra_configure_flags': [
303         '--disable-docs',
304         '--sysconfdir=/etc/',
305         '--disable-static',
306         # From debian/rules.
307         '--with-add-fonts=/usr/X11R6/lib/X11/fonts,/usr/local/share/fonts',
308       ],
309       'conditions': [
310         ['"<(_ubuntu_release)"=="precise"', {
311           'patch': 'patches/libfontconfig.precise.diff',
312         }, {
313           'patch': 'patches/libfontconfig.trusty.diff',
314         }],
315       ],
316       'includes': ['standard_instrumented_package_target.gypi'],
317     },
318     {
319       'package_name': 'libgcrypt11',
320       'dependencies=': [],
321       'package_ldflags': ['-Wl,-z,muldefs'],
322       'extra_configure_flags': [
323         # From debian/rules.
324         '--enable-noexecstack',
325         '--enable-ld-version-script',
326         '--disable-static',
327         # http://crbug.com/344505
328         '--disable-asm'
329       ],
330       'includes': ['standard_instrumented_package_target.gypi'],
331     },
332     {
333       'package_name': 'libglib2.0-0',
334       'dependencies=': [],
335       'extra_configure_flags': [
336         '--disable-gtk-doc',
337         '--disable-gtk-doc-html',
338         '--disable-gtk-doc-pdf',
339         '--disable-static',
340       ],
341       'asan_blacklist': 'blacklists/asan/libglib2.0-0.txt',
342       'msan_blacklist': 'blacklists/msan/libglib2.0-0.txt',
343       'pre_build': 'scripts/pre-build/autogen.sh',
344       'includes': ['standard_instrumented_package_target.gypi'],
345     },
346     {
347       'package_name': 'libgpg-error0',
348       'dependencies=': [],
349       'extra_configure_flags': ['--disable-static'],
350       'includes': ['standard_instrumented_package_target.gypi'],
351     },
352     {
353       'package_name': 'libnspr4',
354       'dependencies=': [],
355       'extra_configure_flags': [
356         '--enable-64bit',
357         '--disable-static',
358         # TSan reports data races on debug variables.
359         '--disable-debug',
360       ],
361       'pre_build': 'scripts/pre-build/libnspr4.sh',
362       'includes': ['standard_instrumented_package_target.gypi'],
363     },
364     {
365       'package_name': 'libp11-kit0',
366       'dependencies=': [],
367       'extra_configure_flags': ['--disable-static'],
368       # Required on Trusty due to autoconf version mismatch.
369       'pre_build': 'scripts/pre-build/autoreconf.sh',
370       'includes': ['standard_instrumented_package_target.gypi'],
371     },
372     {
373       'package_name': 'libpcre3',
374       'dependencies=': [],
375       'extra_configure_flags': [
376         '--enable-utf8',
377         '--enable-unicode-properties',
378         '--disable-static',
379       ],
380       'includes': ['standard_instrumented_package_target.gypi'],
381     },
382     {
383       'package_name': 'libpixman-1-0',
384       'dependencies=': [],
385       'extra_configure_flags': [
386         '--disable-static',
387         # From debian/rules.
388         '--disable-gtk',
389         '--disable-silent-rules',
390         # Avoid a clang issue. http://crbug.com/449183
391         '--disable-mmx',
392       ],
393       'patch': 'patches/libpixman-1-0.diff',
394       'includes': ['standard_instrumented_package_target.gypi'],
395     },
396     {
397       'package_name': 'libpng12-0',
398       'dependencies=': [],
399       'extra_configure_flags': ['--disable-static'],
400       'includes': ['standard_instrumented_package_target.gypi'],
401     },
402     {
403       'package_name': 'libx11-6',
404       'dependencies=': [],
405       'extra_configure_flags': [
406           '--disable-specs',
407           '--disable-static',
408       ],
409       'msan_blacklist': 'blacklists/msan/libx11-6.txt',
410       # Required on Trusty due to autoconf version mismatch.
411       'pre_build': 'scripts/pre-build/autoreconf.sh',
412       'includes': ['standard_instrumented_package_target.gypi'],
413     },
414     {
415       'package_name': 'libxau6',
416       'dependencies=': [],
417       'extra_configure_flags': ['--disable-static'],
418       'includes': ['standard_instrumented_package_target.gypi'],
419     },
420     {
421       'package_name': 'libxcb1',
422       'dependencies=': [],
423       'extra_configure_flags': [
424           '--disable-build-docs',
425           '--disable-static',
426       ],
427       'conditions': [
428         ['"<(_ubuntu_release)"=="precise"', {
429           # Backport fix for https://bugs.freedesktop.org/show_bug.cgi?id=54671
430           'patch': 'patches/libxcb1.precise.diff',
431         }],
432       ],
433       # Required on Trusty due to autoconf version mismatch.
434       'pre_build': 'scripts/pre-build/autoreconf.sh',
435       'includes': ['standard_instrumented_package_target.gypi'],
436     },
437     {
438       'package_name': 'libxcomposite1',
439       'dependencies=': [],
440       'extra_configure_flags': ['--disable-static'],
441       'includes': ['standard_instrumented_package_target.gypi'],
442     },
443     {
444       'package_name': 'libxcursor1',
445       'dependencies=': [],
446       'extra_configure_flags': ['--disable-static'],
447       'includes': ['standard_instrumented_package_target.gypi'],
448     },
449     {
450       'package_name': 'libxdamage1',
451       'dependencies=': [],
452       'extra_configure_flags': ['--disable-static'],
453       'includes': ['standard_instrumented_package_target.gypi'],
454     },
455     {
456       'package_name': 'libxdmcp6',
457       'dependencies=': [],
458       'extra_configure_flags': [
459           '--disable-docs',
460           '--disable-static',
461       ],
462       'includes': ['standard_instrumented_package_target.gypi'],
463     },
464     {
465       'package_name': 'libxext6',
466       'dependencies=': [],
467       'extra_configure_flags': [
468           '--disable-specs',
469           '--disable-static',
470       ],
471       'includes': ['standard_instrumented_package_target.gypi'],
472     },
473     {
474       'package_name': 'libxfixes3',
475       'dependencies=': [],
476       'extra_configure_flags': ['--disable-static'],
477       'includes': ['standard_instrumented_package_target.gypi'],
478     },
479     {
480       'package_name': 'libxi6',
481       'dependencies=': [],
482       'extra_configure_flags': [
483         '--disable-specs',
484         '--disable-docs',
485         '--disable-static',
486       ],
487       'includes': ['standard_instrumented_package_target.gypi'],
488     },
489     {
490       'package_name': 'libxinerama1',
491       'dependencies=': [],
492       'extra_configure_flags': ['--disable-static'],
493       'includes': ['standard_instrumented_package_target.gypi'],
494     },
495     {
496       'package_name': 'libxrandr2',
497       'dependencies=': [],
498       'extra_configure_flags': ['--disable-static'],
499       'includes': ['standard_instrumented_package_target.gypi'],
500     },
501     {
502       'package_name': 'libxrender1',
503       'dependencies=': [],
504       'extra_configure_flags': ['--disable-static'],
505       'includes': ['standard_instrumented_package_target.gypi'],
506     },
507     {
508       'package_name': 'libxss1',
509       'dependencies=': [],
510       'extra_configure_flags': ['--disable-static'],
511       'includes': ['standard_instrumented_package_target.gypi'],
512     },
513     {
514       'package_name': 'libxtst6',
515       'dependencies=': [],
516       'extra_configure_flags': [
517           '--disable-specs',
518           '--disable-static',
519       ],
520       'includes': ['standard_instrumented_package_target.gypi'],
521     },
522     {
523       'package_name': 'zlib1g',
524       'dependencies=': [],
525       # --disable-static is not supported
526       'patch': 'patches/zlib1g.diff',
527       'includes': ['standard_instrumented_package_target.gypi'],
528     },
529     {
530       'package_name': 'nss',
531       'dependencies=': [
532         # TODO(earthdok): get rid of this dependency
533         '<(_sanitizer_type)-libnspr4',
534       ],
535       'patch': 'patches/nss.diff',
536       'build_method': 'custom_nss',
537       'includes': ['standard_instrumented_package_target.gypi'],
538     },
539     {
540       'package_name': 'pulseaudio',
541       'dependencies=': [],
542       'conditions': [
543         ['"<(_ubuntu_release)"=="precise"', {
544           'patch': 'patches/pulseaudio.precise.diff',
545           'jobs': 1,
546         }, {
547           # New location of libpulsecommon.
548           'package_ldflags': [ '-Wl,-R,XORIGIN/pulseaudio/.' ],
549         }],
550       ],
551       'extra_configure_flags': [
552           '--disable-static',
553           # From debian/rules.
554           '--enable-x11',
555           '--disable-hal-compat',
556           # Disable some ARM-related code that fails compilation. No idea why
557           # this even impacts x86-64 builds.
558           '--disable-neon-opt'
559       ],
560       'pre_build': 'scripts/pre-build/pulseaudio.sh',
561       'includes': ['standard_instrumented_package_target.gypi'],
562     },
563     {
564       'package_name': 'libasound2',
565       'dependencies=': [],
566       'extra_configure_flags': ['--disable-static'],
567       'pre_build': 'scripts/pre-build/libasound2.sh',
568       'includes': ['standard_instrumented_package_target.gypi'],
569     },
570     {
571       'package_name': 'libcups2',
572       'dependencies=': [],
573       'patch': 'patches/libcups2.diff',
574       'jobs': 1,
575       'extra_configure_flags': [
576         '--disable-static',
577         # All from debian/rules.
578         '--localedir=/usr/share/cups/locale',
579         '--enable-slp',
580         '--enable-libpaper',
581         '--enable-ssl',
582         '--enable-gnutls',
583         '--disable-openssl',
584         '--enable-threads',
585         '--enable-debug',
586         '--enable-dbus',
587         '--with-dbusdir=/etc/dbus-1',
588         '--enable-gssapi',
589         '--enable-avahi',
590         '--with-pdftops=/usr/bin/gs',
591         '--disable-launchd',
592         '--with-cups-group=lp',
593         '--with-system-groups=lpadmin',
594         '--with-printcap=/var/run/cups/printcap',
595         '--with-log-file-perm=0640',
596         '--with-local_protocols="CUPS dnssd"',
597         '--with-remote_protocols="CUPS dnssd"',
598         '--enable-libusb',
599       ],
600       'includes': ['standard_instrumented_package_target.gypi'],
601     },
602     {
603       'package_name': 'pango1.0',
604       'dependencies=': [],
605       'extra_configure_flags': [
606         '--disable-static',
607         # Avoid https://bugs.gentoo.org/show_bug.cgi?id=425620
608         '--enable-introspection=no',
609         # Pango is normally used with dynamically loaded modules. However,
610         # ensuring pango is able to find instrumented versions of those modules
611         # is a huge pain in the neck. Let's link them statically instead, and
612         # hope for the best.
613         '--with-included-modules=yes'
614       ],
615       'includes': ['standard_instrumented_package_target.gypi'],
616     },
617     {
618       'package_name': 'libcap2',
619       'dependencies=': [],
620       'extra_configure_flags': ['--disable-static'],
621       'build_method': 'custom_libcap',
622       'includes': ['standard_instrumented_package_target.gypi'],
623     },
624     {
625       'package_name': 'udev',
626       'dependencies=': [],
627       'extra_configure_flags': [
628           '--disable-static',
629           # Without this flag there's a linking step that doesn't honor LDFLAGS
630           # and fails.
631           # TODO(earthdok): find a better fix.
632           '--disable-gudev'
633       ],
634       'pre_build': 'scripts/pre-build/udev.sh',
635       'includes': ['standard_instrumented_package_target.gypi'],
636     },
637     {
638       'package_name': 'libtasn1-3',
639       'dependencies=': [],
640       'extra_configure_flags': [
641           '--disable-static',
642           # From debian/rules.
643           '--enable-ld-version-script',
644       ],
645       'includes': ['standard_instrumented_package_target.gypi'],
646     },
647     {
648       'package_name': 'libtasn1-6',
649       'dependencies=': [],
650       'extra_configure_flags': [
651           '--disable-static',
652           # From debian/rules.
653           '--enable-ld-version-script',
654       ],
655       'includes': ['standard_instrumented_package_target.gypi'],
656     },
657     {
658       'package_name': 'libgnome-keyring0',
659       'extra_configure_flags': [
660           '--disable-static',
661           '--enable-tests=no',
662           # Make the build less problematic.
663           '--disable-introspection',
664       ],
665       'package_ldflags': ['-Wl,--as-needed'],
666       'dependencies=': [],
667       'includes': ['standard_instrumented_package_target.gypi'],
668     },
669     {
670       'package_name': 'libgtk2.0-0',
671       'package_cflags': ['-Wno-return-type'],
672       'extra_configure_flags': [
673           '--disable-static',
674           # From debian/rules.
675           '--prefix=/usr',
676           '--sysconfdir=/etc',
677           '--enable-test-print-backend',
678           '--enable-introspection=no',
679           '--with-xinput=yes',
680       ],
681       'dependencies=': [],
682       'conditions': [
683         ['"<(_ubuntu_release)"=="precise"', {
684           'patch': 'patches/libgtk2.0-0.precise.diff',
685         }, {
686           'patch': 'patches/libgtk2.0-0.trusty.diff',
687         }],
688       ],
689       'pre_build': 'scripts/pre-build/libgtk2.0-0.sh',
690       'includes': ['standard_instrumented_package_target.gypi'],
691     },
692     {
693       'package_name': 'libgdk-pixbuf2.0-0',
694       'extra_configure_flags': [
695           '--disable-static',
696           # From debian/rules.
697           '--with-libjasper',
698           '--with-x11',
699           # Make the build less problematic.
700           '--disable-introspection',
701           # Do not use loadable modules. Same as with Pango, there's no easy way
702           # to make gdk-pixbuf pick instrumented versions over system-installed
703           # ones.
704           '--disable-modules',
705       ],
706       'dependencies=': [],
707       'pre_build': 'scripts/pre-build/libgdk-pixbuf2.0-0.sh',
708       'includes': ['standard_instrumented_package_target.gypi'],
709     },
710     {
711       'package_name': 'libpci3',
712       'dependencies=': [],
713       'extra_configure_flags': ['--disable-static'],
714       'build_method': 'custom_libpci3',
715       'jobs': 1,
716       'includes': ['standard_instrumented_package_target.gypi'],
717     },
718     {
719       'package_name': 'libdbusmenu-glib4',
720       'extra_configure_flags': [
721           '--disable-static',
722           # From debian/rules.
723           '--disable-scrollkeeper',
724           '--enable-gtk-doc',
725           # --enable-introspection introduces a build step that attempts to run
726           # a just-built binary and crashes. Vala requires introspection.
727           # TODO(earthdok): find a better fix.
728           '--disable-introspection',
729           '--disable-vala',
730       ],
731       'dependencies=': [],
732       'pre_build': 'scripts/pre-build/autogen.sh',
733       'includes': ['standard_instrumented_package_target.gypi'],
734     },
735     {
736       'package_name': 'libgconf-2-4',
737       'extra_configure_flags': [
738           '--disable-static',
739           # From debian/rules. (Even though --with-gtk=3.0 doesn't make sense.)
740           '--with-gtk=3.0',
741           '--disable-orbit',
742           # See above.
743           '--disable-introspection',
744       ],
745       'dependencies=': [],
746       'includes': ['standard_instrumented_package_target.gypi'],
747     },
748     {
749       'package_name': 'libappindicator1',
750       'extra_configure_flags': [
751           '--disable-static',
752           # See above.
753           '--disable-introspection',
754       ],
755       'dependencies=': [],
756       'jobs': 1,
757       'pre_build': 'scripts/pre-build/autogen.sh',
758       'includes': ['standard_instrumented_package_target.gypi'],
759     },
760     {
761       'package_name': 'libdbusmenu',
762       'extra_configure_flags': [
763           '--disable-static',
764           # From debian/rules.
765           '--disable-scrollkeeper',
766           '--with-gtk=2',
767           # See above.
768           '--disable-introspection',
769           '--disable-vala',
770       ],
771       'dependencies=': [],
772       'pre_build': 'scripts/pre-build/autogen.sh',
773       'includes': ['standard_instrumented_package_target.gypi'],
774     },
775     {
776       'package_name': 'atk1.0',
777       'extra_configure_flags': [
778           '--disable-static',
779           # See above.
780           '--disable-introspection',
781       ],
782       'dependencies=': [],
783       'includes': ['standard_instrumented_package_target.gypi'],
784     },
785     {
786       'package_name': 'libunity9',
787       'dependencies=': [],
788       'extra_configure_flags': ['--disable-static'],
789       'pre_build': 'scripts/pre-build/autogen.sh',
790       'includes': ['standard_instrumented_package_target.gypi'],
791     },
792     {
793       'package_name': 'dee',
794       'extra_configure_flags': [
795           '--disable-static',
796           # See above.
797           '--disable-introspection',
798       ],
799       'dependencies=': [],
800       'pre_build': 'scripts/pre-build/autogen.sh',
801       'includes': ['standard_instrumented_package_target.gypi'],
802     },
803     {
804       'package_name': 'harfbuzz',
805       'package_cflags': ['-Wno-c++11-narrowing'],
806       'extra_configure_flags': [
807           '--disable-static',
808           # From debian/rules.
809           '--with-graphite2=yes',
810           '--with-gobject',
811           # See above.
812           '--disable-introspection',
813       ],
814       'dependencies=': [],
815       'includes': ['standard_instrumented_package_target.gypi'],
816     },
817     {
818       'package_name': 'brltty',
819       'extra_configure_flags': [
820           '--disable-static',
821           # From debian/rules.
822           '--without-viavoice',
823           '--without-theta',
824           '--without-swift',
825           '--bindir=/sbin',
826           '--with-curses=ncursesw',
827           '--disable-stripping',
828           # We don't need any of those.
829           '--disable-java-bindings',
830           '--disable-lisp-bindings',
831           '--disable-ocaml-bindings',
832           '--disable-python-bindings',
833           '--disable-tcl-bindings'
834       ],
835       'dependencies=': [],
836       'includes': ['standard_instrumented_package_target.gypi'],
837     },
838     {
839       'package_name': 'libva1',
840       'dependencies=': [],
841       'extra_configure_flags': ['--disable-static'],
842       # Backport a use-after-free fix:
843       # http://cgit.freedesktop.org/libva/diff/va/va.c?h=staging&id=d4988142a3f2256e38c5c5cdcdfc1b4f5f3c1ea9
844       'patch': 'patches/libva1.diff',
845       'pre_build': 'scripts/pre-build/libva1.sh',
846       'includes': ['standard_instrumented_package_target.gypi'],
847     },
848     {
849       'package_name': 'libsecret',
850       'dependencies=': [],
851       'extra_configure_flags': [
852           '--disable-static',
853           # See above.
854           '--disable-introspection',
855       ],
856       'pre_build': 'scripts/pre-build/autoreconf.sh',
857       'includes': ['standard_instrumented_package_target.gypi'],
858     },
859   ],