I just debugged a failure of the m4 master branch testsuite on Solaris 8, and 
tracked it to the fact that system(2) was using /bin/sh as its shell.  The 
Solaris documentation claims that defining _POSIX_SOURCE prior to including any 
system headers will make system(2) use /bin/ksh instead, which should resolve 
the situation.  But in my (limited) testing, I wasn't able to get that to 
happen with either gcc 3.3 or /usr/ucb/cc as the compiler and -D_POSIX_SOURCE=1 
on the command line.  Any ideas on how to select the standards-compliant system
(2) implementation on Solaris?  And should m4/extensions.m4 blindly define 
_POSIX_SOURCE for Solaris, like it already does for Minix, so as to favor the 
standard-compliant implementation of functions like system(2) that are 
documented to behave differently depending on compilation environment?

-- 
Eric Blake





Reply via email to