Граф коммитов

14 Коммитов

Автор SHA1 Сообщение Дата
Tom Ritter 302cef9ace Bug 1407359 Set up a framework for patching the MinGW toolchain r=glandium
MozReview-Commit-ID: 8HtjLXAIXTP

--HG--
extra : rebase_source : b32cb4ac931c9dc599572bc5e726e4d68982c8a4
2017-10-16 20:52:47 -05:00
Tom Ritter 095b4bfda8 Bug 1330608 Add the MinGW32 toolchain build to Taskcluster r=glandium
MozReview-Commit-ID: JHS6y8kqr4T

--HG--
extra : rebase_source : e04692af64312db7028d4123075e02d8b9127ef2
2017-09-22 00:24:58 -05:00
Mike Hommey 614312f061 Bug 1386588 - Change the GCC build script to be future-proof. r=gps
It becomes a library of some sort, so that multiple scripts can benefit
from it to build different versions of GCC.

The GPG key associated with GCC is also refreshed from keys.gnupg.net,
adding a new subkey, used to sign newer versions of GCC (and
postprocessed with pgpstrip to make it smaller).
2017-08-03 08:12:47 +09:00
Steve Fink 7e29e4b949 Bug 1339989 - Add --no-build option to build-gcc.sh, r=glandium
--HG--
extra : rebase_source : c642a75ceef62cdcd973ab121fd177de770d1b24
2017-04-17 14:51:17 -07:00
Mike Hommey 226427e5a2 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.

--HG--
extra : rebase_source : e6809a6ac392e6c5f99801826e1d30bdeee7ddf5
2017-02-01 16:35:29 +09:00
Mike Hommey 4a68fd13bf Bug 1335667 - Use `set -e` instead of manual `exit 1`. r=froydnj
--HG--
extra : rebase_source : 2cdffa62dafab2f9cc588122bdb3240d92a8d188
2017-02-01 16:35:18 +09:00
Nathan Froyd d3f03b9167 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 a172eece8b 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
Mike Hommey 3fe18eae3b 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
Ehsan Akhgari 7e6947b21f Bug 1203393 follow-up: Address one review comment
DONTBUILD
2015-09-22 08:44:25 -04:00
Ehsan Akhgari 59a5270f5c Bug 1203393 - Part 1: Create a stand-alone clang for Linux; r=glandium
We build gcc after clang, and extract libgcc libraries and libstdc++
headers from gcc and place them in the clang installation directory in a
way that clang favors before it searches the system for libraries and
includes.
2015-09-22 08:30:07 -04:00
Mike Hommey 6d051ab201 Bug 1154187 - Improve the build-gcc.sh script to build GCC snapshots. r=tbsaunde 2015-04-15 09:21:23 +09:00
Mike Hommey 241c0a5d19 Bug 965122 - Add gcc patch for PR55650, r=tbsaunde 2014-01-29 13:02:49 +09:00
Trevor Saunders c59a010330 bug 913442 - rewrite build-gcc.py r=glandium DONTBUILD because NPOTB 2013-09-12 01:14:32 -04:00