Path to this page:
Subject: CVS commit: pkgsrc/shells/pbosh
From: Michael Baeuerle
Date: 2020-11-25 17:00:09
Message id: 20201125160009.C6A66FA9D@cvs.NetBSD.org
Log Message:
pbosh: Update to 20201125
Changelog from AN-2020-11-04:
- Makefile system: include/schily/nlsdefs.h no longer by default defines
the macro __() because this is in conflict with definitions that are
present in the system include files from newer HP-UX versions.
Thanks to Rudi Blom for reporting.
- Bourne Shell: If a background job did finish during an implicit wait
for a foreground job, the exit code for the background job was lost.
This was caused by a forgotten call to statjob(jp, &si, 0, 0) in
the function waitjob();
Thanks to Koichi Nakashima for reporting.
- Bourne Shell: The changes from 2020-10-09 to keep the exit code from
jobs like "(sleep 10; exit 17)&" in the job list, caused a \
command like
cat /etc/termcap |more
to stop after the first page of output because "more" died from trying
to read the answer for continuing the output as it was not in the
current foreground process group from the tty. This was the result of
a forgotten call to monitor = ismonitor(xflags); in xec.c
- Bourne Shell: The changes from 2020-10-09 to keep the exit code from
jobs like "(sleep 10; exit 17)&" could cause some wait commands \
to hang
infinitely because the job list had an endless loop. The new code
avoids to create the endless loop in the job list.
Thanks to Koichi Nakashima for reporting.
- Bourne Shell: The changes for jobcontrol in schily-2020-10-09 could.
cause bosh to dump core with the builtin fg(1) command because "thisjob".
was a NULL pointer.
We add a new lastthisjob variable to work around this problem.
Thanks for Noci Sonack for reporting.
- bsh/Bourne Shell: str2sig() has been enhanced to support e.g.
RTMIN+20 or RTMAX-20 as alias on platforms with 30 RT signals.
Note that this currently only works on non-POSIX platforms like Linux
where our private implementation is used. On Solaris, this would need
to wait until compatibility to POSIX issue 8 has been implemented
in the libc from Solaris.
Changelog from AN-2020-11-25:
- Makefile System: Added support for MacOS on arm64
Thanks to a hint from Ryan Schmidt from macports
Note that due to outstanding replies to recent changes in configure,
it could up to now not be verified that all configure tests now work in
a way that results in correct overall results. See below for an in
depth report on the changes.
- Makefile System: autoconf (config.guess & config.sub) now supports
the new arm64 Apple systems.
Thanks to Ryan Schmidt from macports for provinding the needed uname(1)
output.
- Makefile System: Added a new shell script "autoconf/uname" that helps
to create shell scrips that allow to emulate an alien host system in
order to test the correct behavior of configure.guess and configure.sub
on the main development platform.
This helps to adapt configure.guess and configure.sub to new platforms
in the future.
- Makefile System: The new clang compiler as published with the upcomming
ARM macs has been preconfigured with
-Werror -Wimplicit-function-declaration
as the default behavior and thus is in conflict with the existing base
assumption of the autoconf system that minimalistic C-code used for
compile/link allows to check for the existence of a specific function
in libc without a need to know which system #include file is used to
define a prototype for that function.
This clang version, as a result of this default, behaves like a C++
compiler and aborts if a function is used with no previous function
prototype. This caused most of the existing autoconf test to fail with
error messages about missing prototypes.
We implemented a workaround using these methods for the identified
problems:
- Most of the exit() calls in the various main() functions have
been replaced by return() to avoid a need to
#include <stdlib.h> in special since these test may be the
case for layered tests that #include files from the higher
level parts.
- Many autoconf tests programs now #include more system include
files, e.g. stdlib.h and unistd.h to avoid missing prototype
errors. This cannot reliably be done in tests that are used as
a base for higher level tests where the high level test
#includes own system include files, since older platforms do
not support to #include the same file twice.
So this is tricky...
- A test for a Linux glibc bug caused by incorect #pragma weak
usage inside glibc that prevents one or more functions from
ecvt()/fcvt()/gcvt() from being usable outside glibc now uses
hand-written prototypes for some of the libc interface
functions in order to avoid using the system includes. If we
did not do that, we could not use ecvt()/fcvt()/gcvt() on
MacOS anymore.
Thanks to Ryan Schmidt from macports for reporting and for the given
help that was needed for remote debugging.
Please send the needed feedback on whether the current state of the
configure script results on correct autoconf results on the M1 Macs.
Files: