Commit Graph

215 Commits

Author SHA1 Message Date
Jan Niklas Hasse
5c93343406
Merge pull request #1331 from ilor/missingdeps3
missingdeps tool, take 2
2021-02-23 10:08:48 +01:00
Tomasz Śniatowski
3030254733 Add a -t missingdeps tool to detect some classes of build flakes
The tool looks for targets that depend on a generated file, but do not
properly specify a dependency on the generator. It needs to be run after
a successful build, and will list all potential flakes that may have
broken the build, but didn't due to accidental build step ordering.

The search relies on the correctness of depfile and generator output
information, but these are usually easier to get right than dependencies.

The errors found can usually be verified as actual build flakes by trying
to build the listed problematic files alone in a clean build directory.
Such builds usually fail with a compile job lacking a generated file.

There is some overlap between this tool and 'gn check', but not everyone
uses gn, not everyone using gn uses gn check, and most importantly, gn
check is more about modularity, and less about actual build-time deps
without flakes.

The tool needs to be run after a build completes and depfile data is
collected. It may take several seconds to process, up to a dozen or
two on a large, chromium-sized build.
2021-02-22 23:48:58 +01:00
Colin Cross
589f5b2497 Turn BuildStatus into an interface
Make BuildStatus an abstract interface, and move the current
implementation to StatusPrinter, to make way for a serialized
Status output.
2020-12-18 12:38:29 -08:00
Kevin Adler
92fc37555f
Fix test crashes on AIX
Both hash_collision_bench and manifest_parser_perftest crash on AIX with

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
IOT/Abort trap (core dumped)

32-bit AIX applications by default allocates only a single 256M segment
for stack and heap for 32-bit applications, which is insufficient for
these tests. When building these tests on AIX in 32-bit mode, increase
the max number of segments so they will run without crashing.
2020-11-13 15:40:51 -06:00
Krzysztof Leśniak
6c5fc1d4ec
Use c++ instead of g++
`configure.py` assumes `g++` is present on the system, which is not the case, e.g. for FreeBSD.
`c++` should be used insted, which should be a link to system c++ compiler. This will be `g++` for linux, but `clang++` for FreeBSD.
2020-08-01 17:04:14 +02:00
Mike Gilbert
b748d08561 Replace references to README with README.md
The README file was renamed to README.md in commit
a37da20ae7.
2020-03-20 19:38:26 -04:00
Helenerineium
288f04eb17 Fix warnings on mingw build 2019-11-23 17:47:44 +08:00
Colin Finck
21eb8669ff
Fix MinGW bootstrap build by applying the fix in appveyor.yml permanently. 2019-08-26 18:49:47 +02:00
ThePrez
bd17f23623 Enable build on IBM i platform (#1630)
* No perfstat for IBM i (OS400) AIX variant
* Allow for future IBM i to identify as 'os400'
2019-08-09 18:05:12 +02:00
Jesse McKenna
007e029ea3 Update WIN32_WINNT from 0x0501 (Windows XP) to 0x0601 (Windows 7) to support processor-group Windows API 2019-07-23 15:10:17 -07:00
Brad King
e5c22c0a4b Teach DependencyScan to load a dyndep file
Add a LoadDyndeps method to load a dyndep file and update
the edges that name it in their dyndep binding.
2019-04-18 08:21:44 -04:00
Brad King
c4b0c21ba9 Add a parser for a new "dyndep" file format
Define a file format suitable for specifying dynamically-discovered
dependency information for build edges.  Design a format inspired by the
build manifest format and using the same lexer.  Start with a required
format version specification followed by "build" statements that add
implicit inputs and outputs to existing edges.
2019-04-18 08:21:44 -04:00
Brad King
d718808392 Factor out a base class of ManifestParser
Create a Parser base class that holds parser functionality not specific
to the build manifest file format.  This will allow it to be re-used for
other parsers later.
2019-04-18 08:21:44 -04:00
Jan Niklas Hasse
71b9648932 Remove trailing whitespace from all files 2019-04-17 18:04:54 +02:00
ikifof
0db30f237c Fix older VS compatibility issues and PDB files generation issue. (#1435)
Fixes #1411.
2018-11-07 11:32:29 +01:00
Jan Niklas Hasse
a3f284ac35
Merge pull request #1326 from 0-wiz-0/master
Two fixes for NetBSD
2018-11-05 20:47:30 +01:00
Vasili Skurydzin
056633514f Port to AIX platform.
Taking care of printf format specifiers and large files using compiler macros in configure.py
2018-08-02 10:50:55 -04:00
Ryan Schmidt
ccec031950
Honor CXXFLAGS in configure.py 2018-04-06 03:15:01 -05:00
Thomas Klausner
2950bb1af9 Add NetBSD in another clause. 2017-09-10 23:26:27 +02:00
Imre Vadász
d806aa5bc4 Add support for DragonFly.
DragonFly uses a fork of FreeBSD ports, and also uses the /usr/local prefix.
And ppoll is also available in DragonFly.
2017-06-10 18:53:43 +02:00
Takuto Ikuta
08a3220bc2 Add string_piece_util
Following functions are implemented for further performance
optimization.

* JoinStringPiece
* SplitStringPiece
* EqualsCaseInsensitiveASCII
* ToLowerASCII

To improve performance of CLParser, I will introduce above functions
into include_normalize-win32.cc.
2017-04-26 17:27:54 +09:00
Takuto Ikuta
292c89f486 Add clparser_perftest 2017-04-12 11:12:38 +09:00
Refael Ackermann
d560c62cae Need this to build on vs2017
.\src\clparser.cc(56): note: see reference to function template instantiation '_OutIt std::transform<std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,int(__cdecl *)(int)>(_InIt,_InIt,_OutIt,_Fn1)' being compiled
        with
        [
            _OutIt=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,
            _InIt=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,
            _Fn1=int (__cdecl *)(int)
        ]
D:\bin\dev\VS\2017\BuildTools\VC\Tools\MSVC\14.10.24911\include\algorithm(946): warning C4244: '=': conversion from 'int' to 'char', possible loss of data
2017-02-04 18:38:20 -05:00
Pietro Cerutti
68cf75583d FreeBSD supports ppoll(2) 2016-09-15 12:20:35 +00:00
Nico Weber
3a88912624 Make deps=msvc experimentally available on non-Windows.
This makes it possible to run most of the clparser tests on non-Windows,
and is potentially useful for cross-compiling on non-Windows hosts.
Also, the manual didn't document this as Windows-only previously.

If you use this on non-Windows, please let me know, else I might undo
this change again in the future.
2016-04-05 21:08:32 -04:00
Nico Weber
bc4f7bf752 Merge pull request #1106 from nico/winfix
win: Only drop /showIncludes in bootstrap builds.
2016-02-05 16:26:52 -05:00
Nico Weber
2f127fab68 win: Only drop /showIncludes in bootstrap builds.
Fixes #1103.
2016-02-05 13:28:56 -05:00
Frank Benkstein
ab652787de MSVC: disable warning about constant conditional expressions
The standard headers for Visual Studio 2008 generate a warning about
constant conditional expressions when compiled with exception support
disabled.  This is caused by the _CATCH_ALL macro in xstddef which is
defined thusly:

  #ifdef _HAS_EXCEPTIONS
  #define _CATCH_ALL } catch (...) {
  #else
  #define _CATCH_ALL } if (0) {
  #endif
2016-02-05 14:56:53 +01:00
sphawk
eb1a4fb489 fix for localized version of cl.exe 2016-01-25 22:43:14 +09:00
Evan Martin
a1159ff0d5 when building with cwd = source root, use relative paths
The pull request that introduced building from a directory other
than the source dir, https://github.com/ninja-build/ninja/pull/979,
made it so all source paths are effectively absolute paths.  This
change restores the old behavior in the case when you are building
in the source.  See the comments there.
2015-11-17 14:42:12 -08:00
Evan Martin
4243257288 rename the build-file variable $sourcedir to $root
Confusingly, $sourcedir is the path to the root of the repository,
*not* the path to the src/ directory.
2015-11-17 14:42:12 -08:00
Evan Martin
3be9710589 put warning flags together 2015-11-17 14:42:12 -08:00
Evan Martin
a6859ac8af improve docs generation, including PDF output
- Fix the manual build rules (missing the .xsl as an input).
- Add a README describing how the docs build works.
- Add rules that generate PDF, just 'cause we can.
2015-11-17 14:05:53 -08:00
Evan Martin
4ffe56d387 Merge pull request #1007 from mikesep/aix
Support for AIX
2015-11-11 17:19:00 -08:00
Nico Weber
805875b44a Try to fix #685 2015-11-11 13:54:14 -08:00
Mike Seplowitz
aa14d6e067 Separate bootstrapped build from final build
AIX does not support rebuilding ninja in-place from the bootstrapped ninja.
2015-10-22 10:05:44 -04:00
Scott Graham
b8f4ad12c0 Don't output null.o during configure 2015-08-26 19:51:15 -07:00
Mike Seplowitz
cdab57de00 Fix getopt for AIX
AIX supplies getopt but not getopt_long.

We can't use the embedded getopt implementation, since the constness of its
arguments doesn't match the AIX system routine.
2015-08-19 08:43:59 -04:00
Mike Seplowitz
94c10a6a18 Implement GetLoadAverage on AIX using libperfstat 2015-08-19 08:43:58 -04:00
Mike Seplowitz
da4e98b715 Start AIX port 2015-08-19 08:42:06 -04:00
Scott Graham
a4327b9fb0 Set _HAS_EXCEPTIONS=0 on MSVC 2015-08-09 21:02:23 -07:00
Jason Haslam
5d4473d548 Fix bootstrap from a source path containing spaces. 2015-06-22 16:28:04 -06:00
Jason Haslam
d3441a0338 Search for generated headers relative to build dir. 2015-06-22 15:35:32 -06:00
Jason Haslam
1beea932bc Allow configure script to bootstrap out of source. 2015-06-22 15:35:32 -06:00
Nico Weber
4256ff44d9 Revert "Bootstrap out of source" 2015-06-22 13:35:37 -07:00
Jason Haslam
681f761da1 Search for generated headers relative to build dir. 2015-05-26 16:47:18 -06:00
Jason Haslam
78b1e52a5d Allow configure script to bootstrap out of source. 2015-05-26 15:19:28 -06:00
Nico Weber
7ed4457f3b Remove option no longer needed now that we don't use gtest. 2015-03-10 13:45:17 -07:00
Nico Weber
51f06facf4 Simplify. No behavior change. 2015-03-10 09:09:49 -07:00
Nico Weber
00a061cde9 Make diagnostics colored with new gccs (4.9+) too.
Both clang and gcc understand -fdiagnostics-color, so use that flag name.
(This will disable colored diagnostics for clangs older than LLVM 3.3,
but that is several years old by now.)
2015-03-09 10:24:41 -07:00