https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297638
--- Comment #5 from Markus Wild <[email protected]> --- (In reply to Benjamin Jacobs from comment #4) Your example seems somewhat contrived.. my experience is: "normal" utilities (I'm excluding shells from this) do not have special handling for SIGPIPE, they'll just do the default action, which is to terminate quietly, and I'm completely fine with this, it's what I expect. If I need to check specifically, I can (like you showed), but I don't have to. ldd behaves differently, and I find that weird. I don't think it's irrelevant that ldd forks, I think it's the cause of the problem. Neither rtld nor ldd set a signal handler for SIGPIPE, so they don't really plan to take a non-standard action. ldd forks to reuse rtld or dlopen code base with some magic tracing environment variables set, and it then interprets the exit status of the child in the parent. I'd be happy if the parent just sent itself the same signal it detected from the child, so the shell (or whatever started ldd) can take whatever action (or none) on that, just like with any other tool that doesn't fork. Sure I can work around the oddity, but I think I shouldn't have to. -- You are receiving this mail because: You are the assignee for the bug.
