Bug 1399679 - Check differences between builds on CentOS and Debian.
We enable stripping the binaries and ensure STRIP_FLAGS doesn't reduce
the amount of stripping that happens on Linux (where the default of
--strip-debug doesn't strip the symbol stable), so that the comparison
doesn't show differences we don't care about.
We also reduce the noise by excluding differences in .gnu_debuglink
sections, as well as .dynstr. The former is because they are a side
effect of suble changes in debug info (such as line numbers in system
headers) changing the signature used for the debug link. The latter
because in some libraries, there are differences in those sections, but
they are not accompanied with actual changes in the list of symbols,
meaning the only change is in the order in which the strings for the
symbols are laid out, not the symbol lists themselves (which would be
indicated by differences in readelf --section output).
We explicitly don't skip the notes sections differences, despite them
being affected by the same problem as debug link for the build id they
contain, but they also contain other information.
--- a/build/mozconfig.common.override
+++ b/build/mozconfig.common.override
@@ -4,8 +4,10 @@
# Common mozconfig for all users
#
# Add options to this file that will be inherited by all in-tree mozconfigs.
# This file is included at the *end* of the mozconfigs, and so may be used
# to override anything done previously.
#
# The common expected usage is for try builds with nondefault options.
+
+ac_add_options --enable-strip
--- a/build/unix/mozconfig.linux
+++ b/build/unix/mozconfig.linux
@@ -25,8 +25,10 @@ else
fi
. "$topsrcdir/build/unix/mozconfig.stdcxx"
if [ -f /etc/redhat-release ]; then
# PKG_CONFIG_LIBDIR is appropriately overridden in mozconfig.linux32
export PKG_CONFIG_LIBDIR=/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig
fi
+
+export STRIP_FLAGS=" "
--- a/taskcluster/ci/build/linux.yml
+++ b/taskcluster/ci/build/linux.yml
@@ -21,16 +21,47 @@ linux64/opt:
tooltool-downloads: public
need-xvfb: true
toolchains:
- linux64-clang
- linux64-gcc
- linux64-rust
- linux64-sccache
+linux64-deb/opt:
+ description: "Linux64 Opt"
+ index:
+ product: firefox
+ job-name: linux64-deb-opt
+ treeherder:
+ platform: linux64/opt
+ symbol: tc(Bdeb)
+ worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+ worker:
+ docker-image: {in-tree: debian7-amd64-build}
+ max-run-time: 36000
+ env:
+ PERFHERDER_EXTRA_OPTIONS: deb
+ run:
+ using: mozharness
+ actions: [get-secrets build check-test update]
+ config:
+ - builds/releng_base_firefox.py
+ - builds/releng_base_linux_64_builds.py
+ - balrog/production.py
+ script: "mozharness/scripts/fx_desktop_build.py"
+ secrets: true
+ tooltool-downloads: public
+ need-xvfb: true
+ toolchains:
+ - linux64-clang
+ - linux64-gcc
+ - linux64-rust
+ - linux64-sccache
+
linux64-dmd/opt:
description: "Linux64 DMD Opt"
index:
product: firefox
job-name: linux64-dmd-opt
treeherder:
platform: linux64-dmd/opt
symbol: tc(Bdmd)
@@ -267,16 +298,47 @@ linux/opt:
tooltool-downloads: public
need-xvfb: true
toolchains:
- linux64-clang
- linux64-gcc
- linux64-rust
- linux64-sccache
+linux-deb/opt:
+ description: "Linux32 Opt"
+ index:
+ product: firefox
+ job-name: linux-deb-opt
+ treeherder:
+ platform: linux32/opt
+ symbol: tc(Bdeb)
+ worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+ worker:
+ docker-image: {in-tree: debian7-i386-build}
+ max-run-time: 36000
+ env:
+ PERFHERDER_EXTRA_OPTIONS: deb
+ run:
+ using: mozharness
+ actions: [get-secrets build check-test update]
+ config:
+ - builds/releng_base_firefox.py
+ - builds/releng_base_linux_32_builds.py
+ - balrog/production.py
+ script: "mozharness/scripts/fx_desktop_build.py"
+ secrets: true
+ tooltool-downloads: public
+ need-xvfb: true
+ toolchains:
+ - linux64-clang
+ - linux64-gcc
+ - linux64-rust
+ - linux64-sccache
+
linux/debug:
description: "Linux32 Debug"
index:
product: firefox
job-name: linux-debug
treeherder:
platform: linux32/debug
symbol: tc(B)
--- a/taskcluster/ci/build/macosx.yml
+++ b/taskcluster/ci/build/macosx.yml
@@ -58,16 +58,50 @@ macosx64/opt:
- linux64-cctools-port
- linux64-clang
- linux64-hfsplus
- linux64-libdmg
- linux64-llvm-dsymutil
- linux64-rust-macos
- linux64-sccache
+macosx64-deb/opt:
+ description: "MacOS X x64 Cross-compile"
+ index:
+ product: firefox
+ job-name: macosx64-deb-opt
+ treeherder:
+ platform: osx-cross/opt
+ symbol: tc(Bdeb)
+ tier: 1
+ worker-type: aws-provisioner-v1/gecko-{level}-b-macosx64
+ worker:
+ docker-image: {in-tree: debian7-amd64-build}
+ max-run-time: 36000
+ env:
+ TOOLTOOL_MANIFEST: "browser/config/tooltool-manifests/macosx64/cross-releng.manifest"
+ PERFHERDER_EXTRA_OPTIONS: deb
+ run:
+ using: mozharness
+ actions: [get-secrets build update]
+ config:
+ - builds/releng_base_firefox.py
+ - builds/releng_base_mac_64_cross_builds.py
+ script: "mozharness/scripts/fx_desktop_build.py"
+ secrets: true
+ tooltool-downloads: internal
+ toolchains:
+ - linux64-cctools-port
+ - linux64-clang
+ - linux64-hfsplus
+ - linux64-libdmg
+ - linux64-llvm-dsymutil
+ - linux64-rust-macos
+ - linux64-sccache
+
macosx64-dmd/opt:
description: "MacOS X x64 DMD Cross-compile"
index:
product: firefox
job-name: macosx64-dmd-opt
treeherder:
platform: osx-10-10-dmd/opt
symbol: tc(Bdmd)
--- a/taskcluster/ci/diffoscope/kind.yml
+++ b/taskcluster/ci/diffoscope/kind.yml
@@ -23,16 +23,18 @@ transforms:
# generated for each build.
job-defaults:
args: >-
--no-default-limits
--max-page-size 100000000
--max-page-diff-block-lines 10000
--exclude-directory-metadata
--exclude-command .--line-numbers
+ --exclude-command .--hex-dump=\.dynstr
+ --exclude-command .--hex-dump=\.gnu_debuglink
--exclude **/*freeblpriv3.chk
--exclude **/*nssdbm3.chk
--exclude **/*softokn3.chk
# Make a task for each diff we might want. The following are just examples,
# Both original and new can point to builds from the full set of tasks or
# from other sets through an index-search. Other kinds than `build` can be
# compared (for example, static-analysis), provided you adjust the
@@ -52,8 +54,22 @@ job-defaults:
# macosx-build-vs-previous-try:
# symbol: M
# new: build-macosx64/opt
# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.firefox.macosx64-opt}
# win32-build-vs-previous-try:
# symbol: W
# new: build-win32/opt
# original: {index-search: gecko.v2.try.revision.aabd5deb0156f9b55ab60ad6a01ebfc4580bf2e1.firefox.win32-opt}
+
+jobs:
+ linux64-diff:
+ symbol: L64
+ original: build-linux64/opt
+ new: build-linux64-deb/opt
+ linux-diff:
+ symbol: L32
+ original: build-linux/opt
+ new: build-linux-deb/opt
+ macosx64-diff:
+ symbol: M
+ original: build-macosx64/opt
+ new: build-macosx64-deb/opt