Commit Graph

9110 Commits

Author SHA1 Message Date
Nicholas Nethercote
51c5270b67 Bug 1646280 - Improve Rust build docs. r=froydnj
The added material comes from the Oxidation wiki's FAQ and the "Building
Firefox with Rust code" MDN page:
https://wiki.developer.mozilla.org/en-US/docs/Mozilla/Firefox/Building_Firefox_with_Rust_code

Once this commit lands, I will (a) remove the wiki FAQ entries, and (b) replace
the contents of that MDN page with a link to these build docs. There's no point
having overlapping docs, and in-tree is the best place for this information.

This commit also makes the capitalization of sub-headings more consistent.

Differential Revision: https://phabricator.services.mozilla.com/D79956
2020-06-23 05:01:23 +00:00
tkhan
b4821a1c8e Bug 1602668 - Enables xorigin iframe mode for mochitest-plain. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D70360
2020-06-22 19:10:30 +00:00
Jonathan Kew
3a6bfefb64 Bug 1533462 - Suppress spurious valgrind errors due to fontconfig's internal caching trickery. r=njn
Differential Revision: https://phabricator.services.mozilla.com/D80169
2020-06-22 08:32:39 +00:00
John Paul Adrian Glaubitz
41f3e19379 Bug 1318905 - build: Add riscv64 as target architecture to mozbuild r=glandium
Adds the basic definitions for riscv64 to mozbuild, allowing to build Spidermonkey.

Differential Revision: https://phabricator.services.mozilla.com/D78623
2020-06-18 07:11:09 +00:00
Mike Hommey
eab19f0855 Bug 1643258 - Avoid the use of the __cxa_thread_atexit_impl symbol. r=froydnj
When linking a weak symbol in an object against a library where the
symbol is provided with a version, the final binary get a weak versioned
symbol reference.

It turns out weak versioned symbols still make the dynamic linker need
the symbol version, even if all symbols needed with that version are
weak.

Practically speaking, that means with bug 1634204, we now end up with
a weak versioned symbol reference to __cxa_thread_atexit_impl with
version GLIBC_2.18, and glibcs without the symbol can't fulfil that
version, even though the weak symbol is the only thing we need from that
version.

This means the check_binary changes in bug 1634204 are too
relaxed, so we revert them (although we keep the easier to read
conditions in check_dep_versions).

We also introduce a hack in stdc++compat.cpp (although it's not
technically entirely about libstdc++ compat) so that we avoid the weak
symbol reference while keeping the intended baseline for libstdc++ and
glibc.

Differential Revision: https://phabricator.services.mozilla.com/D79773
2020-06-18 23:45:41 +00:00
Dorel Luca
f7cdd7d12e Backed out changeset b707f591bef5 (bug 1643258) for build bustage. CLOSED TREE 2020-06-19 00:26:24 +03:00
Mike Hommey
9d26424253 Bug 1643258 - Avoid the use of the __cxa_thread_atexit_impl symbol. r=froydnj
When linking a weak symbol in an object against a library where the
symbol is provided with a version, the final binary get a weak versioned
symbol reference.

It turns out weak versioned symbols still make the dynamic linker need
the symbol version, even if all symbols needed with that version are
weak.

Practically speaking, that means with bug 1634204, we now end up with
a weak versioned symbol reference to __cxa_thread_atexit_impl with
version GLIBC_2.18, and glibcs without the symbol can't fulfil that
version, even though the weak symbol is the only thing we need from that
version.

This means the check_binary changes in bug 1634204 are too
relaxed, so we revert them (although we keep the easier to read
conditions in check_dep_versions).

We also introduce a hack in stdc++compat.cpp (although it's not
technically entirely about libstdc++ compat) so that we avoid the weak
symbol reference while keeping the intended baseline for libstdc++ and
glibc.

Differential Revision: https://phabricator.services.mozilla.com/D79773
2020-06-18 11:02:43 +00:00
Ricky Stewart
09750d5dab Bug 1646190 - Remove pymake from tree r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D79920
2020-06-18 21:06:32 +00:00
Sylvestre Ledru
25fd29ad52 Bug 1623024 - mozlint: Add pylint to the CI r=linter-reviewers,ahal
Depends on D79076

Differential Revision: https://phabricator.services.mozilla.com/D79099
2020-06-18 20:05:02 +00:00
Sylvestre Ledru
4b7c742212 Bug 1646405 - update the code using pyyaml to use the new path r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D80025
2020-06-18 19:40:28 +00:00
Butkovits Atila
40766bf579 Backed out 2 changesets (bug 1643258) for causing Bug 1646625.
Backed out changeset 4c359d743fb2 (bug 1643258)
Backed out changeset 439eee50f354 (bug 1643258)
2020-06-18 08:56:12 +03:00
Mike Hommey
f764089a91 Bug 1643258 - Avoid the use of the __cxa_thread_atexit_impl symbol. r=froydnj
When linking a weak symbol in an object against a library where the
symbol is provided with a version, the final binary gets a weak versioned
symbol reference.

It turns out weak versioned symbols still make the dynamic linker need
the symbol version, even if all symbols needed with that version are
weak.

Practically speaking, that means with bug 1634204, we now end up with
a weak versioned symbol reference to __cxa_thread_atexit_impl with
version GLIBC_2.18, and glibcs without the symbol can't fulfil that
version, even though the weak symbol is the only thing we need from that
version.

This means the check_binary changes in bug 1634204 are too
relaxed, so we revert them (although we keep the easier to read
conditions in check_dep_versions).

We also introduce a hack in stdc++compat.cpp (although it's not
technically entirely about libstdc++ compat) so that we avoid the weak
symbol reference while keeping the intended baseline for libstdc++ and
glibc.

Differential Revision: https://phabricator.services.mozilla.com/D79773
2020-06-17 03:16:08 +00:00
Mike Hommey
6dfdcc363a Bug 1643258 - Disable stdc++ compat on base-toolchain builds. r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D79940
2020-06-17 22:28:59 +00:00
David Major
5b95767d8c Bug 1646158 - Fix StringRef conversions in clang-plugin for clang 11 r=static-analysis-reviewers,andi
In adcd026838, conversions from `StringRef` to `std::string` became `explicit`.

The NFC fix would be to wrap the conversions in `std::string(...)` but since these are all short-lived uses for things like string compares, I've refactored a bit to keep them in native form.

Differential Revision: https://phabricator.services.mozilla.com/D79895
2020-06-17 15:56:44 +00:00
David Major
2b811400db Bug 1646158 - Make DynTypedNodeList work with clang11 r=static-analysis-reviewers,andi
In 8a81daaa8b, the class `DynTypedNodeList` moved from `ASTContext` to global level.

Differential Revision: https://phabricator.services.mozilla.com/D79886
2020-06-17 15:56:44 +00:00
David Major
36940c61ca Bug 1646158 - Make nested template checks work with clang 11 r=static-analysis-reviewers,andi
Sometime during clang 11 (I don't have the exact commit handy), the display of nested templates changed from `Foo<Bar<X> >` to `Foo<Bar<X>>`.

Differential Revision: https://phabricator.services.mozilla.com/D79894
2020-06-17 15:56:11 +00:00
Tom Ritter
08b3cf1f4f Bug 1644852 - Add an external/CustomAttributes.inc r=andi
This will allow us to define CustomAttributes for external checks.

Differential Revision: https://phabricator.services.mozilla.com/D79179
2020-06-10 14:28:57 -05:00
Razvan Maries
1d39accaeb Backed out changeset 5c7f4c2de55b (bug 1643258) for build bustages. CLOSED TREE 2020-06-17 01:53:05 +03:00
Razvan Maries
e29397a370 Backed out changeset 722854464579 (bug 1623520) for multiple failures on Win10 x64 asan. CLOSED TREE 2020-06-17 01:49:36 +03:00
Mike Hommey
80bcbff51e Bug 1643258 - Avoid the use of the __cxa_thread_atexit_impl symbol. r=froydnj
When linking a weak symbol in an object against a library where the
symbol is provided with a version, the final binary gets a weak versioned
symbol reference.

It turns out weak versioned symbols still make the dynamic linker need
the symbol version, even if all symbols needed with that version are
weak.

Practically speaking, that means with bug 1634204, we now end up with
a weak versioned symbol reference to __cxa_thread_atexit_impl with
version GLIBC_2.18, and glibcs without the symbol can't fulfil that
version, even though the weak symbol is the only thing we need from that
version.

This means the check_binary changes in bug 1634204 are too
relaxed, so we revert them (although we keep the easier to read
conditions in check_dep_versions).

We also introduce a hack in stdc++compat.cpp (although it's not
technically entirely about libstdc++ compat) so that we avoid the weak
symbol reference while keeping the intended baseline for libstdc++ and
glibc.

Differential Revision: https://phabricator.services.mozilla.com/D79773
2020-06-16 20:44:48 +00:00
Mike Hommey
a0075e4138 Bug 1623520 - Switch Windows asan and fuzzing builds to cross-builds. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D79417
2020-06-12 13:50:26 +00:00
Steve Fink
14bc264f47 Bug 1642121 - Remove directory dependence of GDB init files. r=nalexander
I wrote this patch to address two problems:

  1. if I do `mach run` from a directory other than $topsrcdir, $objdir, or
     $objdir/dist/bin, then .gdbinit will not be loaded.
  2. Debugging the firefox binary will never load the JS prettyprinters in any
     case.

I believe this patch fixes other problems as well, such as .gdbinit_python not being found, and the gdbpp pretty-printers not getting loaded in various situations.

The main changes of this patch are:

  1. Move .gdbinit into build/ (and $objdir/build/) to delay it from getting
     loaded until the search path is configured.
  2. Move libxul.so-gdb.py into the correct directory.
  3. Use either libxul.so-gdb.py or js-gdb.py to configure the correct
     search path then load .gdbinit, and have .gdbinit load all of the
     pretty-printers (Gecko and JS).
  4. Use a single preprocessed file to configure the source directory. Use
     relative paths within the objdir for everything else.

Differential Revision: https://phabricator.services.mozilla.com/D77589
2020-06-16 15:45:43 +00:00
Nick Alexander
571c7fd42e Bug 1644046 - Get Sonatype nexus with fetch task rather than when building android-build image. r=froydnj
This brings the `android-build` image very close to other build
images, paving the way for it to be folded in completely.  It also
makes us more resilient in the face of upstream service interruptions.

Differential Revision: https://phabricator.services.mozilla.com/D78945
2020-06-15 16:29:30 +00:00
Henri Sivonen
d5b9be12ce Bug 1603712 - Remove intl.charset.detector.ng.enabled pref and resulting dead code. r=Gijs,fluent-reviewers,valentin,m_kato
Differential Revision: https://phabricator.services.mozilla.com/D79101
2020-06-15 15:32:21 +00:00
Noemi Erli
e73a8dbb70 Backed out changeset df0d6b993ad6 (bug 1642121) for causing build bustages 2020-06-15 06:44:42 +03:00
Steve Fink
7fc47d901c Bug 1642121 - Remove directory dependence of GDB init files. r=nalexander
I wrote this patch to address two problems:

  1. if I do `mach run` from a directory other than $topsrcdir, $objdir, or
     $objdir/dist/bin, then .gdbinit will not be loaded.
  2. Debugging the firefox binary will never load the JS prettyprinters in any
     case.

I believe this patch fixes other problems as well, such as .gdbinit_python not being found, and the gdbpp pretty-printers not getting loaded in various situations.

The main changes of this patch are:

  1. Move .gdbinit into build/ (and $objdir/build/) to delay it from getting
     loaded until the search path is configured.
  2. Move libxul.so-gdb.py into the correct directory.
  3. Use either libxul.so-gdb.py or js-gdb.py to configure the correct
     search path then load .gdbinit, and have .gdbinit load all of the
     pretty-printers (Gecko and JS).
  4. Use a single preprocessed file to configure the source directory. Use
     relative paths within the objdir for everything else.

Differential Revision: https://phabricator.services.mozilla.com/D77589
2020-06-15 03:27:49 +00:00
Mitchell Hentges
0a6339ac68 Bug 1632429: remove redundant enum library r=glandium,jgraham
Differential Revision: https://phabricator.services.mozilla.com/D78345
2020-06-12 13:21:38 +00:00
Mitchell Hentges
079ded8c2d Bug 1636251: document mach error reporting r=rstewart
Differential Revision: https://phabricator.services.mozilla.com/D78409
2020-06-11 20:38:18 +00:00
Mitchell Hentges
1f5b9307c3 Bug 1636251: Patch Sentry events to ensure a raw username isn't sent to Sentry r=rstewart
To avoid sending identifying information, common absolute paths are patched with placeholder values. For example, devs
may place their Firefox repository within their home dir, so absolute paths are doctored to be prefixed with
"<topsrcdir"> instead.

Additionally, any paths including the user's home directory are patched to instead be a relate path from "~".

Differential Revision: https://phabricator.services.mozilla.com/D78962
2020-06-11 21:35:05 +00:00
Mitchell Hentges
5b5e1ea7b9 Bug 1636251: report |./mach| errors with Sentry r=rstewart
These errors are reported to the "mach" project here:
https://sentry.prod.mozaws.net/operations/mach/

Should only report exceptions caused by a failure in `mach` or its subcommands. Build/test/etc failures
should not be sent to Sentry.

Depends on D74737

Differential Revision: https://phabricator.services.mozilla.com/D74738
2020-06-11 20:38:04 +00:00
Dorel Luca
27321e1f00 Backed out 3 changesets (bug 1636251) for phyton failures in python/mach/mach/test/test_conditions.py. CLOSED TREE
Backed out changeset a033282e742d (bug 1636251)
Backed out changeset ce8cb6373f88 (bug 1636251)
Backed out changeset ae78c0a50575 (bug 1636251)
2020-06-11 19:49:44 +03:00
Mitchell Hentges
34d2e43294 Bug 1636251: document mach error reporting r=rstewart
Differential Revision: https://phabricator.services.mozilla.com/D78409
2020-06-10 19:50:59 +00:00
Mitchell Hentges
2b514aa148 Bug 1636251: Patch Sentry events to ensure a raw username isn't sent to Sentry r=rstewart
To avoid sending identifying information, common absolute paths are patched with placeholder values. For example, devs
may place their Firefox repository within their home dir, so absolute paths are doctored to be prefixed with
"<topsrcdir"> instead.

Additionally, any paths including the user's home directory are patched to instead be a relate path from "~".

Differential Revision: https://phabricator.services.mozilla.com/D78962
2020-06-10 19:50:57 +00:00
Mitchell Hentges
47c53b361d Bug 1636251: report |./mach| errors with Sentry r=rstewart
These errors are reported to the "mach" project here:
https://sentry.prod.mozaws.net/operations/mach/

Should only report exceptions caused by a failure in `mach` or its subcommands. Build/test/etc failures
should not be sent to Sentry.

Depends on D74737

Differential Revision: https://phabricator.services.mozilla.com/D74738
2020-06-10 19:50:55 +00:00
Tom Ritter
47fe961b00 Bug 1637845 - Move all mach vendor files to a subdirectory r=glob
Differential Revision: https://phabricator.services.mozilla.com/D75693
2020-06-10 14:38:57 +00:00
Mitchell Hentges
4183da479b Bug 1621960: upload_generated_sources uses py3-compatible import r=rstewart
Differential Revision: https://phabricator.services.mozilla.com/D79155
2020-06-10 16:13:05 +00:00
Mike Hommey
70653120cb Bug 1622963 - Require python 3.6 for the build system. r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D77754
2020-06-09 21:22:32 +00:00
Mitchell Hentges
c28298cb71 Bug 1621960: Improves genpgocert compatibility with Python 3 r=rstewart
Depends on D77965

Differential Revision: https://phabricator.services.mozilla.com/D77966
2020-06-09 18:48:19 +00:00
Noemi Erli
9017f973e3 Backed out 4 changesets (bug 1621960) for causing Android bustages CLOSED TREE
Backed out changeset f36a95234a5f (bug 1621960)
Backed out changeset 0e4661c9061d (bug 1621960)
Backed out changeset 3e2cbe4dd777 (bug 1621960)
Backed out changeset d7eb101e5df7 (bug 1621960)
2020-06-09 20:59:26 +03:00
Mitchell Hentges
1c169fac1c Bug 1621960: Improves genpgocert compatibility with Python 3 r=rstewart
Depends on D77965

Differential Revision: https://phabricator.services.mozilla.com/D77966
2020-06-09 16:44:40 +00:00
Mitchell Hentges
ed90a04ad1 Bug 1632874: |mach bootstrap| should write mozconfig file if it doesn't exist r=rstewart
Rather than always printing instructions at the end of the bootstrap phase, we will now create a mozconfig
file if one doesn't exist and there's configuration to be written.

Differential Revision: https://phabricator.services.mozilla.com/D78417
2020-06-08 19:36:56 +00:00
Sylvestre Ledru
be715d2f73 Bug 1644123 - mach doc: Provides the full path to logo and favicon + update of the build sparse config r=firefox-source-docs-reviewers,ahal
Differential Revision: https://phabricator.services.mozilla.com/D78671
2020-06-08 19:06:44 +00:00
Jan de Mooij
518531d1aa Bug 1642893 - Don't build NSPR by default for standalone JS builds. r=glandium
For standalone JS builds there are three possibilities: no-NSPR (the default),
build NSPR, or use system NSPR.

This patch makes no-NSPR the default again when not overridden by --enable-nspr-build
or --with-system-nspr. This was likely regressed by bug 1641775.

Differential Revision: https://phabricator.services.mozilla.com/D78001
2020-06-05 07:52:37 +00:00
Mitchell Hentges
e8ffc3e0cb Bug 1641806: configure should look for libclang >= 5.0 r=rstewart
clang_getAddressSpace was found as a clang 5.0+ API by comparing the "tools/libclang/libclang.exports" files in the clang source code.
"clang_getAddressSpace" exists for 5.0.0 and 10.0.0, but not for 4.0.1.

Differential Revision: https://phabricator.services.mozilla.com/D78374
2020-06-04 20:15:20 +00:00
Makoto Kato
598e50d2c3 Bug 1642658 - Android SDK/NDK root should replace file separator with '/'. r=froydnj
When not using --with-android-ndk, NDK root is `~/.mozbuild/android-ndk-r20`.
When building this NDK path, since we use `os.path.join`, so it may include "\"
as file separator on Windows host. Then some options such as `-gcc-toolchain`
become invalid path (ex. `C:/users/makoto.mozbuildandroid-ndk-r20/`..).

So we should replace file separator with "/".

Differential Revision: https://phabricator.services.mozilla.com/D77820
2020-06-03 15:32:30 +00:00
John Paul Adrian Glaubitz
e1b5790f4d Bug 1325771 - build: Add m68k as target architecture to mozbuild r=glandium
Adds the basic definitions for m68k to mozbuild, allowing to build Spidermonkey.

Differential Revision: https://phabricator.services.mozilla.com/D77285
2020-06-03 18:30:50 +00:00
Coroiu Cristina
3cce853af2 Backed out 4 changesets (bug 1641291) for build bustages and SM failures on a CLOSED TREE
Backed out changeset 9c0a44614576 (bug 1641291)
Backed out changeset 0dcf604b880e (bug 1641291)
Backed out changeset d830bee40b5c (bug 1641291)
Backed out changeset fe38c82c2dad (bug 1641291)
2020-06-03 22:09:52 +03:00
Nick Alexander
916d838f9c Bug 1641291 - Part 1: Allow cross-compiling from host macOS -> Windows target. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D77117
2020-06-03 18:18:15 +00:00
Mitchell Hentges
291e3e141e Bug 1632429: "enum34" and "enum" virtualenv packages are now only available to the python2 env r=rstewart
When running |mach python| with python 3, it was failing when importing "enum", since it would get the python 2 backport. By making these packages only
available to python 2, we allow python 3 to import standard library packages properly.

Differential Revision: https://phabricator.services.mozilla.com/D77960
2020-06-03 18:15:38 +00:00
Dorel Luca
0154691eae Backed out 5 changesets (bug 1325771) for Spidermonkey failures and build bustage in build/src/mfbt/tests/TestCompactPair.cpp. CLOSED TREE
Backed out changeset ace40545b46c (bug 1325771)
Backed out changeset b3e0fb410a1c (bug 1325771)
Backed out changeset d69ac62c063f (bug 1325771)
Backed out changeset 24e6299e112d (bug 1325771)
Backed out changeset 393a6ff847ce (bug 1325771)
2020-06-03 20:23:08 +03:00