1. cmd.exe quirk 1: `exit /b 1` sets error code `0` for **the process**, even though it sets `errorlevel` to `1`.
2. `bootstrap.bat` needs to check that `build.bat` succeded (cmd.exe quirk 2: `echo off` doesn't change `errorlevel`).
3. `build.bat` overrides exit code with call to `dir *.exe`.
4. `setlocal` will rollback `pushd` on exit (that also helps with Ctrl+C).
The import would load modules that had already been loaded instead of just importing the symbols. This would cause stack overflows if a module happened to accidentally re-load itself indefinitely. This fixes the overflow by importing but not loading modules that recurse.
fixes#367
* src/tools/gcc.jam:
Add missing :T for target file paths in linker invocation rules.
This fixes builds when b2 uses a response file instead of the
command line after a size limit is reached.
Co-authored-by: Christian Seiler <c.seiler@luxflux.de>
Adds run-flags feature to allow more control on how MPI run targets are executed. This also removes the Boost specific dependency in the `mpi-test` rule.
This expands out the failed and skipped summary tail lines to also include a sorted list of action and targets of the corresponding failed and skipped targets. This makes it easier to see them and to further search for individual ones in teh rest of the output. It also makes it possible to quickly retry specific targets.
fixes#196
1. Require that the directive is at the beginning of a line, sans
leading spaces.
2. Require that the header name is not empty.
This eliminates majority of comments that look like #include directives.
One practical example is a comment in Boost.Wave that has "#include <>"
and "#include """ in its body.
Depending on the scanning regex rules it's possible to end up with empty names to try and scan for headers. Which leads to errors of trying to open such non-existent files. This avoids such errors by skipping the scanning attempt.
Because we use the bootstrap exe for the install it was not possible to cross-compile install B2. This change dynamically chooses which b2.exe to install based on target-os and host-os. When in a cross-compile context, i.e. host-os != target-os, the b2 installed is built from source (and using target-os) instead of using the bootstrap exe.
fixes#358
When guiven a Windows dir reference to add to the import search it would previously treat the reference as a non-native path, root it, and directly add it to the search dirs. But for windows that means it would always root it with the current dir as native win paths look like non-native relative paths. This change fixes the issue by properly creating the given ref to a non-native path and back to a native path to add to BOOST_BUILD_PATH which only contains native paths.
Some older compilers have problems with choosing the right overload when there's a general template vs typed arg functions. So remove template that we know should not match for other overloads.