Commit Graph

837 Commits

Author SHA1 Message Date
Cosmin Sabou
599a15d354 Merge mozilla-inbound to mozilla-central. a=merge 2019-01-29 12:01:56 +02:00
Jan Henning
efeb6ace63 Bug 1503455 - Part 2: Remove compile SDK setting from configure. r=nalexander
Post bug 1498406, this seems to be unused and doesn't affect anything.

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

--HG--
extra : moz-landing-system : lando
2019-01-28 18:31:57 +00:00
Cosmin Sabou
ee75c9f2c6 Backed out 6 changesets (bug 1516228) for causing bug 1523056. a=backout
Backed out changeset 24ebb52d21fa (bug 1516228)
Backed out changeset 53d93ee3ad84 (bug 1516228)
Backed out changeset 4f53ede33517 (bug 1516228)
Backed out changeset 2e6bec87c9f3 (bug 1516228)
Backed out changeset 09ee05a4cc30 (bug 1516228)
Backed out changeset 8456feb780f7 (bug 1516228)
2019-01-26 21:12:33 +02:00
Mike Hommey
fa58fc9bd9 Bug 1516228 - Use llvm-objdump instead of objdump in old-configure. r=firefox-build-system-reviewers,mshal
Depends on D17462

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

--HG--
extra : moz-landing-system : lando
2019-01-24 15:40:58 +00:00
Mike Hommey
8d3c4ddd9c Bug 1516228 - Use llvm-objdump instead of objdump in old-configure. r=mshal
Depends on D17462

Differential Revision: https://phabricator.services.mozilla.com/D17463
2019-01-29 08:37:39 +09:00
Mike Hommey
95bcdbeaaa Bug 1519603 - Manually inline AC_OUTPUT_SUBDIRS and MOZ_RUN_ALL_SUBCONFIGURES. r=nalexander
Because we only ever run one subconfigure, the machinery to execute
several is not useful anymore. Inlining it allows to simplify the code
too, because it doesn't need to be generic anymore. This also removes
the last remaining bits of acwinpaths.m4.

Also remove now unused support for --list in build/subconfigure.py.

Depends on D16380

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

--HG--
extra : moz-landing-system : lando
2019-01-14 18:37:06 +00:00
Mike Hommey
b90adcbaef Bug 1519603 - Remove unused autoconf macros. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D16378

--HG--
extra : moz-landing-system : lando
2019-01-14 13:59:23 +00:00
Mike Hommey
f47fd953a2 Bug 1519281 - Remove leftovers from bug 1490765. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D16269

--HG--
extra : moz-landing-system : lando
2019-01-11 05:02:07 +00:00
Mike Hommey
fd4343007c Bug 1515595 - Move AR to python configure. r=froydnj
Depends on D15179

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

--HG--
extra : moz-landing-system : lando
2018-12-21 22:53:53 +00:00
Mike Hommey
eb8e6cb9c3 Bug 1515843 - Remove HOST_AR/HOST_RANLIB. r=ted
Now that we're not even building host static libraries, we don't need
variables for the tools used to build them.

Ironically, we weren't even running HOST_RANLIB.

Depends on D15172

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

--HG--
extra : moz-landing-system : lando
2018-12-21 23:00:17 +00:00
Mike Hommey
6e8b8a5fad Bug 1515581 - Move RC and WINDRES to python configure. r=nalexander
Remove the version check for WINDRES, because, as per bug 454112, it
didn't actually work, and, making it work actually causes problems
because llvm's windres, used with mingw clang, has version 0.1.

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

--HG--
extra : moz-landing-system : lando
2018-12-20 22:25:24 +00:00
Mike Hommey
bfa72afecb Bug 1515268 - Refresh config.guess and config.sub from upstream. r=ted
Differential Revision: https://phabricator.services.mozilla.com/D14954

--HG--
extra : moz-landing-system : lando
2018-12-19 22:36:57 +00:00
Brindusan Cristian
13788edbab Merge inbound to mozilla-central. a=merge 2018-12-18 11:50:37 +02:00
Nick Alexander
f138f58d97 Bug 1498406 - Part 3: Purge unused ANDROID_BUILD_TOOLS_VERSION. r=froydnj
We don't care anymore: the Gradle build fetches an appropriate version
of the build-tools package, and the one build-tool we actually use --
zipalign -- isn't version sensitive.

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

--HG--
extra : moz-landing-system : lando
2018-12-18 03:28:56 +00:00
Nick Alexander
47d6187d14 Bug 1498406 - Part 2: Don't check for Android platform in configure. r=froydnj
There's no need -- it will be fetched by Gradle when needed.  The only
wrinkle is that the user might be asked to confirm license agreements,
which could be a hassle (and could cause problems in CI, but there we
install relevant platforms in advance).

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

--HG--
extra : moz-landing-system : lando
2018-12-18 03:29:16 +00:00
Mike Hommey
8c199b7a84 Bug 1513798 - Revert bug 638149 and leave it to configure to set -dead_strip. r=nalexander
We're always setting -dead_strip on mac builds, per
cross-mozconfig.common, we might as well not do that and revert bug
638149, which disabled adding -dead_strip with LTO: that is apparently
not a problem anymore.

Differential Revision: https://phabricator.services.mozilla.com/D14373
2018-12-18 10:50:06 +09:00
André Bargull
ff6d766102 Bug 1473588: Upgrade minimum ICU version to ICU 63. r=jorendorff 2018-11-01 09:39:38 -07:00
Nick Alexander
d56eb2a314 Bug 1489443 - Set GCC_USE_GNU_LD based on linker kind. r=froydnj
The desired outcome of this change is that we'll set
-Wl,--version-script based on linker kind and not on the output of
$LINKER -v.

This is a cheap way to address a simple problem that has a complicated
ideal solution. The underlying issue is that in some situations, when
targeting Android, a macOS system ld is interrogated to determine if
a cross-compiling linker "is GNU ld" and a particular linker feature
is set in that situation. The macOS system ld doesn't pass the "is
GNU ld" test, and the linker feature isn't set; that causes link
failures, even though the actual linker has nothing to do with the
system ld.

The ideal solution is to test for linker capabilities dynamically. We
do a lot of that in old-configure.in, and we don't do any of that in
toolchain.configure. Rather than start testing in
toolchain.configure, we hard-code: a cheap solution to the immediate
problem.

MinGW suffers somewhat from the opposite problem: the linker "is GNU
ld" (compatible), but the linker checks don't happen at all. We hard-code
for MinGW based on the C compiler instead.

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

--HG--
extra : moz-landing-system : lando
2018-10-17 19:46:03 +00:00
Cosmin Sabou
9b6a537ec7 Backed out changeset 91300d29898b (bug 1489443) for MinGW build bustages. CLOSED TREE 2018-10-13 02:17:15 +03:00
Nick Alexander
3c83541616 Bug 1489443 - Set GCC_USE_GNU_LD based on linker kind. r=froydnj
The desired outcome of this change is that we'll set
`-Wl,--version-script` based on linker kind and not on the output of
`$LINKER -v`.

This is a cheap way to address a simple problem that has a complicated
ideal solution.  The underlying issue is that in some situations, when
targeting Android, a macOS system `ld` is interrogated to determine if
a cross-compiling linker "is GNU ld" and a particular linker feature
is set in that situation.  The macOS system `ld` doesn't pass the "is
GNU ld" test, and the linker feature isn't set; that causes link
failures, even though the actual linker has nothing to do with the
system `ld`.

The ideal solution is to test for linker capabilities dynamically.  We
do a lot of that in old-configure.in, and we don't do any of that in
toolchain.configure.  Rather than start testing in
toolchain.configure, we hard-code: a cheap solution to the immediate
problem.

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

--HG--
extra : moz-landing-system : lando
2018-10-12 22:38:44 +00:00
David Major
56fefe876b Bug 1427808 - Fix libs for clang-plugin build. r=froydnj 2018-10-12 07:14:00 -04:00
Guillaume GARDET
01c57dd3b8 Bug 1465731 - Fix armv6 build. r=glandiumd
ARM_ARCH setting is broken in build/autoconf/arch.m4 file,
when multiple lines match the pattern.
So, keep the 1st line only.
2018-07-16 03:18:00 +03:00
shindli
3e5598a161 Backed out changeset 494eb5db5648 (bug 1465731) for bustages in the MOZBUILD file 2018-10-04 09:15:43 +03:00
Guillaume GARDET
5790c3ab65 Bug 1465731 - Fix armv6 build. r=glandium
ARM_ARCH setting is broken in build/autoconf/arch.m4 file,
when multiple lines match the pattern.
So, keep the 1st line only.
2018-10-03 04:22:00 +03:00
Ted Mielczarek
5beac189a8 Bug 1397263 - move GNU_AS checks to toolchain.configure; r=glandium
The GNU_AS check in old-configure depended on running with the value
of $AS before it gets reset to just be the C compiler, which breaks when
we move setting AS into moz.configure.

This patch moves the GNU_AS check to toolchain.configure and changes it
so that it works when the assembler is the C compiler.  We do have to
fix things slightly for clang, because the previous check was
succeeding, but not because of clang: it was detecting the presence of
"GNU" in the output for GNU ld/gold and a message about the GNU GPL.
2018-10-03 20:29:29 -04:00
Nathan Froyd
9a1e9149b8 Bug 1397263 - move AS checks to toolchain.configure; r=glandium
This is a fairly straightforward port of the AS tool checks from old-configure
to toolchain.configure. AS is a little quirky in that we currently do a
normal-looking check for it, but then override that value to be the C compiler
for non-Windows builds, and ml[64]/armasm64 for Windows builds.

After migrating those checks, the only things left in the MOZ_DEFAULT_COMPILER
macro in compiler-opts.m4 were some unused bits, so I removed them:
* Setting of CPP/CXXCPP, which are set in toolchain.configure now
* Setting HOST_LDFLAGS to empty, which doesn't seem particularly useful.

There was also a quirky old test that the assembler was ml[64] when js-ctypes
is enabled that I removed, I don't think it provides any value since this
patch will ensure that we're using the right assembler for Windows builds.
2018-10-03 20:29:29 -04:00
Thomas P.
fde56b2dde Bug 1483780: enable sanitizer-less libfuzzer builds r=froydnj 2018-09-20 21:21:38 +00:00
Andreea Pavel
a6ba34f2ad Backed out 2 changesets (bug 1483780) for build bustages on a CLOSED TREE
Backed out changeset 2b0a42c589c5 (bug 1483780)
Backed out changeset 48d133cbafd3 (bug 1483780)
2018-09-21 05:43:03 +03:00
Thomas P.
c047fdb3fb Bug 1483780: enable sanitizer-less libfuzzer builds r=froydnj
--HG--
extra : histedit_source : b7caa42560c3d8e7ba1dbf61fcacfe0698790801
2018-09-20 21:21:38 +00:00
Thomas P.
dae33d978b Bug 1483780: enable sanitizer-less libfuzzer builds r=froydnj superreview=decoder
--HG--
extra : histedit_source : 6fd1a37c3fb5d8997be11f7846b2976fc7b8a647
2018-09-11 03:49:37 +00:00
arthur.iakab
1ee75a928a Merge inbound to mozilla-central a=merge 2018-09-19 05:18:50 +03:00
Ted Mielczarek
115b2651d5 Bug 1490463 - part 3 - remove BUILD_TOOLS from config.mk; r=mshal
BUILD_TOOLS was only ever used for things that another variable provides
equally well.  Removing BUILD_TOOLS means that we can remove win_srcdir
and WIN_TOP_SRC as well.
2018-09-18 16:02:22 -04:00
Mike Hommey
cdd1898856 Bug 1491236 - Always enable unwind tables on *nix r=froydnj
We were already always enabling it on builds with frame pointers on
Android. We now extend this to builds without frame pointers, helping
with client-side stacktracing for crashes.

It's also the default on many platforms, such as x86-64, whether frame
pointer are enabled or not and on x86 with GCC. Somehow, it's not the
case for x86 with clang, so this makes clang builds the same as GCC
builds in that regard.

On ARM, we were always omitting frame pointers because of a GCC bug, but
we've not been using GCC for Android builds for a long time (and the GCC
bug was actually fixed in 4.7 and backported to 4.6, making it fixed in
all versions of GCC we support).

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

--HG--
extra : moz-landing-system : lando
2018-09-18 21:48:28 +00:00
Thomas P.
ac7fc2f5a6 Bug 1474488: add --enable-undefined-sanitizer with custom checks r=froydnj 2018-09-11 02:47:23 +00:00
Jim Chen
d968bd5148 Bug 1480834 - 2. Add x86-64 build support; r=nalexander
Add x86-64 as an option for Android builds in the build system.

Differential Revision: https://phabricator.services.mozilla.com/D4480
2018-09-13 12:09:25 -04:00
Jim Chen
054f1436df Bug 1480834 - 0. Drop mips and update NDK platform to 16; r=jchen
Differential Revision: https://phabricator.services.mozilla.com/D5602
2018-09-13 12:09:24 -04:00
Mike Hommey
d60c232a5e Bug 1490618 - Use the right variable name for the new ASTMatcher API check r=froydnj
This will make the result properly displayed.

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

--HG--
extra : moz-landing-system : lando
2018-09-12 12:18:13 +00:00
Tom Ritter
0f09d86a83 Bug 1489205 In expandlibs.m4, use the Windows form only when we are compiling on Windows r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D5172

--HG--
extra : moz-landing-system : lando
2018-09-11 03:20:06 +00:00
Mike Hommey
cd06f032af Bug 1079662 - Always enable PIE. r=froydnj
Last attempt, a few years ago, blatantly failed because nautilus (the
GNOME file manager) can't start PIE executables, which look like shared
libraries, and that it thus considers not being executables.

Downstreams don't actually have the problem, because users won't be
launching Firefox from a file manager, but for mozilla.org builds, it is
a problem because users would download, then extract, and then likely
try to run the Firefox executable from a file manager.

So for mozilla.org builds, we still need to find a way around the
nautilus problem.

A .desktop file could be a solution, but .desktop files have not
actually been designed for this use case, which leads to:
- having to use an awful one-liner shell wrapper to derive the path
  to the executable from that of the .desktop file,
- not even being able to associate an icon,
- the .desktop file not being copiable to a location where .desktop
  files would normally go, because it would then fail to find the
  executable.

Another possibility is to go back to using a shell wrapper, but that's
not entirely appealing.

What we chose here is similar, where we have a small `firefox` wrapper
that launches the real `firefox-bin` (which is still leftover from those
old times where we had a shell wrapper, for reasons).

The small `firefox` wrapper is a minimalist C executable that just
finds the path to the `firefox-bin` executable and executes it with the
same args it was called with. The wrapper is only enabled when the
MOZ_NO_PIE_COMPAT environment variable is set, which we only take into
account on Linux. The variable is only really meant to be used for
mozilla.org builds, for the nautilus problem. Downstreams will just pick
the default, which is changed to build PIE.

On other platforms, PIE was already enabled by default, so we just
remove the --enable-pie configure flag.

Differential Revision: https://phabricator.services.mozilla.com/D5109
2018-09-08 07:41:21 +09:00
Mike Hommey
ee56e638a0 Bug 1079662 - Always pass -rdynamic when linking with sanitizers. r=froydnj
When building executables as PIE, and because we use -Bsymbolic, which
symbols are exported from an executable varies based on the libraries
it's directly linked against, to fulfil their symbol needs. So when a
library depends on e.g. ASAN runtime symbols, and the linker finds that,
it will keep those ASAN symbols in the executable for the library. And
drop the other, unused symbols.

But when the executable then dlopen()s a library (e.g. shlibsign loading
libfreebl) that uses another set of ASAN symbols, including symbols that
none of the direct dependencies of the executable need, dlopen() fails
because of the missing symbols.

It's not currently an apparent problem because we don't enable PIE, and
we build Gecko executables with -rdynamic already (for mozjemalloc). But
we don't build non-Gecko executables this way (like shlibsign).

Differential Revision: https://phabricator.services.mozilla.com/D5108
2018-09-08 07:41:21 +09:00
Mike Hommey
9dae4fbe09 Bug 1487931 - Avoid using linker scripts as file lists when doing LTO with BFD ld. r=froydnj
At least, when that combination doesn't work. This requires passing the
LTO flags to the compiler invocations for the test, which in turn
requires actually calling the linker directly on Windows, instead of
directly through the compiler, as when actually building.

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

--HG--
extra : moz-landing-system : lando
2018-09-04 21:49:16 +00:00
Mike Hommey
93cd01c00d Bug 1487595 - Error out instead of setting EXPAND_LIBS_LIST_STYLE to none. r=froydnj
Back before expandlibs was removed in bug 1429875, not using list files
was supported, but nowadays, it just leads to errors like the following:

*** No rule to make target 'libfake_so.list', needed by 'libfake.so'.  Stop.

We might as well error out during configure, rather than much later
during the build.

Differential Revision: https://phabricator.services.mozilla.com/D4738
2018-09-01 08:55:41 +09:00
Mike Hommey
e840c2d285 Bug 1487595 - Remove LIBS_DESC_SUFFIX and EXPAND_LIBS_ORDER_STYLE. r=froydnj
They're both unused since bug 1429875.

Differential Revision: https://phabricator.services.mozilla.com/D4737
2018-09-01 08:55:40 +09:00
Sebastian Hengst
4f39161869 Backed out 18 changesets (bug 1487647, bug 1487271, bug 1487001, bug 1487105, bug 1486845, bug 1485738, bug 1487595, bug 1347060, bug 1480900, bug 1487889) for accidential push of inbound to central. a=backout
Backed out changeset 331706d8558f (bug 1487595)
Backed out changeset d78b833293db (bug 1487595)
Backed out changeset f292ef31ef0b (bug 1487595)
Backed out changeset ef8c5c529210 (bug 1486845)
Backed out changeset 9cbc8592d649 (bug 1487889)
Backed out changeset 05a0118455e4 (bug 1487105)
Backed out changeset 78b8ff889992 (bug 1487105)
Backed out changeset 5a55e5b74107 (bug 1480900)
Backed out changeset ea2402bdef40 (bug 1347060)
Backed out changeset 3f831b709e37 (bug 1485738)
Backed out changeset d1c29bfb5ea9 (bug 1480900)
Backed out changeset 8e60483ec824 (bug 1480900)
Backed out changeset 328589a86dd1 (bug 1487647)
Backed out changeset d974ef1647f3 (bug 1480900)
Backed out changeset 0509636cc5d5 (bug 1487001)
Backed out changeset c57165730494 (bug 1487271)
Backed out changeset a55d81761fc4 (bug 1480900)
Backed out changeset eaa2d0e9b62d (bug 1480900)

--HG--
rename : gfx/docs/AsyncPanZoomArchitecture.png => gfx/doc/AsyncPanZoom-HighLevel.png
rename : gfx/webrender_bindings/README.webrender => gfx/doc/README.webrender
rename : gfx/docs/SilkArchitecture.png => gfx/doc/silkArchitecture.png
2018-09-01 02:01:23 +03:00
Mike Hommey
193ff6bb87 Bug 1487595 - Avoid using linker scripts as file lists when doing LTO with BFD ld. r=froydnj
At least, when that combination doesn't work.

Differential Revision: https://phabricator.services.mozilla.com/D4739
2018-09-01 07:21:03 +09:00
Mike Hommey
6b6cfecf98 Bug 1487595 - Error out instead of setting EXPAND_LIBS_LIST_STYLE to none. r=froydnj
Back before expandlibs was removed in bug 1429875, not using list files
was supported, but nowadays, it just leads to errors like the following:

*** No rule to make target 'libfake_so.list', needed by 'libfake.so'.  Stop.

We might as well error out during configure, rather than much later
during the build.

Differential Revision: https://phabricator.services.mozilla.com/D4738
2018-09-01 07:21:03 +09:00
Mike Hommey
fbe830210b Bug 1487595 - Remove LIBS_DESC_SUFFIX and EXPAND_LIBS_ORDER_STYLE. r=froydnj
They're both unused since bug 1429875.

Differential Revision: https://phabricator.services.mozilla.com/D4737
2018-09-01 07:21:02 +09:00
Nathan Froyd
c1c5987ee2 Bug 1485716 - part 1 - always use frame pointers on aarch64 windows; r=dmajor
This support is not necessary, but the ABI conventions
page (https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions)
encourages people to use frame pointers for fast stack walking, and
using frame pointers means we're compatible with ETW, which is a Good
Thing.
2018-08-23 16:48:53 -04:00
Jan Beich
e459b11dc1 Bug 1484535 - Allow C++ files to check MOZ_SYSTEM_ICU. r=froydnj 2018-08-21 16:02:00 +03:00
Nathan Froyd
93ba371b66 Bug 1480558 - part 4 - add icudata support for aarch64 windows; r=mshal
yasm doesn't support aarch64, and trying to use GNU as with an MSVC
build seems like sadness waiting to happen.  Instead, we'll generate our
own assembly file that armasm64 will accept.
2018-08-21 11:00:34 -04:00