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

820 Коммитов

Автор SHA1 Сообщение Дата
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
Nathan Froyd ad9e5941dc Bug 1480558 - part 1 - set AS appropriately on aarch64 windows; r=mshal 2018-08-21 11:00:35 -04:00
Mike Hommey d1714fc61d Bug 1484872 - Move LTO flags to python configure. r=froydnj 2018-08-21 08:40:26 +09:00
Mike Hommey 1b5bd092ec Bug 1484872 - Don't look for llvm-symbolizer for LTO builds. r=froydnj
Similar to bug 1478923.
2018-08-21 08:40:10 +09:00
Mike Hommey 7b448e6258 Bug 1484872 - Remove --enable-llvm-hacks. r=froydnj
It calls for cargo-culting its use when using clang, when it's specific
to skipping one linker flags for sanitizers.
2018-08-21 08:40:00 +09:00
Mike Hommey 6f1f972c02 Bug 1484872 - Remove MOZ_CFLAGS_NSS. r=froydnj
It hasn't been used since bug 1295937.
2018-08-21 08:39:49 +09:00
Mike Hommey 4debc3c875 Bug 1341222 - Avoid m4 breaking the sed expressions that set NSPR_INCLUDE_DIR and NSPR_LIB_DIR. r=froydnj 2018-08-21 07:25:00 +09:00
Henri Sivonen 5885cf2259 Bug 1397807 - Allow rustc to emit NEON instructions when clang does on ARMv7 and use NEON in encoding_rs. r=glandium
MozReview-Commit-ID: LNd4jeIGIRg

--HG--
extra : rebase_source : e175f51ec3e8c1097d914d97c6b0d2644dbc4c18
2018-06-05 14:56:11 +03:00
Mike Hommey 75a6124d43 Bug 1469790 - Build for NEON by default when targetting Android arm. r=nalexander
The media/libpng/moz.build file overrides the C standard used via
-std=c89, per bug 1371266, which conflicts with the use of the
arm_neon.h header: compilation fails on the inline keyword, which didn't
exist in C89. We thus "bump" to the GNU89 standard, which is C89+GNU
extensions, including inline.

--HG--
extra : rebase_source : fe93a13e3bef8888e1874d2e94a6d8ef396aaf83
2018-06-27 08:07:27 +09:00
Tom Ritter 2313bfe0d4 Bug 1457482 Add --enable-lto that turns on LTO r=glandium
MozReview-Commit-ID: DjICW7OKqzB

--HG--
extra : rebase_source : 92c766880845ec89305ef1e66ff13223421ac152
2018-04-13 15:55:39 -05:00
Tom Ritter dd8b0dc15f Bug 1457162 Include CFLAGS and CPPFLAGS during the EXPAND_LIBS_LIST_STYLE check r=froydnj,ted
MozReview-Commit-ID: Eu82jfRZTk4

--HG--
extra : rebase_source : f6740111fb0e33ba1a8047d38ec3a9689be3afb6
2018-04-26 14:44:00 +00:00
Mike Hommey 60d982d254 Bug 1463036 - Add -mfloat-abi=softfp to NEON_FLAGS when it makes sense. r=froydnj
This is similar to what is done for VPX_ASFLAGS (bug 1199974).

--HG--
extra : rebase_source : 1e2feb1c244aa46ddc5fb7abb44ce33c6bd63a0f
2018-05-21 12:14:06 +09:00
Tom Ritter d4957e5ab4 Bug 1460647 Move big-obj out of Developer_OPTIONS so local MinGW builds work r=mshal
MozReview-Commit-ID: KxfoVkO4pu8

--HG--
extra : rebase_source : 8eef47c28ff7493afd74c1e553277c427d2eeb75
2018-05-04 10:33:25 -05:00
Andreea Pavel 8aab5416b7 Backed out changeset b51c2e39a12a (bug 1457162) for build bustages e.g mozmake.EXE[5]: *** No rule to make target 'clearkey_dll.list', needed by 'clearkey.dll'. Stop. on a CLOSED TREE 2018-05-16 18:09:10 +03:00
Tom Ritter c2db6a79d9 Bug 1457162 Include CFLAGS and CPPFLAGS during the EXPAND_LIBS_LIST_STYLE check r=froydnj
MozReview-Commit-ID: Eu82jfRZTk4

--HG--
extra : rebase_source : cf5366f8bccf05df98567bd3b8a92b1cd51b7025
2018-04-26 14:44:00 +00:00
Andi-Bogdan Postelnicu a8cc78dc5c Bug 1454667 - clear out CPPFLAGS before compiling test files for the clang plugin. r=froydnj
MozReview-Commit-ID: sxnMdImxf8

--HG--
extra : rebase_source : 2589f86723b972188de1f8318001a1fc7c8627c1
2018-05-11 12:23:30 +03:00
Jan Henning 47d4c1bcf7 Bug 1352015 - Part 1: Fix Android SDK configure checks. r=nalexander
It's the *compile*SdkVersion that needs to match the installed Android SDK plat-
form in order to be able to build an app, whereas the *target*SdkVersion is
merely a compatibility flag.

Since the received wisdom is that targetSdkVersion should be <= compileSdk-
Version and Android Studio is also showing a warning to that effect if you
modify the build.gradle of a small sample app accordingly, I've also added a
corresponding configure check of our own to enforce this.

MozReview-Commit-ID: F2RZemChFrm

--HG--
extra : rebase_source : cf4f6256baa4446d673b94d97f9497f93d7917ff
2018-05-06 20:39:11 +02:00
Nick Alexander 53a4852ffa Bug 1444546 - Part 3: Use GENERATED_FILES for Android SDK bindings generation. r=froydnj,jchen
MozReview-Commit-ID: 2blmzKTvpj3

--HG--
extra : rebase_source : 0954b407ce6625510eadc67dd9989da949b22110
2018-03-06 19:19:48 -08:00