892 Commits

Author SHA1 Message Date
Mike Hommey
721c5e9fb4 Bug 1771434 - Remove build/unix/mozilla.in. r=firefox-build-system-reviewers,andi,ahochheiden
Its use was removed from Firefox in bug 552864, in Thunderbird in bug 668869
and in Seamonkey in bug 722262. That was 10 years ago.

Differential Revision: https://phabricator.services.mozilla.com/D147484
2022-05-27 08:22:13 +00:00
Mike Hommey
b798bb1980 Bug 1770251 - Centralize PGO mozconfig bits. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D146852
2022-05-20 08:31:46 +00:00
Razvan Cojocaru
d8294d5641 Bug 1142667 - [elfhack] Leak of |relhack| in |do_relocation_section|. r=firefox-build-system-reviewers,glandium
Now using std::unique_ptr<> for relhack, relhackcode and init, so
that nothing can leak on non-success exit paths.

Differential Revision: https://phabricator.services.mozilla.com/D144138
2022-05-20 07:01:54 +00:00
Iulian Moraru
283a88b45c Backed out changeset c2a224a0f3b4 (bug 1142667) for causing multiple build bustages on host_elfhack. 2022-05-19 03:25:50 +03:00
Razvan Cojocaru
7d3f1ced24 Bug 1142667 - [elfhack] Leak of |relhack| in |do_relocation_section|. r=firefox-build-system-reviewers,glandium
Now using std::unique_ptr<> for relhack, relhackcode and init, so
that nothing can leak on non-success exit paths.

Differential Revision: https://phabricator.services.mozilla.com/D144138
2022-05-18 21:18:32 +00:00
Mike Hommey
9fa0488903 Bug 1767504 - Apply GCC upstream patch to silence a dubious warning. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D145404
2022-05-06 12:49:45 +00:00
ganguin
df23203d4e Bug 1661450 - 8/8 Allow builds without MOZ_X11 r=glandium,stransky
Allow builds without MOZ_X11 when toolkit is cairo-gtk3-wayland and X11
dependencies are missing.

Depends on D139533

Differential Revision: https://phabricator.services.mozilla.com/D139534
2022-04-20 09:32:09 +00:00
criss
8d62d22b30 Backed out 10 changesets (bug 1661450) for causing build bustages on nsWindow.cpp. CLOSED TREE
Backed out changeset 2c41d82de0c5 (bug 1661450)
Backed out changeset 5f58fcd7ac0b (bug 1661450)
Backed out changeset 62e56a6dcd22 (bug 1661450)
Backed out changeset 4b422ffa729f (bug 1661450)
Backed out changeset 6ca4705772da (bug 1661450)
Backed out changeset 031a6313459f (bug 1661450)
Backed out changeset 06ddf05e97d6 (bug 1661450)
Backed out changeset 4388b1b9aafd (bug 1661450)
Backed out changeset 600f9fd09fa6 (bug 1661450)
Backed out changeset cc5e8efe3ebf (bug 1661450)
2022-04-19 12:25:14 +03:00
ganguin
a6f7d5578e Bug 1661450 - 8/8 Allow builds without MOZ_X11 r=glandium,stransky
Allow builds without MOZ_X11 when toolkit is cairo-gtk3-wayland and X11
dependencies are missing.

Depends on D139533

Differential Revision: https://phabricator.services.mozilla.com/D139534
2022-04-19 08:35:28 +00:00
Mike Hommey
3885f30dfb Bug 1758781 - Build llvm-symbolizer separately. r=firefox-build-system-reviewers,mhentges
The llvm-symbolizer tasks currently extract a llvm-symbolizer from clang
tasks. Changes in clang 14 make the hack that we have in place to keep
llvm-symbolizer statically linked to libllvm while clang uses a dynamic
libllvm not work anymore, so it's time to bite the bullet and build
llvm-symbolizer separately.

We share most of the build setup with the compiler-rt build.

Differential Revision: https://phabricator.services.mozilla.com/D140711
2022-03-11 04:10:49 +00:00
Jesse Schwartzentruber
7178259892 Bug 1708787 - Package UBSan runtime with MacOS builds. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D135635
2022-01-14 14:47:15 +00:00
Mike Hommey
7659fc415d Bug 1747782 - Use a more compact representation of relocations in elfhack. r=gsvelto
Use the SHT_RELR format which significantly improves the size reduction
from elfhack:

   total size of .rel.* + .elfhack.* sections

                       x86      x86_64   android-arm
   plain             3532904   10739544    3488888
   current-elfhack   1085815    1155994    1042048
   relr-elfhack       130219     193552     113840

Differential Revision: https://phabricator.services.mozilla.com/D134756
2021-12-31 01:32:52 +00:00
Mike Hommey
523b1551b3 Bug 1747783 - Add support for aarch64 to elfhack. r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D134764
2021-12-30 20:52:55 +00:00
Mike Hommey
837162a71b Bug 1747783 - Use unsigned chars for fields that can have values > 127. r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D134763
2021-12-30 20:52:55 +00:00
Mike Hommey
6eab403e68 Bug 1747778 - Test what we can test of elfhack when cross-building. r=firefox-build-system-reviewers,mhentges
While here, switch to use $(READELF).

Differential Revision: https://phabricator.services.mozilla.com/D134746
2021-12-30 00:50:56 +00:00
Mike Hommey
8918f41faa Bug 1495733 - Use a 64-bits internal representation in elfhack. r=gsvelto
Elfhack currently can't deal with files larger than 4GiB because it
translates all ELF data structures to the 32-bits variant, even for
64-bits ELF files. So if the original file has e.g. sections that start
after the 4GiB boundary, they can't be represented in memory.

Practically speaking, this is not causing problems, but has prevented a
working elfhack for aarch64 because e.g. some relocation types don't fit
in the 32-bits ELF representation.

Differential Revision: https://phabricator.services.mozilla.com/D134745
2021-12-29 01:18:29 +00:00
Mike Hommey
a154421f99 Bug 1740042 - Use llvm-readelf instead of readelf when available. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D130949
2021-11-23 02:28:18 +00:00
Marian-Vasile Laza
25a09c0d08 Backed out changeset 561c776bea20 (bug 1740042) for causing build bustages on llvm-readelf. 2021-11-16 02:51:16 +02:00
Mike Hommey
5459f879e5 Bug 1740042 - Use llvm-readelf instead of readelf when available. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D130949
2021-11-15 22:48:34 +00:00
Marian-Vasile Laza
51e3255d7c Backed out changeset bf55cb5e6b45 (bug 1740042) for causing build bustages. CLOSED TREE 2021-11-15 22:54:31 +02:00
Mike Hommey
2c9074abb8 Bug 1740042 - Use llvm-readelf instead of readelf when available. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D130949
2021-11-15 20:41:41 +00:00
Mike Hommey
397ece0e6e Bug 1500802 - Remove now unused mingw32-gcc toolchain. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D125923
2021-09-17 20:55:42 +00:00
Mike Hommey
636982aa2e Bug 1500804 - Build nsis with mingw-clang rather than mingw-gcc. r=tjr
While here, build the Linux portions with a sysroot.

Differential Revision: https://phabricator.services.mozilla.com/D125922
2021-09-17 20:55:42 +00:00
Mike Hommey
da41cd5a40 Bug 1730078 - Build binutils with system gcc. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D125156
2021-09-15 02:39:51 +00:00
Mike Hommey
9ef9a07ff2 Bug 1729406 - Use .tar.zst for most toolchain artifacts. r=firefox-build-system-reviewers,andi
We leave the following ones unchanged:
- geckodriver because the results are used to releases on github.
- sixgill because the script that creates it is not in-tree.
- *-dist-toolchain because sccache is not expecting a .tar.zst.

We use native tar support in most cases, except for toolchain scripts also
used on Windows, for which we use our zstdpy script.

Differential Revision: https://phabricator.services.mozilla.com/D124733
2021-09-08 23:46:51 +00:00
Iulian Moraru
82a880399a Backed out 2 changesets (bug 1729406) for causing toolchain-wrench-deps build bustages. CLOSED TREE
Backed out changeset 2b28ac860723 (bug 1729406)
Backed out changeset 89c9940d7402 (bug 1729406)
2021-09-08 16:08:40 +03:00
Mike Hommey
cc6d99c4e2 Bug 1729406 - Use .tar.zst for most toolchain artifacts. r=firefox-build-system-reviewers,andi
We leave the following ones unchanged:
- geckodriver because the results are used to releases on github.
- sixgill because the script that creates it is not in-tree.
- *-dist-toolchain because sccache is not expecting a .tar.zst.

We use native tar support in most cases, except for toolchain scripts also
used on Windows, for which we use our zstdpy script.

Differential Revision: https://phabricator.services.mozilla.com/D124733
2021-09-08 08:00:54 +00:00
Cosmin Sabou
e097f3b06f Backed out changeset 40f514ec207e (bug 1729406) for causing windows build bustages. CLOSED TREE 2021-09-08 07:43:48 +03:00
Mike Hommey
c7391546a8 Bug 1729406 - Use .tar.zst for most toolchain artifacts. r=firefox-build-system-reviewers,andi
We leave the following ones unchanged:
- geckodriver because the results are used to releases on github.
- sixgill because the script that creates it is not in-tree.
- *-dist-toolchain because sccache is not expecting a .tar.zst.

We use native tar support in most cases, except for toolchain scripts also
used on Windows, for which we use our zstdpy script.

Differential Revision: https://phabricator.services.mozilla.com/D124733
2021-09-08 03:44:03 +00:00
Noemi Erli
2c90034df8 Backed out changeset d6d54748247b (bug 1729406) for causing Win build bustages CLOSED TREE 2021-09-08 05:26:26 +03:00
Mike Hommey
ddf2323be6 Bug 1729406 - Use .tar.zst for most toolchain artifacts. r=firefox-build-system-reviewers,andi
We leave the following ones unchanged:
- geckodriver because the results are used to releases on github.
- sixgill because the script that creates it is not in-tree.
- *-dist-toolchain because sccache is not expecting a .tar.zst.

We use native tar support in most cases, except for toolchain scripts also
used on Windows, for which we use our zstdpy script.

Differential Revision: https://phabricator.services.mozilla.com/D124733
2021-09-08 00:31:19 +00:00
Rob Lemley
c05d0a3ce0 Bug 1727014 - Add symbols from GLIBCXX_3.4.21 needed for Thunderbird librnp.so. r=firefox-build-system-reviewers,glandium
librnp is used by Thunderbird for OpenPGP support. Until now, official builds
have been built statically linked to Clang/LLVM's libc++ to avoid problems with
libstdc++ symbols.
Recent build changes have narrowed the gap significantly, leaving out_of_range
and invalid_argument called with char const* rather than std::string.

Differential Revision: https://phabricator.services.mozilla.com/D123381
2021-08-24 22:38:06 +00:00
Mike Hommey
a0196647e2 Bug 1726100 - Move wasm-sandboxing defaults to configure. r=firefox-build-system-reviewers,andi
This has the side-effect of enabling it on plain builds, which thus now
require the wasi sysroot.

Differential Revision: https://phabricator.services.mozilla.com/D122826
2021-08-18 01:09:58 +00:00
Mike Hommey
e54462618c Bug 1724830 - Remove MOZ_LIBSTDCXX_*_VERSION. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D122197
2021-08-10 21:16:18 +00:00
Mike Hommey
0fd10d96b0 Bug 1724830 - Only allow --enable-stdcxx-compat when building on or targetting Linux. r=firefox-build-system-reviewers,andi
As this means stdc++compat also would need to be built when
cross-building for Windows on Linux, we also recurse in the stdc++compat
directory in that case. It was already possible to use
--enable-stdcxx-compat in that configuration, and that wasn't working
(there are other problems that prevent it from working, but we're going
to fix them shortly).

Differential Revision: https://phabricator.services.mozilla.com/D122195
2021-08-10 21:16:18 +00:00
Mike Hommey
61812c65f9 Bug 1724830 - Use _GLIBCXX_RELEASE in stdc++compat.cpp. r=firefox-build-system-reviewers,andi
Since the minimum required version of gcc and libstdc++ is 7.1 as of bug
1536848, the _GLIBCXX_RELEASE macro is available on all supported
versions. Which means instead of grabbing the largest version of the
libstdc++ symbols and tweaking for that, we can just tweak for
_GLIBCXX_RELEASE. We also remove the conditions that are always true due
to the versions involved.

Differential Revision: https://phabricator.services.mozilla.com/D122194
2021-08-10 21:16:17 +00:00
Mike Hommey
2e7b98cc2e Bug 1723869 - Setup X11-only Linux builds. r=sylvestre
A lot of work happens on the wayland backend, and it regularly breaks tier-3
systems where wayland is not supported. Setting up X11-only builds will help
catch those breakages earlier.

Differential Revision: https://phabricator.services.mozilla.com/D121691
2021-08-06 07:12:03 +00:00
Mike Hommey
6def90d273 Bug 1719228 - Build binutils with the toolchain sysroot. r=firefox-build-system-reviewers,andi
This allows to use the same toolchain docker images as other toolchains,
based on Debian buster.

While here, use the default max-run-time, which is more than enough for
this toolchain.

Differential Revision: https://phabricator.services.mozilla.com/D119137
2021-07-06 21:47:11 +00:00
Mike Hommey
5d89676954 Bug 1719228 - Build GCC with the toolchain sysroot. r=firefox-build-system-reviewers,andi
Because GCC is built in stages, the final stage is built with
intermediate stages's GCC, which handles the sysroot correctly, so we
end up with headers and libraries with the expected compatibility.
This allows to use the same toolchain docker images as other toolchains,
based on Debian buster.

Differential Revision: https://phabricator.services.mozilla.com/D119136
2021-07-06 21:47:10 +00:00
Mike Hommey
14497c68f9 Bug 1711856 - Don't set LD_LIBRARY_PATH for builds on automation. r=firefox-build-system-reviewers,mhentges
This shouldn't be necessary as of bug 1694785.

Differential Revision: https://phabricator.services.mozilla.com/D115467
2021-06-25 13:28:28 +00:00
Alexandru Michis
06bbd55be6 Backed out changeset 7a183e3b230e (bug 1711856) for being a dependency to Bug 1695118, Bug 1718131.
CLOSED TREE
2021-06-25 14:28:14 +03:00
Mike Hommey
1d870711cb Bug 1711856 - Don't set LD_LIBRARY_PATH for builds on automation. r=firefox-build-system-reviewers,mhentges
This shouldn't be necessary as of bug 1694785.

Differential Revision: https://phabricator.services.mozilla.com/D115467
2021-06-25 09:33:05 +00:00
Mike Hommey
afe9e52b55 Bug 1712043 - Upgrade GCC versions to latest dot-release. r=firefox-build-system-reviewers,andi,mhentges
The added PGP key was extracted from
http://ftp.gnu.org/gnu/gnu-keyring.gpg and stripped with
https://github.com/glandium/pgpstrip. The non-stripped key has been
validated as signed by the 33C235A34C46AA3FFB293709A328C3A2C3C45C06 key,
which we vetted in 4854cd37594f.

Differential Revision: https://phabricator.services.mozilla.com/D115579
2021-05-20 23:36:09 +00:00
Mike Hommey
c8b5ca1f93 Bug 1712023 - Avoid up to @GLIBCXX_3.4.29 symbols for stdc++ compat. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D115562
2021-05-20 22:32:10 +00:00
Narcis Beleuzu
b8beaa5749 Backed out changeset b54ae88a34b4 (bug 1711856) for valgrind bustage on libstdc . CLOSED TREE 2021-05-20 03:50:37 +03:00
Mike Hommey
b78d5d298b Bug 1711856 - Don't set LD_LIBRARY_PATH for builds on automation. r=firefox-build-system-reviewers,mhentges
This shouldn't be necessary as of bug 1694785.

Differential Revision: https://phabricator.services.mozilla.com/D115467
2021-05-19 22:32:58 +00:00
Mike Hommey
f16b7b648f Bug 1711816 - Fix stdc++compat.cpp compilation errors with recent GCC. r=firefox-build-system-reviewers,nalexander
Differential Revision: https://phabricator.services.mozilla.com/D115436
2021-05-19 04:46:01 +00:00
Mike Hommey
fd54149a7a Bug 1698706 - Fix linux build bustage. a=bustage-fix CLOSED TREE 2021-03-17 10:23:21 +02:00
Mike Hommey
a7b2fb4104 Bug 1691865 - Clean up stdc++compat after bug 1634204. r=firefox-build-system-reviewers,dmajor
Bug 1634204 bumped the maximum version of symbols allowed in our
dependency upon libstdc++, which effectively makes some of the
stdc++compat code dead. We can now remove it.

Differential Revision: https://phabricator.services.mozilla.com/D104617
2021-02-10 21:14:52 +00:00
Mike Hommey
d1be2e98e1 Bug 1690934 - Adjust clang for use with sysroots. r=firefox-build-system-reviewers,sheehan,mhentges
When using the --sysroot argument to clang, clang changes where it
searches for libraries in its own directory, and excludes the lib and
lib32 subdirectories. So we need to move the gcc files to a place where
it does look (and that it also looks without --sysroot).

We however still keep a copy of libstdc++ in the lib directory for
runtime purposes.

Differential Revision: https://phabricator.services.mozilla.com/D104123
2021-02-08 20:06:40 +00:00