This adds a check_cxx11.cpp source that is checked for compile with the
chosen toolset before actually building. This include an appropriate
user error. To see such errors, we also nolonger output to
bootstrap.log. Instead the bootstrap outputs to cerr and sets the
error code.
seems to only be called from basic-target.create-subvariant, which
seems (looking at the comments and 5.6.4 of docs) to assume that it
exists on virtual-target.
without this fix a user wanting to produce something derived from
virtual-target in the construct-function of something derived from
basic-target will get an error.
* Add png16 and libpng16 to library names in libpng.jam
On Windows, this allows to successfully find the library installed
using vcpkg which deploys the library named as libpng16.lib
and not png16.lib or png.lib.
* Add rationale behind listing multiple libpng names
armasm and armasm64, the MSVC toolchain's assemblers for arm and arm64
respectively, have completely different invocations than their ml and
ml64 counterparts targetting x86 and x86-64.
Here's the full output of armasm's help:
```
cmd> armasm64 -h
Microsoft (R) ARM Macro Assembler Version 14.23.28106.4 for 64 bits
Copyright (C) Microsoft Corporation. All rights reserved.
Usage: armasm [<options>] sourcefile objectfile
armasm [<options>] -o objectfile sourcefile
armasm -h for help
<options>: (Upper case shows allowable abbreviation)
-Errors errorsfile redirect stderr diagnostics to errorsfile
-I dir[;dir] add dirs to include search path
-PreDefine directive pre-execute a SET{L,A,S} directive
-NOWarn turn off warning messages
-ignore <warning-num> don't report warning-num
-Help help (this information)
-via <file> read further arguments from <file>
-machine <machine> set the PE machine type field
-g generate debugging info
-gh:SHA_256 use SHA256 for file checksum in debug info (experimental)
-errorReport:<option> report internal assembler errors to Microsoft
none - do not send report
prompt - prompt to immediately send report
queue - at next admin logon, prompt to send report (default)
send - send report automatically
<machine>: ARM64
```
Adds gnu11 (libstdc++ with new ABI) and libc++ values to stdlib feature.
The value gnu was already in use by sun toolset, so this commit sets it as
libstdc++ with old ABI. Adds support for that feature to gcc, clang-linux and
clang-darwin toolsets. Refactors sun toolset to use stdlib feature via toolset
flags.