2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-22 03:12:16 +00:00
Commit Graph

4566 Commits

Author SHA1 Message Date
Rene Rivera
38dc406527 Replace all direct pointers in rules with typedef.
Moving towards true C++ type safety by retyping all raw pointers. The
typedefs will eventually be replaced with managed pointers.
2022-02-16 22:55:02 -06:00
Zhang Na
c6409fa0e7 Add support for LoongArch 2022-02-15 07:17:32 -06:00
Alain Miniussi
9ef234db6b Tell intel compiler to lik with intel static librariess if availables, and fall back on shared objects if not. 2022-02-14 22:43:19 -06:00
Alain Miniussi
97420841b0 On linux, the archive version of libstdc++ availability cannot be assumed.
So we cannot use the -static option.
Also, -s is not documented in the compiler manual page.
2022-02-14 22:43:19 -06:00
Peter Dimov
8a675ca396 msvc.jam: put user-supplied <cflags> and <cxxflags> last; support <compileflags>. Closes #137. Refs #118. 2022-02-14 08:57:12 -06:00
Dimitry Andric
a01b64fcc5 Add special case processing of RPATH to clang-linux toolset (#117)
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.
2022-02-13 08:45:14 -06:00
Laurent Bigonville
13ecd50cfa Use the FreeBSD way to detect the executable path also on kfreebsd (#126) 2022-02-12 21:30:05 -06:00
Jim King
dce955c816 add .ipp files to scanner so headers are not missed (#134) 2022-02-12 21:24:34 -06:00
Nikita Kniazev
f10c1d267b Improve dependency cycle diagnostic message (#114)
Before:
```
error: ./forward ./stage ./stage-proper libs/filesystem/build/stage libs/filesystem/build/stage-dependencies libs/log/build/stage libs/log/build/stage-dependencies libs/filesystem/build/stage
```

After:
```
error: ./forward -> ./stage -> ./stage-proper -> ***libs/filesystem/build/stage*** -> libs/filesystem/build/stage-dependencies -> libs/log/build/stage -> libs/log/build/stage-dependencies -> ***libs/filesystem/build/stage***
```
2021-12-15 07:21:35 -06:00
Rene Rivera
1998d0656c Bump to version 4.8.0 2021-12-14 13:02:00 -06:00
Dmitry
78fd284a42 Don't skip install targets if there's <build>no in ureqs (#113) 2021-12-11 07:58:23 -06:00
Peter Dimov
aa2cfda382 Add cxxstd=20 to msvc.jam (msvc-14.2 and above support /std:c++20) (#103) 2021-11-18 08:46:00 -06:00
Rene Rivera
3b93835d53 History and bump for v 4.7.2 2021-11-17 20:29:39 -06:00
Rene Rivera
5bf40a9b15 Check if intel command are detected properly.
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
2021-11-17 07:32:58 -06:00
Rene Rivera
84ed4e1b0a Fix regression for linking with clang-win toolset.
fixes https://github.com/boostorg/build/pull/741
fixes https://github.com/bfgroup/b2/issues/98
2021-10-08 22:45:02 -05:00
Dmitry
c56fb27395 Don't skip alias targets due to <build>no in ureqs (#97)
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.
2021-10-03 10:14:46 -05:00
Rene Rivera
a6e6438b48 Route perror call through output functions.
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
2021-10-01 08:51:17 -05:00
Sergei Krivonos
aaf14325ec Add VC143, aka VS2012, aka cl.exe 17.x toolset.
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.
2021-09-30 10:59:15 -05:00
Rene Rivera
6b09491080 Default JAMSHELL to global value.
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.
2021-09-29 07:26:11 -05:00
Rene Rivera
26f2dbccbc Turn on partial LFS for posix like platforms.
When running b2 inside a qemu mixed mode environment (32 inside 64)
it errors with some system calls not properly translating from 64 to 32.
This works around the problem by making the 32 bit b2 build use 64 bit
file system calls in libc.

Potentially fix for:
* https://github.com/bfgroup/b2/issues/49
* https://github.com/conan-io/conan-center-index/issues/6059
* https://github.com/boostorg/build/issues/663
2021-09-27 08:46:38 -05:00
Rene Rivera
2022e93af8 Bump version to 4.7.0. 2021-09-21 22:15:28 -05:00
Matt Chambers
0a0df47a67 Use 64-bit MSVC tools on 64-bit host (#88) 2021-09-17 09:04:44 -05:00
DoctorNoobingstoneIPresume
861cd41c2b The engine can now be built with MinGW-w64 configured with --threads=win32. (#68)
* 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.
2021-09-09 08:24:22 -05:00
gnaggnoyil
1ad9483a0d remove NOENTRY flag of suppress-import-lib feature under MSVC (#86) 2021-09-08 20:31:01 -05:00
Brad Smith
dcffeb632e Do not unconditionally define unix on OpenBSD. (#85)
This resolves a warning that popped up when we switched to Clang as
Clang defines unix in addition to __unix__ unlike GCC.
2021-09-07 07:11:52 -05:00
SSE4
b863465f87 - fix iconv detection for boost.locale on iOS (#83)
* - 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.
2021-09-02 22:34:39 -05:00
Dmitry
c276640527 Add Boost.Json to contrib/boost.jam (#82) 2021-09-02 22:30:54 -05:00
Dmitry
7402029c33 Skip targets with <build>no in usage requirements (#81) 2021-09-02 22:30:08 -05:00
Dmitry
ac2cf96483 Evaluate conditionals in a loop (#80) 2021-09-02 22:25:34 -05:00
Nikita Kniazev
23212066f0 Allow only suffixes starting with a digit (#79)
An easiest way to ignore toolset platform subfeature suffixes (-linux/darwin/win).
2021-09-02 22:23:08 -05:00
Volo Zyko
320c2b2ed5 Add arm/arm64 target support in clang-win config (#74) 2021-08-15 22:26:30 -05:00
psandana
37622df644 Avoid warnings about threading model for qt5.
Fixes #64 qt5.jam warning <threading>multi ignored.
2021-08-03 20:26:24 -05:00
Nikita Kniazev
6dda4098e7 Unify Clang and GCC PCH creation (#70)
Clang has GCC-compatible PCH generation interface, no need to override and re-implement PCH generation in Clang at all.
2021-08-03 20:22:23 -05:00
Nikita Kniazev
4380676c06 Use adaptive response files feature on MinGW (#65) 2021-07-31 04:59:04 -05:00
Nikita Kniazev
da10b56586 Remove architecture=combined/combined-x86-power (#63)
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.
2021-07-30 21:31:56 -05:00
Nikita Kniazev
a844236dd8 Move Objective-C support to GCC toolset (#62)
Removes code duplication in darwin and clang-darwin toolsets.

Removes undocumented `<flags>` from several toolsets, there is documented `<compileflags>` that should be used instead.
2021-07-28 16:57:47 -05:00
Nikita Kniazev
f8c6e33e49 Fix typo in compileflags documentation (#60) 2021-07-27 11:38:24 -05:00
tee3
e37f6e40b4 Support values for instruction-set feature for Xilinx ZYNQ (#34)
* 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.
2021-07-27 09:33:01 -05:00
Nikita Kniazev
1501b14289 Cleanup darwin toolsets static linking (#59)
After removing `ranlib` call there is no more darwin-specific logic, it duplicates base/parent logic and could be removed.
2021-07-27 08:21:39 -05:00
YunQiang Su
230cae51fa MIPS: add generic mips architecture (#58)
Currently, mips1 is used as generic mips architectures, but it is
confusion.
We will remove mips1 and other unused mips* architectures.
2021-07-26 22:10:13 -05:00
Nikita Kniazev
2b1a9de81b Replace ranlib call with s flag in ar call (#56)
`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.
2021-07-25 21:52:12 -05:00
Nikita Kniazev
5731edb171 Bail out when list of lists limit is reached (#52)
Previously it was silently not appending anything, what also was leading to silently dropping rule parameters.
2021-07-11 21:39:31 -05:00
Nikita Kniazev
ab2c3a1cef Print scandir error message (#50) 2021-07-11 21:30:54 -05:00
Nikita Kniazev
d89f209402 Fix a memory leak from @() feature implementation (#51)
There are still some memory leaks left to catch, but those are seems to be introduced far back.
2021-07-11 15:15:25 -05:00
Nikita Kniazev
2816f8d5f7 clang-linux cleanup (#47)
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
2021-07-11 14:59:15 -05:00
Nikita Kniazev
98cdf85e5a Fix type bases registering (#46)
The issue is also was a blocker for preprocessed test
2021-06-25 23:20:35 -05:00
Nikita Kniazev
8a20d6c430 Fix preprocessing on MSVC compiler (#44) 2021-06-24 11:35:18 -05:00
Nikita Kniazev
b522b50bf0 Clang: Use --version instead of -dumpversion (#39)
* 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=`.
2021-06-11 17:49:01 -05:00
René Ferdinand Rivera Morell
2fd5be1d96 Start a patch release. 2021-06-09 21:49:17 -05:00
tee3
5c39c4e942 property: Fix print in error condition in property.find. (#35)
* property: Add a test to show the issue with property.find.
* property: Fix property.find to print the ambiguous key
2021-06-01 07:04:35 -05:00