Platform/Porting to unified sources

From MozillaWiki
Jump to navigation Jump to search

This page is here to help coordinate the effort around porting Gecko's build system to UNIFIED_SOURCES, a mechanism that enables faster builds by concatenating sources files to have fewer, larger translation units.

Ongoing porting projects

When we start porting a directory, we file a bug about it, and block the tracking bug with the unified alias (bug 939583).

Here is a bugzilla search that lists all such bugs i.e. all the directories that are currently being ported by someone.

Full Query
ID Summary Whiteboard Status Resolution
806819 Define FORCE_PR_LOG globally so release builds have all NSPR logging available RESOLVED FIXED
928231 Build the uconv library in unified mode RESOLVED FIXED
936912 Build xpcom in unified mode [qa-] RESOLVED FIXED
937886 Build content/canvas/src in unified mode [qa-] RESOLVED FIXED
937908 Build content SVG code in unified mode [qa-] RESOLVED FIXED
938114 Build layout/base in unified mode [qa-] RESOLVED FIXED
938123 Build layout/style in unified mode [qa-] RESOLVED FIXED
938134 Build widget/xpwidgets in unified mode [qa-] RESOLVED FIXED
938844 Add support for building .mm files in unified mode RESOLVED FIXED
938848 Build layout/forms in unified mode [qa-] RESOLVED FIXED
938849 Build layout/generic in unified mode [qa-] RESOLVED FIXED
938850 Build layout/mathml in unified mode [qa-] RESOLVED FIXED
938852 Build layout/inspector in unified mode [qa-] RESOLVED FIXED
938853 Build layout/ipc in unified mode [qa-] RESOLVED FIXED
938859 Build layout/printing in unified mode [qa-] RESOLVED FIXED
938864 Build layout/svg in unified mode [qa-] RESOLVED FIXED
938865 Build layout/tables in unified mode [qa-] RESOLVED FIXED
938867 Build layout/tools in unified mode [qa-] RESOLVED FIXED
938869 Build layout/xul in unified mode [qa-] RESOLVED FIXED
938970 Build gfx/layers in unified mode [qa-] RESOLVED FIXED
939121 Build netwerk/ipc, protocol, socket, srtp, and wifi in unified mode [qa-] RESOLVED FIXED
939296 Build content/html in unified mode [qa-] RESOLVED FIXED
939303 Build content/base in unified mode [qa-] RESOLVED FIXED
939451 Build most of the accessible code in unified mode [qa-] RESOLVED FIXED
939538 Build parts of the ipc code in unified mode [qa-] RESOLVED FIXED
939569 Build layout/build in unified mode [qa-] RESOLVED FIXED
939571 Build Web Audio in unified mode [qa-] RESOLVED FIXED
939572 Build widget/cocoa in unified mode [qa-] RESOLVED FIXED
939576 Build netwerk/protocol/http in unified mode [qa-] RESOLVED FIXED
939578 Build netwerk/streamconv in unified mode [qa-] RESOLVED FIXED
939580 Create unified files based on the absolute path of the original source files RESOLVED FIXED
939582 Build content/media in unified mode [qa-] RESOLVED FIXED
939584 Build some of the directories under content/media in unified mode [qa-] RESOLVED FIXED
939585 Build gfx/thebes in unified mode [qa-] RESOLVED FIXED
939588 Build angle in unified mode [qa-] RESOLVED FIXED
939596 Build content/event in unified mode [qa-] RESOLVED FIXED
939608 Build xpconnect in unified mode [qa-] RESOLVED FIXED
939609 Build content/xslt in unified mode [qa-] RESOLVED FIXED
939611 Build storage/src in unified mode [qa-] RESOLVED FIXED
939629 Build skia in unified mode [qa-] RESOLVED FIXED
939659 Build parts of the spellchecker in unified mode [qa-] RESOLVED FIXED
939758 Build gfx/gl in unified mode [qa-] RESOLVED FIXED
939795 Build image/decoder in unified mode [qa-] RESOLVED FIXED
939950 Build gfx/moz2d in unified mode [qa-] RESOLVED FIXED
940117 Build startupcache in unified mode [qa-] RESOLVED FIXED
940129 Build part of widget/gonk in unified mode RESOLVED WONTFIX
940153 Build dom/encoding in unified mode [qa-] RESOLVED FIXED
940178 Build cairo in unified mode [qa-] RESOLVED FIXED
940185 Build dom/audiochannel in unified mode [qa-] RESOLVED FIXED
940189 Build dom/time in unified mode [qa-] RESOLVED FIXED
940191 Build dom/base in unified mode [qa-] RESOLVED FIXED
940194 Build netwerk/cookie in unified mode [qa-] RESOLVED FIXED
940205 UNIFIED_SOURCES silently grabs wrong file in case of multiple files with same leaf name in different dirs RESOLVED DUPLICATE
940207 Build dom/quota in unified mode [qa-] RESOLVED FIXED
940215 Build netwerk/cache2, ftp, and rtsp in unified mode [qa-] RESOLVED FIXED
940218 Build memory/jemalloc and friends in unified mode [qa-] RESOLVED FIXED
940225 Build docshell in unified mode [qa-] RESOLVED FIXED
940226 Build image/src in unified mode [qa-] RESOLVED FIXED
940235 Build uriloader in unified mode [qa-] RESOLVED FIXED
940407 Kill GTEST_SOURCES RESOLVED FIXED
940416 Build gfx/harfbuzz in unified mode [qa-] RESOLVED FIXED
940591 Build parts of js/src in unified mode [qa-] RESOLVED FIXED
940708 Build webrtc in unified mode RESOLVED FIXED
940719 Build content/xbl in unified mode [qa-] RESOLVED FIXED
940720 Build content/xul/templates in unified mode [qa-] RESOLVED FIXED
940721 Build content/smil in unified mode [qa-] RESOLVED FIXED
940723 Build docshell/base in unified mode RESOLVED DUPLICATE
940780 Build dom/gamepad in unified mode [qa-] RESOLVED FIXED
940793 Build image/decoders/icon in unified mode [qa-] RESOLVED FIXED
940799 Build gfx/ycbcr in unified mode [qa-] RESOLVED FIXED
940821 Build part of toolkit/crashreporter in unified mode [qa-] RESOLVED FIXED
940832 Build content/mathml/content/src in unified mode [qa-] RESOLVED FIXED
940934 build gfx/graphite2 in unified mode [qa-] RESOLVED FIXED
941068 Build netwerk/base in unified mode [qa-] RESOLVED FIXED
941090 build (some of) gfx/ots in unified mode [qa-] RESOLVED FIXED
941097 Provide a build time option to disable UNIFIED_SOURCES across the tree RESOLVED FIXED
941332 Build caps/src in unified mode [qa-] RESOLVED FIXED
941406 Build netwerk/dns in unified mode [qa-] RESOLVED FIXED
941417 Build ipc/glue in unified mode [qa-] RESOLVED FIXED
941424 Build more of the JS engine in unified mode [qa-] RESOLVED FIXED
941539 Add a .lldbinit file to the tree and make the build system install it to $(DIST)/bin RESOLVED FIXED
941590 Build jsapi-tests in unified mode [qa-] RESOLVED FIXED
941599 Using UNIFIED_SOURCES in js/src creates the wrong file names RESOLVED WORKSFORME
941693 Build tools/profiler in unified mode [qa-] RESOLVED FIXED
941728 Build embedding in unified mode RESOLVED FIXED
941732 Build chrome in unified mode [qa-] RESOLVED FIXED
941782 Build dom/plugin/base & dom/plugin/ipc in unified mode RESOLVED DUPLICATE
941824 Add a way to protect ourselves from known bad patterns in unified builds [talos_regression] RESOLVED FIXED
941854 Protect against two known bad patterns for unified builds RESOLVED FIXED
941866 Deunify the files that are caught by bug 941854 RESOLVED FIXED
942033 Build security/manager in unified mode [qa-] RESOLVED FIXED
942122 Build the JS gdb tests in unified mode [qa-] RESOLVED FIXED
942124 Build the js shell in unified mode [qa-] RESOLVED FIXED
942127 Build the JS editline library in unified mode [qa-] RESOLVED FIXED
942137 layout/style/nsStyleUtil.h:62:12: error: member access into incomplete type 'nsAString_internal' when disabling unified sources RESOLVED FIXED
942167 Please add non-unified builds to mozilla-central RESOLVED FIXED
942193 Build bustage in non-unified mode in layout/style RESOLVED DUPLICATE
942248 Build bustage in nsNumberControlFrame.cpp in non-unified mode (‘nsIDOMMutationEvent’ has not been declared) [qa-] RESOLVED FIXED
942334 Build hal in unified mode [qa-] RESOLVED FIXED
942486 Move PL_ARENA_CONST_ALIGN_MASK out of nsZipArchive.h [qa-] RESOLVED FIXED
942489 Deunify more files that are caught by bug 941854 RESOLVED FIXED
942537 Build dom/file in unified mode [qa-] RESOLVED FIXED
942633 Build more dom/ code in unified mode [qa-] RESOLVED FIXED
942635 Build dom/ipc in unified mode [qa-] RESOLVED FIXED
943023 unify a bunch of rdf/ and toolkit/components/ [qa-] RESOLVED FIXED
943156 Convert plarena.h macros to template functions RESOLVED FIXED
943208 Stop force-enabling logging for ftp on Windows, so it can be built unified [qa-] RESOLVED FIXED
943347 Build js/jsd in unified mode [qa-] RESOLVED FIXED
943355 Build some of the code in dom/bindings in unified mode [qa-] RESOLVED FIXED
943686 Enable all of imagelib to be built in unified mode RESOLVED FIXED
943695 Investigate why we're seeing Unified_foo_bar.cpp files in some Tinderbox crash stacks RESOLVED WONTFIX
943712 Build parts of dom/mobilemessage in unified mode RESOLVED FIXED
943719 Build MFBT in unified mode RESOLVED FIXED
943982 Build content/xul in unified mode [qa-] RESOLVED FIXED
943983 Build gfx/tests/gtest in unified mode [qa-] RESOLVED FIXED
943984 Build toolkit/profile in unified mode [qa-] RESOLVED FIXED
943988 Build toolkit/xre in unified mode [qa-] RESOLVED FIXED
943990 Build toolkit/components/startup in unified mode [qa-] RESOLVED FIXED
943993 Build toolkit/components/places in unified mode [qa-] RESOLVED FIXED
943994 Build toolkit/components/mediasniffer in unified mode [qa-] RESOLVED FIXED
943995 Build toolkit/components/downloads in unified mode [qa-] RESOLVED FIXED
943999 Build toolkit/components/ctypes/test in unified mode [qa-] RESOLVED FIXED
944000 Build toolkit/components/autocomplete in unified mode [qa-] RESOLVED FIXED
944002 Build toolkit/components/alert in unified mode [qa-] RESOLVED FIXED
944003 Build toolkit/components/protobuf in unified mode [qa-] RESOLVED FIXED
944004 Build profile/ in unified mode [qa-] RESOLVED FIXED
944209 Build gfx/src in unified mode [qa-] RESOLVED FIXED
944212 Build xpfe/appshell in unified mode [qa-] RESOLVED FIXED
944378 Build content/media/webspeech/synth/pico in unified mode [qa-] RESOLVED FIXED
944379 Build js/ipc in unified mode [qa-] RESOLVED FIXED
944380 Build content/xml in unified mode [qa-] RESOLVED FIXED
944830 gfx/gl/GLBlitTextureImageHelper.cpp:115:13: error: unknown type name 'RectTriangles' in non-unified builds [qa-] RESOLVED FIXED
944834 dom/mobilemessage/src/ipc/SmsIPCService.cpp:285:5: error: use of undeclared identifier 'dom' in non-unified builds RESOLVED DUPLICATE
944835 layout/base/nsDisplayListInvalidation.h:124:31: error: unknown type name 'nscolor' when building in non-unified mode [qa-] RESOLVED FIXED
944844 ../../dist/include/GeckoProfilerImpl.h:309:7: error: call to 'vsnprintf' is ambiguous when building with 8 unified sources instead of 16 [qa-] RESOLVED FIXED
944961 Build rdf in unified mode [qa-] RESOLVED FIXED
944962 Building other-licenses/android, skia-npapi, and snappy in unified mode RESOLVED FIXED
944977 Build libvorbis in unified mode [qa-] RESOLVED FIXED
945097 Build widget/gtk in unified mode [qa-] RESOLVED FIXED
945118 Build more of XPCOM in unified mode [qa-] RESOLVED FIXED
945496 Disable unified builds on mozilla-aurora+ RESOLVED FIXED
945587 nsXULTemplateResultStorage.cpp:12:22: error: redefinition of 'kRDFServiceCID' when building with 12 unified sources instead of 16 [qa-] RESOLVED FIXED
945588 SkConfig8888.h:44:20: error: redefinition of 'SkCopyBitmapToConfig8888' when building with 12 unified sources instead of 16 [qa-] RESOLVED FIXED
945589 ScriptedNotificationObserver.h:16:7: error: redefinition of 'ScriptedNotificationObserver' when building with 12 unified sources instead of 16 [qa-] RESOLVED FIXED
945590 nsCellMap.h:217:26: error: reference to 'Corner' is ambiguous when building with 12 unified sources instead of 16 [qa-] RESOLVED FIXED
945592 nsISupportsPrimitives.h:33:5: error: expected '}' when building with 12 unified sources instead of 16 [qa-] RESOLVED FIXED
946209 Build intl/strres in unified mode [qa-] RESOLVED FIXED
946210 Build dom/telephony in unified mode [qa-] RESOLVED FIXED
946212 Put all of dom/encoding into unified mode [qa-] RESOLVED FIXED
946214 Build dom/devicestorage in unified mode [qa-] RESOLVED FIXED
946216 Build content/media/plugins in unified mode [qa-] RESOLVED FIXED
946217 Build intl/lwbrk in unified mode [qa-] RESOLVED FIXED
946218 Build intl/chardet in unified mode [qa-] RESOLVED FIXED
946219 Build intl/hyphenation in unified mode [qa-] RESOLVED FIXED
946221 Build intl/locale in unified mode [qa-] RESOLVED FIXED
946576 Disable unified builds on all debug builds RESOLVED FIXED
947734 Build netwerk/protocol/about in unified mode RESOLVED FIXED
947735 Build modules/libmar/ in unified mode [qa-] RESOLVED FIXED
947736 Build modules/libpref/ in unified mode RESOLVED FIXED
947737 Build dom/indexedDB in unified mode RESOLVED FIXED
947979 Build parts of media/libvpx in unified mode RESOLVED FIXED
948777 Build netwerk/sctp/src in unified mode [necko-would-take] RESOLVED FIXED
950503 Build accessible/src/windows in unified mode RESOLVED FIXED
950505 Build content/media/wmf in unified mode RESOLVED FIXED
950506 Build content/media/directshow in unified mode RESOLVED FIXED
950507 Build content/media/fmp4 in unified mode RESOLVED FIXED
950508 Build widget/windows in unified mode RESOLVED FIXED
950676 Bring back b2g unified builds RESOLVED FIXED
974900 The Skia build is no longer unified as of bug 910754 RESOLVED FIXED
996738 LayerSorter.cpp doesn't play nicely with unified builds RESOLVED FIXED
996742 CompositableHost.cpp forward-declares Matrix4x4 in wrong namespace RESOLVED FIXED
996768 ContainerLayer{D3D10,Composite}.cpp don't play nicely with unified builds RESOLVED FIXED
997380 GLContext.h has an ambiguous strdup in unified builds RESOLVED FIXED
997383 ImageBridgeParent.cpp plays fast and loose with using statements, making Xlib sad RESOLVED FIXED
1028420 Non-unified build fails when using --enable-warnings-as-errors RESOLVED FIXED
1029678 unified build fails in extensions/spellcheck/src & extensions/spellcheck/hunspell/src RESOLVED FIXED
1061942 Switch back security/certverifier and security/manager to use unified builds RESOLVED FIXED
1072289 Build clearkey in unified mode RESOLVED FIXED
1072294 Build all of the files in content/media/mp4 in unified mode RESOLVED FIXED
1072299 Build dom/animation in unified mode RESOLVED FIXED
1072301 Build the cross platform camera code in unified mode RESOLVED FIXED
1072310 Build more DOM code in unified mode RESOLVED FIXED
1072700 Build the b2g specific camera code in unified mode RESOLVED FIXED
1072701 Build some Firefox OS specific DOM code in unified mode RESOLVED FIXED
1084369 Build dom/cellbroadcast in unified mode RESOLVED FIXED
1111225 Build more files in netwerk/cache2 in unified mode; r=glandium RESOLVED FIXED
1140763 Build dom/media/gtest in unified mode RESOLVED FIXED
1140765 Build some network code in unified mode RESOLVED FIXED
1140766 Build more files in image/decoders in unified mode RESOLVED FIXED
1140767 Build more files in security/manager in unified mode RESOLVED FIXED
1140771 Build more XPCOM code in unified mode RESOLVED FIXED
1146204 Build libopus in unified mode RESOLVED FIXED
1146888 Build more files in ipc/chromium in unified mode RESOLVED FIXED
1147242 Build xpcom/glue/standalone in unified mode RESOLVED WONTFIX
1147243 Build memory/jemalloc in unified mode RESOLVED FIXED
1175217 nsDisplayListInvalidation.cpp doesn't compile in non-unified mode (or if it's the first file in a unified group) RESOLVED FIXED
1178833 RestyleTracker.cpp doesn't compile in non-unified mode RESOLVED FIXED
1178842 nsDisplayList.cpp doesn't compile in non-unified mode RESOLVED FIXED
1187088 Use UNIFIED_SOURCES in widget/android RESOLVED FIXED
1192587 Build media/libav in unified mode RESOLVED FIXED
1194948 Build gfx/ipc in unified mode and mark as FAIL_ON_WARNINGS RESOLVED FIXED
1195186 Build pocketsphinx and sphinxbase in unified mode RESOLVED FIXED
1348991 Use unified sources in startup cache RESOLVED FIXED
1348998 Build XML with unified sources RESOLVED FIXED
1349002 Build DMD with unified sources RESOLVED FIXED
1350423 Remove unused PL_ARENA macro is nsStaticNameTable RESOLVED FIXED
1351820 Build more more netwerk files in unified mode [necko-active] RESOLVED FIXED
1351831 Build more xpconnect code in unified sources RESOLVED FIXED
1351910 Build more files as unified in ipc/glue RESOLVED FIXED
1362644 Build more SpiderMonkey files in unified mode RESOLVED FIXED

210 Total; 0 Open (0%); 210 Resolved (100%); 0 Verified (0%);


Directories already ported are listed below (see \o/ UNIFIED_SOURCES \o/ in the list below).

Script to track porting status

Here is a script; run it from the root of your source directory to generate a report on the porting status and number of cpp files under each source directory.

#!/bin/bash

MOZBUILDFILES="`find . -name moz.build | grep -v \\./obj`"

logfile="unified-conversion-status.log"

filescount=`echo "$MOZBUILDFILES" | wc -l`
fileindex=0

(while read -r mozbuildfile
do
  fileindex=$((fileindex + 1))
  mozbuilddir="`dirname "$mozbuildfile"`"
  numcpp=`find $mozbuilddir -name "*.cpp" -o -name "*.C" -o -name "*.cc" -o -name "*.mm" -maxdepth 1 | wc -l`
  if [ $numcpp -eq 0 ]
  then
    continue
  fi
  if ! ( grep -wq SOURCES "$mozbuildfile" || grep -wq UNIFIED_SOURCES "$mozbuildfile" )
  then
    continue
  fi
  echo -ne "\r$((100 * fileindex / filescount))%    $mozbuilddir\033[0K" \
    1>&2
  outputline="$numcpp $mozbuilddir"
  unified_msg=
  if grep -q UNIFIED_SOURCES "$mozbuildfile"
  then
    outputline="$outputline \o/ UNIFIED_SOURCES \o/"
  fi
  echo "$outputline"
done <<< "$MOZBUILDFILES") | sort -rn > "$logfile"

echo -e "\rResults written to $logfile\033[0K"

Current porting status

This is just the output of the above script; use it to find a new directory to work on.

The first column is the number of cpp files below each directory, so the higher number hint loosely at greater potential benefits.

Directories that are already ported have \o/ UNIFIED_SOURCES \o/ written next to them.

    143 ./content/svg/content/src \o/ UNIFIED_SOURCES \o/
     91 ./content/base/src
     76 ./content/html/content/src
     74 ./gfx/thebes
     70 ./xpcom/reflect/xptcall/src/md/unix
     65 ./xpcom/tests
     64 ./netwerk/base/src
     64 ./js/src/jsapi-tests
     55 ./security/manager/ssl/src
     53 ./content/canvas/src
     49 ./toolkit/crashreporter/google-breakpad/src/processor
     47 ./widget/windows
     46 ./layout/generic \o/ UNIFIED_SOURCES \o/
     44 ./layout/style \o/ UNIFIED_SOURCES \o/
     44 ./gfx/harfbuzz/src
     41 ./layout/xul/base/src \o/ UNIFIED_SOURCES \o/
     40 ./netwerk/test
     40 ./content/events/src
     39 ./widget/cocoa
     39 ./js/src
     39 ./gfx/2d
     38 ./content/xslt/src/xpath
     38 ./content/media
     37 ./dom/base
     36 ./layout/base \o/ UNIFIED_SOURCES \o/
     36 ./gfx/graphite2/src
     35 ./xpcom/glue
     35 ./layout/svg \o/ UNIFIED_SOURCES \o/
     35 ./ipc/ipdl/test/cxx
     33 ./parser/html \o/ UNIFIED_SOURCES \o/
     33 ./netwerk/protocol/http
     32 ./js/xpconnect/src
     31 ./gfx/ots/src
     31 ./content/media/webaudio
     30 ./content/xslt/src/xslt
     28 ./widget/xpwidgets \o/ UNIFIED_SOURCES \o/
     27 ./widget/gtk
     26 ./xpcom/io
     26 ./tools/profiler
     26 ./toolkit/xre
     26 ./toolkit/crashreporter/google-breakpad/src/common
     26 ./gfx/gl
     26 ./content/xul/templates/src
     25 ./ipc/glue
     25 ./extensions/universalchardet/src/base
     25 ./dom/plugins/ipc
     24 ./xpcom/base
     24 ./widget/qt
     24 ./image/src
     24 ./content/smil
     24 ./accessible/src/base
     23 ./storage/src
     22 ./xpcom/ds
     22 ./toolkit/crashreporter/google-breakpad/src/common/linux
     22 ./layout/mathml \o/ UNIFIED_SOURCES \o/
     22 ./editor/libeditor/base \o/ UNIFIED_SOURCES \o/
     22 ./dom/indexedDB
     21 ./dom/plugins/base
     19 ./accessible/src/windows/msaa
     19 ./accessible/src/atk
     18 ./xpcom/string/src
     18 ./widget/os2
     18 ./widget/android
     18 ./layout/forms \o/ UNIFIED_SOURCES \o/
     18 ./gfx/layers
     18 ./gfx/angle/src/libGLESv2
     18 ./dom/bluetooth
     18 ./content/media/webaudio/blink
     17 ./netwerk/cache
     17 ./editor/libeditor/html \o/ UNIFIED_SOURCES \o/
     17 ./dom/system/gonk
     17 ./dom/file
     17 ./content/xbl/src
     16 ./toolkit/components/places
     16 ./netwerk/cache2
     16 ./intl/uconv/src \o/ UNIFIED_SOURCES \o/
     16 ./dom/workers
     16 ./dom/camera
     15 ./js/jsd
     15 ./dom/ipc
     14 ./rdf/base/src
     13 ./widget/windows/winrt
     13 ./parser/htmlparser/src \o/ UNIFIED_SOURCES \o/
     13 ./gfx/src
     13 ./extensions/spellcheck/hunspell/src
     12 ./widget/gonk
     12 ./toolkit/mozapps/update/updater
     12 ./toolkit/crashreporter/google-breakpad/src/common/mac
     12 ./layout/tables \o/ UNIFIED_SOURCES \o/
     12 ./docshell/base
     12 ./accessible/src/xul
     12 ./accessible/src/windows/ia2
     12 ./accessible/src/generic
     11 ./xpcom/threads
     11 ./xpcom/build
     11 ./toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer
     11 ./toolkit/components/url-classifier
     11 ./netwerk/streamconv/converters
     11 ./gfx/ycbcr
     11 ./dom/plugins/base/android
     11 ./dom/mobilemessage/src
     11 ./content/media/webspeech/recognition
     10 ./accessible/src/mac
      9 ./media/libsoundtouch/src \o/ UNIFIED_SOURCES \o/
      9 ./layout/xul/tree \o/ UNIFIED_SOURCES \o/
      9 ./layout/xul/grid \o/ UNIFIED_SOURCES \o/
      9 ./layout/inspector/src \o/ UNIFIED_SOURCES \o/
      9 ./dom/network/src
      8 ./xpfe/appshell/src
      8 ./uriloader/exthandler
      8 ./python/mozbuild/mozbuild/test/frontend/data/variable-passthru
      8 ./python/mozbuild/mozbuild/test/backend/data/variable_passthru
      8 ./netwerk/wifi \o/ UNIFIED_SOURCES \o/
      8 ./extensions/spellcheck/src
      8 ./editor/composer/src \o/ UNIFIED_SOURCES \o/
      8 ./caps/src
      8 ./accessible/src/html
      7 ./mozglue/build
      7 ./modules/libjar \o/ UNIFIED_SOURCES \o/
      7 ./intl/lwbrk/src
      7 ./intl/locale/src
      7 ./image/decoders
      7 ./content/media/directshow
      7 ./content/html/document/src
      6 ./xpcom/reflect/xptcall/src/md/win32
      6 ./widget/gonk/nativewindow
      6 ./uriloader/prefetch
      6 ./tools/jprof
      6 ./toolkit/system/gnome
      6 ./toolkit/crashreporter/client
      6 ./toolkit/components/startup
      6 ./toolkit/components/maintenanceservice
      6 ./security/manager/pki/src
      6 ./security/manager/boot/src
      6 ./netwerk/protocol/ftp
      6 ./netwerk/ipc \o/ UNIFIED_SOURCES \o/
      6 ./mozglue/linker
      6 ./modules/libjar/zipwriter/src \o/ UNIFIED_SOURCES \o/
      6 ./js/xpconnect/wrappers
      6 ./extensions/cookie
      6 ./extensions/auth
      6 ./embedding/browser/webBrowser
      6 ./editor/libeditor/text \o/ UNIFIED_SOURCES \o/
      6 ./dom/telephony
      6 ./dom/src/storage
      6 ./content/xul/document/src
      6 ./content/media/wmf
      6 ./content/media/webspeech/synth
      6 ./content/media/webrtc
      6 ./content/media/omx
      5 ./widget/gonk/libdisplay
      5 ./toolkit/crashreporter/google-breakpad/src/client/solaris/handler
      5 ./toolkit/crashreporter/google-breakpad/src/client/mac/handler
      5 ./toolkit/crashreporter/google-breakpad/src/client/mac/crash_generation
      5 ./toolkit/components/downloads
      5 ./other-licenses/skia-npapi
      5 ./netwerk/protocol/wyciwyg \o/ UNIFIED_SOURCES \o/
      5 ./netwerk/protocol/about
      5 ./netwerk/dns
      5 ./modules/libpref/src
      5 ./memory/mozalloc
      5 ./layout/printing \o/ UNIFIED_SOURCES \o/
      5 ./intl/unicharutil/util \o/ UNIFIED_SOURCES \o/
      5 ./intl/unicharutil/src \o/ UNIFIED_SOURCES \o/
      5 ./intl/locale/src/unix
      5 ./gfx/angle/src/libEGL
      5 ./embedding/components/commandhandler/src
      5 ./editor/txmgr/src \o/ UNIFIED_SOURCES \o/
      5 ./content/xslt/src/base
      5 ./content/media/omx/mediaresourcemanager
      5 ./content/media/mediasource
      5 ./content/media/gstreamer
      4 ./xpcom/reflect/xptinfo/src
      4 ./xpcom/components
      4 ./toolkit/crashreporter
      4 ./netwerk/socket \o/ UNIFIED_SOURCES \o/
      4 ./netwerk/protocol/websocket \o/ UNIFIED_SOURCES \o/
      4 ./netwerk/protocol/device \o/ UNIFIED_SOURCES \o/
      4 ./netwerk/cookie
      4 ./mozglue/android
      4 ./layout/tools/layout-debug/src \o/ UNIFIED_SOURCES \o/
      4 ./intl/locale/src/windows
      4 ./intl/locale/src/os2
      4 ./gfx/cairo/cairo/src
      4 ./extensions/pref/autoconfig/src
      4 ./embedding/components/printingui/src/win
      4 ./dom/time
      4 ./dom/quota
      4 ./dom/fmradio/ipc
      4 ./dom/encoding
      4 ./docshell/shistory/src
      4 ./content/xml/document/src
      4 ./content/xml/content/src
      4 ./content/media/plugins
      4 ./content/media/ogg
      4 ./chrome/src
      4 ./accessible/src/xpcom
      3 ./widget/shared
      3 ./tools/trace-malloc/lib
      3 ./tools/trace-malloc
      3 ./toolkit/system/dbus
      3 ./toolkit/crashreporter/google-breakpad/src/common/solaris
      3 ./toolkit/crashreporter/google-breakpad/src/client/linux/handler
      3 ./toolkit/components/remote
      3 ./toolkit/components/ctypes/tests
      3 ./startupcache
      3 ./rdf/tests/dsds
      3 ./parser/xml/src
      3 ./netwerk/protocol/data \o/ UNIFIED_SOURCES \o/
      3 ./mobile/android/components/build
      3 ./layout/build
      3 ./js/xpconnect/tests/components/native
      3 ./js/xpconnect/loader
      3 ./js/src/shell
      3 ./js/ipc
      3 ./ipc/testshell
      3 ./ipc/dbus
      3 ./intl/locale/src/mac
      3 ./intl/hyphenation/src
      3 ./image/decoders/icon
      3 ./hal
      3 ./gfx/ipc
      3 ./embedding/tests/winEmbed
      3 ./embedding/components/windowwatcher/src
      3 ./embedding/components/printingui/src/unixshared
      3 ./embedding/components/printingui/src/os2
      3 ./embedding/components/printingui/src/mac
      3 ./editor/txtsvc/src \o/ UNIFIED_SOURCES \o/
      3 ./dom/wifi
      3 ./dom/power
      3 ./dom/media
      3 ./dom/gamepad
      3 ./dom/devicestorage
      3 ./dom/audiochannel
      3 ./content/xul/content/src
      3 ./content/media/webm
      3 ./content/media/encoder
      3 ./browser/components/shell/src
      3 ./accessible/src/windows/sdn
      2 ./xpcom/sample
      2 ./xpcom/reflect/xptcall/src/md/test
      2 ./widget/qt/faststartupqt
      2 ./view/src
      2 ./uriloader/base
      2 ./toolkit/xre/test/win
      2 ./toolkit/system/unixproxy
      2 ./toolkit/mozapps/update/tests
      2 ./toolkit/mozapps/plugins/tests
      2 ./toolkit/library
      2 ./toolkit/crashreporter/test
      2 ./toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation
      2 ./toolkit/crashreporter/google-breakpad/src/client
      2 ./toolkit/components/mediasniffer
      2 ./toolkit/components/autocomplete
      2 ./toolkit/components/alerts
      2 ./testing/tools/screenshot
      2 ./security/manager/ssl/tests/unit/tlsserver/lib
      2 ./rdf/datasource/src
      2 ./profile/dirserviceprovider/src
      2 ./netwerk/system/qt
      2 ./netwerk/streamconv/test
      2 ./netwerk/protocol/viewsource \o/ UNIFIED_SOURCES \o/
      2 ./netwerk/protocol/rtsp
      2 ./netwerk/protocol/file \o/ UNIFIED_SOURCES \o/
      2 ./mozglue/tests
      2 ./layout/ipc \o/ UNIFIED_SOURCES \o/
      2 ./js/xpconnect/shell
      2 ./ipc/app
      2 ./intl/unicharutil/tests
      2 ./intl/strres/src
      2 ./intl/chardet/src
      2 ./extensions/universalchardet/src/xpcom
      2 ./extensions/permissions
      2 ./embedding/components/find/src
      2 ./dom/system/unix
      2 ./dom/system/android
      2 ./dom/system
      2 ./dom/src/notification
      2 ./dom/src/geolocation
      2 ./dom/promise
      2 ./dom/plugins/ipc/interpose
      2 ./dom/plugins/ipc/hangui
      2 ./dom/indexedDB/ipc
      2 ./dom/fmradio
      2 ./content/xslt/src/xml
      2 ./content/media/webspeech/synth/pico
      2 ./content/media/wave
      2 ./content/media/raw
      2 ./content/media/apple
      2 ./content/mathml/content/src
      2 ./build/unix/elfhack
      2 ./browser/metro/shell/commandexecutehandler
      2 ./accessible/src/other
      1 ./xulrunner/tools/redit
      1 ./xulrunner/stub
      1 ./xulrunner/examples/simple/components/src
      1 ./xulrunner/app
      1 ./xpfe/components/windowds
      1 ./xpfe/components/directory
      1 ./xpfe/components/build
      1 ./xpcom/windbgdlg
      1 ./xpcom/tests/external
      1 ./xpcom/tests/component_no_aslr
      1 ./xpcom/tests/component
      1 ./xpcom/tests/bug656331_component
      1 ./xpcom/sample/program
      1 ./xpcom/reflect/xptinfo/tests
      1 ./xpcom/reflect/xptcall/tests
      1 ./xpcom/reflect/xptcall/src/md/os2
      1 ./xpcom/reflect/xptcall/src
      1 ./xpcom/glue/tests/gtest
      1 ./xpcom/glue/standalone
      1 ./webapprt/win
      1 ./webapprt/mac
      1 ./webapprt/gtk2
      1 ./uriloader/exthandler/tests
      1 ./tools/jprof/stub
      1 ./toolkit/system/windowsproxy
      1 ./toolkit/system/osxproxy
      1 ./toolkit/system/androidproxy
      1 ./toolkit/profile
      1 ./toolkit/library/winvccorlib
      1 ./toolkit/identity
      1 ./toolkit/devtools/server
      1 ./toolkit/crashreporter/injector
      1 ./toolkit/components/typeaheadfind
      1 ./toolkit/components/telemetry
      1 ./toolkit/components/statusfilter
      1 ./toolkit/components/satchel
      1 ./toolkit/components/reflect
      1 ./toolkit/components/perf
      1 ./toolkit/components/parentalcontrols
      1 ./toolkit/components/jsdownloads/src
      1 ./toolkit/components/intl
      1 ./toolkit/components/find
      1 ./toolkit/components/finalizationwitness
      1 ./toolkit/components/filepicker
      1 ./toolkit/components/diskspacewatcher
      1 ./toolkit/components/ctypes
      1 ./toolkit/components/commandlines
      1 ./toolkit/components/build
      1 ./testing/mochitest/ssltunnel
      1 ./storage/build
      1 ./services/crypto/component
      1 ./security/sandbox/win/src/sandboxbroker
      1 ./security/sandbox/linux
      1 ./security/manager/ssl/tests/unit/tlsserver/cmd
      1 ./rdf/util/src
      1 ./rdf/tests/triplescat
      1 ./rdf/tests/rdfpoll
      1 ./rdf/tests/rdfcat
      1 ./rdf/build
      1 ./netwerk/system/win32
      1 ./netwerk/system/mac
      1 ./netwerk/system/android
      1 ./netwerk/streamconv/src
      1 ./netwerk/sctp/src
      1 ./netwerk/sctp/datachannel
      1 ./netwerk/protocol/res
      1 ./netwerk/protocol/app
      1 ./netwerk/mime
      1 ./netwerk/build
      1 ./memory/replace/dmd
      1 ./media/omx-plugin/lib/ics/libutils
      1 ./media/omx-plugin/lib/ics/libstagefright
      1 ./media/omx-plugin/lib/hc/libstagefright
      1 ./media/omx-plugin/lib/gb235/libstagefright
      1 ./media/omx-plugin/lib/gb/libutils
      1 ./media/omx-plugin/lib/gb/libstagefright_color_conversion
      1 ./media/omx-plugin/lib/gb/libstagefright
      1 ./media/omx-plugin/lib/froyo/libstagefright
      1 ./media/omx-plugin/hc
      1 ./media/omx-plugin/gb235
      1 ./media/omx-plugin/gb
      1 ./media/omx-plugin/froyo
      1 ./media/omx-plugin
      1 ./media/libspeex_resampler/src
      1 ./media/libcubeb/src
      1 ./js/src/gdb
      1 ./js/ductwork/debugger
      1 ./ipc/unixsocket
      1 ./ipc/ril
      1 ./ipc/nfc
      1 ./ipc/netd
      1 ./ipc/keystore
      1 ./ipc/ipdl/test/cxx/app
      1 ./intl/build
      1 ./image/encoders/png
      1 ./image/encoders/jpeg
      1 ./image/encoders/ico
      1 ./image/encoders/bmp
      1 ./image/decoders/icon/win
      1 ./image/decoders/icon/qt
      1 ./image/decoders/icon/os2
      1 ./image/decoders/icon/mac
      1 ./image/decoders/icon/gtk
      1 ./image/decoders/icon/android
      1 ./image/build
      1 ./extensions/widgetutils/src
      1 ./extensions/gnomevfs
      1 ./extensions/gio
      1 ./embedding/components/webbrowserpersist/src
      1 ./embedding/components/build
      1 ./embedding/components/appstartup/src
      1 ./embedding/browser/build
      1 ./dom/voicemail
      1 ./dom/system/windows
      1 ./dom/system/mac
      1 ./dom/src/offline
      1 ./dom/src/jsurl
      1 ./dom/src/json
      1 ./dom/src/events
      1 ./dom/nfc
      1 ./dom/media/bridge
      1 ./dom/icc/src
      1 ./dom/cellbroadcast/src
      1 ./dom/browser-element
      1 ./dom/battery
      1 ./dom/apps/src
      1 ./dom/alarm
      1 ./dom/activities/src
      1 ./docshell/build
      1 ./content/svg/document/src
      1 ./build/win32/vmwarerecordinghelper
      1 ./build/win32/crashinjectdll
      1 ./build/win32
      1 ./build/unix/stdc++compat
      1 ./browser/metro/shell/testing
      1 ./browser/metro/shell/linktool
      1 ./browser/components/migration/src
      1 ./browser/components/feeds/src
      1 ./browser/components/dirprovider
      1 ./browser/components/build
      1 ./browser/components/about
      1 ./browser/app
      1 ./b2g/gaia
      1 ./b2g/app
      1 ./accessible/src/windows/uia