mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Fix build on Solaris 11.4 (re: d3cd4cf
)
It was working on Solaris 11.3, but there were still problems building on Solaris 11.4 with GCC (as on the evaluation VM downloaded directly from Oracle): 1. ksh immediately segfaulted. Experimenting with the compiler flags Oracle uses revealed that we need to define _XPG6 for ksh not to segfault. Why is a mystery. 2. The default path logic used by 'command -p' and the 'getconf PATH' builtin command was still broken: the result did not include any of the /usr/xpg?/bin directories where the standard POSIX utilities actually live. Testing shows that the result of the C language probe 'confstr(_CS_PATH,name,length)' is broken on Solaris (it only yields the paths to the historic non-standard utilities, defeating the purpose) unless _XPG7 is defined; but the latter makes ksh segfault again. So another solution is needed. src/cmd/INIT/package.sh, bin/package: - Add another hack to add the -D_XPG6 flag to CCFLAGS if we're running SunOS aka Solaris. (I've tried to add a 'cc.sol11' script to src/cmd/INIT/ instead, but for some reason that I just don't have time to figure out, the INIT system ignores that on Solaris with gcc, so this is the only way I could come up with. Any patches for less hacky alternatives would be welcome.) src/lib/libast/comp/conf.sh: - Sanitise the code for finding the best 'getconf' utility. src/lib/libast/comp/conf.tab: PATH: - Since the C-languge getconf(_CS_PATH,...) is broken on Solaris 11.4, replace the C language probe with a shell script probe that uses the external 'getconf' utility. - To avoid ksh overriding the result of this probe with the result of its own getconf(_CS_PATH,...) call, which would make Solaris use the wrong value again, specify this as an AST configuration entry instead of a POSIX entry. This should be good enough for all systems; the OS 'getconf' utility should be reliable and the default path value is constant for each OS, so can be hardcoded. src/cmd/ksh93/tests/builtins.sh: - Add another 'sleep .1' to the 'sleep -s 31' test as it was still intermittently failing on Solaris and possibly other systems.
This commit is contained in:
parent
d3cd4cf906
commit
aa4669ad17
5 changed files with 44 additions and 23 deletions
|
@ -876,6 +876,7 @@ cat >| "$sleepsig" << 'EOF'
|
|||
sleep -s 31 &
|
||||
sleep .1
|
||||
kill -CONT $!
|
||||
sleep .1
|
||||
if kill -0 $!; then
|
||||
kill -TERM $! # Don't leave a lingering background process
|
||||
exit 1
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue