Commit Graph

1497 Commits

Author SHA1 Message Date
Mike Hommey
4661c85ec0 Bug 1657863 - Skip adding manifests automatically on mingw builds. r=froydnj
This wasn't happening before bug 1656141 and apparently causes problems.
So until we can sort them out...

Differential Revision: https://phabricator.services.mozilla.com/D86638
2020-08-11 13:42:24 +00:00
Mike Hommey
527e667296 Bug 1537703 - Use llvm-rc instead of rc.exe. r=mhentges,froydnj
This makes us use one less tool from MSVC, and removes one more use of wine
in cross builds.

We replace the call to either rc/llvm-rc or windres with a wrapper script.
While the script is not strictly needed for the latter, we use a wrapper
in that case anyway because it's one step towards fixing bug 1498414.
For llvm-rc, however, we need a wrapper because llvm-rc doesn't preprocess
on its own, so the wrapper does that too.

The wrapper script also allows to deal with the default flags passed to
llvm-rc or windres, rather than inherit them from old-configure.

We also need to explicitly pass the codepage to llvm-rc, which was not
necessary with rc (presumably, llvm-rc has a different default).

While here, remove the unused WINDRES subst from js/src/old-configure.in.
Also, while here, we remove --use-temp-file, because as described in the
linked bug and in the windres manual page, it was used to work around bugs
on Windows 98 and earlier.

Differential Revision: https://phabricator.services.mozilla.com/D86312
2020-08-08 21:02:04 +00:00
Mike Hommey
cb9be65521 Bug 1656141 - Stop using MT to insert manifests in binaries. r=firefox-build-system-reviewers,rstewart
We are currently relying on two different ways to insert side-by-side
manifests in binaries on Windows: through resource files, or through
the use of MT. The latter is not supported on mingw builds, which is
not great.

Link.exe has options to add a manifest at link time without relying on
either method above, but that's not supported on mingw either.

So the best we can do is to move everything to using resource files.
This also avoids using MT, which, on cross builds, requires using wine.

Ideally, the manifests would be declared in moz.build, but that
complicates things for cases like TestDllInterceptor, where there are
multiple binaries in the same directory, but only one of them needs the
manifest. This keeps the status quo of getting the manifest
automatically from the source directory.

Differential Revision: https://phabricator.services.mozilla.com/D85382
2020-08-07 00:55:16 +00:00
Mike Hommey
e26b1ff8ab Bug 1656141 - Remove support for manifests on host programs. r=firefox-build-system-reviewers,rstewart
We're currently not using the feature, and host programs ought only
to be used during the build, so I don't expect the feature to ever
be necessary.

Differential Revision: https://phabricator.services.mozilla.com/D86167
2020-08-06 22:51:49 +00:00
Mike Hommey
5919ab86af Bug 1656141 - Create res and rc files based on the name of the binary they are linked into. r=firefox-build-system-reviewers,rstewart
This will allow creating separate res files for e.g. SIMPLE_PROGRAMS.

Differential Revision: https://phabricator.services.mozilla.com/D86155
2020-08-07 00:50:50 +00:00
Mike Hommey
ee6a08868d Bug 1656141 - Remove EMBED_MANIFEST_AT. r=froydnj
It was only ever set to the same value as its default, except in
comm-central, where it is unset, but in directories that now don't link
anything (they did back when binary components were a thing).

Differential Revision: https://phabricator.services.mozilla.com/D85381
2020-08-06 22:52:08 +00:00
Mihai Alexandru Michis
c4e805857f Backed out 9 changesets (bug 1656141) for causing multiple failures.
CLOSED TREE

Backed out changeset 9033b0400339 (bug 1656141)
Backed out changeset e43dd57dc61a (bug 1656141)
Backed out changeset eb450457a9b7 (bug 1656141)
Backed out changeset 194a994cf9c9 (bug 1656141)
Backed out changeset ce6831acb5e3 (bug 1656141)
Backed out changeset 29653ea85d49 (bug 1656141)
Backed out changeset 704f28486bda (bug 1656141)
Backed out changeset de8899453150 (bug 1656141)
Backed out changeset 4b133eda46aa (bug 1656141)
2020-08-07 01:48:45 +03:00
Mike Hommey
dc4ee999b0 Bug 1656141 - Stop using MT to insert manifests in binaries. r=firefox-build-system-reviewers,rstewart
We are currently relying on two different ways to insert side-by-side
manifests in binaries on Windows: through resource files, or through
the use of MT. The latter is not supported on mingw builds, which is
not great.

Link.exe has options to add a manifest at link time without relying on
either method above, but that's not supported on mingw either.

So the best we can do is to move everything to using resource files.
This also avoids using MT, which, on cross builds, requires using wine.

Ideally, the manifests would be declared in moz.build, but that
complicates things for cases like TestDllInterceptor, where there are
multiple binaries in the same directory, but only one of them needs the
manifest. This keeps the status quo of getting the manifest
automatically from the source directory.

Differential Revision: https://phabricator.services.mozilla.com/D85382
2020-08-06 16:00:40 +00:00
Mike Hommey
b8f0039ca8 Bug 1656141 - Remove support for manifests on host programs. r=firefox-build-system-reviewers,rstewart
We're currently not using the feature, and host programs ought only
to be used during the build, so I don't expect the feature to ever
be necessary.

Differential Revision: https://phabricator.services.mozilla.com/D86167
2020-08-06 15:52:47 +00:00
Mike Hommey
63984026bb Bug 1656141 - Create res and rc files based on the name of the binary they are linked into. r=firefox-build-system-reviewers,rstewart
This will allow creating separate res files for e.g. SIMPLE_PROGRAMS.

Differential Revision: https://phabricator.services.mozilla.com/D86155
2020-08-06 15:57:42 +00:00
Mike Hommey
afec638391 Bug 1656141 - Remove EMBED_MANIFEST_AT. r=froydnj
It was only ever set to the same value as its default, except in
comm-central, where it is unset, but in directories that now don't link
anything (they did back when binary components were a thing).

Differential Revision: https://phabricator.services.mozilla.com/D85381
2020-08-06 07:05:36 +00:00
Nathan Froyd
623f837bed Bug 1655929 - run cargo update and mach vendor rust for rlbox + lucet updates; r=firefox-build-system-reviewers,rstewart
As the commit title suggests, this is a manual update, but we need to also
update `config/rules.mk` for the changed location of the wasi bindings.

Depends on D85408

Differential Revision: https://phabricator.services.mozilla.com/D85409
2020-07-30 15:54:20 +00:00
Mike Hommey
df18e17e18 Bug 1651608 - Remove leftovers from bug 1557788. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D82866
2020-07-09 12:19:58 +00:00
Mike Hommey
9c264b7cf2 Bug 1240930 - Move jar_maker to the misc tier. r=firefox-build-system-reviewers,geckoview-reviewers,rstewart,agi
Because jar_maker is not in the libs tier, we also rename the libs-%
targets for l10n repacks to l10n-%, which make it clearer what they are
for.

And because multilocale.txt is both a GeneratedFile and a file that is
generated (and installed) via manual build rules, keeping it in the misc
target actually breaks building in toolkit/locales during l10n repacks,
so move it to libs for now.

Differential Revision: https://phabricator.services.mozilla.com/D81766
2020-06-30 21:34:32 +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
e3368880ab Bug 1641291 - Part 3: Ensure that paths are considered paths when compiling. r=glandium
Extremely common file paths on macOS like `/Users/...` are interpreted
as `/U...` flags by `clang-cl`.  This is so common that there's a
`-Wslash-u-filename` warning.  Ensure that file paths are considered
paths when compiling by terminating options with `--`.

This commit handles everything except assembler invocations, because
at least `nasm` doesn't handle `--`.

Differential Revision: https://phabricator.services.mozilla.com/D77119
2020-06-03 18:18:32 +00:00
Mike Hommey
28de21d935 Bug 1638193 - Remove build system support for iOS. r=nalexander
iOS support for Gecko has not been tested in years and is most probably
out of date. The build system part of it, specifically the checks in
build/autoconf/ios.m4, are not trivial to port to python configure, and
they prevent other things from moving to python configure (because some
of them change value when MOZ_IOS is set).

The code is left alone, although it could probably be stripped off as
well, but I'll leave that as an exercise for someone else.

Differential Revision: https://phabricator.services.mozilla.com/D75463
2020-05-15 03:56:16 +00:00
Ricky Stewart
4d4b22b3de Bug 1599658 - Delete previous definition of py_action in Makefiles. Now py_action calls into Python 3 and py3_action doesn't exist. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D72487
2020-05-05 20:04:30 +00:00
Ricky Stewart
fd72a5d35e Bug 1633016 - Remove a bunch of references to PYTHON(2) in Makefiles r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D72479
2020-05-05 19:53:22 +00:00
Bogdan Tara
f137fa0613 Backed out 6 changesets (bug 1632916, bug 1599658, bug 1633037, bug 1633039, bug 1633016, bug 1632920) for SA bustages CLOSED TREE
Backed out changeset 332ce0963b4e (bug 1633039)
Backed out changeset a9904cbc40d9 (bug 1633037)
Backed out changeset d06b0ec349f8 (bug 1599658)
Backed out changeset 8fd300cad80f (bug 1633016)
Backed out changeset f8820941c703 (bug 1632916)
Backed out changeset ac9c2c8746ed (bug 1632920)
2020-05-02 01:49:29 +03:00
Ricky Stewart
0daacc12c3 Bug 1599658 - Delete previous definition of py_action in Makefiles. Now py_action calls into Python 3 and py3_action doesn't exist. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D72487
2020-04-30 15:27:13 +00:00
Ricky Stewart
bb4e86d85a Bug 1633016 - Remove a bunch of references to PYTHON(2) in Makefiles r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D72479
2020-04-30 15:25:22 +00:00
Sylvestre Ledru
9e1d0beec8 Bug 1627439 - Remove an old reference to doxygen r=nalexander DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D69702

--HG--
extra : moz-landing-system : lando
2020-04-04 15:01:04 +00:00
Mike Hommey
32bf570594 Bug 1618782 - Use winchecksec on Windows cross builds too. r=rstewart
Differential Revision: https://phabricator.services.mozilla.com/D68162

--HG--
extra : moz-landing-system : lando
2020-03-27 10:41:06 +00:00
Mike Hommey
e25a8bf02e Bug 1450088 - Use Winchecksec instead of Binscope. r=dmajor
While almost rewriting autobinscope.py entirely (and renaming it),
switch to python 3.

Differential Revision: https://phabricator.services.mozilla.com/D68156

--HG--
rename : build/win32/autobinscope.py => build/win32/autowinchecksec.py
extra : moz-landing-system : lando
2020-03-26 22:13:14 +00:00
Mike Hommey
a80be41972 Bug 1021214 - Run binscope on all executables and libraries. r=froydnj
This needs a few adjustments to the autobinscope script because running
binscope currently creates an HTML file in the binscope directory, and
when multiple binscopes run at the same time (which happens during the
build with the changes to run it on all executables and libraries), all
but one fail to open the HTML file for write access.

So add a flag to create that file in a temporary directory.

While here, remove log_file_path, which hasn't been used since
bug 1448306.

Differential Revision: https://phabricator.services.mozilla.com/D67422

--HG--
extra : moz-landing-system : lando
2020-03-20 01:54:00 +00:00
Oana Pop Rus
55ec4515da Backed out changeset 8009b44fdab1 (bug 1021214) for build bustages in autobinscope.py on a CLOSED TREE 2020-03-20 03:49:30 +02:00
Mike Hommey
89f6c7e9b7 Bug 1021214 - Run binscope on all executables and libraries. r=froydnj
This needs a few adjustments to the autobinscope script because running
binscope currently creates an HTML file in the binscope directory, and
when multiple binscopes run at the same time (which happens during the
build with the changes to run it on all executables and libraries), all
but one fail to open the HTML file for write access.

So add a flag to create that file in a temporary directory.

While here, remove log_file_path, which hasn't been used since
bug 1448306.

Differential Revision: https://phabricator.services.mozilla.com/D67422

--HG--
extra : moz-landing-system : lando
2020-03-20 00:41:44 +00:00
Mike Shal
2626cb441d Bug 1620744 - Convert jar_maker action to py3; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65857

--HG--
extra : moz-landing-system : lando
2020-03-10 20:19:47 +00:00
Mike Shal
c2e3a05aa3 Bug 1620744 - Convert dumpsymbols.py to py3; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65856

--HG--
extra : moz-landing-system : lando
2020-03-10 20:19:44 +00:00
Mike Shal
b5ef4a8d81 Bug 1620744 - Convert check_binary.py to py3; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65855

--HG--
extra : moz-landing-system : lando
2020-03-10 20:19:42 +00:00
Mike Shal
4017368b2f Bug 1620744 - Use py3_action for cases that already support it; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65846

--HG--
extra : moz-landing-system : lando
2020-03-10 20:19:13 +00:00
Daniel Varga
09acd57d19 Backed out 13 changesets (bug 1620744) for causing diffoscope failures firefox/browser/chrome/browser/content/browser/built_in_addons.json
CLOSED TREE

Backed out changeset 6beda54bcb9b (bug 1620744)
Backed out changeset a1e97f0b91ef (bug 1620744)
Backed out changeset b8faa0184d4f (bug 1620744)
Backed out changeset 3bc8fda68107 (bug 1620744)
Backed out changeset 8e95b21b2ae3 (bug 1620744)
Backed out changeset 1de09de1a802 (bug 1620744)
Backed out changeset 622a2f7414fa (bug 1620744)
Backed out changeset 3372c9ab721c (bug 1620744)
Backed out changeset 0997313a9f99 (bug 1620744)
Backed out changeset 2fa34749bbfa (bug 1620744)
Backed out changeset 6d597d2eb792 (bug 1620744)
Backed out changeset 78e78f7c7b26 (bug 1620744)
Backed out changeset 6e4d85b19f88 (bug 1620744)
2020-03-10 21:13:18 +02:00
Mike Shal
45ba77d509 Bug 1620744 - Convert jar_maker action to py3; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65857

--HG--
extra : moz-landing-system : lando
2020-03-09 22:02:48 +00:00
Mike Shal
a6b38f31ae Bug 1620744 - Convert dumpsymbols.py to py3; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65856

--HG--
extra : moz-landing-system : lando
2020-03-10 17:38:05 +00:00
Mike Shal
7e2ee7cfd9 Bug 1620744 - Convert check_binary.py to py3; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65855

--HG--
extra : moz-landing-system : lando
2020-03-09 22:02:43 +00:00
Mike Shal
a1ea58eb94 Bug 1620744 - Use py3_action for cases that already support it; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65846

--HG--
extra : moz-landing-system : lando
2020-03-09 22:02:22 +00:00
Mike Hommey
01879b59e1 Bug 1618766 - Properly find and use MT on Windows cross-builds. r=froydnj
- Remove the separate option() for MT, because it dates back from when
  we needed `MT` not being an absolute path, but that hasn't been true
  since bug 1290040.

- Extend what was done in bug 1617794 to MT, although the long term move
  is to not rely on MT at all.

- Patch leftovers from bug 1613799.

Differential Revision: https://phabricator.services.mozilla.com/D64712

--HG--
extra : moz-landing-system : lando
2020-02-28 12:33:03 +00:00
Mike Hommey
d747b65211 Bug 1617794 - Wrap Windows tools with Wine on cross builds. r=dmajor
Windows programs run via Wine don't like Unix absolute paths (they look
like command line arguments), so we need to use relative paths.

Mingw already run fxc2 via wine, but for some reason it doesn't care
about the Unix absolute paths. genshaders does need some adjustements to
run properly with the real fxc.

Now, on actual Windows, because the temporary directory where
tempfile.NamedTemporaryFile creates files by default is not necessarily
on the same drive as where the command runs from, a relative path can't
be constructed. So we also force the temporary file to be created in the
current (obj) directory.

There is no similar concern for other files because we only go from
objdir to srcdir, and the build system already doesn't support both
being on a separate drive.

While here, flush stdout when the genshared script writes to it, so that
the messages are printed out immediately rather than randomly, later,
after output from subprocesses.

Differential Revision: https://phabricator.services.mozilla.com/D64294

--HG--
extra : moz-landing-system : lando
2020-02-27 04:42:57 +00:00
Mike Hommey
89d916fc02 Bug 1615204 - Remove some MSVC-only compiler flags. r=dmajor
- -NOLOGO is used to hide the banner that MSVC displays by default. It's
a no-op with clang-cl, no need to keep it now that we don't support
MSVC.

- -utf-8 is only passed when the compiler is not GCC-ish and not
clang-cl, which used to mean MSVC, but now means no compiler.

Differential Revision: https://phabricator.services.mozilla.com/D62705

--HG--
extra : moz-landing-system : lando
2020-02-13 13:40:15 +00:00
Nathan Froyd
b5ec5b84be Bug 1610986 - invoke lucetc with custom LD and LDFLAGS; r=firefox-build-system-reviewers,rstewart
`lucetc` by default will invoke `ld` directly, which is usually not what
we want, particularly when cross-compiling.  Instead, let's invoke the
compiler, which will do the hard work of determining the correct linker
to use, and we'll also explicitly specify `LDFLAGS`, since the default
`LDFLAGS` from `lucetc` assume you're invoking the linker directly.

Depends on D62797

Differential Revision: https://phabricator.services.mozilla.com/D62798

--HG--
extra : moz-landing-system : lando
2020-02-13 21:19:56 +00:00
Nathan Froyd
9df9f90a4a Bug 1610986 - add a specific target for lucet compilation; r=firefox-build-system-reviewers,rstewart
We're going to need this for handling Mac cross compiles correctly.

Depends on D62795

Differential Revision: https://phabricator.services.mozilla.com/D62796

--HG--
extra : moz-landing-system : lando
2020-02-13 21:20:34 +00:00
shravanrn@gmail.com
4fbd7a0f7c Bug 1610991 - Update rlbox_lucet lib to Mac compatible version r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D61077

--HG--
extra : moz-landing-system : lando
2020-02-12 04:11:49 +00:00
Mike Hommey
b62c405df2 Bug 1613799 - Stop supporting manifests in the objdir. r=froydnj
Baby steps. Working towards not using $(MT), let's unsupport what we
currently don't rely on (and in case someone would try to rely on it,
throw an error).

Differential Revision: https://phabricator.services.mozilla.com/D61948

--HG--
extra : moz-landing-system : lando
2020-02-07 01:06:07 +00:00
Nathan Froyd
b0977482bc Bug 1607278 - specify memory and guard page sizes for lucetc; r=firefox-build-system-reviewers,chmanchester
...and pull lucetc options out into a separate variable for readability.

Differential Revision: https://phabricator.services.mozilla.com/D58830

--HG--
extra : moz-landing-system : lando
2020-01-07 19:29:24 +00:00
Mike Shal
580f0c293f Bug 1557788 - Remove OBJS_VAR_SUFFIX & .i_o suffix for instrumented builds; r=firefox-build-system-reviewers,chmanchester
In 1-tier PGO builds that shared the objdir between the instrumented and
profile-use builds, the instrumented build objects used a different
suffix (.i_o) to separate them from the profile-use build (which uses
the default .o suffix). These builds are now always in separate objdirs,
and don't need special suffix rules anymore.

As a bonus, this helps fix an issue with buildid.cpp continually
rebuilding because libxul_so.list always lists the inputs as *.o, which
don't exist if we're using a .i_o suffix. Make would always re-create
buildid.cpp and therefore libxul.so in the instrumented build even when
nothing has changed.

Differential Revision: https://phabricator.services.mozilla.com/D56115

--HG--
extra : moz-landing-system : lando
2019-12-09 18:03:49 +00:00
Mike Shal
b4831d6db5 Bug 1557788 - Remove pgo.relink touches; r=firefox-build-system-reviewers,chmanchester
This was used for Windows MSVC PGO builds that re-used the objdir. We
don't use MSVC for PGO anymore, and we don't re-use the objdir.

Differential Revision: https://phabricator.services.mozilla.com/D56114

--HG--
extra : moz-landing-system : lando
2019-12-09 18:03:44 +00:00
Mike Shal
32e90b04d9 Bug 1557788 - Remove MOZ_1TIER_PGO; r=firefox-build-system-reviewers,chmanchester
MOZ_1TIER_PGO was a temporary hack to support 1-tier PGO builds while
they were being ported to 3-tier. Now that all builds are 3-tier, it can
be removed.

Differential Revision: https://phabricator.services.mozilla.com/D56112

--HG--
extra : moz-landing-system : lando
2019-12-09 18:03:36 +00:00
Ricky Stewart
d5eb7d0ea5 Bug 1594867 - Add moz.build/backend bits to specify files that should be built as a sandboxed wasm library r=firefox-build-system-reviewers,mshal
Add backend stuff to build sandboxed wasm libraries. (Don't actually update any moz.build files to consume this yet.)

Differential Revision: https://phabricator.services.mozilla.com/D54152

--HG--
extra : moz-landing-system : lando
2019-11-27 20:11:59 +00:00
Mike Shal
bca8fea099 Bug 1593465 - Dump symbols during instrumented builds for crashlogs in the run task; r=firefox-build-system-reviewers,chmanchester
To get an accurate backtrace if the run task crashes, we need the
symbols from the instrumented build.

Depends on D53716

Differential Revision: https://phabricator.services.mozilla.com/D53717

--HG--
extra : moz-landing-system : lando
2019-11-21 18:44:10 +00:00