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

58 Коммитов

Автор SHA1 Сообщение Дата
Mike Hommey 1cf4ac0f2e Bug 1469088 - Relax the assumptions of --enable-lto, and make it work for macOS builds. r=ted
Currently, --enable-lto just implies --enable-linker=lld, which
essentially only works on Linux, and assumes one can't do lto with
anything other than lld. Which is not true. As a matter of fact, even
ld.bfd can do lto, as long as the gold plugin for llvm is available,
or when doing lto with GCC instead of clang.

Anyways, to allow more lto setups, we adapt the --enable-linker setup
to:
- work on macOS, which it currently doesn't, and add support for the mac
  linker (ld64), which, unfortunately, doesn't have a clean way to be
  detected, so work around that.
- default to lld if lto is enable, no linker was explicitly given, the
  compiler is clang *and* the build target is not macOS.

--HG--
extra : rebase_source : 1dab2ad6230d18e7f4285943e76352e23b987d4e
2018-07-05 11:35:31 +09:00
Gregory Szorc f818d2620e Bug 1411994 - Ignore Unicode errors when logging; r=glandium
LineIO currently attempts to convert bytes to unicode using the
system preferred encoding. This can obviously fail for some byte
sequences.

In many cases, the conversion is happening for purposes of logging.
In these cases, Unicode validation shouldn't be that important to
us.

So, this commit teaches LineIO to accept an argument defining its
Unicode error mode. We also teach relevant users of LineIO doing
logging to switch the default mode from "strict" to "replace" so
invalid Unicode byte sequences can be logged with the Unicode
replacement character.

During review, glandium pointed out that it may make better sense
to defer Unicode decoding to the logging layer instead of in LineIO.
I agree with this idea. But it can be implemented in another bug:
for now we should unbust the build system.

MozReview-Commit-ID: 7miuSDY8Xzv

--HG--
extra : rebase_source : 40d5d97d908d00b410b49d03729a34568e5bfb1a
2017-10-26 15:27:01 -07:00
Sylvestre Ledru 816ba0c177 Bug 1406668 - Make build/moz.configure/*.configure compliant to the pep8 format + add to the list of directories to check r=glandium
MozReview-Commit-ID: 89NxxGUVjHV

--HG--
extra : rebase_source : 278ceb2d7d31da086216288bd54688fe25faa03b
2017-10-12 15:22:59 +02:00
Sebastian Hengst 3980c1732a Backed out changeset 4dc78384cb58 (bug 1406668) for flake8 linting failures. r=backout
--HG--
extra : rebase_source : 20f93207038c76e2804f255e4ebfdd5e03a8f7cc
2017-10-12 15:08:35 +02:00
Sylvestre Ledru a102c9f46a Bug 1406668 - Make build/moz.configure/*.configure compliant to the pep8 format + add to the list of directories to check r=glandium
MozReview-Commit-ID: 89NxxGUVjHV

--HG--
extra : rebase_source : 658301cb32e9c042cd1931456e4e7b8f475900bd
2017-10-11 16:28:29 +02:00
Sebastian Hengst 7a40cdf1bb Backed out changeset b526011049ee (bug 1406668) for linting failures. r=backout
--HG--
extra : amend_source : fe8373f9572300c7fd090f529c6957fbf905d9ef
2017-10-12 14:41:28 +02:00
Sylvestre Ledru 4e4de3339f Bug 1406668 - Make build/moz.configure/*.configure compliant to the pep8 format + add to the list of directories to check r=glandium
MozReview-Commit-ID: 89NxxGUVjHV

--HG--
extra : rebase_source : 3d22007ea6793961e7031603efe58cdc66e3c6c9
2017-10-11 16:28:29 +02:00
Gregory Szorc f6426ce5ad Bug 1384396 - Add a @depends_all utility function; r=nalexander
Often you only want to evaluate a function if all its dependencies
are true. Expressing this in a "when" can be difficult. So let's
add a convenience decorator for it.

The existing code for @depends_if() was refactored to take an
evaluation function as its first argument. This prevents some
duplicate code and turns @depends_if() and @depends_all() into
one-liners.

MozReview-Commit-ID: Jbugvf0lioM

--HG--
extra : rebase_source : 177741b80ac4fbfb547d6b36a6f5777fe514d91a
extra : source : 0c2bc12f4ebe44428385745266d2fd158e0c3382
2017-07-25 22:00:38 -07:00
Sebastian Hengst 75704b249a Backed out changeset 0c2bc12f4ebe (bug 1384396) for breaking builds when hg username has non-ascii characters. r=backout a=backout on a CLOSED TREE
MozReview-Commit-ID: 2mqBxbDHsH0
2017-07-27 14:56:29 +02:00
Gregory Szorc 869db005b9 Bug 1384396 - Add a @depends_all utility function; r=nalexander
Often you only want to evaluate a function if all its dependencies
are true. Expressing this in a "when" can be difficult. So let's
add a convenience decorator for it.

The existing code for @depends_if() was refactored to take an
evaluation function as its first argument. This prevents some
duplicate code and turns @depends_if() and @depends_all() into
one-liners.

MozReview-Commit-ID: Jbugvf0lioM

--HG--
extra : rebase_source : 38b4af7b668830589126e8a83f5d5ab73914d07c
2017-07-25 22:00:38 -07:00
Bob Owen 847e4be624 Bug 1364137: Get both 32-bit and 64-bit registry values when searching for the Windows SDK. r=glandium
The values that we need to find in the registry can be inconsistent across
different installations, so we retrieve values from both views in our search
for a valid SDK. This also ensures this works for 32-bit and 64-bit python.
2017-07-22 11:32:24 +01:00
Gregory Szorc b47fb974f1 Bug 1377216 - Accept environment variables to check_cmd_output; r=glandium
And include code to work around a bug on older Python versions.

MozReview-Commit-ID: 4pBnMQQJOGB

--HG--
extra : rebase_source : 6f7c5784230bd37b3496b9bb1781e8d342f741b4
2017-07-18 18:06:03 -07:00
Ryan VanderMeulen 741a7a5ea3 Backed out 6 changesets (bug 1377216) for SM(pkg) bustage on a CLOSED TREE.
Backed out changeset b5701f3ce506 (bug 1377216)
Backed out changeset 1f37aebe0f43 (bug 1377216)
Backed out changeset c8931588f674 (bug 1377216)
Backed out changeset ded5328ba74c (bug 1377216)
Backed out changeset 6cb234539746 (bug 1377216)
Backed out changeset ce836965fd58 (bug 1377216)
2017-07-19 22:14:03 -04:00
Gregory Szorc c29efbaf05 Bug 1377216 - Accept environment variables to check_cmd_output; r=glandium
And include code to work around a bug on older Python versions.

MozReview-Commit-ID: 4pBnMQQJOGB

--HG--
extra : rebase_source : 6f7c5784230bd37b3496b9bb1781e8d342f741b4
2017-07-18 18:06:03 -07:00
Mike Hommey f10295dbae Bug 1363811 - Replace all uses of delayed_getattr(a, 'b') with a.b. r=cmanchester+432261
And remove delayed_getattr.
2017-05-19 07:03:40 +09:00
Mike Hommey 6ddaf5ad21 Bug 1316956 - Add a when argument to check_prog. r=chmanchester
--HG--
extra : rebase_source : ce5167bbceb31e554857cba940e72181a5fa361b
2017-05-13 07:12:56 +09:00
Mike Hommey 9de779f50a Bug 1335666 - Remove @depends_when. r=chmanchester
In bug 1296530, we made @depends take a when argument, it can now replace
all uses of @depends_when.

--HG--
extra : rebase_source : d090723fcbf3a56e06bd9c2defc3301cac04d8b0
2017-02-01 16:25:29 +09:00
Carsten "Tomcat" Book 5615a8aaba Bug 1323901 - Bustage fix from glandium 2016-12-28 09:29:31 +01:00
Mike Hommey 74f8bb6e5e Bug 1323901 - Force `which` to use lowercase extensions on Windows. r=cmanchester+432261
--HG--
extra : rebase_source : 1932e63f7e02a80e5c83ee6bc0963d2c98d7fdd9
2016-12-23 06:28:03 +09:00
Mike Hommey 5fd2ce5f30 Bug 1317359 - Move add_old_configure_* functions to util.configure. r=chmanchester
--HG--
extra : rebase_source : 240fd42920ed4a17592c368ab764672cac01ca31
2016-11-15 14:35:22 +09:00
Mike Hommey 900e53b021 Bug 1293675 - Error out when GetShortPathName returns a long path name. r=gps
--HG--
extra : rebase_source : fa95f8a1356009c44b33701b76d878e75fba7324
2016-11-01 08:06:40 +09:00
Mike Hommey be15eb6990 Bug 1313306 - Remove --help dependencies from @dependable and delayed_getattr. r=chmanchester
This sadly requires to replace a few @dependendable to pass the lint
check.

--HG--
extra : rebase_source : e0fd1c6f104076ea9f2c3474aadb7bebdf9a7fd8
2016-10-27 15:00:51 +09:00
Phil Ringnalda 4880541dd8 Backed out changeset 6c105cd2bf71 (bug 1293675) for Windows failures in test_checks_configure.py 2016-10-31 18:46:00 -07:00
Mike Hommey bd70f6640e Bug 1293675 - Error out when GetShortPathName returns a long path name. r=gps
--HG--
extra : rebase_source : b871d4527cdba54ec1764fe99cef1261bf09d868
2016-11-01 08:06:40 +09:00
Mike Hommey e5ba3fd67a Bug 1296530 - Replace include_when with include, and remove include_when. r=chmanchester
--HG--
extra : rebase_source : e2efd38b3875dde3dae996405838e9ca20475c32
2016-10-13 17:15:24 +09:00
Mike Hommey caeb1547de Bug 1296530 - Move more things in the new DependsFunction and add a repr() for it. r=chmanchester
--HG--
extra : rebase_source : 739ff145c9f50438d9b7997ab12a7270d4c1b4e5
2016-10-13 13:28:06 +09:00
Mike Hommey 359529b830 Bug 1296530 - Store DependsFunction information for the sandbox as class instances instead of tuples. r=chmanchester
--HG--
extra : rebase_source : 5b05df452074180669bc9cc16501acfe7be7be50
2016-10-13 13:04:18 +09:00
Mike Hommey 16f5c51446 Bug 1296530 - Rename DependsFunction to SandboxDependsFunction. r=chmanchester
--HG--
extra : rebase_source : 60d2ef6f9d8eda36a9f9e3fb82c017958eab18a3
2016-10-13 12:45:24 +09:00
Gregory Szorc 2562138ede Bug 1291944 - Verify makensis binary is 32-bits; r=glandium
This required implementing a utility function to resolve the binary
type. I used GetBinaryTypeW via ctypes because this seems the fastest.
I arbitrarily limited the function to testing 32-bit and 64-bit Windows
executables because hopefully those are the only executables we'll
ever encounter. We can expand the binary detection later, if needed.
This includes support for running on non-Windows platforms.

MozReview-Commit-ID: CYwyDWQrePc

--HG--
extra : rebase_source : 8fd7ca7f253d9e9e18d64784652a5ff934ad2272
2016-08-15 18:11:48 -07:00
Mike Hommey 3e4c324c93 Bug 1293579 - Add a `dependable` function/decorator to avoid some of the depends('--help') weirdness in python configure. r=chmanchester
--HG--
extra : rebase_source : 957ae782df951e899d1142bd583423e6afdb605a
2016-08-09 15:54:20 +09: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 da40819e21 Bug 1290040 - Make find_program return short paths automatically when paths contain spaces on Windows. r=gps
Also fake enough of ctypes to keep the configure unit tests passing
after these changes.
2016-08-02 13:20:44 +09:00
Carsten "Tomcat" Book 7293066753 merge mozilla-inbound to mozilla-central a=merge 2016-07-27 16:35:44 +02:00
Mike Hommey 71f37655bd Bug 1289286 - Automatically find MSVC from the registry if it's not in $PATH. r=gps
--HG--
extra : rebase_source : 88eb4ef57fb27b40032dff92684663c7f4880940
2016-07-22 15:51:34 +09:00
Tom Tromey 5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Mike Hommey fa43fb4a81 Bug 1287023 - Allow to use delayed_getattr in more cases. r=chmanchester
Until now, it's not been possible to do something as straightforward as:

option('--foo', default=delayed_getattr(milestone, 'is_nightly'))

The reason is that option's default needs what it's given, if it's a
@depends function, to depend on --help.

But we can't have every delayed_getattr add dependencies on --help,
because that would make unwanted things to depend on --help and run
when displaying the help.

Until we can totally remove --help dependencies, this change makes the
resulting @depends function created by delayed_getattr depend on --help
if the @depends function it's given already depends on --help.
2016-07-16 08:34:31 +09:00
Ted Mielczarek f04fd21cff bug 1280220 - find_program should append an exe extension to absolute paths on Windows. r=glandium
MozReview-Commit-ID: 2gaLnL5x2zR

--HG--
extra : rebase_source : 9f5941bbfa73b75c903a64a9be257d205236778d
2016-06-16 12:05:12 +01:00
Chris Manchester 2a763b7273 Bug 1269513 - Add a helper for check_output in Python configure. r=glandium
MozReview-Commit-ID: H3IX5HLyJeu
2016-05-17 14:40:03 -07:00
Chris Manchester 5225069baf Bug 1269513 - Add a template to execute a depends function only when a given value is present. r=glandium
MozReview-Commit-ID: H99fVOqlh8d
2016-05-17 14:40:03 -07:00
Chris Manchester b7387e8701 Bug 1287924 - Add a template for conditionally including moz.configure files. r=glandium
MozReview-Commit-ID: FyT7jLmTxvP
2016-07-26 15:27:19 -07:00
Chris Manchester 8a818960e0 Bug 1269517 - Factor Python configure's try_preprocess into an invocation of a lower-level function. r=glandium
MozReview-Commit-ID: LQ1dqs9ChyZ
2016-07-26 15:27:19 -07:00
Chris Manchester 463051b415 Bug 1267454 - Add a parameter to find_program and check_prog to allow searching the given paths instead of $PATH. r=glandium
MozReview-Commit-ID: F3lke9Q5rRR
2016-05-12 11:55:57 -07:00
Mike Hommey 6c9ed7d3ec Bug 1264831 - Use @imports in find_program. r=gps
This removes the last use of complete configure sandbox unlocking.
2016-04-15 18:56:08 +09:00
Mike Hommey 5ac7830115 Bug 1264831 - Add a few presumably harmless builtins to the sandbox. r=gps
as well as os.path.normcase.
2016-04-15 18:56:08 +09:00
Mike Hommey f1ed025e8b Bug 1260066 - Don't allow to use sandbox primitives from anywhere but global scope and templates. r=nalexander
The initial goal of templates was to provide a way to write shorter
constructs for some generic tasks during configure. But the limitations
of the sandbox and the properties of templates made them used for more
general functions.

Consequently, this led to templates having to be available from
anywhere, which, in turn, led to difficult to introspect constructs.
With bug 1257823, we've made almost everything use set_config and
similar functions from the global scope, but we don't enforce that
those primitives are only used at the global scope.

This change does that: it enforces that primitives are only used at
the global scope. Or in templates.

Now, since templates were used for other purposes than generic uses
of other primitives, we now allow non-template functions to be declared.
Those can be used everywhere, but don't have access to the sandbox
primitives.
2016-03-30 07:08:00 +09:00
Mike Hommey 9bf72e6993 Bug 1256573 - Switch moz.configure to use @imports instead of @advanced. r=nalexander 2016-03-30 07:07:53 +09:00
Mike Hommey 47d916d8f0 Bug 1257516 - Expose a sandboxed logger to moz.configure and use it. r=ted
This removes the warn() function and makes the die() function use the logger
instead of print.
2016-03-30 07:00:03 +09:00
Mike Hommey 96b6664c24 Bug 1257516 - Rename error() to die() and make it take arguments like the logging module. r=ted 2016-03-30 06:59:44 +09:00
Mike Hommey 78d9b6ffa4 Bug 1259354 - Avoid "checking yasm version" being written out when yasm was not found. r=ted
The reason the "checking" string always appears is that @depends
functions are always called, regardless of the value of the dependency.

This introduces a new decorator @depends_true, which works like
@depends, but the decorated function is not called unless one of the
dependency value resolves to True.

The new decorator can also be used to replace many cases where we do
@depends(foo)
def bar(foo):
    if foo:
        ...
2016-03-25 06:54:35 +09:00
Mike Hommey b5c2226dba Bug 1259346 - Make delayed_getattr more resilient to failure. r=nalexander 2016-03-25 06:54:35 +09:00