2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-14 12:42:11 +00:00
Commit Graph

4151 Commits

Author SHA1 Message Date
Tom Kent
de026bc61e Clear the error instead of not setting it.
Rearranged order for newest first.
2019-03-05 16:23:53 -06:00
Tom Kent
1691e6194c If the vswhere lookup fails, keep searching for others 2019-03-05 06:53:19 -06:00
Steven Watanabe
4ad28074f4 Don't accidentally detect msvc-14.1 as msvc-14.2.
- Fix copy/paste in the environmental variables.
- If vswhere exists, but doesn't find a given version, exit
  detection early and don't fall back on checking the environment.
- Clean up hackish vswhere handling.
2019-03-04 19:25:16 -07:00
Thomas Kent
0a93cc2b97 Added support for actually building with msvc-14.2 2019-03-01 16:06:03 -06:00
Tom Kent
bee2ef619b Future one is "UNK" 2019-03-01 16:04:01 -06:00
Thomas Kent
b655b3f1c2 Fixes vswhere lookup during bootstrap for 16.X and 17.X 2019-03-01 07:05:03 -06:00
Tanzinul Islam
ccb9a97efb Fix build with Embarcadero C++ Builder ("borland" toolset) (#398)
* Fix "bootstrap.bat borland" failing to find label "Test_Path"

If an override toolset is given in the `bootstrap.bat` command-line,
`bootstrap.bat` -> `src/engine/build.bat` bypasses loading
`src/engine/guess_toolset.bat` entirely. Later on the call to
`Test_Path` from `build.bat` -> `config_toolset.bat` fails to find that
label.

Fix this by making a new parameterized entry-point `test_path` inside
`guess_toolset.bat` for this caller in `config_toolset.bat`.

Fixes: #382.

* Handle spaces in C++Builder toolchain path

Nowadays a default installation goes into %PROGRAMFILES%, e.g.
"C:\Program Files (x86)\Embarcadero\Studio\20.0\Bin".

* Add "-Nd" before "/D"-options for bcc32.exe

The preprocessor of the old Borland/C++Builder compiler (bcc32.exe) by
default does not accept preprocessor statements of the form:

    #if SYMBOL_NAME

where `SYMBOL_NAME` was `#define`-ed without a value. It insists on the
`#if defined(SYMBOL_NAME)` or `#ifdef SYMBOL_NAME` forms (emitting error
E2188 "expression syntax"). The workaround is to specify the `-Nd`
option before the offending `/D` options, which effectively provides a
value of "1" to the symbols being #define-ed. Apply this workaround in
the recipes of `bjam` and `b2` to satisfy the preprocessor.

The alternative here would be to migrate to the Clang-based (and much
more standard-compliant) bcc32c.exe, but that would be a more involved
change.

* Separate :Guess_Yacc logic from :Guess_Toolset in build.bat

This was an existing benign issue introduced in 00c2358, but it became
apparent after 9339693.
2019-02-26 19:32:53 -06:00
Rene Rivera
6611aebf3c Define the warnings for the new set of options.
This avoids warnings=all and warnings-as-errors=on causing irreprerable
damage to humans. And makes it possible to have more warnings without
destorying the universe.

fixes #394
2019-02-23 10:55:02 -06:00
Rene Rivera
033ef59305 Add "extra" and "pedantic" warning levels for better warnings control. 2019-02-23 09:55:02 -06:00
David Michael
4746def4a2 Implement a pseudo-toolset for cross-compiling (#196)
When running build.sh with the cross-cc toolset, it uses the native
compiler settings found in the BUILD_CC, BUILD_CFLAGS, and
BUILD_LDFLAGS environment variables to create executables to run on
the build system.  It then sets the toolset to cc so that the
cross-compilers given as CC etc. are propagated to subprocesses.
This ensures both that the build system can build and execute its
required programs and that final executables are cross-compiled for
the target architecture.
2019-02-23 09:36:23 -06:00
Nikita Kniazev
d44023da09 boostbook: Fixed DTDXML path problems (#392) 2019-02-23 09:25:29 -06:00
tee3
e77bf6b336 Test the feature.valid to show that it fails. (#391) 2019-02-23 09:24:49 -06:00
Théo DELRIEU
c8c1064cac Handle <asmflags> in common (#397)
They were not forwarded in compile.asm actions, which prevented
cross-build scenarii.
2019-02-21 23:16:44 -06:00
Rene Rivera
854ee52028 Add feature for code coverage information instrumentation.
Fixes #396
2019-02-21 23:13:33 -06:00
Steven Watanabe
f1f02d7a26 Merge remote-tracking branch 'djarek/saxonhe' into develop 2019-02-15 12:36:24 -07:00
Steven Watanabe
acdf27398b Remove premature optimization that breaks piecemeal on windows.
The bug happens because exec_check replaces the shell inside
the command structure, but make1cmds retains a reference to
the old shell. The bug appears when all of the following are true:
- The action is piecemeal
- b2 is running on Windows
- SHELL is %
- The action contains elements that require a shell
- The action is split into multiple commands
In particular, this applies for gcc.archive with a large
number of object files.

Instead of attempting to reuse the same shell, we make
a new copy in every iteration of the loop.  The shell
and target lists are usually short and the cost of copying
them is insignificant compared to the other work done by the loop.
In addition, the optimization is rarely triggered because
piecemeal actions that require splitting are relatively rare.
2019-02-15 11:55:59 -07:00
Damian Jarek
39c8e85e71 Add support for SaxonHE for xsl processing
Will be used in generation of Beast qreference.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-02-13 23:00:14 +01:00
Peter Dimov
9bf1f14777 Fix clang version check; the in operator is true when $tag is undefined (#379) 2019-01-13 21:27:24 -06:00
Steven Watanabe
a283d72196 Expand subfeatures in target references. Fixes #380. 2019-01-03 10:17:41 -07:00
Steven Watanabe
914f7d4cbe Fix package.install-data, which was broken by my previous commit, and add tests for it. 2018-12-18 12:26:41 -07:00
Steven Watanabe
3ca5a60bb6 Add package.paths to centralize calculations of installation paths. Also add a test case for package. 2018-12-17 18:38:33 -07:00
Steven Watanabe
518bc4a1a1 Handle cases in path.relative-to where it is impossible to find a relative path. Returns an absolute path when possible, otherwise causes a hard error. 2018-12-13 16:14:38 -07:00
Rene Rivera
6eb8e1e095 Merge branch 'develop' into develop-rootless 2018-12-13 11:49:12 -06:00
Rene Rivera
b1954e3205 Reduce the repitition of the bjam version number. 2018-11-20 14:01:04 -06:00
James E. King III
158a8b6d5e Fix typo in cleanup code (#372) 2018-11-19 12:44:50 -06:00
James E. King III
66938a9470 add clang to the list of supported toolsets for bootstrap.sh (#369) 2018-11-18 14:46:18 -06:00
Edward Diener
b5c8b11e59 The --version option does not exist for versions of clang-cl earlier … (#371)
* The --version option does not exist for versions of clang-cl earlier than 6.0.

* Output redirect to avoid console output.
2018-11-18 14:27:12 -06:00
Erich Keane
3385fe2aa6 Fix clang-pch implementation to actually use pch instead of pth. (#368)
As listed in issue #367, PTH is/was an undocumented experimental feature of
clang that is considered 'failed' and is currently being removed from
the next version of clang.  Additionally, there is a bug in the
implementation of PTH in clang that results in severe miscompilation of
code using about 1/3 of the available tokens.

This patch replaces PTH with PCH, which completely subsumes PTH's
functionality. Additionally, PCH mode on clang should now be faster as a
result.

For edification: The difference between PTH and PCH is which step the
compiler stops to save to the binary file.  PTH was intended to execute
after the preprocessor has executed and commits the token list to the
binary file.  PCH will go through semantic analysis and commit the AST
to the binary file.
2018-11-18 14:22:22 -06:00
James E. King III
a8447917be gcc compiler warnings identified unhandled error cases (#370)
error on fork had no output and did not end correctly
2018-11-18 14:08:39 -06:00
Rene Rivera
e8ed01a012 Merge branch 'develop' into develop-rootless 2018-11-11 14:40:14 -06:00
Peter Dimov
5dba250502 clang-win.jam: allow options (such as -fuse-ld=lld, -flto=thin) in command 2018-11-05 18:45:01 +02:00
Edward Diener
6910438c88 Merge pull request #361 from boostorg/pr/fix-clang-win
Fix clang-win.jam so that it works
2018-10-29 19:32:20 -04:00
Raffi Enficiaud
c39a8b81b3 Fix compilation issue on some old compilers (#362) 2018-10-28 09:59:44 -05:00
Steven Watanabe
40d45a1853 Display the object id for method calls in the call-stack. 2018-10-27 16:52:24 -06:00
Peter Dimov
1685f03e0e Fix clang-win.jam so that it works 2018-10-27 22:15:56 +03:00
Edward Diener
e37bb77f68 Merge pull request #324 from boostorg/pr/toolset-clang-win
Make `toolset=clang-win` initialize the clang-win toolset
2018-10-27 13:17:17 -04:00
Peter Dimov
ca9e2207ce Fix clang-win name mangling 2018-10-27 04:27:05 +03:00
Andrey Semashev
20d72776c8 Added support for Ice Lake instruction set, which is available in gcc 8. (#354) 2018-10-17 21:48:07 -05:00
Rene Rivera
0ae5c3ddeb Merge pull request #353 from Kojoley/fixed-slow-pipe-reading-on-windows
Fixed slow pipe reading on windows
2018-10-17 21:37:22 -05:00
Steven Watanabe
c53d778a37 Make the python feature symmetric and relevant to avoid problems when changing the python configuration. Refs #356. 2018-10-16 09:15:45 -06:00
Rene Rivera
55da44ad85 Merge branch 'develop' into develop-rootless 2018-10-16 08:27:18 -05:00
Rene Rivera
c8bd4136f2 Avoid logical expression warnings. 2018-10-12 19:01:04 -05:00
Nikita Kniazev
e7e55d0cc9 Do not read pipe content at available size peeking
Currently the same data is read twice.

The first time a buffer is filled by `PeekNamedPipe` and second time it is
overwritten with the same content by `ReadFile`.
2018-10-11 23:23:28 +03:00
Steven Watanabe
a5704a926b Fix threadapi detection when the target-os is also affected by a conditional. Refs #352. 2018-10-11 13:03:16 -06:00
Nikita Kniazev
d13002a92d Fixed slow pipe reading on windows
It looks like the OS has the internal buffer around 4KB and with any buffer
over this size `read_pipe` will end the reading loop after first try despite
that reading a pipe may pump a new data and it can be read immediately.
2018-10-11 20:31:44 +03:00
Jonathan Wakely
8ff11a8ecc Fix memory leak
If vsnprintf returns -1 then the buffer should be freed before returning.
2018-10-10 17:17:10 +01:00
Jonathan Wakely
35ce23a327 Use correct sizeof in malloc call
This is allocating space for `nel` objects of type `ITEM*` so it should use `sizeof(ITEM*)` not `sizeof(ITEM**)`.

In practice the values are the same, but using the correct type is better anyway, and now matches the same calculation in the `memset` call in the following statement.
2018-10-10 13:47:13 +01:00
Peter Dimov
9df3a65a28 Update GCC and Clang mangling to reflect their new versioning scheme 2018-10-06 06:34:28 +03:00
Andrey Semashev
d8245f6686 Added local-visibility feature. Mark visibility as a propagated feature. (#345)
local-visibility is intended to be used by libraries or targets that require
a particular visibility mode. It is not propagated to dependencies. It is
equivalent to the previous visibility feature.

The new visibility feature is a composite propagated feature, so it can be
specified by users and higher level targets as a requirement. This feature is
translated to local-visibility.
2018-10-01 22:02:05 -05:00
David Olsen
81bc3e2a4d Fix PGI toolset to recognize the cxxstd feature (#340)
Add the appropriate language level option to pgc++ when b2 is invoked
with toolset=pgi and cxxstd set to something.
2018-10-01 21:58:46 -05:00