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

102 Коммитов

Автор SHA1 Сообщение Дата
Mike Hommey 94b191e702 Bug 1726544 - Only remove --gc-sections when LIBFUZZER_FLAGS is actually used. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D123407
2021-08-24 21:17:15 +00:00
Mike Hommey 9cdc788c42 Bug 1723245 - Disable --gc-sections when building with sanitizer coverage. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D122952
2021-08-18 22:04:14 +00:00
David Major 1b886dfdf3 Bug 1641674 - Don't use --gc-sections during profile generation r=froydnj
For not-well-understood reasons, ld's `--gc-sections` discards a large number of the PGO bookkeeping structures that enable us to keep track of function counters, and the effect gets worse in object files generated by clang-10.

As much as I'd like to understand this better, the investigations take way too much time. As a path of least resistance, we can disable `--gc-sections` for the instrumentation phase of PGO builds. It won't harm anything since users never see those builds, and it will improve the performance of the optimized phase greatly.

Differential Revision: https://phabricator.services.mozilla.com/D78112
2020-08-28 20:38:45 +00:00
Narcis Beleuzu f81ec36d9c Backed out 3 changesets (bug 1660340, bug 1641674, bug 1660896) for causing Btime failures on Android 7.0 . CLOSED TREE
Backed out changeset d445d03a6ca0 (bug 1660340)
Backed out changeset 94c19736f73e (bug 1660896)
Backed out changeset 0ba092f930cc (bug 1641674)
2020-08-28 23:31:52 +03:00
David Major 8549a06e42 Bug 1641674 - Don't use --gc-sections during profile generation r=froydnj
For not-well-understood reasons, ld's `--gc-sections` discards a large number of the PGO bookkeeping structures that enable us to keep track of function counters, and the effect gets worse in object files generated by clang-10.

As much as I'd like to understand this better, the investigations take way too much time. As a path of least resistance, we can disable `--gc-sections` for the instrumentation phase of PGO builds. It won't harm anything since users never see those builds, and it will improve the performance of the optimized phase greatly.

Differential Revision: https://phabricator.services.mozilla.com/D78112
2020-08-27 16:26:23 +00:00
Razvan Maries cd42d16e28 Backed out 3 changesets (bug 1660340, bug 1641674, bug 1660896) for browser time time outs. CLOSED TREE
Backed out changeset edb1d37f48f4 (bug 1660340)
Backed out changeset 9c8388c30032 (bug 1660896)
Backed out changeset 9bf1c5e44a13 (bug 1641674)
2020-08-28 11:44:25 +03:00
David Major 6db6979442 Bug 1641674 - Don't use --gc-sections during profile generation r=froydnj
For not-well-understood reasons, ld's `--gc-sections` discards a large number of the PGO bookkeeping structures that enable us to keep track of function counters, and the effect gets worse in object files generated by clang-10.

As much as I'd like to understand this better, the investigations take way too much time. As a path of least resistance, we can disable `--gc-sections` for the instrumentation phase of PGO builds. It won't harm anything since users never see those builds, and it will improve the performance of the optimized phase greatly.

Differential Revision: https://phabricator.services.mozilla.com/D78112
2020-08-27 16:26:23 +00:00
Mike Hommey 623e778ff2 Bug 1641786 - Move --with-debug-label to python configure. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D77414
2020-05-29 12:17:24 +00:00
Mike Hommey 711ffb4939 Bug 1639815 - Move --disable-icf to python configure. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76290
2020-05-21 22:38:47 +00:00
Mike Hommey 114f6b0f27 Bug 1639815 - Move --enable-cpp-rtti to python configure. r=froydnj
This only moves the option, but still leaves it to the old-configure code to
add the appropriate flags to CXXFLAGS.

Differential Revision: https://phabricator.services.mozilla.com/D76288
2020-05-21 22:38:46 +00:00
Bogdan Tara 0bff3c4d0b Backed out 7 changesets (bug 1639815) for --disable-install-strip related bustages CLOSED TREE
Backed out changeset 04a1388fc17d (bug 1639815)
Backed out changeset d48eea557b6d (bug 1639815)
Backed out changeset 6fba10f61bd2 (bug 1639815)
Backed out changeset cfb945f6c82f (bug 1639815)
Backed out changeset 16447c678749 (bug 1639815)
Backed out changeset 89475adf15b6 (bug 1639815)
Backed out changeset 94877a079054 (bug 1639815)
2020-05-22 01:33:22 +03:00
Mike Hommey 1f62799146 Bug 1639815 - Move --disable-icf to python configure. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76290
2020-05-21 10:13:48 +00:00
Mike Hommey 8a47c95211 Bug 1639815 - Move --enable-cpp-rtti to python configure. r=froydnj
This only moves the option, but still leaves it to the old-configure code to
add the appropriate flags to CXXFLAGS.

Differential Revision: https://phabricator.services.mozilla.com/D76288
2020-05-21 10:13:27 +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 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
Emilio Cobos Álvarez d99e85ea4b Bug 1613176 - Enable -Wreturn-type-c-linkage. r=froydnj
JSAPI functions are not extern "C" anymore. This warning has a couple false
positives due to template specialization (see first patch of this bug), but we
were already working around them, because apparently some mingw builds use it.

Once I fix cbindgen to generate the specializations as needed we can remove
those workarounds, but this is green in the meantime and doesn't hurt.

Depends on D61626

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

--HG--
extra : moz-landing-system : lando
2020-02-05 11:21:04 +00:00
Tom Ritter a74bcb566f Bug 1585353 - Revert Bug 1440013 and remove the -mbig-obj flag for MinGW r=dmajor
mingw-gcc is no longer supported.

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

--HG--
extra : moz-landing-system : lando
2019-10-04 18:23:15 +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
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
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
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
Nathan Froyd ad9e5941dc Bug 1480558 - part 1 - set AS appropriately on aarch64 windows; r=mshal 2018-08-21 11:00:35 -04: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
Tom Ritter dd44008d7b Bug 1440013 For MinGW build, pass -Wa,-mbig-obj to solve 'too many sections' errors r=glandium
MozReview-Commit-ID: 9ObJnrcpeKe

--HG--
extra : rebase_source : fb071396e0d34e0baa084cb9b238944f7ffe066c
2018-03-06 16:40:38 -06:00
Mike Hommey bb2afff5c1 Bug 1425381 - Always enable PIE on Android now that we support only >= 4.1. r=froydnj
--HG--
extra : rebase_source : c73d77ab1274b2dd54a3785a6d77c6e8dcb69f87
2018-01-11 10:42:15 +09:00
Gregory Szorc 204ba452aa Bug 1382930 - Remove configure references to gonk; r=glandium
Some gaia-related code was also found and removed as part of the
cleanup.

MozReview-Commit-ID: DEjVSljzzu1

--HG--
extra : rebase_source : 58c4c34df44a258d90029853f29ea01338bd142b
2017-07-20 21:48:10 -07:00
Sylvestre Ledru b4dc56b423 Bug 1351109 - Move the gold linker support to the python configure r=glandium
MozReview-Commit-ID: 1FC0W7EqdCI

--HG--
extra : rebase_source : 6df832649a6130869b106cf8c79164b85d1f1ca6
2017-07-05 11:27:56 +02:00
Mike Hommey 0ec6e285c9 Bug 1354581 - Move --enable-release/DEVELOPER_OPTIONS to python configure. r=cmanchester+432261
--HG--
extra : rebase_source : a0a07507ec4ac80d6e873b75bf359d5ef4c1bfea
2017-06-21 10:29:28 +09:00
Mike Hommey dd4c5336f3 Bug 1367267 - Pass -fPIC when compiling the -pie configure test. r=gps
--HG--
extra : rebase_source : 1f9f4638c864f5efb2d43b3a4440fceda9dd6f1d
2017-05-24 09:24:09 +09:00
Alex Gaynor 4cbcec2157 Bug 1360300 -- Support enabling PIE when using clang. r=froydnj
Also remove bits of a comment, now that we support only macOS 10.9+, most of the
comment isn't relevant.

While PIE is enabled by default on macOS, this isn't true of clang on Linux.
--enable-pie can now be used with clang on Linux.

r=froydnj

MozReview-Commit-ID: rc6zJiWzLo

--HG--
extra : rebase_source : 3745175e106ea8c6be9271d8135d43ba359434c7
2017-05-01 15:45:33 -04:00
Jim Blandy 66934884d5 Bug 1349022 - Don't put -DTRACING in the C/C++ flags for debug builds since nobody uses it. r=glandium
--HG--
extra : rebase_source : 51edb82f89b29de9cb6fbb7becaa8ace3d9d40f8
2017-03-20 15:25:55 -07:00
Kris Maglione 31d4562067 Bug 1307626: Correctly define DEBUG substitution in debug artifact builds. r=glandium
MozReview-Commit-ID: Io2eq64Bx7L

--HG--
extra : rebase_source : 42324ea9ef9b775a6399b3f43df5dee349780f13
2016-07-27 15:14:52 -07:00
Mike Hommey 77ee4f3ce4 Bug 1292463 - Move MOZ_C{,XX}_SUPPORTS_WARNING to python configure. r=chmanchester 2016-08-10 10:50:01 +09:00
Mike Hommey 6df9c96b3e Bug 1292059 - Remove now useless compiler checks in compiler-opts.m4. r=chmanchester
Since bug 1259382, CC and CXX are always set, so we can stop
falling back to cl on Windows, and clang on OSX in compiler-opts.m4.

Also, we were actively rejecting GCC on OSX because it was based on
GCC 4.2 and known to be broken, but that test predates our requirement
for more recent versions of GCC, which would fail configure anyways.
So just remove that GCC test. Building with a modern GCC from macports
or wherever might actually work anyways.

Finally, remove target bit-width mismatch with the compiler as it's
handled in python configure since bug 1288313.

--HG--
extra : rebase_source : 9968028cc4e9c197b72136037a7298be10cc139a
2016-08-04 17:11:52 +09:00
Mike Hommey 51236564fa Bug 1290040 - Find link.exe from python configure. r=gps
This ensures we have a full path to link.exe from MSVC in LD, avoiding
to use /usr/bin/link on msys2.
2016-08-02 13:20:53 +09:00
Mike Hommey 581b147a75 Bug 1289239 - Remove autoconf-based C++ compiler validation check. r=chmanchester
Python configure is already checking that the C++ compiler is indeed a C++
compiler, no need to double check in old-configure.

--HG--
extra : rebase_source : fcb6fc7ac88dcf3ef172cd30e23454b654e08c03
2016-07-22 19:13:56 +09:00
Chris Manchester 93ef406a76 Bug 1279369 - Move --enable-debug, MOZ_DEBUG_FLAGS, and --enable-debug-symbols to Python configure. r=glandium
Setting MOZ_DEBUG_SYMBOLS as a define was not moved, as this value is not
checked, and exporting MOZ_DEBUG_SYMBOLS was not moved, as this would only
impact nspr, and we're no longer using the nspr build system.

MozReview-Commit-ID: EvBTunhxcsr
2016-06-20 16:02:01 -07:00
Chris Peterson b1d13cd1ed Bug 1277428 - Enable clang's -Wstring-conversion warnings. r=glandium
--HG--
extra : rebase_source : 4a69f9825383d0da734f7982e974922257b71f63
2016-06-02 21:19:55 -07:00
Mike Hommey c25921b32d Bug 1261531 - Remove most obvious cases of useless AC_SUBSTs. r=chmanchester
- DEVELOPER_OPTIONS, INTEL_CC, INTEL_CXX, MOZ_ENABLE_QTMOBILITY,
  GTK_CONFIG are or even were never used outside configure.

- MOZ_PROFILELOCKING which gradually became a no-op over the years. This
  also removes the configure flag that sets it.

- XULRUNNER_STUB_NAME is xulrunner-only, and xulrunner is gone. This
  also removes the configure flag that sets it.

- The only use of MOZ_CAN_RUN_PROGRAMS was removed in bug 780561.

- AR_LIST and AR_DELETE have not been used since bug 584474.

- MOZ_COMPONENT_NSPR_LIBS is leftover from bug 1036894.

- MOZ_PNG_ARM_NEON_CHECK is not used since bug 980488.

- MOZ_WEBRTC_LEAKING_TESTS has been no-oped by bug 825510.

- VPX_NEED_OBJ_INT_EXTRACT and NO_INTEGRATED_AS_CFLAGS are not used since
  bug 1151175.

- WCHAR_CFLAGS is not used since bug 904985.
2016-04-05 07:16:44 +09:00
Chris Peterson b22c76c625 Bug 1258175 - Remove broken -Wunreachable-code-return and -Wunreachable-code-aggressive checks. r=glandium
compiler-opts.m4's check for `MOZ_CXX_SUPPORTS_WARNING(-W, unreachable-code-return, ac_cxx_has_wunreachable_code_return)` is broken. The C/C++ code that configure emits for MOZ_CXX_SUPPORTS_WARNING() actually contains a -Wunreachable-code-return warning and, thus, doesn't actually detect that clang supports the -Wunreachable-code-return flag.

This configure code in MOZ_CXX_SUPPORTS_WARNING():

  AC_TRY_COMPILE([],
                 [return(0);],
                 $3="yes",
                 $3="no")

generates something like:

  int main() {
  return(0);
  ; return 0; }

where the second return, automatically emitted by configure, is unreachable and causes a -Wunreachable-code-return warning.

The fix is to remove the redundant return(0) from MOZ_CXX_SUPPORTS_WARNING(). This allows clang's -Wunreachable-code-return flag to be detected, but then -Wunreachable-code-return breaks other configure checks, including third-party libraries' configure checks (in particular jemalloc) that also have redundant `return(0)`. So all the third-party libraries' configure checks would need to be fixed upstream, which seems like more hassle than the value of the -Wunreachable-code-return warnings.
2016-03-19 00:10:37 -07:00
Chris Peterson ff383edaf7 Bug 1253170 - Enable clang's -Wimplicit-fallthrough warning to catch unintentional switch fallthroughs. r=glandium 2016-02-10 23:31:04 -08:00
Chris Peterson dcaae98769 Bug 1233297 - Part 2b: Remove some unnecessary warning flags. r=glandium
-Wno-psabi has not been necessary since we updated the build machines to Android NDK r8c three years ago in bug 826133.

-Wsometimes-initialized is not necessary because it is implicitly enabled by clang's -Wuninitialized, which is enable by -Wall.

-Wcast-align is very noisy and we apparently only enable it for gcc on 32-bit x86 builds?

-Wno-unused-local-typedef is no longer necessary. This is the clang flag; gcc's flag is -Wno-unused-local-typedefs, with an 's'. Suppressing gcc's warning was recently deemed unnecessary and WONTFIX'd in bug 1243604. Unsurprisingly, we no longer need it on clang either.

-Wrange-loop-analysis is no longer necessary because it is implicitly enabled by -Wloop-analysis, which is enabled by the previous commit.
2016-02-24 22:51:21 -08:00
Chris Peterson 8f65e4251e Bug 1233297 - Part 2a: Enable some more warnings. r=glandium
-Wsign-compare is enabled by gcc's -Wall (for C++ only), but not by clang's -Wall. -Wsign-compare is enabled for C and C++ by gcc's -Wextra and clang's -Wextra, which we don't use.
2016-02-02 00:04:26 -08:00
Chris Peterson fb67cdc658 Bug 1233297 - Part 1: Consolidate MOZ_C*_SUPPORTS_WARNING configure checks in compiler-opts.m4. r=glandium 2016-02-02 00:04:26 -08:00
Mike Hommey 8143237ec5 Bug 1235738 - Simplify MOZ_DEBUG_DEFINES. r=gps
Now that it's not directly used in command lines, it can just become a list
of symbols that ought to be defined. This simplifies all the uses of it.
2015-12-31 07:28:05 +09:00
Mike Hommey 9f2c4e94ba Bug 1209875 - Get rid of XULPPFLAGS. r=gps
The flags added in toolkit/locales/Makefile.in turn out not to be actually
used, so just remove that.

The remaining uses of XULPPFLAGS are to set debug flags depending on whether
MOZ_DEBUG is set or not. Just set a dedicated variable with the right value
from configure.
2015-10-01 07:30:48 +09:00
Mike Hommey 4275fcc9a3 Bug 1187101 - Add -Wl,-Bsymbolic to LDFLAGS for ASan builds. r=mshal 2015-07-28 08:19:12 +09:00
Ryan VanderMeulen a4f0db6bf1 Backed out changeset e2f1bf3e3dc4 (bug 1171610) for bustage.
CLOSED TREE
2015-06-30 12:35:42 -04:00