seems that doxygen target now produces a target
with different name, and it does not produce
any target unless there's explicit dependency
on it. I'm not sure I like the change, but
anyway.
[SVN r39605]
seems that doxygen target now produces a target
with different name, and it does not produce
any target unless there's explicit dependency
on it. I'm not sure I like the change, but
anyway.
[SVN r39605]
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]
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]
Fixed problems with threading, pic code, missing math
library, etc. to get mipspro toolset working better.
Updated pgi toolset to fix various problems with the
link line.
[SVN r39531]
Fixed problems with threading, pic code, missing math
library, etc. to get mipspro toolset working better.
Updated pgi toolset to fix various problems with the
link line.
[SVN r39531]
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]
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]
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]
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]
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]
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]
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]
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]
emit each referenced template in the object file
where referenced and then rely on the linker to
remove duplicates.
Added some missing macros to sgi_mipspro.hpp.
[SVN r39382]
emit each referenced template in the object file
where referenced and then rely on the linker to
remove duplicates.
Added some missing macros to sgi_mipspro.hpp.
[SVN r39382]
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]
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]