Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / instrumented_libraries / instrumented_libraries.gyp
index 919f8fe..fee404e 100644 (file)
@@ -3,33 +3,20 @@
 # found in the LICENSE file.
 
 {
-  # Default value for all libraries.
-  'extra_configure_flags': '',
-  'extra_cflags': '',
-  'extra_cxxflags': '',
-  'extra_ldflags': '',
-  'run_before_build': '',
-  'build_method': 'destdir',
-
   'variables': {
     'verbose_libraries_build%': 0,
     'instrumented_libraries_jobs%': 1,
   },
 
-  'jobs': '<(instrumented_libraries_jobs)',
-
   'conditions': [
     ['asan==1', {
       'sanitizer_type': 'asan',
-      'sanitizer_blacklist': '',
     }],
     ['msan==1', {
       'sanitizer_type': 'msan',
-      'sanitizer_blacklist': '<(msan_blacklist)',
     }],
     ['tsan==1', {
       'sanitizer_type': 'tsan',
-      'sanitizer_blacklist': '<(tsan_blacklist)',
     }],
     ['use_goma==1', {
       'cc': '<(gomadir)/gomacc <!(cd <(DEPTH) && pwd -P)/<(make_clang_dir)/bin/clang',
       'cxx': '<!(cd <(DEPTH) && pwd -P)/<(make_clang_dir)/bin/clang++',
     }],
   ],
+
+  'target_defaults': {
+    'build_method': 'destdir',
+    'extra_configure_flags': [],
+    'jobs': '<(instrumented_libraries_jobs)',
+    'package_cflags': [
+      '-O2',
+      '-gline-tables-only',
+      '-fPIC',
+      '-w',
+      '-U_FORITFY_SOURCE'
+    ],
+    'package_ldflags': [
+      '-Wl,-z,origin',
+      # We set RPATH=XORIGIN when building the package and replace it with
+      # $ORIGIN later. The reason is that this flag goes through configure/make
+      # differently for different packages. Because of this, we can't escape the
+      # $ character in a way that would work for every package.
+      '-Wl,-R,XORIGIN/.'
+    ],
+    'patch': '',
+    'run_before_build': '',
+    'asan_blacklist': '',
+    'msan_blacklist': '',
+    'tsan_blacklist': '',
+
+    'conditions': [
+      ['asan==1', {
+        'package_cflags': ['-fsanitize=address'],
+        'package_ldflags': ['-fsanitize=address'],
+      }],
+      ['msan==1', {
+        'package_cflags': [
+          '-fsanitize=memory',
+          '-fsanitize-memory-track-origins=<(msan_track_origins)'
+        ],
+        'package_ldflags': ['-fsanitize=memory'],
+      }],
+      ['tsan==1', {
+        'package_cflags': ['-fsanitize=thread'],
+        'package_ldflags': ['-fsanitize=thread'],
+      }],
+    ],
+  },
+
   'targets': [
     {
       'target_name': 'instrumented_libraries',
       },
     },
     {
-      'library_name': 'freetype',
+      'package_name': 'freetype',
       'dependencies=': [],
-      'run_before_build': 'freetype.sh',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'run_before_build': 'scripts/freetype.sh',
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libcairo2',
+      'package_name': 'libcairo2',
       'dependencies=': [],
-      'extra_configure_flags': '--disable-gtk-doc',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'extra_configure_flags': ['--disable-gtk-doc'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libdbus-1-3',
-      'dependencies=': [
-        '<(_sanitizer_type)-libglib2.0-0',
-      ],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'package_name': 'libdbus-1-3',
+      'dependencies=': [],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libdbus-glib-1-2',
-      'dependencies=': [
-        '<(_sanitizer_type)-libglib2.0-0',
-      ],
+      'package_name': 'libdbus-glib-1-2',
+      'dependencies=': [],
       # Use system dbus-binding-tool. The just-built one is instrumented but
       # doesn't have the correct RPATH, and will crash.
-      'extra_configure_flags': '--with-dbus-binding-tool=dbus-binding-tool',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'extra_configure_flags': ['--with-dbus-binding-tool=dbus-binding-tool'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libexpat1',
+      'package_name': 'libexpat1',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libffi6',
+      'package_name': 'libffi6',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libfontconfig1',
-      'dependencies=': [
-        '<(_sanitizer_type)-freetype',
-      ],
+      'package_name': 'libfontconfig1',
+      'dependencies=': [],
       'extra_configure_flags': [
         '--disable-docs',
         '--sysconfdir=/etc/',
         # From debian/rules.
         '--with-add-fonts=/usr/X11R6/lib/X11/fonts,/usr/local/share/fonts',
       ],
-      'run_before_build': 'libfontconfig.sh',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'patch': 'patches/libfontconfig.diff',
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libgcrypt11',
+      'package_name': 'libgcrypt11',
       'dependencies=': [],
-      'extra_ldflags': '-Wl,-z,muldefs',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'package_ldflags': ['-Wl,-z,muldefs'],
+      'extra_configure_flags': [
+        # From debian/rules.
+        '--enable-noexecstack',
+        '--enable-ld-version-script',
+        '--enable-static',
+        # http://crbug.com/344505
+        '--disable-asm'
+      ],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libglib2.0-0',
+      'package_name': 'libglib2.0-0',
       'dependencies=': [],
       'extra_configure_flags': [
         '--disable-gtk-doc',
         '--disable-gtk-doc-html',
         '--disable-gtk-doc-pdf',
       ],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'asan_blacklist': 'blacklists/asan/libglib2.0-0.txt',
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libgpg-error0',
+      'package_name': 'libgpg-error0',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libnspr4',
+      'package_name': 'libnspr4',
       'dependencies=': [],
       'extra_configure_flags': [
         '--enable-64bit',
         # TSan reports data races on debug variables.
         '--disable-debug',
       ],
-      'run_before_build': 'libnspr4.sh',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'run_before_build': 'scripts/libnspr4.sh',
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libp11-kit0',
+      'package_name': 'libp11-kit0',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libpcre3',
+      'package_name': 'libpcre3',
       'dependencies=': [],
       'extra_configure_flags': [
         '--enable-utf8',
         '--enable-unicode-properties',
       ],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libpixman-1-0',
-      'dependencies=': [
-        '<(_sanitizer_type)-libglib2.0-0',
-      ],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'package_name': 'libpixman-1-0',
+      'dependencies=': [],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libpng12-0',
+      'package_name': 'libpng12-0',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libx11-6',
+      'package_name': 'libx11-6',
       'dependencies=': [],
-      'extra_configure_flags': '--disable-specs',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'extra_configure_flags': ['--disable-specs'],
+      'msan_blacklist': 'blacklists/msan/libx11-6.txt',
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxau6',
+      'package_name': 'libxau6',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxcb1',
+      'package_name': 'libxcb1',
       'dependencies=': [],
-      'extra_configure_flags': '--disable-build-docs',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'extra_configure_flags': ['--disable-build-docs'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxcomposite1',
+      'package_name': 'libxcomposite1',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxcursor1',
+      'package_name': 'libxcursor1',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxdamage1',
+      'package_name': 'libxdamage1',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxdmcp6',
+      'package_name': 'libxdmcp6',
       'dependencies=': [],
-      'extra_configure_flags': '--disable-docs',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'extra_configure_flags': ['--disable-docs'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxext6',
+      'package_name': 'libxext6',
       'dependencies=': [],
-      'extra_configure_flags': '--disable-specs',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'extra_configure_flags': ['--disable-specs'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxfixes3',
+      'package_name': 'libxfixes3',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxi6',
+      'package_name': 'libxi6',
       'dependencies=': [],
       'extra_configure_flags': [
         '--disable-specs',
         '--disable-docs',
       ],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxinerama1',
+      'package_name': 'libxinerama1',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxrandr2',
+      'package_name': 'libxrandr2',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxrender1',
+      'package_name': 'libxrender1',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxss1',
+      'package_name': 'libxss1',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libxtst6',
+      'package_name': 'libxtst6',
       'dependencies=': [],
-      'extra_configure_flags': '--disable-specs',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'extra_configure_flags': ['--disable-specs'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'zlib1g',
+      'package_name': 'zlib1g',
       'dependencies=': [],
-      'run_before_build': 'zlib1g.sh',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'patch': 'patches/zlib1g.diff',
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'nss',
+      'package_name': 'nss',
       'dependencies=': [
+        # TODO(earthdok): get rid of this dependency
         '<(_sanitizer_type)-libnspr4',
       ],
-      'run_before_build': 'nss.sh',
+      'patch': 'patches/nss.diff',
       'build_method': 'custom_nss',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'pulseaudio',
-      'dependencies=': [
-        '<(_sanitizer_type)-libdbus-1-3',
-      ],
-      'run_before_build': 'pulseaudio.sh',
+      'package_name': 'pulseaudio',
+      'dependencies=': [],
+      'patch': 'patches/pulseaudio.diff',
+      'run_before_build': 'scripts/pulseaudio.sh',
       'jobs': 1,
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libasound2',
+      'package_name': 'libasound2',
       'dependencies=': [],
-      'run_before_build': 'libasound2.sh',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'run_before_build': 'scripts/libasound2.sh',
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libcups2',
+      'package_name': 'libcups2',
       'dependencies=': [],
-      'run_before_build': 'libcups2.sh',
+      'patch': 'patches/libcups2.diff',
       'jobs': 1,
       'extra_configure_flags': [
         # All from debian/rules.
         '--with-remote_protocols="CUPS dnssd"',
         '--enable-libusb',
       ],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'pango1.0',
-      'dependencies=': [
-        '<(_sanitizer_type)-libglib2.0-0',
-      ],
+      'package_name': 'pango1.0',
+      'dependencies=': [],
       'extra_configure_flags': [
         # 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'
       ],
-      'build_method': 'custom_pango',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libcap2',
+      'package_name': 'libcap2',
       'dependencies=': [],
       'build_method': 'custom_libcap',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libudev0',
+      'package_name': 'libudev0',
       'dependencies=': [],
       'extra_configure_flags': [
           # Without this flag there's a linking step that doesn't honor LDFLAGS
           # TODO(earthdok): find a better fix.
           '--disable-gudev'
       ],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libtasn1-3',
+      'package_name': 'libtasn1-3',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libgnome-keyring0',
+      'package_name': 'libgnome-keyring0',
       'extra_configure_flags': [
           # Build static libs (from debian/rules).
           '--enable-static',
           '--enable-tests=no',
       ],
-      'extra_ldflags': '-Wl,--as-needed',
+      'package_ldflags': ['-Wl,--as-needed'],
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libgtk2.0-0',
-      'extra_cflags': '-Wno-return-type',
+      'package_name': 'libgtk2.0-0',
+      'package_cflags': ['-Wno-return-type'],
       'extra_configure_flags': [
           # From debian/rules.
           '--prefix=/usr',
           '--with-xinput=yes',
       ],
       'dependencies=': [],
-      'run_before_build': 'libgtk2.0-0.sh',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'patch': 'patches/libgtk2.0-0.diff',
+      'run_before_build': 'scripts/libgtk2.0-0.sh',
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libgdk-pixbuf2.0-0',
+      'package_name': 'libgdk-pixbuf2.0-0',
       'extra_configure_flags': [
           # From debian/rules.
           '--with-libjasper',
           '--disable-introspection',
       ],
       'dependencies=': [],
-      'run_before_build': 'libgdk-pixbuf2.0-0.sh',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'patch': 'patches/libgdk-pixbuf2.0-0.diff',
+      'run_before_build': 'scripts/libgdk-pixbuf2.0-0.sh',
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libpci3',
+      'package_name': 'libpci3',
       'dependencies=': [],
       'build_method': 'custom_libpci3',
       'jobs': 1,
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libdbusmenu-glib4',
+      'package_name': 'libdbusmenu-glib4',
       'extra_configure_flags': [
           # From debian/rules.
           '--disable-scrollkeeper',
           '--disable-vala',
       ],
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'liboverlay-scrollbar-0.2-0',
+      'package_name': 'liboverlay-scrollbar-0.2-0',
       'extra_configure_flags': [
           '--with-gtk=2',
       ],
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libgconf-2-4',
+      'package_name': 'libgconf-2-4',
       'extra_configure_flags': [
           # From debian/rules. (Even though --with-gtk=3.0 doesn't make sense.)
           '--with-gtk=3.0',
           '--disable-introspection',
       ],
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libappindicator1',
+      'package_name': 'libappindicator1',
       'extra_configure_flags': [
           # See above.
           '--disable-introspection',
       ],
       'dependencies=': [],
-      'build_method': 'custom_libappindicator1',
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'jobs': 1,
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libdbusmenu',
+      'package_name': 'libdbusmenu',
       'extra_configure_flags': [
           # From debian/rules.
           '--disable-scrollkeeper',
           '--disable-vala',
       ],
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'atk1.0',
+      'package_name': 'atk1.0',
       'extra_configure_flags': [
           # See above.
           '--disable-introspection',
       ],
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'libunity9',
+      'package_name': 'libunity9',
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
     {
-      'library_name': 'dee',
+      'package_name': 'dee',
       'extra_configure_flags': [
           # See above.
           '--disable-introspection',
       ],
       'dependencies=': [],
-      'includes': ['standard_instrumented_library_target.gypi'],
+      'includes': ['standard_instrumented_package_target.gypi'],
     },
   ],
 }