Similar to 8faba6ab2, don't add double quotes around the RPATH
expansion in clang-linux's link actions, so '$ORIGIN' can be used.
The gcc.quote-rpath rule already checks whether double quotes need to be
added, and skips it if the rpath argument already has single quotes.
If intel exec commands are not detected we try to use the result anyway which would
error. This adds checks that prevent the errors to let the sequence of attempts
work.
fixes#109
Adds rule skip-from-usage-requirements to basic-target, this allows
customizing whether the build of a target should be skipped because one
of its sources has <build>no in usage requirements. So far only one
class takes advantage of this: alias-target-class. As a result alias
targets aren't skipped due to dependencies, but downstream targets still
could.
So, lib <- alias <- exe skips exe if lib is skipped.
But lib <- alias -> lib does not skip alias if either of libs is
skipped.
This adds `errno_puts` and `errno_printf` output functions that read and
output `errno` value and description in common format and through
common output channels. This also replaces direct uses of `perror` to
use the output functions.
fixes#53
Adds the vc143 preview toolset to bootstrap and build. Note, vc142 is still the default msvc toolset. When vc143 is released it will become the default with a future change.
Gcc toolset was unconditionally setting the JAMSHELL on Windows to try and
avoid long command arg errors. In doing so it also prevented external
setting of the JAMSHELL. This works around it by defaulting JAMSHELL
to the global value.
WARNING: This is only a work around. Ultimately we need to remove the
JAMSHELL variable entirely as it generally doesn't work.
* The engine can now be built with MinGW-w64 configured with --threads=win32.
This is the case for i686-w64-mingw32-g++ and x86_64-w64-mingw32-g++
distributed with the last versions of Cygwin compatible with Windows XP
(www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html).
The MinGW-w64 toolchains are very powerful, just like their gcc counterparts.
Even the ones with win32 threading model (as opposed to posix threading model),
while not able to use std::thread, can still build-and-use Boost.Thread.
(which, arguably, is more powerful than the Standard counterpart
for example with its support for thread interruption
-- which is less intrusive than the one offered by C++20 std::jthread).
For Windows XP, MinGW-w64 toolchains might be the only ones to support C++11.
Visual C++ has only been supporting C++11 since 2013
(and those versions require-and-often-target newer versions of Windows).
The only part of <thread> we were using was std::thread::hardware_concurrency
(in order to obtain the default value for b2's -j option).
For Windows, we now use dwNumberOfProcessors (in SYSTEM_INFO) and GetSystemInfo.
* - fix iconv detection for boost.locale on iOS
* clang-darwin doesn't need --start-group
* clang-darwin doesn't need -lrt
* Also need appletv to have the same exception. `appletv` is another Xcode clang related platform that would have the same limitations.
combined-x86-power seems to be completely unused and combined is used only in darwin toolset for Objective-C compilation which seems to be broken for 4 years because it uses gcc.set-fpic-options which was removed in 12decb3ce6.
Boost has three libraries that mentions architecture=combined, I have checked they will not brake after this change.
Removes code duplication in darwin and clang-darwin toolsets.
Removes undocumented `<flags>` from several toolsets, there is documented `<compileflags>` that should be used instead.
* features: Support values for instruction-set feature to support Xilinx ZYNQ.
This adds several values for instruction-set (with extensions) to
support various ARM processors associated with Xilinx ZYNQ processors.
These instruction sets are used in various combinations for bare-metal
or FreeRTOS configurations.
* gcc: Support values for instruction-set feature for Xilinx ZYNQ.
`ar s` seems to be widely supported for a very long time:
- at least binutils 2.10 (June 2000)
- at least Darwin 8.0 (April 2005)
- since FreeBSD 3.0 (October 1998)
Note: Most of other (non-widely used) toolsets do not call `ranlib` and do not call `ar` with `s` flag either. I have no idea if they are correct or not, so I am not touching them here.
Removed empty rules
Removed PCH suffix override (missed in
Fix clang-pch implementation to actually use pch instead of pth. boostorg/build#368)
Removed PCH file explicit removal before creation (should be tested in pch.py test)
Unified <pch>on and <pch>off compilation actions
* clang-linux: space concat via module global variable
* clang-linux: unify pch and non-pch compilation
* clang-linux: remove overridden pch suffix
Missed in #368
* clang-linux: no need to explicitly delete pch file
* remove empty compile.c/c++.pch rules
* Clang: Use --version instead of -dumpversion
Fixes issue when Clang 8 and below determined as 4.2.1 version.
* Bootstrap and test with versioned toolset
Eliminates need to manual configure toolsets via `user-config.jam` for testing, and allows to pass to `bootstrap.sh` the same toolset string as you would to B2 invocation what eliminates need to specify a custom exec via `--cxx=`.