2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-21 15:02:19 +00:00
Commit Graph

12597 Commits

Author SHA1 Message Date
Rene Rivera
69c03ced04 Fix memory leak for invoked function args.
If a function exits abnormally, for any reason, the passed in function
frame args would leak. This change captures such early exits and
cleans up the args for directly invoked functions. This clears up about
70% of current memory leaks.
2022-03-31 00:42:18 -05:00
Rene Rivera
e82fdf2e7c Use alternate sizeof advance size calc re msvc. 2022-03-29 13:25:08 -05:00
Rene Rivera
03dd13ef23 Use safer, but slower, select_last_t for msvc. 2022-03-29 08:38:42 -05:00
Rene Rivera
a9a21dfc72 Make all jam stack access type safe. 2022-03-29 08:31:02 -05:00
Rene Rivera
266c664fd9 Remove public function STACK access.
In preparation to clean up the Jam function global stack move the
definition of the STACK and related functions inside the function.cpp
source file only.
2022-03-22 23:02:51 -04:00
Rene Rivera
02c076e14a Start of 4.9.0 2022-03-19 17:52:19 -05:00
Rene Rivera
0b8a8ad7d6 Fix crash on exit cleanup from targets list dtor and pop. 2022-03-17 23:51:57 -05:00
Rene Rivera
7c3ff9a80d Fix engine build for EXIT_* possibly missing. 2022-03-16 21:54:29 -05:00
Rene Rivera
c9557503c4 Update history and readme for release. 2022-03-10 22:39:49 -06:00
Rene Rivera
524ce68d5e Add future C++ versions.
fixes #135
2022-03-10 21:20:47 -06:00
Rene Rivera
b793d6f0a6 Fix warnings. 2022-03-03 23:19:42 -06:00
Rene Rivera
e0c7d35b1f Remove use of freelist caching.
Modern memory allocator is fast enough to not need our own
chained caching of specific data. Hence remove the use of caching
of free LIST instances to simplify memory management.
Also remove uses of exit/abort.
2022-03-03 22:49:45 -06:00
Rene Rivera
157e26303f Avoid crash if modules_done is called early. 2022-03-03 21:41:49 -06:00
Rene Rivera
027ee7379f Remove memory leaks. 2022-03-03 21:40:48 -06:00
Rene Rivera
a9aed5c40a Convert alloc/free calls with unique_ptr managed code.
Using unique_ptr allows to not loose track of memory when early
exit when clean_exit throws an exception.
2022-03-03 21:39:00 -06:00
Rene Rivera
a9aafc7a70 Replace most exit/abort with exception equivalent.
This replaces most abort/exit calls with the utility that throws an
exception. The exception is caught in main to cleanly return failure.
This allows to clean up allocations and always return a valid status
value instead of abnormal termination.
2022-03-03 21:17:38 -06:00
Rene Rivera
efab66b211 Add LIST ctor to prevent no-init errors. 2022-03-03 20:54:12 -06:00
Rene Rivera
d66a79b698 Add b2::clean_exit to replace plain exit/abort. 2022-03-03 20:51:43 -06:00
Rene Rivera
1ab86c307a Add utilityies for managing the Jam dynamic objects. 2022-03-03 20:46:14 -06:00
Rene Rivera
ddecd777bd Fix memory leaks in filesys. 2022-02-21 23:22:06 -06:00
Rene Rivera
2847e6cc90 Fix compile of BJAM_NO_MEM_CACHE mode. 2022-02-21 23:21:09 -06:00
Rene Rivera
22187fae9c Fix memory leak in variable ctro from char*. 2022-02-21 23:19:55 -06:00
Rene Rivera
f1382e4aef Fix memory leak in targets lists.
This changes the pointer type used everywhere for _targets/TARGETS to a
unique_ptr to manage the ownership correctly. Thus removing the memory
leaks resulting therein.
2022-02-21 16:01:24 -06:00
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
Rene Rivera
43358117aa Shift CI to account for AZP removing vs2017. 2022-02-15 08:35:43 -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
7568c84471 MSVC mock test (#125)
Initial step in fixing flags issues
2022-02-12 21:22:40 -06:00
Rene Rivera
9463525ef4 Update ZAP tested compilers. 2022-02-12 17:50:05 -06:00
Rene Rivera
24bd22bd53 macOS-10.14 no onger avail in AZP. 2022-02-12 12:03:10 -06:00
Nikita Kniazev
b59e85fc76 CI: Actually test intended msvc versions (#127)
* CI: Simplify Appveyor script

* CI: Actually test intended msvc versions
2022-01-09 21:07:00 -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
Rene Rivera
371b47af9d FBSD gcc7 no longer available. 2021-11-18 20:22:02 -06:00
Rene Rivera
d1af45d606 Release note for cxxstd=20 for msvc. 2021-11-18 09:02:17 -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
Rene Rivera
e161f17dbf Fix spelling adn grammar errors. 2021-10-03 14:25:29 -05:00
Rene Rivera
532c07a112 Last, hopefully, note for 4.7.0 release. 2021-10-03 12:08:18 -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
c86b033368 No clang13 for FreeBSD yet. 2021-10-03 08:12:52 -05:00
Rene Rivera
adf98734d2 Switch to freebsd13. 2021-10-02 21:01:22 -05:00