* Remove leftover manifest generation early exiting
It should have been removed in dd3dbcc9b6
* Remove unneeded manifest existence check
The commit it was added in d8e98e3abc says it is
fixing the problem that MSVC 8.0 does not produce a manifest file for static
libraries, but the code it touches is for shared libraries and executables.
* Collapse the same branches
Rewriting the yyacc utility in C++ makes it ASAN safe and hence makes it
possible to build an ASAN enabled b2 engine. To eventually make all
of the b2 engine ASAN safe.
* Changed icelake to icelake-client and icelake-server. The single
icelake switch is not accepted by gcc.
* Added cascadelake, cooperlake and tigerlake Intel targets.
* Added znver2 AMD target.
* Added c7 VIA target.
* Reordered the list of targets in instruction-set definition
to group targets by CPU vendors.
* Updated toolsets with the new and updated values of instruction-set.
* Updated .py files as well. Added instruction-set values that were
missing compared to .jam files.
* Added cxxstd value 20 for C++20.
The -std=c++20 is supported by clang 10.
* Updated cxxstd=latest for clang 5.0 and newer.
clang 5.0 supports -std=c++17. clang 6.0 supports -std=c++2a.
clang 10.0 supports -std=c++20.
* Updated cxxstd=latest for gcc.
gcc 4.9 supports -std=c++14. gcc 6 supports -std=c++17. gcc 10 will support
-std=c++20.
* Added support for cxxstd=20 to toolsets that don't support C++20.
* Use /Zc:inline flag
VC12.0 (VS2013 Update 2) introduced /Zc:inline opt-in standard conformance
compiler flag that also similar to linker /opt:ref removes unreferenced
variables and functions that have internal linkage
* Use /Zc:throwingNew flag
VC14.0 introduced /Zc:throwingNew opt-in flag that disables a workaround
for not throwing operator new in VC up to 6.0
This adds exclusions for toolsets that use response files for some
commands. Mostly it ignores the generated rsp files.
But also adds a special arg_file value to the MockProgram for future
use for possible content checking.
* Use a response file for direct linker dependencies.
* Improved the command lines generated for compilation and linking by using response file. Corrected the system library files directories which should be used for bcc32x and bcc64.
Co-authored-by: Edward Diener <eldlistmailingz@tropicsoft.com>
* Follow-up to removed restriction of pch naming on GCC
* Fix pch path conflict on GCC
gcc-pch-generator rewrites target name to a value derived from a header name
and this cases path conflict if multiple pch are created from the same header.
hello.cpp is duplicated in the test for the same reason but for `exe` target --
`exe hello-afx : hello.cpp ;` uses `hello.o` for object file name.
Do not require pch target to have the same name as the header base name.
The restriction was added in 76d041d7c1 without
a rationale and only for GCC while reworking PCH support for GCC and MSVC.