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

511 Commits

Author SHA1 Message Date
Rene Rivera
8e4fd9daa8 Merge Boost Jam 3.1.17 release to Boost release.
[SVN r50535]
2009-01-10 19:42:28 +00:00
Beman Dawes
b4ad853e8f Revert merge from trunk, 47441. Rene does not wish to do a new bjam release yet.
[SVN r47863]
2008-07-29 11:43:31 +00:00
Beman Dawes
d631dfc2fa Merge trunk
[SVN r47441]
2008-07-15 13:38:59 +00:00
Rene Rivera
7e35e8c18a Work around some Windows CMD.EXE programs that will fail executing a totally empty batch file.
[SVN r41626]
2007-12-03 02:57:49 +00:00
Rene Rivera
d7f47dd8e2 Add support for detection and building with vc9. (fixes #1490)
[SVN r41548]
2007-12-01 20:17:52 +00:00
Rene Rivera
e2ae7d0a18 Plug memory leak when closing out actions. Thanks to Martin Kortmann for finding this.
[SVN r41535]
2007-12-01 16:44:54 +00:00
Rene Rivera
000431fdc1 build-system.jam
* Reflect added start/end timestamps for actions in xml output. And update action rules for new args.

execcmd.h
* Add start/end timestamps to action timing info.

execnt.c
* Fix filetime_seconds calculation when time is larger than low 32 bit value.
* Add calc of C time_t from Windows FILETIME.
* Add start/end timestamps recording to action timing info.

execunix.c
* Add start/end timestamps recording to action timing info.

jam.c
* Change JAMDATE to use common ISO date format.

make1.c
* Redo __TIMING_RULE__ and __ACTION__RULE__ invocations to new argument ordering and added end/result timestamp values.

[SVN r41431]
2007-11-28 07:21:49 +00:00
Rene Rivera
3f53335fe0 Fix buffer overrun bug in expanding @() subexpressions.
[SVN r41417]
2007-11-27 17:58:50 +00:00
Rene Rivera
4e7c391043 Check empty string invariants, instead of assuming all strings are allocated. And reset strings when they are freed.
[SVN r41416]
2007-11-27 17:57:15 +00:00
Rene Rivera
d8094040a6 Add some utility output formatting functions.
[SVN r41415]
2007-11-27 17:55:13 +00:00
Rene Rivera
f33adc78fc Remove non-existent option info.
[SVN r41414]
2007-11-27 17:53:56 +00:00
Boris Gubenko
f2da9cc8a9 add OSPLAT=PARISC for HP-UX PA-RISC
[SVN r41242]
2007-11-19 19:25:21 +00:00
Rene Rivera
b6585b5e14 Make quietly actions really quiet by not printing the command output. The output for the quietly actions is still available through "__ACTION_RULE__".
[SVN r41236]
2007-11-19 17:44:31 +00:00
Rene Rivera
51fbf5b137 Switch intel-win32 to use static multi thread runtime since the single thread static runtime is no longer available. (fixes #1287)
[SVN r41113]
2007-11-15 18:56:43 +00:00
Boris Gubenko
5b1455512d when setting OSPLAT, check __ia64 macro
[SVN r41050]
2007-11-13 00:51:37 +00:00
K. Noel Belcourt
08e879a007 Get the unix timing working correctly.
[SVN r41048]
2007-11-12 22:52:12 +00:00
Boris Gubenko
1aaa0782f4 add -fno-strict-aliasing to compilation with gcc
[SVN r41036]
2007-11-12 17:03:38 +00:00
Vladimir Prus
d5fbab60f8 New Python rule -- 'backtrace'.
[SVN r40497]
2007-10-27 09:55:58 +00:00
Vladimir Prus
165534e07e Add missing Py_INCREF on Py_None objects.
[SVN r40289]
2007-10-22 16:45:49 +00:00
Rene Rivera
f626fa511a Allow specifying options with quotes, i.e. "--with-python=xyz", to work around the CMD shell using "=" as an argument separator.
[SVN r40095]
2007-10-16 19:08:58 +00:00
Vladimir Prus
cb7f29fcd3 Better diagnostics when trying to import non-callable Python
object to Jam.


[SVN r40006]
2007-10-14 09:09:41 +00:00
Vladimir Prus
1eea3e4103 Fix module messup when calling into Python.
[SVN r39988]
2007-10-13 21:32:51 +00:00
Daniel Wallin
1e20af0843 Added missing Py_INCREF(Py_None).
[SVN r39939]
2007-10-11 20:37:37 +00:00
Vladimir Prus
f653f04d9f New bjam.variable function exposed to Python.
[SVN r39876]
2007-10-10 08:25:27 +00:00
Vladimir Prus
324ef5d514 Add values of variables specified with -s to .EVNRION
module, so that we can override environment on
command line.


[SVN r39873]
2007-10-10 07:40:05 +00:00
Vladimir Prus
e1ffef9677 Make it work, for extra benefit ('=' vs '==' bug)
[SVN r39830]
2007-10-09 05:38:31 +00:00
Vladimir Prus
06f65d9fc9 Make it compile, even
[SVN r39829]
2007-10-09 05:35:48 +00:00
Vladimir Prus
77e08fdb83 Make NORMALIZE_PATH convert \ to /.
[SVN r39828]
2007-10-09 05:33:45 +00:00
Vladimir Prus
a475ec69a1 Allow to specify the list of bound targets
and flags, when defining action from Python.


[SVN r39641]
2007-10-01 17:29:11 +00:00
Rene Rivera
7e83d50c8d Bump to bjam version 3.1.16
[SVN r39620]
2007-09-30 17:33:21 +00:00
Rene Rivera
ff5293cba7 Fix copying the wrong files for the archive, and prefer using POSIX/pax format.
[SVN r39617]
2007-09-30 16:33:36 +00:00
K. Noel Belcourt
33a71f330c Renamed variables used in timeout code so I don't make
silly mistakes like using a negative time for the select
timeout.  

Also added the setrlimit call back in since the
named_condition_test occassionally consumes multiple cpus
worth of time.  That is, when I ran this test -j4, I found
the named_condition test consuming 4 cpus worth of time so
after 300 seconds of elapsed time when the test timed out, 
it had consumed almost 1200 seconds worth of cpu.  While the 
test is killed after the elapsed time expired, setting a hard 
cpu limit ensures it's killed after consuming either -lx seconds 
worth of cpu or -lx seconds of elapsed time.



[SVN r39613]
2007-09-29 21:47:24 +00:00
K. Noel Belcourt
149d4c2eb3 When terminating unix processes I forgot to check for negative
time differences.  This patch only sets the select timeout if
the difference between the requested and consumed time is 
positive.



[SVN r39612]
2007-09-29 20:23:29 +00:00
Rene Rivera
bc9cba4741 Update distribution and build scripts to account for inclusion of boehm_gc sources. Add history of changes to docs.
[SVN r39610]
2007-09-29 19:48:51 +00:00
Rene Rivera
8319f76eaa Fix action multi-generation for case when there are no targets for the action.
[SVN r39608]
2007-09-29 18:30:06 +00:00
K. Noel Belcourt
8b734cab67 Add macros to gcc.hpp to support pathscale toolset.
Added an optimization to the -lx unix timeout code.  I
compute the amount of time the select call should sleep
until the "oldest" process times out.  This ensures that
all processes that timeout will be killed within one
second of their expiration.



[SVN r39534]
2007-09-25 23:11:12 +00:00
K. Noel Belcourt
7467bfb33a Fix a problem with the -lx timeout code on ppc darwin.
The intel based darwin system was killing subprocesses
okay but for some reason, ppc systems were not.  This
change fixes the timeout code so subprocesses are
properly killed on ppc darwin systems.



[SVN r39514]
2007-09-24 21:01:45 +00:00
Markus Schöpflin
be9e478dfa Add needed include (according to XOPEN) for definition of WIFEXITED and WEXITSTATUS.
[SVN r39499]
2007-09-24 07:38:35 +00:00
Markus Schöpflin
ee12ae74e0 Removed unused variable.
[SVN r39498]
2007-09-24 07:31:43 +00:00
K. Noel Belcourt
27447ae6fa Another patch to fix the -lx timeout code. Some actions spawn
sub-processes after bjam forks a new process (for example, after
g++ is forked by bjam, g++ then forks sub-processes like cc1plus).
The timeout code would kill the g++ process, but might not kill
the subprocesses spawned by g++.

I fixed this problem by making the bjam fork'ed process (g++) a 
session leader by calling setsid() before calling exec.  The setsid 
call, in essence, gives all child processes a parent process id 
(ppid) of the g++ process id.  This guarantees that killing g++ 
will kill all child processes spawned by g++ as well.

One last comment on the maximum process time before a process is actually
killed.  The worst case process elapsed time is 2x seconds if -lx is
given.  The reason is that a process might be one second away from being
killed and, if there's no other signal activity, the select function will
wait x seconds before timing out and killing any active processes.  So
if you say -lx and monitor a build known to have lengthy processes, you 
may see a process with up to 2x seconds of time before it is killed.



[SVN r39467]
2007-09-21 22:38:17 +00:00
K. Noel Belcourt
fcd347ebde Added diagnostic message to output.c to inform users
when a process has timed out and been killed.

Because timed out processes now emit a diagnostic, I
had to update option_l.jam so we wouldn't break test.sh
when it runs.

Minor cleanup to execunix.c to remove unneeded code
and to set the process exit status as returned from
waitpid.  The exit status is used to identify timed
out processes so we can emit a diagnostic to the user.



[SVN r39423]
2007-09-20 19:06:54 +00:00
Rene Rivera
f267ee63a7 Add partial code for indicating to the output function that a command finished because of a timeout.
[SVN r39416]
2007-09-20 16:31:44 +00:00
Rene Rivera
5449daceab Now that the exec*.c files are really platform specific, adjust the build script to only build the needed ones for MinGW.
[SVN r39400]
2007-09-20 04:36:27 +00:00
K. Noel Belcourt
e50a11396b Fix a bug Chris Cambly reported with the timeout code on
AIX.  Apparently AIX doesn't permit a forked process to 
reference (set) memory in the parent's address space.  No 
other system seems to object to this practice but it taught
me a lesson!

The fix was to move the call to get the child process start 
time directly before calling vfork.  This isn't really fair 
to the forked process as we start counting time against the
child process that we haven't even forked (we count the 
vfork/exec call overhead against the child process).

Tested Rene's test.sh script on Sun, Linux, AIX, and Sgi.



[SVN r39399]
2007-09-20 04:11:11 +00:00
K. Noel Belcourt
5431dfdbd2 Remove unnecessary overhead in execunix.c related to
the timeout implementation.  Also removed unused variables
as diagnosed by the Sgi (mipspro) compiler.

Fixed const-correctness error in operations.hpp that
Sgi complained about.

There's no strerror_r function on Irix 6.5 so I replaced
it with a strerror call.

With these changes, I can now build process jam log and
start running Sgi tests.



[SVN r39378]
2007-09-18 22:46:26 +00:00
K. Noel Belcourt
7fa6118e55 A minor optimization to eliminate two OS calls (one
to times, one to kill).  Now all expired processes
are killed in one place.  If the select command
times out, I set each processes start_time to zero
to ensure it is picked up as an expired process.



[SVN r39361]
2007-09-18 03:27:48 +00:00
K. Noel Belcourt
445da99019 Fix One more obscure way for the timeout to miss processes.
If select times out (no processes terminated), then all running
processes can be terminated.  Cleaned up code when this condition
applies.



[SVN r39360]
2007-09-18 02:42:13 +00:00
K. Noel Belcourt
4468f9e815 Rene found a problem with the code I committed to
terminate expired processes.  This patch basically
causes the select function to return after -l seconds.
This gives me a shot at killing processes still
running.



[SVN r39358]
2007-09-17 23:30:57 +00:00
Rene Rivera
63c43e0a65 Handle invalid formats of @() as doing a straight substitution instead of erroring out.
[SVN r39357]
2007-09-17 21:35:58 +00:00
Rene Rivera
b19a4d5589 Add internal dependencies for multi-file generating actions to indicate that the targets all only appear when the first target appears. (fixes ticket #431)
[SVN r39341]
2007-09-17 08:32:24 +00:00