1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

Fixes to compile on Solaris variants, NetBSD, and NixOS

Solaris, Illumos distributions, and NetBSD need LDFLAGS set to link
explicitly to libm, otherwise, due to as-yet unknown reasons, the
src/lib/libdll/features/dll fails to write a valid header file and
compilation fails due to unknown identifiers such as Dllscan_t.
This commit adds the flag on those systems.

NixOS is a Linux distro that uses very different paths from the
usual Unix conventions (though it's POSIX compliant), and the
regression tests still needed a lot of tweaks to be compatible.

src/cmd/INIT/package.sh, bin/package:
- On SunOS (Solaris and illumos distros) and NetBSD, add '-lm' to
  LDFLAGS before compiling.

src/cmd/INIT/mamprobe.sh, bin/mamprobe,
src/cmd/INIT/execrate.sh, bin/execrate:
- Instead of only in /bin, /usr/bin, /sbin and /usr/sbin, search
  utilities in the path given by the OS 'getconf PATH', and use the
  user's original $PATH as a fallback.

src/cmd/ksh93/tests/*.sh:
- Miscellaneous portability fixes, mainly elimination of unportable
  hardcoded paths to commands.
- basic.sh: Remove test for 'time' keyword millisecond precision.
  It was racy and could fail depending on system and system load.
This commit is contained in:
Martijn Dekker 2020-08-03 08:57:00 +01:00
parent 5a7bd2c196
commit d3cd4cf906
18 changed files with 102 additions and 42 deletions

View file

@ -553,21 +553,7 @@ $SHELL 2> /dev/null -c $'for i;\ndo :;done' || err_exit 'for i ; <newline> not v
) || err_exit "crash when sourcing multiple files (exit status $?)"
# ======
# The time keyword should correctly handle millisecond precision, except
# on older systems that do not support getrusage(2) or gettimeofday(2).
result=$(
TIMEFORMAT=$'\%3R'
redirect 2>&1
set +x
time sleep .002
)
case $result in
0.000 | 0.010)
err_exit "warning: 'time' keyword doesn't support millisecond precision"
let "Errors--" ;;
0.002) ;;
*) err_exit "'time' keyword, millisecond precision: expected 0.002, got $result" ;;
esac
# The time keyword
# A single '%' after a format specifier should not be a syntax
# error (it should be treated as a literal '%').