DragonFly users List (threaded) for 2006-10
Re: bmake not killing childrens
:some of you may have noticed that sometimes when you type Ctrl + C
:to stop bmake it doesn't stop. I find that behaviour annoying so
:i created this patch to solve it.
:This patch disables make compatibility mode, so some things WILL
:break. bmake unit tests is an example of this. So to install the new
:bmake you'll need to cp /usr/pkgsrc/devel/bmake/work/DragonFly/bmake
:I've tried it compiling mule-ucs package and seems that bmake with
:the patch did his job fine, but it may break things, so use with
:Also it would be great if someone who knows bmake internals could
:find a better and definitive solution.
Our normal 'make' sometimes fails to kill children too. Now it is
certainly possible for a program to ignore SIGINT, but the real
problem here is probably due to a bug in DragonFly rather than a bug
in make or bmake.
When you send a ^C, the signal gets sent to the entire process group.
But there is a race in DragonFly's fork() code (fork1() in the kernel)
where the newly forked child process does not receive the signal because
it is still in the middle of being set-up. It is either not yet in the
process group or the process is flagged as not being completely set-up
yet and the signal is ignored.
I think if this bug is addressed, most (or all) of these issues will