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

7
TODO
View file

@ -4,11 +4,16 @@ ______
Fix regression test failures:
- On OpenBSD, there are 15 locale-related test failures in variables.sh.
- There are many regression test failures on NetBSD.
______
Fix build system:
- ksh does not currently build on NetBSD, AIX, Solaris, or QNX.
- ksh does not currently build on AIX or QNX.
- On NetBSD 9.0, the build fails if /bin/sh is used as $SHELL (the default)
as iffe writes line numbers directly into generated header files. The cause
needs to be investigated. It could be a regression in NetBSD 9.0 sh.
Workaround: bin/package make SHELL=/some/other/shell
- Reimport the removed nmake. It is necessary for changes in Makefiles
to take effect. The machine-generated Mamfiles are now used as a fallback,
but they are not meant to be edited by hand.