Commit Graph

588 Commits

Author SHA1 Message Date
Ting-Yu Chou
95fbf1b924 Bug 1333003 part 4 - Package the binary of llvm-symbolizer also on Windows. r=ted
MozReview-Commit-ID: 4nhVgQTJ7Bz
2017-03-10 12:24:02 +08:00
Mike Hommey
88c00ebb52 Bug 1353661 - Don't build elfhack/inject during export. r=mshal
When the clang plugin is used, building something during export needs to
happen after the plugin is built. But there is no dependency ensuring
this happens.

OTOH, these sources in elfhack/inject don't need to be built that early,
so we'll just leave to the build system to build it at a proper time.
2017-04-05 18:01:33 +09:00
Wes Kocher
3095b422dc Backed out 7 changesets (bug 1333003) for windows asan failures a=backout
Backed out changeset 3d2b2eeda8d3 (bug 1333003)
Backed out changeset 400d409ba4ca (bug 1333003)
Backed out changeset 1ba027abdfc9 (bug 1333003)
Backed out changeset 70114135bd8c (bug 1333003)
Backed out changeset 5715b15e33c0 (bug 1333003)
Backed out changeset 375e952bd738 (bug 1333003)
Backed out changeset d5d4112599f2 (bug 1333003)

MozReview-Commit-ID: DZUHJTdjX7V
2017-03-23 11:01:44 -07:00
Ting-Yu Chou
ab657abd55 Bug 1333003 part 4 - Package the binary of llvm-symbolizer also on Windows. r=ted
MozReview-Commit-ID: 4nhVgQTJ7Bz
2017-03-10 12:24:02 +08:00
Carsten "Tomcat" Book
e1108f2cbf Backed out changeset d88370d20b83 (bug 1333003) 2017-03-23 10:38:13 +01:00
Ting-Yu Chou
e2e544aad4 Bug 1333003 part 4 - Package the binary of llvm-symbolizer also on Windows. r=ted
MozReview-Commit-ID: 4nhVgQTJ7Bz
2017-03-10 12:24:02 +08:00
Jesse Schwartzentruber
7bc7b54490 Bug 1335411 - Fix --enable-address-sanitizer for Mac cross-compilation and adapt Linux ASan configs for Mac. r=froydnj 2017-02-10 11:10:23 -05:00
Mike Hommey
8bd0ca5655 Bug 1338016 - Use clang from tooltool to build hfsplus. r=mshal 2017-02-09 11:37:28 +09:00
Mike Hommey
cdf0b42cad Bug 1335667 - Validate all downloaded sources when building GCC. r=froydnj
We can just check the GPG signature for the upstream tarballs that are
GPG signed. We keep a copy of the relevant GPG keys in tree so that
we only use a controlled set of keys.

I validated the GPG keys by:
- Creating a fresh keyring.
- Importing the keys with gpg --receive-key.
- Importing my own GPG public key in that keyring.
- Importing the gpg keys that the PGP pathfinder told me were on the path
  to those keys (which weren't directly in their keyring, so I had to
  manually find some steps first).
- Using `gpg --check-sigs` to validate that the all those keys I got are
  the right ones.

Then the relevant GPG keys were exported with `gpg --export --armor` and
stripped with https://github.com/glandium/pgpstrip/.

For MPC, the first GPG-signed version upstream was 0.8.2, while the GCC
script to download prerequisites downloads 0.8.1. So instead of using
0.8.1, we use 0.8.2, which we can verify.

For GMP, the GCC script downloads 4.3.2. The only web-of-trust path is
through a revoked key, which signs a revoked uid of the GMP key.
Releases newer than 5.1.0 are signed with a new key that can be
validated with the steps above. So instead of using 4.3.2, we use 5.1.3
(last of the 5.1.x line).

But MPFR 2.4.2, which the GCC script downloads, doesn't build against
GMP 5.1.3, so instead of that, we use MPFR 3.1.5.

Sadly, the remaining GCC prerequisites are not signed, so I had to:
- Download the files from ftp.gnu.org.
- Download the corresponding files from snapshot.debian.org.
- Compare the raw files when possible, or the uncompressed (not extracted)
  files (when, thankfully, they matched).
- Validate those snapshot.debian.org files checksums against the
  checksums in the corresponding Sources.bz2/xz files.
- Validate the Sources.bz2/xz checksums against the corresponding InRelease
  files.
- Validate the InRelease files GPG signatures against the Debian
  archives keyring.

With all those things we actually don't get through the GCC script, we
also change how we get those prerequisites, by diverting the commands
the script runs and making it output the urls instead of downloading and
extracting the files.

All downloaded files, GPG-validated or otherwise, have their SHA-256
digest checked against a list in build/unix/build-gcc/checksums.
2017-02-01 16:35:29 +09:00
Mike Hommey
8aaadb87f3 Bug 1335667 - Use set -e instead of manual exit 1. r=froydnj 2017-02-01 16:35:18 +09:00
Justin Wood
1c93b9e148 Bug 1197325 - Generate mkfs.hfsplus. r=ted
MozReview-Commit-ID: Dl0eBQR8XFR
2017-01-30 13:12:57 -05:00
Phil Ringnalda
dc6ead507c Backed out 3 changesets (bug 1197325) for adding a burning Cc(hfsplus) job
CLOSED TREE

Backed out changeset 158233bce738 (bug 1197325)
Backed out changeset b5ac3fa0bbe7 (bug 1197325)
Backed out changeset 55a8ad127517 (bug 1197325)
2017-02-06 20:04:55 -08:00
Justin Wood
30441812e6 Bug 1197325 - Generate mkfs.hfsplus. r=ted
MozReview-Commit-ID: Dl0eBQR8XFR
2017-01-30 13:12:57 -05:00
Benjamin Smedberg
3a243797b4 Bug 1333826 - Remove SDK_FILES, SDK_LIBRARY, and related is_sdk support in the build goop, r=mshal
MozReview-Commit-ID: 52vPyDXdFte
2017-01-30 11:24:10 -05:00
Benjamin Smedberg
32bc3d978c Bug 1333826 - Remove all references to MOZ_AUTOMATION_SDK, r=mshal
MozReview-Commit-ID: CuTK1hn0pVl
2017-01-25 12:30:49 -05:00
Nathan Froyd
26c2b42084 Bug 1029245 - part 1 - modify build-gcc.sh to build GCC 4.9.4; r=glandium
PR 64905 apparently never got backported to 4.9.x, so we still need the
patch for that.
2016-12-21 04:28:08 -05:00
Mike Hommey
a71728b346 Bug 1321065 - Default to --enable-profiling for nightly milestones. r=gps 2016-11-30 06:47:38 +09:00
Henri Sivonen
5fd7fb8304 Bug 1274196 - Turn on SSE2 autovectorization and SSE2-based floating-point math for 32-bit Linux. r=glandium.
MozReview-Commit-ID: K8CMfRxcLBH
2016-10-05 18:59:12 +03:00
Enes Goktas
705a4ffd34 Bug 1272629 - Add taskcluster task to build binutils package; r=glandium
MozReview-Commit-ID: AEOShpN8ZMI
2016-09-14 18:47:50 -07:00
Tom Tromey
1b5a2bdb96 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx
2016-07-14 10:16:42 -06:00
Steve Fink
8bebbe85a3 Bug 1280637 - Make --enable-thread-sanitizer & friends do more work, r=glandium
MozReview-Commit-ID: KinAe8zLivJ
2016-07-12 17:30:23 -07:00
Mike Hommey
575837aa09 Bug 1280338 - Use tooltool GCC's ld on TSan builds. r=froydnj
Something similar was done in bug 1278718 for ASan builds, because of
indirect dependencies on libstdc++ being picked by the linker and
leading to linkage failure with the older binutils from the CentOS 6
image we use to do desktop builds.
2016-06-16 16:16:51 +09:00
Mike Hommey
1f23006556 Bug 1278718 - Use clang 3.8 on ASAN builds. r=decoder 2016-06-15 12:22:56 +09:00
Mike Hommey
d59ff39dd7 Bug 1278456 - Remove stdc++-compat hacks for libstdc++ < 4.6.1. r=froydnj 2016-06-12 18:52:21 +09:00
Mike Hommey
ea2a3c90ca Bug 1278456 - Add the tooltool GCC library directory to LD_LIBRARY_PATH on Linux builds. r=mshal
Build slaves on automation are based on Centos 6, which doesn't have a
recent enough version of libstdc++ for our new requirements. But since
we're building with a recent GCC or clang with its own libstdc++, we do
have such a libstdc++ available somewhere, and the compiler picks it
when invoking the linker.

Problems start happening when we execute some of the built programs
during the build, like host tools (e.g. nsinstall), or target programs
(xpcshell, during packaging). In that case, we need the compiler's
libstdc++ to be used. Which required adding the GCC or clang library
directory to LD_LIBRARY_PATH.

Unconveniently enough, the clang 3.5 tooltool package we're using for
ASAN builds until we can update to at least 3.8 (bug 1278718) doesn't
contain libstdc++.so. So for those builds, pull the GCC package from
tooltool as well, and pick libstdc++ from there.
2016-06-12 18:52:15 +09:00
Mike Hommey
1e81983190 Bug 1261264 - Apply GCC PR64905 to fix miscompilation with -fomit-frame-pointer. r=froydnj
The new GCC tarball was built on
https://tools.taskcluster.net/task-inspector/#ADIOXxgZQ7-9HuqEYZc3mw/0
2016-04-08 06:45:06 +09:00
Edmund Wong
cd5eaf1858 bug 1262057 - Copy TOOLTOOL_DIR to mozconfig.linux. r=glandium 2016-04-06 08:04:00 +02:00
Mike Hommey
d9132d2ec4 Bug 1261263 - Remove test for libstdc++ headers conflict with clang 3.3. r=froydnj
Also remove the hack around it.
2016-04-05 07:16:44 +09:00
Mike Hommey
8c23b81740 Bug 1255813 - Remove build system support for Solaris, HPUX and AIX. r=ted 2016-03-15 07:34:50 +09:00
Mike Hommey
f68a11213f Bug 1175546 - Update GCC to 4.8.5 and bump minimum GCC version required to build. r=froydnj 2016-03-12 09:03:37 +09:00
Mike Shal
4931f25beb Bug 1253431 part 5 - Remove build/unix/Makefile.in; r=gps
MozReview-Commit-ID: 7FhprSrtqyt
2016-01-21 16:46:34 -05:00
Justin Wood
d9c7e30d93 Bug 1242641 - Update gtk3 package in tooltool to specify the fontconfig path in the setup.sh r=glandium 2016-02-05 16:21:19 -05:00
Nick Thomas
82f5fb9c23 Bug 1242641 - GTK+3 still not working for buildbot builds on beta. r=rail
gtk3/setup.sh at unpack time in tooltool
2016-01-29 22:19:48 +13:00
Ehsan Akhgari
e30457f011 Bug 1042132 - Part 1: Port build-clang.py to Windows; r=rail
This is useful for deploying clang-cl to the infrastructure.
2016-02-08 14:55:27 -05:00
Wes Kocher
f18211346e Backed out changeset 65e246baede4 (bug 1242641) for valgrind bustage CLOSED TREE 2016-02-04 11:42:34 -08:00
Nick Thomas
92f19242ed Bug 1242641 - GTK+3 still not working for buildbot builds on beta. r=rail
gtk3/setup.sh at unpack time in tooltool
2016-01-29 22:19:48 +13:00
Mike Hommey
aae5b9dda8 Bug 1245763 - Don't emit Sources objects when there is no Linkable in the same directory. r=gps
We have very few directories where we have SOURCES declared that are not
part of a library or program in some way. In fact, there is only one
where it is legitimate because we only use the object file
(build/unix/elfhack/inject). Others are the result of moz.build control
flow (see e.g. netwerk/standalone), and we end up building more objects
than we need to.

There are other cases where we need objects without actually linking
them anywhere, but there are other sources in the same directory, and a
corresponding Linkable is emitted. And in fact, the only case I knew
about (media/libvpx), doesn't use such objects since bug 1151175.
2016-02-04 17:16:29 +09:00
Ralph Giles
5f688022ec Bug 1243037 - part 3 - move "unix" mozconfig.rust up a level; r=mshal
The unix mozconfig.rust is actually completely generic now that we're
using toolchains built with --enable-rpath in tooltool.

Move the mozconfig.rust fragment up a level to reduce confusion.
2016-01-27 08:19:34 -05:00
Mike Hommey
45de988f32 Bug 1233963 - Work around recent GNU gold behavior with segments starting before the first section they contain. r=froydnj 2016-01-21 13:54:03 +09:00
Ralph Giles
76d773624a Bug 1175359 - Enable rust in linux64 automation builds. r=mshal
Write a mozconfig.rust fragment which makes the rust toolchain
provided by tooltool available for linux builds, similar to
what we do for MacOS X.

Include this in linux64 mozconfigs to enable rust for official
nightly builds of that target. These aren't used outside of automation
builds, so including rust there will verify code on check-in
without requiring developers to install rust.

We must whitelist the mozconfig fragment to pass the consistency
check since we're not ready to let this feature ride the trains
to beta and release.

The tooltool reference is to a custom build of rustc 1.4
with --enable-rpath to avoid having to add the rustc lib
directory to LD_LIBRARY_PATH which somehow conflicts with
the gtk3 build we also install through tooltool.

It is also built with --enable-llvm-static-stdcpp on a
rust-buildbot dist docker image (centos:5 + script updates)
to avoid issues with GLIBCXX and GLIBC symbol versions.
2015-11-30 15:10:24 -08:00
Mike Hommey
dbbc7dfc2d Bug 1186748 - Now that all builds are pulling the Gtk+3 tooltool package, remove the Gtk+2 fallback in mozconfig.gtk. r=mshal 2015-11-04 11:21:49 +09:00
Ehsan Akhgari
ff72432e5f Bug 1210154 - Part 1: Add the patches needed for rust-bindgen to the clang build; r=rail 2015-10-15 10:17:08 -04:00
Ehsan Akhgari
0d477a37d0 Bug 1182727 - Part 19: Fix another stupid mistake in build_tar_package()
DONTBUILD
2015-10-13 16:04:40 -04:00
Ehsan Akhgari
d684aa4ccc Bug 1182727 - Part 18: Fix building clang on OSX 10.8 and older
This is documented on http://libcxx.llvm.org/.
2015-10-09 21:15:23 -04:00
Ehsan Akhgari
5cdac4e2c7 Bug 1182727 - Part 16: Fix a bug in build_tar_package 2015-10-08 11:30:41 -04:00
Ehsan Akhgari
435360634d Bug 1182727 - Part 14: Remove the old files that are not needed any more; r=rail 2015-10-02 11:09:21 -04:00
Ehsan Akhgari
f690def5d2 Bug 1182727 - Part 12: Allow dumping out what the command is doing; r=rail 2015-10-02 11:09:17 -04:00
Ehsan Akhgari
62bb95cfee Bug 1182727 - Part 11: Add a config file for Clang on CentOS6; r=rail 2015-10-02 11:09:15 -04:00
Ehsan Akhgari
875f57fc9a Bug 1182727 - Part 10: Make gcc_dir configurable; r=rail 2015-10-02 11:09:13 -04:00
Ehsan Akhgari
0b63dfe151 Bug 1182727 - Part 9: Make python_path configurable; r=rail 2015-10-02 11:09:11 -04:00