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

810 Коммитов

Автор SHA1 Сообщение Дата
Mike Hommey e17b79e152 Bug 1427344 - Build GCC without --disable-initfini-array. r=nfroyd
When building on Debian (which we now are), this means we enable
.init_array/.fini_array.

When building on CentOS, this means no change. Which implies we could
roll back to CentOS-based toolchains by just switching back the
toolchain jobs to use the desktop-build docker image again.

This change causes massive differences in the resulting binaries because
of the offset differences, but practically speaking, there is no
difference. .init_array/.fini_array have been supported in glibc for 18
years.
2018-01-12 21:39:56 +09:00
Mike Hommey c42e9d7d91 Bug 1429918 - Adjust the MPC download url. r=nalexander
--HG--
extra : rebase_source : 28fedbf2c08c179c2b2f1aeb15921d09e817f7af
2018-01-12 06:58:34 +09:00
shindli f1c9a5da78 Backed out changeset 1af647b2f9e8 (bug 1429918) for a request made by the developer on a CLOSED TREE 2018-01-12 00:47:35 +02:00
Mike Hommey e73fcbf697 Bug 1429918 - Adjust the MPC download url. r=nalexander
--HG--
extra : rebase_source : e457431f9aa04c58ec29eb0c6450d43232de12d2
2018-01-12 06:58:34 +09:00
Mike Hommey 0804de7e8e Bug 1430036 - Don't set PKG_CONFIG_LIBDIR when building on Debian. r=ted
--HG--
extra : rebase_source : 06f96fe0060a34f65f1126e3510580e0b6bc4969
2018-01-12 15:16:19 +09:00
Mike Hommey 87c31766de Bug 1429257 - Statically link newfs_hfs against libcrypto. r=gps
For the same reasons as bug 1427266.

--HG--
extra : rebase_source : f27c9d05b2ea74d323fde29c09c2faae9fe8ee19
2018-01-10 09:59:29 +09:00
Mike Hommey e1983fc387 Bug 1429257 - Make build-hfsplus.sh fail when something goes wrong. r=gps
Currently, the build can finish succesfully even when one of the
programs fails to build and is not included in the final artifact. The
macosx build then fails because of that, which is the wrong place to
be failing.

--HG--
extra : rebase_source : 4a41b2f96eea45d3eefa2734900603b6e6ee0ea5
2018-01-10 08:37:44 +09:00
Jean-Luc Bonnafoux 5acf65c7fe Bug 1428629 - elfhack.cpp prefer prefix ++ operator for non primitive types r=froydnj
MozReview-Commit-ID: C0L2NUsbmc4

--HG--
extra : rebase_source : b4b3dfbbabbd610384448169b10c3f9b5c27e621
2018-01-08 09:30:32 +01:00
Jean-Luc Bonnafoux 83cf591ec7 Bug 1417215 - Prefer prefix ++ operator for non primitive types r=froydnj
MozReview-Commit-ID: Hjbj0PEjAnf

--HG--
extra : rebase_source : 659bfb57eba416e6105035e453d7366a9515ea3a
2017-12-30 21:09:58 +01:00
Mike Hommey e34ef317f6 Bug 1427339 - Make mozconfig.stdcxx work with both CentOS and Debian-built GCCs. r=gps 2018-01-06 14:19:30 +09:00
Mike Hommey 0c1517dd8c Bug 1427339 - Configure binutils and gcc --with-sysroot=/. r=gps
The system binutils and gcc are built with that option on Debian, but
not on CentOS. That makes no practical difference, except for the fact
that when building GCC, we use our own-built binutils (as per bug
1427316), but use the system GCC. And a GCC built with --with-sysroot=/
doesn't work with a binutils built without. However, a GCC built without
--with-sysroot=/ works fine with a binutils built with it. So this
change is compatible with building our GCC on both CentOS and Debian.
2018-01-06 14:19:29 +09:00
Mike Hommey 511d112e2d Bug 1427316 - Use the binutils we just built to build GCC. r=gps
We're currently building GCC with the system binutils, which, at the
moment, is whatever version is available on the CentOS 6 build
environments. With the imminent switch to Debian 7, that will be a
different version.

It turns out the GCC configure script does enable some features
depending on the binutils it's built with. For the most notable
differences it makes when going from Centos 6 to Debian, it enables
.init_array/.fini_array depending on the binutils version, and enables
the use of CFI advances depending on gas and objdump respectively
supporting and displaying DW_CFA_advance_loc.

But we're already building a fixed version of binutils (which happens to
be more recent than the one in both CentOS 6 and Debian 7), and we're
using that version when using GCC to build, so we can just as much use
the version we built to build GCC.

In order to avoid any changes to the resulting builds, we explicitly
turn off .init_array/.fini_array (which currently happens implicitly
when building on CentOS 6). This will ensure that there is not other
change to the builds due to this binutils version bump
(.init_array/.fini_array being enabled shifts everything in the
binaries, so it makes the whole diff full of noise)
2018-01-04 19:16:19 +09:00
Mike Hommey 25c3f317c0 Bug 1427404 - Always export PATH when passing it through mk_add_options. r=nalexander
mk_add_options has this kind of awkward feature where
  mk_add_options VAR=value
would set VAR for the build through client.mk, but not when running
make -C objdir target. But
  mk_add_options "export VAR=value"
does.

We might want to change that on the long run, but the side effects would
have to be calculated first.

OTOH, we have automation jobs that run compilations during `make check`
(e.g. rusttests), which is not invoked through client.mk. So they
currently don't get the same PATH as the build part, meaning that
they're using system binutils instead of the one from the GCC toolchain
package.

--HG--
extra : rebase_source : aab7f221243c486cf70c7b0c91b9313231050ed8
2017-12-31 08:50:29 +09:00
Mike Hommey 4aa79652c5 Bug 1427232 - Remove .la files when building gtk3. r=gps
In bug 1426785, Gtk+3 build was moved to docker image creation time, and
at the same time, the removal of .la files was stripped, because it
seemed too broad to do that in /usr/local/lib*, and because I didn't
really remember why it was there in the first place.

I now do remember, and that's because libtool likes to add useless
dependencies on libraries just because direct dependencies transitively
depend on them. For example, this adds a dependency on libffi to
libpangocairo, which doesn't use it directly.

I also happens that /usr/local/lib* is empty at the moment we build
gtk3, so we can just do the cleanup there.

On its own, this change is useless, but:
- it restores the libraries in their state pre-bug 1426785,
- it helps reduce some differences when building on Debian (for bug
1399679), easing the comparison of those builds.

--HG--
extra : rebase_source : 3fa644d8ae5eb4ccac5940c7d3605201f589936d
2017-12-28 11:15:00 +09:00
Mike Hommey 6a21d1f58e Bug 1426785 - Remove mozconfig.gtk. r=gps
It now only does something trivial, which also happens to be a no-op
because it's the default. It does have a commented entry for possible
gtk+2 builds, but we're soon going to remove that possibility anyways in
bug 1278282.

--HG--
extra : rebase_source : 9ac927bb7bd8c057264c8f6f9ca5cbf79a839c4e
2017-12-22 07:57:05 +09:00
Mike Hommey 79b5314945 Bug 1426785 - Use gtk+3 from /usr/local on automation. r=gps
Now that build environment docker images have gtk+3 installed in
/usr/local, adjust mozconfigs to point pkg-config there, and remove
all the glue that was required to build using the tooltool package.

Also remove the --x-libraries=/usr/lib on 32-bits builds, which only
confuses the linker.

--HG--
extra : rebase_source : c7de7b3959a3c6b77ea202d9609c891b5b7ec442
2017-12-22 07:53:33 +09:00
Mike Hommey a6e25e84a3 Bug 1426785 - Install gtk+3 in the Centos images used for desktop builds. r=gps
Back when we started needing gtk+3 to build Firefox, we were using mock
to setup the build environment, and a tooltool package was the most
sensible way to handle this.

Fast forward to today, and we're close to moving the build environment
to Debian, which comes with gtk+3 packages. But in order to simplify
the various checks for the transition, it is desirable to stop using the
tooltool package. Which we can actually do in a reasonable way now that
we use docker images instead of mock, by building and installing gtk+3
in the build environment images.

So we modify the script that was producing the gtk+3 tooltool packages
such that it installs gtk+3 in the docker images, both 32 and 64 bits.
And invoke it when creating the desktop build environment docker images.

--HG--
extra : rebase_source : 75e987d6de7f3ae8a3d9b478fc173e191d28aace
2017-12-22 07:41:56 +09:00
Coroiu Cristina dbb27acb6d Backed out 5 changesets (bug 1426785) for failing repackage the nightly build on Linux a=backout.
Backed out changeset 08b5850633de (bug 1426785)
Backed out changeset 61453b6473f1 (bug 1426785)
Backed out changeset 851ce8944b41 (bug 1426785)
Backed out changeset 386cd0532519 (bug 1426785)
Backed out changeset 2a52bf9e0898 (bug 1426785)
2017-12-24 14:03:02 +02:00
Mike Hommey 2dca68b63f Bug 1426785 - Remove mozconfig.gtk. r=gps
It now only does something trivial, which also happens to be a no-op
because it's the default. It does have a commented entry for possible
gtk+2 builds, but we're soon going to remove that possibility anyways in
bug 1278282.

--HG--
extra : rebase_source : 0de751e523ee002bbe6638d223eb384364edd22b
2017-12-22 07:57:05 +09:00
Mike Hommey 2e32acf893 Bug 1426785 - Use gtk+3 from /usr/local on automation. r=gps
Now that build environment docker images have gtk+3 installed in
/usr/local, adjust mozconfigs to point pkg-config there, and remove
all the glue that was required to build using the tooltool package.

Also remove the --x-libraries=/usr/lib on 32-bits builds, which only
confuses the linker.

--HG--
extra : rebase_source : 22b1273ae4b78807b355d33ed5895bdfe83a141d
2017-12-22 07:53:33 +09:00
Mike Hommey 089e3a8dc2 Bug 1426785 - Install gtk+3 in the Centos images used for desktop builds. r=gps
Back when we started needing gtk+3 to build Firefox, we were using mock
to setup the build environment, and a tooltool package was the most
sensible way to handle this.

Fast forward to today, and we're close to moving the build environment
to Debian, which comes with gtk+3 packages. But in order to simplify
the various checks for the transition, it is desirable to stop using the
tooltool package. Which we can actually do in a reasonable way now that
we use docker images instead of mock, by building and installing gtk+3
in the build environment images.

So we modify the script that was producing the gtk+3 tooltool packages
such that it installs gtk+3 in the docker images, both 32 and 64 bits.
And invoke it when creating the desktop build environment docker images.

--HG--
extra : rebase_source : fe18bfb2ec8db183c44838d5a7a0051322b2a9c0
2017-12-22 07:41:56 +09:00
Mike Hommey cffd7e8396 Bug 1426555 - Move --enable-stdcxx-compat to python configure. r=chmanchester
At the same time, we make it actually do something on spidermonkey
builds. We also add an environment variable alternative, that we use
in mozconfig.stdcxx, allowing for mozconfig.no-compile to override it
and avoid configure failures on e.g. artifact builds.

--HG--
extra : rebase_source : b68d362025e0c99f9184a03391c652ec2c9357ad
2017-12-21 11:13:08 +09:00
Mike Hommey e45c2bc4bc Bug 1426283 - Use nproc for the number of parallel jobs to run when building gcc. r=gps
While in the vicinity.

--HG--
extra : rebase_source : 8d885ff5fd4fa124a08326c0ca002a49ef559e57
2017-12-20 14:39:26 +09:00
Mike Hommey d61456f499 Bug 1426283 - Work around bug 1409276. r=gps
Both the cc crate and the rust compiler may want to use "cc", which,
on automation, points to the system GCC compiler instead of ours.

As a workaround, we add a cc symbolic link in the GCC toolchain artifact
so that, as long as the GCC toolchain artifact's bin directory is in
$PATH early enough, it's picked over /usr/bin/cc.

--HG--
extra : rebase_source : 53cacf8a750539706a484218e168c8c9e0ba49a6
2017-12-20 10:32:36 +09:00
Mike Hommey fbaf337e4b Bug 1426322 - Separate gcc and mingw32-gcc. r=gps
The "contract" for toolchains is that extracting foo.tar.xz creates a
directory named foo/. That is however not true for mingw32.tar.xz, which
extracts into gcc/, possibly overwriting files from the gcc.tar.xz
archive (which is also used for mingw builds, for the host part).

This is also not true for nsis.tar.xz, but it reportedly has problems
when it's not in the same directory as mingw32.

But mingw32 doesn't actually need to be mixed with gcc, so it's better
to separate them as they are supposed to be.

--HG--
extra : rebase_source : 30d90af64459bbb31bc076e48f3c661fa9cd4a79
2017-12-20 13:46:53 +09:00
Mike Hommey 8bb6a1a03e Bug 1423821 - Add a consistency check for section offsets to elfhack. r=froydnj
lld is being too smart for its own good, and places non-relocatable data
right after the program headers, which prevents the program headers from
growing. But elfhack wasn't checking for that, so happily placed the
non-relocatable data at its non-relocated location, overwriting the last
item of the program headers.

--HG--
extra : rebase_source : 6f26d475f0a19d88ddf21399dbce8ceac62b492d
2017-12-07 15:34:58 +09:00
Mike Hommey ded54a5e92 Bug 1423813 - Properly handle elfhack -r after bug 1385783. r=froydnj
Bug 1385783 changed things such that the two elfhack sections are not
adjacent anymore. They can even be in different segments in some cases,
but the undo code doesn't know how to actually handle that case.

So for now, allow non adjacent sections, but still verify that they are
in the same segment.

--HG--
extra : rebase_source : da95ef7df19eeea8dfd07b24f22e7bee18939b69
2017-12-07 15:22:22 +09:00
Tom Prince 1d74db87ce Bug 1424651: Remove unused SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE mozconfig variable; r=ted.mielczarek
MozReview-Commit-ID: CkIg3fiwp1z

--HG--
extra : rebase_source : 5a4a50c8feb477a9b50c30e35b72a316b1f1bc8c
2017-12-10 23:05:05 -07:00
Dorel Luca 2f271a1136 Backed out 4 changesets (bug 1424651) as requested by tomprice r=backout on a CLOSED TREE
Backed out changeset 10ebf78f32bb (bug 1424651)
Backed out changeset 746d96792d18 (bug 1424651)
Backed out changeset 6038fb7b458c (bug 1424651)
Backed out changeset 189fd4f1df41 (bug 1424651)
2017-12-12 06:33:18 +02:00
Tom Prince 4dfc8f7a46 Bug 1424651: Remove unused SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE mozconfig variable; r=ted.mielczarek
MozReview-Commit-ID: CkIg3fiwp1z

--HG--
extra : rebase_source : 475e2d8888ff4b93efa9886581de9d145b51c51c
2017-12-10 23:05:05 -07:00
Ted Mielczarek 8b7140ce04 bug 1424323 - remove MOZ_AUTOMATION_UPLOAD_SYMBOLS from in-tree mozconfigs. r=rillian
With all of our builds in Taskcluster now, we should never be uploading
symbols from build tasks. Unfortunately Windows builds were still doing so.
This patch removes MOZ_AUTOMATION_UPLOAD_SYMBOLS from all the in-tree
mozconfigs and a few other places so that it should always default off
(per moz-automation.mk). The rest of the uploadsymbols bits will be
removed once Thunderbird fixes their automation.

This patch was mostly autogenerated by running:
rg --files-with-matches UPLOAD_SYMBOLS browser/config/mozconfigs/ mobile/android/config/mozconfigs/ | xargs sed -ri '/.*UPLOAD_SYMBOLS.*/d'
sed -ri '/.*UPLOAD_SYMBOLS.*/d' build/unix/mozconfig.linux build/mozconfig.win-common build/macosx/local-mozconfig.common build/mozconfig.automation

Then mobile/android/config/mozconfigs/common and
taskcluster/scripts/builder/build-linux.sh were hand-edited.

MozReview-Commit-ID: Cy8kSEodSg4

--HG--
extra : rebase_source : 01caf1651b4eb428313e1f371aa585f8f34c4151
2017-12-08 13:50:17 -05:00
Mike Hommey 9ec14dddcb Bug 1417689 - Remove explicit --enable-elf-hack in mozconfigs. r=nalexander
--enable-elf-hack is the default on all platforms where it's supported,
and is completely ignored on platforms where it's not supported.
While moving the flag to moz.configure, we're going to make it only
work on platforms where elfhack is supported, so we at least need to
remove it from mozconfigs for those platforms where it's not supported.
But generally speaking, we want less things in mozconfigs, so just
remove it from there, since it's the default anyways.
2017-11-16 09:37:17 +09:00
Chris Manchester fb88a7e614 Bug 1407388 - Remove build/unix/elfhack/inject/Makefile.in and replace with generated files. r=mshal
MozReview-Commit-ID: Cr2RUlksKBJ

--HG--
extra : rebase_source : 03f32e52d754d29a23e774707b6f92e265bf3ce0
2017-11-07 16:54:22 -08:00
Nathan Froyd bce27af988 Bug 1163171 - part 2 - switch to using -isystem rather than -idirafter for Android; r=glandium
This command-line flag is a little more evocative and works correctly
with both GCC and clang.
2017-10-28 17:38:59 -04:00
Chris Manchester e361318990 Bug 1403346 - Remove clang plugin flags from stdc++compat through moz.build rather than Makefile.in r=glandium
MozReview-Commit-ID: DuFMdNru2i4
2017-10-25 15:12:10 -07:00
Chris Manchester 3aac6ce692 Bug 1403346 - Implement cflags filtering for elfhack in mozbuild COMPILE_FLAGS r=glandium
MozReview-Commit-ID: GO2mqMjHuHd
2017-10-25 15:12:10 -07:00
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
Robert-André Mauchin 3d620068f1 Bug 1407211 - Fix typo in build/unix/run-mozilla.sh from bug 1403366. r=glandium 2017-10-12 07:28:20 +09:00
Mike Hommey 37d01456dc Bug 1403366 - Don't set MOZILLA_FIVE_HOME from multiple scripts. r=froydnj
It was seldom used before previous commit and now does nothing.

--HG--
extra : rebase_source : e0b1dcdabe798af478e054cde0df65facf25ea21
2017-09-28 11:00:09 +09:00
Sebastian Hengst 2e58d81866 Backed out changeset ff0705eda4bd (bug 1403366) 2017-10-04 01:26:56 +02:00
Mike Hommey 5f2f5b4e64 Bug 1403366 - Don't set MOZILLA_FIVE_HOME from multiple scripts. r=froydnj
It was seldom used before previous commit and now does nothing.

--HG--
extra : rebase_source : e0b1dcdabe798af478e054cde0df65facf25ea21
2017-09-28 11:00:09 +09:00
Sebastian Hengst 6a0c7a5682 Backed out changeset 28b00bdf83a3 (bug 1403366) 2017-09-29 17:19:35 +02:00
Mike Hommey 8142d74974 Bug 1403366 - Don't set MOZILLA_FIVE_HOME from multiple scripts. r=froydnj
It was seldom used before previous commit and now does nothing.

--HG--
extra : rebase_source : 59ba89dbd8de9c0b9361872f3f45504a46f454a2
2017-09-28 11:00:09 +09: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 6be61a27e7 Bug 1401005 - Handle the case where the relocation addend is not found at the relocation location. r=froydnj
--HG--
extra : rebase_source : 58c6dfbe9fc584bbbbce2b9739a374a465823b32
2017-09-21 11:37:30 +09:00
Chris Manchester fab07bc443 Bug 1386876 - Replace all uses of NO_VISIBILITY_FLAGS with a template and remove NO_VISIBILITY_FLAGS. r=glandium
MozReview-Commit-ID: 194U1WMCAM0

--HG--
extra : rebase_source : 365b68b0a1772d238ae9b84966e53dcd1197fd85
2017-05-01 18:12:35 -07:00
Chris Manchester c0a229d4c3 Bug 1386876 - Replace all uses of DISABLE_STL_WRAPPING with a template, remove DISABLE_STL_WRAPPING. r=glandium
MozReview-Commit-ID: FMEtb5PY7iP

--HG--
extra : rebase_source : 3cdee7528846462c758e623d6bcd2e6e17dbabff
2017-09-11 11:33:26 -07:00
Mike Hommey a3250ab5f7 Bug 1390752 - Avoid std::basic_ios<char, std::char_traits<char>>::operator bool() references. r=froydnj
This is similar to what we had until bug 1278456 removed them when we dropped
support for older libstdc++, but for a different symbol.

--HG--
extra : rebase_source : 641fc6c86c8f47e3dbd752bc20056f61646541a7
2017-08-16 15:03:43 +09:00
Eugen Sawin c0560f54d7 Bug 1388893 - [1.0] Abort code insertion if executable section was not found. r=glandium 2017-08-15 13:58:41 +02:00
Mike Hommey 733dc0bf95 Bug 1389422 - Avoid @GLIBCXX_3.4.22 symbols from the use of std::thread when building with GCC 6. r=froydnj
That the wrapper implementation works has been verified by creating a
dummy program such as:

  $ cat test.cc
  #include <thread>

  int main() {
    std::thread([]() {
      printf("foo\n");
    }).join();
    return 0;
  }

And compiling it with and without the hack:

  $ g++ -fno-rtti -o test test.cc -lpthread
  $ objdump -TC test | grep UND.*GLIBCXX_3.4.22
  0000000000000000      DF *UND*	0000000000000000  GLIBCXX_3.4.22 std:🧵:_State::~_State()
  0000000000000000      DF *UND*	0000000000000000  GLIBCXX_3.4.22 std:🧵:_M_start_thread(std::unique_ptr<std:🧵:_State, std::default_delete<std:🧵:_State> >, void (*)())

  $ ./test
  foo

  $ g++ -fno-rtti -o test test.cc $objdir/build/unix/stdc++compat/stdc++compat.o -lpthread
  $ objdump -TC test | grep UND.*GLIBCXX_3.4.22
  $ ./test
  foo

--HG--
extra : rebase_source : 53ca8e2d0424eaeb539d50510c441c8a3252c819
2017-08-11 17:20:47 +09:00
Mike Hommey ccd43013f6 Bug 1388713 - Change how elfhack looks for the bss section. r=froydnj
In bug 635961, elfhack was made to (ab)use the bss section as a
temporary space for a pointer. To find it, it scanned writable PT_LOAD
segments to find one that has a different file and memory size,
indicating the presence of .bss. This usually works fine, but when
the binary is linked with lld and relro is enabled, the end of the
file-backed part of the PT_LOAD segment containing the .bss section
ends up in the RELRO segment, making that location read-only and
subsequently making the elfhacked binary crash when it tries to restore
the .bss to a clean state, because it's not actually writing in the .bss
section: lld page aligns it after the RELRO segment.

So instead of scanning PT_LOAD segments, we scan for SHT_NOBITS
sections that are not SHF_TLS (i.e. not .tbss).

--HG--
extra : rebase_source : f18c43897fd0139aa8535f983e13eb785088cb18
2017-08-10 07:55:55 +09:00
Wes Kocher db7d003ae0 Merge m-c to autoland a=merge CLOSED TREE
MozReview-Commit-ID: Ko3lhAvzMJN
2017-08-03 18:22:09 -07:00
Mike Hommey 118fd76cf0 Bug 1356926 - Make all stdc++compat symbols weak. r=froydnj
In some cases, we can end up linking some things with
--static-libstdc++. The notable (only?) example of that is for the
clang-plugin, and that happens because it gets some of its flags from
llvm-config, which contains --static-libstdc++ because clang itself is
built that way.

When that happens, the combination of --static-libstdc++ and
stdc++compat breaks the build because they have conflicting symbols,
which is very much by design.

There are two ways out of this:
- avoiding either -static-libstdc++ or stdc++compat
- work around the symbol conflicts

The former is not totally reliable ; we'd have to accurately determine
if we're in a potentially conflicting case, and remove one of the two in
that case, and while we can do that for the cases we explicitly know
about, that's not future-proof, and might fail just as much in the
future.

So we go with the latter. The way we do this is by defining all the
std++compat symbols weak, such that at link time, they're overridden by
any symbol with the same name. When building with -static-libstdc++,
libstdc++.a provides those symbols so the linker eliminates the weak
ones. When not building with -static-libstdc++, the linker keeps the
symbols from stdc++compat. That last assertion is validated by the
long-standing CHECK_STDCXX test that we run when linking shared
libraries and programs.

That still leaves the symbols weak in the final shared
libraries/programs, which is a change from the current setup, but
shouldn't cause problems because when using versions of libstdc++.so
that do provide those symbols, it's fine to use the libstdc++.so version
anyways.
2017-08-04 06:07:42 +09: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
Sylvestre Ledru 6e1f2d507b Bug 1385910 - In the error message, also ask to upload the pre-elfhacked library r=froydnj
MozReview-Commit-ID: A7ADGyQunjN

--HG--
extra : rebase_source : fac3410f828871b5b694851f99bdf588b67f0ef8
2017-07-31 16:35:03 +02:00
Mike Hommey 48eba8560c Bug 1385783 - Insert the elfhack code before the first executable section. r=froydnj
The lld linker creates separate segments for purely executable sections
(such as .text) and sections preceding those (such as .rel.dyn). Neither
gold nor bfd ld do that, and just put all those sections in the same
executable segment.

Since elfhack is putting its executable code between the two relocation
sections, it ends up in a non-executable segment, leading to a crash
when it's time to run that code.

We thus insert the elfhack code before the first executable section
instead of between the two relocation sections (which is where the
elfhack data lies, and stays).

--HG--
extra : rebase_source : ab18eb9ac518d69a8639ad0e785741395b662112
2017-08-02 16:39:12 +09:00
Mike Hommey a2b46623f9 Bug 1385783 - Don't assume both elfhack sections are next to each other. r=froydnj
--HG--
extra : rebase_source : 989e0233f5c80c61680ad4578ea6bd835d231655
2017-08-02 16:05:07 +09:00
Cameron McCormack 66d005a1e5 Bug 1385537 - Check for writable segments correctly. r=glandium
MozReview-Commit-ID: FItpvVeiMJM

--HG--
extra : rebase_source : e9eaeba92967c1e839667fb0597fd0cd8a9616a8
2017-07-29 13:56:25 +08:00
Mike Hommey a15c6351cb Bug 1385117 - Make the bss section of the elfhack testcase large enough. r=froydnj
Since bug 635961, building with relro makes elfhack try to use the bss
data for a temporary function pointer. If there is not enough space for
a pointer in the bss, elfhack will complain it couldn't find the bss.

In normal circumstances, this is most likely fine. Libraries with a bss
so small that it can't fit a pointer are already too small to be
elfhacked anyways. In Firefox, the two libraries with the smallest bss
have enough space for two pointers, and aren't elfhacked (libmozgtk.so
and libplds4.so).

However, the testcase that is used during the build to validate that
elfhack works doesn't have a large enough bss on x86-64, making elfhack
bail out, and the build fail as a consequence.

This, in turn, is due to the only non-thread-local zeroed data being an
int, which is not enough to fit a pointer on x86-64. We thus make it a
size_t.

--HG--
extra : rebase_source : bca2ddbf9d4a5e8786881fc524d642c38d610227
2017-07-28 07:15:39 +09:00
Mike Hommey 43b0a30fd0 Bug 635961 - Allow elfhack to relocate data under the GNU_RELRO segment. r=froydnj
--HG--
extra : rebase_source : 873898d5929414b754bf592ab4d60574700b646a
2017-07-11 07:41:07 +09:00
Wes Kocher 5dbd554bdd Backed out 2 changesets (bug 635961) at developer's request a=backout
Backed out changeset c56fa9c1eda0 (bug 635961)
Backed out changeset ddda63d5366e (bug 635961)

MozReview-Commit-ID: I6NxBctFn8e
2017-07-25 17:57:43 -07:00
Mike Hommey 809895d12d Bug 1378986 - Avoid crashing in elfhack when the input file has no relocations. r=me a=bustage
MozReview-Commit-ID: 8jXvB8iRJkC

--HG--
extra : rebase_source : 6b5f24e9bca51d090c5a7c41977e42c513136ec4
2017-07-25 15:50:34 -07:00
Mike Hommey 76cfb9c89f Bug 635961 - Allow elfhack to relocate data under the GNU_RELRO segment. r=froydnj
--HG--
extra : rebase_source : abbb92ee6a8f317fe80af5bf982c93c8b773a42f
2017-07-11 07:41:07 +09:00
Mike Hommey 7e8198e4b7 Bug 1379835 - Don't filter out -idirafter flag when building elfhack injected code. r=gps
--HG--
extra : rebase_source : 4c6eea5ec9c592873ef94cb0c674fc4b26ef385c
2017-07-11 08:02:16 +09:00
Mike Hommey b54839958c Bug 1378986 - Adjust the fake phdr section properly. r=froydnj
The PT_PHDR segment is optional, but the Android toolchain decides to
create one in some cases, and places it first. When that happens, the
work around for bug 1233963 fails, because the fake phdr section has not
been adjusted yet (it only happens when we see a PT_LOAD).

So we adjust the fake phdr section when we see a PT_PHDR segment (and
avoid re-updating it when we see a subsequent PT_LOAD).

--HG--
extra : rebase_source : 2190ec2f20ba9d144b8828874f9f8d70dd5ad2f6
2017-07-07 18:29:06 +09:00
Mike Hommey e6b808292f Bug 1378986 - Avoid elfhack failing on weird DT_INIT_ARRAYs. r=froydnj
Somehow, with the Android toolchain, we end up with
non-empty-but-really-empty DT_INIT_ARRAYs.

In practical terms, they are arrays with no relocations, and content
that is meaningless:

  $ objdump -s -j .init_array libnss3.so

  libnss3.so:     file format elf32-little

  Contents of section .init_array:
   1086e0 00000000                             ....

  $ readelf -r libnss3.so | grep 1086e0

  $ objdump -s -j .init_array libplugin-container-pie.so

  libplugin-container-pie.so:     file format elf32-little

  Contents of section .init_array:
   4479c ffffffff 00000000 ffffffff 00000000  ................

  $ readelf -r libplugin-container-pie.so | grep 4479c

Because so far, elfhack expected meaningful DT_INIT_ARRAYs, it bailed out
early in that case.

--HG--
extra : rebase_source : 217aacb42fdfabb466ed1f8149dfaeb4a595eda8
2017-07-07 14:44:46 +09:00
rforbes 1b11218ff1 Bug 1376968 - Remove obsolete -fsantize-coverage=edge from fuzzing config. r=decoder
MozReview-Commit-ID: IJAoxu9Ovze

--HG--
extra : rebase_source : 5f19fc176360fba47ee0b62250a4fa2605911672
2017-06-28 15:58:42 -07:00
Chris Manchester 479795876a Bug 1370695 - Remove build system code handling binary components. r=glandium
MozReview-Commit-ID: BKHWR34vWsu

--HG--
extra : rebase_source : d870a222d393479bb8ede2aaec571299488806c0
2017-06-13 16:01:45 -07:00
rforbes 3e2112c609 Bug 1359328 - Updates for fuzzing taskcluster build r=aobreja,decoder
MozReview-Commit-ID: 1RDQYnGTE2s

--HG--
extra : rebase_source : 77d2bdd37931d2c324cd07f4d6c7b996c1845a1c
2017-05-25 15:36:21 -07: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 ecbc3ab66c Bug 1365182 - When both clang and gcc are installed via tooltool, pick libstdc++ from gcc. r=froydnj
--HG--
extra : rebase_source : 7f5eec8e85e34c5249be11daabc466963476f279
2017-05-16 15:09:52 +09:00
Lee Salzman 20ac00c192 Bug 1350262 - implement prime rehash policy compat for unordered_map and unordered_set in libstdc++. r=glandium
MozReview-Commit-ID: 1zlGjRMKcBM
2017-05-09 22:15:18 -04:00
Ting-Yu Chou 337e68fa28 Bug 1333003 part 4 - Package the binary of llvm-symbolizer also on Windows. r=ted
MozReview-Commit-ID: 4nhVgQTJ7Bz

--HG--
extra : rebase_source : 4df3d39da1847ff40927ec3d1f11f76916181a46
2017-03-10 12:24:02 +08:00
Mike Hommey 97164d67cd 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.

--HG--
extra : rebase_source : a6bef8ec6eece3a1b0e45f84c907c2fbc0800863
2017-04-05 18:01:33 +09:00
Wes Kocher 93d11e3441 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 e83fb17b3a Bug 1333003 part 4 - Package the binary of llvm-symbolizer also on Windows. r=ted
MozReview-Commit-ID: 4nhVgQTJ7Bz

--HG--
extra : rebase_source : 4df3d39da1847ff40927ec3d1f11f76916181a46
2017-03-10 12:24:02 +08:00
Carsten "Tomcat" Book 5787f19c5c Backed out changeset d88370d20b83 (bug 1333003) 2017-03-23 10:38:13 +01:00
Ting-Yu Chou 319b8a884d Bug 1333003 part 4 - Package the binary of llvm-symbolizer also on Windows. r=ted
MozReview-Commit-ID: 4nhVgQTJ7Bz

--HG--
extra : rebase_source : 4df3d39da1847ff40927ec3d1f11f76916181a46
2017-03-10 12:24:02 +08:00
Jesse Schwartzentruber df40990bb3 Bug 1335411 - Fix --enable-address-sanitizer for Mac cross-compilation and adapt Linux ASan configs for Mac. r=froydnj
--HG--
extra : rebase_source : 493400a792fd50266a8d434b842710586c7947c5
2017-02-10 11:10:23 -05:00
Mike Hommey 8e89cfc337 Bug 1338016 - Use clang from tooltool to build hfsplus. r=mshal
--HG--
extra : rebase_source : 0c4aaad8bc04fe9ab4160e877cd4e09b3128bf94
2017-02-09 11:37:28 +09: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
Justin Wood 8cf804e40f Bug 1197325 - Generate mkfs.hfsplus. r=ted
MozReview-Commit-ID: Dl0eBQR8XFR

--HG--
extra : rebase_source : bc20b8c35b8d62b2230f52a076c619fc674047e1
2017-01-30 13:12:57 -05:00
Phil Ringnalda 0bf37ead29 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 4d8337864f Bug 1197325 - Generate mkfs.hfsplus. r=ted
MozReview-Commit-ID: Dl0eBQR8XFR

--HG--
extra : rebase_source : e83031f29b85838f6478081a7b27415099132653
2017-01-30 13:12:57 -05:00
Benjamin Smedberg ca77995f5d Bug 1333826 - Remove SDK_FILES, SDK_LIBRARY, and related is_sdk support in the build goop, r=mshal
MozReview-Commit-ID: 52vPyDXdFte

--HG--
extra : rebase_source : c3217730bb70eb7319152dd07536b12f49d6a597
2017-01-30 11:24:10 -05:00
Benjamin Smedberg 270de3f511 Bug 1333826 - Remove all references to MOZ_AUTOMATION_SDK, r=mshal
MozReview-Commit-ID: CuTK1hn0pVl

--HG--
extra : rebase_source : 4581c71360ccd81505079ee9e068ed2ca0431a6a
2017-01-25 12:30:49 -05: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 efb1ecf093 Bug 1321065 - Default to --enable-profiling for nightly milestones. r=gps
--HG--
extra : rebase_source : a811cd6a1e0ccae4fb07563fce152e2072ace862
2016-11-30 06:47:38 +09:00
Henri Sivonen b66ce7516a 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 2f65f683e3 Bug 1272629 - Add taskcluster task to build binutils package; r=glandium
MozReview-Commit-ID: AEOShpN8ZMI

--HG--
extra : rebase_source : fc8b99002c4944ae666b1a6922edc42d2b0805f4
extra : source : 86d07e6bd5b7197f249e5064ee600fe83b808fb1
2016-09-14 18:47:50 -07:00
Tom Tromey 5538d692d3 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

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Steve Fink 3765bea320 Bug 1280637 - Make --enable-thread-sanitizer & friends do more work, r=glandium
MozReview-Commit-ID: KinAe8zLivJ

--HG--
extra : rebase_source : 8ce1b58222a034f2d6ec45f28aabb3a543bc84c7
2016-07-12 17:30:23 -07:00
Mike Hommey 2fe5367788 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 422162d82a Bug 1278718 - Use clang 3.8 on ASAN builds. r=decoder 2016-06-15 12:22:56 +09:00
Mike Hommey 9ae35b95e7 Bug 1278456 - Remove stdc++-compat hacks for libstdc++ < 4.6.1. r=froydnj 2016-06-12 18:52:21 +09:00
Mike Hommey c5caa62fdf 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 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
Edmund Wong 0621281471 bug 1262057 - Copy TOOLTOOL_DIR to mozconfig.linux. r=glandium
--HG--
extra : rebase_source : 6d717c0a6850ff2db90650002cbc9cba10ff9ed7
2016-04-06 08:04:00 +02:00
Mike Hommey 99fc89b5e2 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 d464f29e5f Bug 1255813 - Remove build system support for Solaris, HPUX and AIX. r=ted 2016-03-15 07:34:50 +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
Mike Shal 8a7fd16468 Bug 1253431 part 5 - Remove build/unix/Makefile.in; r=gps
MozReview-Commit-ID: 7FhprSrtqyt

--HG--
extra : rebase_source : 51a338e9c3e61eb39d3952176cc944c78fb64705
2016-01-21 16:46:34 -05:00
Justin Wood 31da749c7c 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 b4bf649673 Bug 1242641 - GTK+3 still not working for buildbot builds on beta. r=rail
gtk3/setup.sh at unpack time in tooltool

--HG--
extra : commitid : DaHpc9KeO2P
extra : rebase_source : b519795dc6ae1a57ea6ce1e246cba942564c7de5
2016-01-29 22:19:48 +13:00
Ehsan Akhgari 1c924b8602 Bug 1042132 - Part 1: Port build-clang.py to Windows; r=rail
This is useful for deploying clang-cl to the infrastructure.


--HG--
rename : build/unix/build-clang/clang-static-analysis-linux64-centos6.json => build/build-clang/clang-static-analysis-linux64-centos6.json
rename : build/unix/build-clang/clang-static-analysis-linux64.json => build/build-clang/clang-static-analysis-linux64.json
rename : build/unix/build-clang/clang-static-analysis-macosx64.json => build/build-clang/clang-static-analysis-macosx64.json
rename : build/unix/build-clang/llvm-debug-frame.patch => build/build-clang/llvm-debug-frame.patch
rename : build/unix/build-clang/query-selector-visibility.patch => build/build-clang/query-selector-visibility.patch
rename : build/unix/build-clang/return-empty-string-non-mangled.patch => build/build-clang/return-empty-string-non-mangled.patch
2016-02-08 14:55:27 -05:00
Wes Kocher 688614d3d2 Backed out changeset 65e246baede4 (bug 1242641) for valgrind bustage CLOSED TREE
--HG--
extra : commitid : 1sQ76xShsLg
2016-02-04 11:42:34 -08:00
Nick Thomas c971ab5018 Bug 1242641 - GTK+3 still not working for buildbot builds on beta. r=rail
gtk3/setup.sh at unpack time in tooltool

--HG--
extra : rebase_source : c113d5b3a73afb8405804d4e9a7751e95eb0bed0
2016-01-29 22:19:48 +13:00
Mike Hommey 9ca9b3074c 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 ca9efa0b37 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 687d9646b3 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 48960fbdea 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 eeb6e0e1c2 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 e7d8787503 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 a7dbfbd7df Bug 1182727 - Part 19: Fix another stupid mistake in build_tar_package()
DONTBUILD
2015-10-13 16:04:40 -04:00
Ehsan Akhgari f7c5e6ff63 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 eb858c4b20 Bug 1182727 - Part 16: Fix a bug in build_tar_package 2015-10-08 11:30:41 -04:00
Ehsan Akhgari fbf588270f 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 68537f63c4 Bug 1182727 - Part 12: Allow dumping out what the command is doing; r=rail 2015-10-02 11:09:17 -04:00
Ehsan Akhgari 22abaac72a Bug 1182727 - Part 11: Add a config file for Clang on CentOS6; r=rail 2015-10-02 11:09:15 -04:00
Ehsan Akhgari d22cec1684 Bug 1182727 - Part 10: Make gcc_dir configurable; r=rail 2015-10-02 11:09:13 -04:00
Ehsan Akhgari 4d9a219994 Bug 1182727 - Part 9: Make python_path configurable; r=rail 2015-10-02 11:09:11 -04:00
Ehsan Akhgari b279107ee2 Bug 1182727 - Part 8: Add some documentation and the new config files; r=rail 2015-10-02 11:09:09 -04:00
Ehsan Akhgari 02c518c779 Bug 1182727 - Part 7: Make build_libcxx configurable; r=rail 2015-10-02 11:09:07 -04:00
Ehsan Akhgari c15428ca1e Bug 1182727 - Part 6: Add a --clean argument for cleaning the build directory; r=rail 2015-10-02 11:09:05 -04:00
Ehsan Akhgari cde42b9251 Bug 1182727 - Part 5: Add support for configurable build type and assertions; r=rail 2015-10-02 11:09:03 -04:00
Ehsan Akhgari 515ecc0a7c Bug 1182727 - Part 4: Add support for configurable three stage builds; r=rail
This adds a stages config option, which can be used to select 1, 2, and
3 stage builds.  It also marks the default trunk configuration to do 3
stage builds, and defaults to that.
2015-10-02 11:09:01 -04:00
Ehsan Akhgari 6b651d53a2 Bug 1182727 - Part 3: Allow updating from svn if the source directory already exists; r=rail
This will completely remove the need to blow away any of the work
previously done.
2015-10-02 11:08:59 -04:00
Ehsan Akhgari 0ffa419db3 Bug 1182727 - Part 2: Run cmake through ninja to enable resumable builds; r=rail
Since CMake generated build systems can run cmake if necessary, this
will make it possible to pick up changes from the source directory if
any and resume as much of the build as possible.

This builds the foundation for removing the need to blow away any of the
work done by the previous runs of the script.
2015-10-02 11:08:57 -04:00
Ehsan Akhgari 06ba896f34 Bug 1182727 - Part 1: Switch to using cmake and ninja in order to build clang; r=rail 2015-10-02 11:08:55 -04:00
Mike Hommey d72ba2a81c Bug 1209391 - Remove build/unix/uniq.py. r=mshal 2015-09-30 11:51:46 +09:00
Ehsan Akhgari 206f530585 Bug 1205242 - Part 1: Update the clang used for static analysis to 3.7 on all platforms; r=ted 2015-09-28 22:40:48 -04:00
Ehsan Akhgari 7e6947b21f Bug 1203393 follow-up: Address one review comment
DONTBUILD
2015-09-22 08:44:25 -04:00
Ehsan Akhgari 9b79c5cccc Bug 1203393 - Part 2: Package clang as an xz archive; r=glandium 2015-09-22 08:30:19 -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
Ehsan Akhgari 74da17220c Bug 1203388 - Add support for building clang targeted for CentOS6 build machines; r=rail 2015-09-11 00:16:03 -04:00
Ms2ger ce50a0bf86 Bug 1194603 - Remove INTERNAL_TOOLS; r=mshal
Its only purpose is to disable PGO. Where that was not already explicitly done,
or irrelevant (because the directory only contains python), I disabled it in
moz.build.
2015-09-10 13:49:19 +02:00
Ted Mielczarek 6be16c3688 bug 1198226 - Move HOST_{C,CXX}FLAGS to moz.build HOST_{CFLAGS,CXXFLAGS,DEFINES}. r=mshal
As part of this move, HOST_NSPR_MDCPUCFG needed to be changed to get the quoting right.

--HG--
extra : commitid : J26MhSiPq9g
extra : rebase_source : 81c5b98371042803741ddace8d01b0097757dff3
2015-09-08 11:35:43 -04:00
Mike Hommey e5a429008e Bug 1191212 - Force a value for PKG_CONFIG when building on automation. r=mshal
When switching between Gtk+3 and Gtk+2, config.cache will contain a PKG_CONFIG
that may not be suitable for the build:
- after a Gtk+2 build, config.cache will point to the system pkg-config, which
  doesn't like the pkg-config files in the Gtk+3 tooltool package.
- after a Gtk+3 build, config.cache will point to the Gtk+3 tooltool package's
  pkg-config, which is likely not there in a Gtk+2 build.

Setting PKG_CONFIG avoids all config.cache considerations altogether, so set it
appropriately for both cases.
2015-08-07 06:44:59 +09:00
Mike Hommey aecd8d231d Bug 1188780 - Include debug symbols in gtk3 tooltool package. r=mshal
(relanding of http://hg.mozilla.org/mozilla-central/rev/a9d3df6e14e0)

--HG--
extra : commitid : GDNpuogmPyb
extra : amend_source : 91e46c707c6f244f7951dc44d9313d00dd0f2b1e
2015-08-04 17:26:11 -04:00
Ryan VanderMeulen 6937c1a640 Backed out changeset a9d3df6e14e0 (bug 1188780) for causing bug 1190860. a=bustage 2015-08-04 15:21:57 -04:00
Mike Hommey 1ad743e164 Bug 1188780 - Include debug symbols in gtk3 tooltool package. r=mshal
At the same time, include a setup script to replace parts of mozconfig.gtk.
2015-08-04 07:05:23 +09:00
Mike Hommey ec6e5606d9 Bug 1187664 - Create a fontconfig cache so that Firefox doesn't have to do it itself when run on build automation. r=mshal 2015-08-04 07:05:22 +09:00
Mike Hommey c2ba6b7aa9 Bug 1186748 - Switch hazard and root analysis builds to Gtk+3. r=mshal 2015-08-04 07:05:21 +09:00
Carsten "Tomcat" Book ecaa52f350 Backed out changeset d093c57c6835 (bug 1186748) for causing Bug 1190180 2015-08-03 14:36:14 +02:00
Carsten "Tomcat" Book cd121161d6 Backed out changeset 207c45dd3c2e (bug 1187664) 2015-08-03 14:35:14 +02:00
Carsten "Tomcat" Book 9b61dabe97 Backed out changeset 2238409de271 (bug 1188780) 2015-08-03 14:35:03 +02:00
Mike Hommey fca3b07577 Bug 1188780 - Include debug symbols in gtk3 tooltool package. r=mshal
At the same time, include a setup script to replace parts of mozconfig.gtk.
2015-07-31 16:42:07 +09:00
Mike Hommey 3201a9bde4 Bug 1187664 - Create a fontconfig cache so that Firefox doesn't have to do it itself when run on build automation. r=mshal 2015-07-31 16:41:10 +09:00
Mike Hommey ff7a038039 Bug 1186748 - Switch B2G desktop, hazard and root analysis builds to Gtk+3. r=mshal 2015-07-31 16:39:10 +09:00
Ryan VanderMeulen 5a1391207c Backed out changesets be94d55627f4 and dfc1cb1c26d9 (bug 1187664) because they depend on bug 1186748.
--HG--
extra : histedit_source : 4457df03c37cbe457f3bd099836e519d79fd3461%2Ccab92f6adf81533aef4d5c1748451cfdb44fa08c
2015-07-30 12:07:38 -04:00
Ryan VanderMeulen efd357143c Backed out changeset ada6cd4da281 (bug 1186748) for introducing various intermittent ASAN mochitest failures. 2015-07-30 11:52:49 -04:00
Mike Hommey 3b5bf2f68a Bug 1187664 - Create a fontconfig cache so that Firefox doesn't have to do it itself when run on build automation. r=mshal 2015-07-30 08:49:29 +09:00
Mike Hommey 5bb3772feb Bug 1186748 - Switch B2G desktop, ASan, hazard and root analysis builds to Gtk+3. r=mshal 2015-07-30 08:49:29 +09:00
Mike Hommey dfdf59058d Bug 1186748 - Move gtk-related things in a separate mozconfig. r=mshal
Some mozconfigs don't include mozconfig.linux*, and don't get gtk-related
definitions, so move them in a separate mozconfig. To avoid having two
files, one for 32-bit builds and one for 64-bit builds, rely on the
includer to set PKG_CONFIG_LIBDIR appropriately.

At the same time, move all the --enable-default-toolkit=cairo-gtk2 in that
new file in the case the gtk3 package wasn't pulled from tooltool.
2015-07-28 08:19:15 +09:00
Mike Hommey e26476c1ed Bug 1187245 - Set things up to use Gtk+3 from the tooltool package during PGO builds. r=gps
The mk_add_options exports are meant to end up in $topobjdir/.mozconfig.mk,
which is included every time make runs.
2015-07-28 08:19:13 +09:00
Mike Hommey 56bbd9ec72 Bug 1186003 - Switch automated builds to Gtk+3. r=mshal
The build-gtk3.sh script contains the script used to generate the tooltool
packages.
2015-07-22 07:37:01 +09:00
Chris Manchester 48aa5a0ffb Bug 1181342 - tooltool manifests and build-clang config for clang 3.6 r=rail
--HG--
extra : commitid : KjFzDLPHW0g
2015-07-10 10:30:37 -07:00
Chris Manchester 073236ea96 Bug 1181255 - Mozconfigs for tsan builds. r=glandium
--HG--
extra : commitid : LIOTQcZydyU
2015-07-14 18:45:54 -07:00
Ehsan Akhgari 7c35af2768 Bug 1123386 - Part 1: Update the clang build script for the most recent clang; r=rail 2015-07-13 22:42:12 -04:00
Rail Aliiev 10bac27e88 Bug 1182170 - Kill tooltool.py from the tree. r=dustin DONTBUILD 2015-07-09 14:00:02 -04:00
Birunthan Mohanathas 388f8c1ef2 Backed out changeset 58a2788fad8e (bug 1175359) 2015-06-26 12:49:12 -07:00
Ralph Giles d341eb3773 Bug 1175359 - Enable rust in linux64 builds. r=ted
Write a mozconfig fragment which makes the rust toolchain
provided by tooltool available for linux builds.

Use linux64 mozconfigs to enable rust for official 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.
2015-06-26 12:27:19 -07:00
Mike Hommey aac8b5bca7 Bug 1175323 - Bump stdc++compat minimum supported libstdc++ version to 4.3. r=nfroyd 2015-06-18 17:10:39 +09:00
Mike Hommey 806e0220a2 Bug 991983 - Use objdir-relative SOURCES instead of GENERATED_SOURCES. r=gps 2015-05-28 07:34:16 +09:00
Mike Hommey 9acae632d9 Bug 1167474 - Remove ELFHACK_BUILD hack. r=mshal
It used to be necessary because of how elfhack was built in the past, but it
happens to be unnecessary nowadays.
2015-05-26 16:17:55 +09:00
Mike Hommey fe90037862 Bug 1043692 - Add a DIST_INSTALL variable to moz.build, and replace NO_DIST_INSTALL with it. r=gps 2015-05-12 07:55:21 +09:00
Ted Mielczarek 4c86423908 bug 1085557 - Add Socorro symbol upload token file to linux mozconfigs. r=coop
--HG--
extra : rebase_source : d30d0cd32c99de4a2b24896094eeca33aa203ba8
2015-03-30 07:35:28 -04:00
Mike Hommey 555935f70d Bug 1154596 - Build elfhack tests with -fno-lto. r=nfroyd
LTO changes in GCC5 make it break the assumptions made in the test-ctors
source. The simplest and more correct thing to do is to just force the
test files never to be built with LTO. They are meant to have a particular
layout that LTO might break at any time anyways.
2015-04-16 14:35:13 +09:00
Mike Hommey 769b5c8f4f Bug 1153154 - Add stdc++-compat hack for std::string::_S_compare and std::runtime_error::runtime_error. r=nfroyd 2015-04-16 14:35:12 +09: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
Ryan VanderMeulen 0f0c55ff2e Backed out changeset e3d23172f0fe (bug 1085557) for nightly symbol upload failures. a=me 2015-03-25 13:42:46 -04:00
Ted Mielczarek f66ee346e8 bug 1085557 - Add Socorro symbol upload token file to mozconfigs. r=coop
--HG--
extra : rebase_source : a34863a40c87c3cc63ab0b34ebb8028261b4ec5d
extra : source : 3c62d97274352feb330eaa8721c0c364e2dbfc8c
2015-02-27 08:58:57 -05:00
Mike Shal 47434653c0 Bug 1137000 - Enable SDK building on nightlies; r=glandium 2015-03-17 15:29:07 -04:00
Mike Shal 48668314ac Bug 1141534 - fix mulet nightly mozconfigs; r=bhearsum
We don't want uploadsymbols or update-packaging for nightly mulet
builds, but these were being set by the underlying browser mozconfigs.
2015-03-10 16:20:02 -04:00
Masatoshi Kimura bf312ad056 Bug 1120062 - Part 1: Remove most Nullptr.h includes. r=waldo 2015-01-11 11:34:52 +09:00
Georg Koppen 144cfd9761 Bug 1067893 - Detect OTOOL in configure. r=glandium 2014-11-25 05:12:00 -05:00
Mike Hommey 47c853314f Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Nicholas Nethercote f5bc18d01c Bug 1089446 - Reimplement build/unix/uniq.pl in Python, and remove its unit test. r=gps.
--HG--
extra : rebase_source : 5e7ebf7a59a5966b1af5c8a3165b53bb7bd42770
2014-10-28 15:04:03 -07:00
Nathan Froyd 55201694e6 Bug 1089832 - remove build/unix/abs2rel.pl; r=glandium 2014-10-27 16:02:50 -04:00
Mike Shal 2bf82236cc Bug 1084163 - Remove 'make check' from automation/build; r=glandium
'make check' is somewhat special in that we want to trigger testers
before it finishes. Since moving sendchange into mach is difficult and
'make check' may be going away in the future anyway, just pull it out
for now.

Also remove the MOZ_AUTOMATION_*_SENDCHANGE flags since we aren't using
them.
2014-10-23 11:30:17 -04:00
Carsten "Tomcat" Book e8315632eb Backed out changeset f353f95ad293 (bug 1084157) for ASAN Test Bustage on a CLOSED TREE 2014-10-22 15:52:03 +02:00
Ehsan Akhgari 7f28b2b06f Bug 1084157 - Make --enable-address-sanitizer pass the correct -fsanitize arguments to the toolchain; r=glandium 2014-10-22 08:30:05 -04:00
Mike Hommey 203b345279 Bug 1059255 - Stop building stdc++compat as a real library. r=mshal
Incidentally, this makes the build fail because stdc++compat.o then appears
twice on the libxul linkage command line. This, in turn, is because
widget/xremoteclient creates both a program and an intermediate library for
libxul. The Program() template adds stdc++compat to the directory data,
which ends up being added to libxul as well. The same kind of issue arises
when linking the gtest-enabled libxul.

While eventually we'll be able to avoid those problems, it's not the case
yet, so work around the issue by making expand-libs skip .desc files that
appear multiple times.
2014-09-11 12:19:28 +09:00
Mike Hommey 51f6cc88c1 Bug 1062219 - Don't build build/clang-plugin as an external directory. r=jcranmer 2014-09-04 17:44:01 +09:00
Mike Hommey ed70c5f377 Bug 1041941 - Use templates for programs, simple programs, libraries and C++ unit tests. r=gps 2014-09-03 14:10:54 +09:00
Christian Holler 873ebc305a Bug 1051190 - Copy and package ASan dylib on OSX. r=ted
--HG--
extra : rebase_source : 1f89ecea3b088fa6816687750cbd49306fd1a1fa
2014-09-01 14:34:23 +02:00
Mike Hommey 1b6283507b Bug 1043289 - Don't declare SOURCES and USE_LIBS when there is nothing to build. r=mshal 2014-07-25 07:10:15 +09:00
Mike Hommey 1cbc85e62e Bug 1043084 - Fix elfhack test build failure with gold after bug 1036894. r=mshal 2014-07-25 07:08:34 +09:00
Mike Shal 7099264c72 Bug 978211 - various asan/mar/pretty/mach fixes; r=glandium
- Linux ASAN nightly builds do not do update packaging
 - Only set mar properties if the mar file was actually created
 - Unset MOZ_SIGN_CMD for pretty-* steps
2014-07-03 22:14:59 -04:00
Mike Hommey e24a143f0c Bug 1016641 - Add mozconfig magic for Gtk+3 builds. r=mshal 2014-06-24 07:28:32 +09:00
Mike Shal 2cd87fa675 Bug 978211 - enable MOZ_AUTOMATION_* flags in linux mozconfigs; r=glandium 2014-06-16 13:17:21 -04:00
Mike Hommey 31ad3d202a Bug 1025605 - Add stdc++-compat hack for std::__throw_out_of_range_fmt and __cxa_throw_bad_array_new_length. r=nfroyd 2014-06-19 09:06:14 +09:00
Robert O'Callahan 950332b02a Bug 1001320. Part 5: Use #pragma GCC visibility on B2G. r=glandium
--HG--
rename : config/gcc_hidden.h => config/gcc_hidden_dso_handle.h
2014-05-11 23:37:14 -07:00
Mike Hommey 63ea6f2df2 Bug 982014 - Fix what sections are copied from injection object after bug 932737. r=nfroyd 2014-04-04 14:56:36 +09:00
Christian Holler 18153c17f2 Bug 957865 - Adjust clang build script/patches for r200213. r=rail
--HG--
extra : rebase_source : 38ba07b51cf6fe5e6ed34f3f8d4dde07766c214f
2014-03-28 19:06:13 +01:00
Ehsan Akhgari 17f4a32d8b Bug 976896 - Port STL_FLAGS to moz.build; r=mshal 2014-03-04 19:39:06 -05:00
Ehsan Akhgari 667b4bc049 Bug 978594 - Part 3: Port some of the per-source flags to moz.build; r=glandium
--HG--
extra : rebase_source : fe4cd059eddda221af420e1517250772816d7ee8
2014-03-02 15:41:32 -05:00
Mike Hommey 80e79be833 Bug 462427 - Stop requiring CROSS_COMPILE being set. r=ted 2014-02-11 10:37:46 +09:00
Mike Hommey 241c0a5d19 Bug 965122 - Add gcc patch for PR55650, r=tbsaunde 2014-01-29 13:02:49 +09:00