* Provide nanosleep(2) and usleep(3) wrappers.
* Make sure sigprocmask syscalls are used in pth_system.
* "Fix" FD_SET handling in the select(2) wrapper so that
mismatches between pth FD_SETSIZE and user program
FD_SETSIZE don't cause problems.
* Update poll(2) wrapper to be more poll(2) like - in
particular never return EINVAL for bad file descriptors
Thanks to Matthias Drochner for this.
* Improve error handling in connect(2) wrapper so that we
don't confuse the scheduler. This fixes pkg/17944 from
Christian Biere (ChristianBiere at gmx dot de)
* Introduce autoconf handling of the value of FD_SETSIZE
used by pth. If we have to hard code a value we might
as well make it easy to change and make the inclusion
of pth.h or pthread.h by a program that re-defines
FD_SETSIZE an error.
Inspired by pkg/17944.
* Fix a compiler warning that I introduced a little while
ago.
* Disable --enable-syscall-hard for non-NetBSD platforms
and for pre-1.6/m68k. Make a note of the PRs that need
fixing. This closes pkg/18236 from Klaus Heinz (k dot
heinz dot sep dot zwei at onlinehome dot de)
The FD_SETSIZE problems would be handled better if pth was changed
to use poll(2), and not select(2), internally.
buildlink2.mk files back into the main trunk. This provides sufficient
buildlink2 infrastructure to start merging other packages from the
buildlink2 branch that have already been converted to use the buildlink2
framework.
as part of the configure options. A pth with this option enabled provides
some semblance of pre-emptive threads - enough for things like xmms and
knode to actually work.
Add the necessary glue to pthread.buildlink.mk and appropriate CONFLICT
into pth.
It is hoped that the pkgs that currently use
-D_POSIX_THREAD_SYSCALL_SOFT=1
will be tested against pth-syscall and changed to use it. The goal is to
be able to add --enable-syscall-hard to devel/pth and retire pth-syscall.
Baby steps...
- Internally make sure an invalid file-descriptor (integer not
between 0 and (FD_SETSIZE-1) does not lead to any segfaults or
other undefined behaviour. Instead an error is returned and errno
is set to EBADF, similar to what the OS functions do. Especially
pth_poll() now return with this error (instead of skipping the fd)
if an fd in the "struct pollfd" is invalid.
[Ralf S. Engelschall, Archie Cobbs <archie@packetdesign.com>]
- Correctly support PTH_FDMODE_NONBLOCK in pth_connect and pth_accept.
[Archie Cobbs <archie@packetdesign.com>]
- Fixed typos in manual page.
[Michael Schloh v. Bennewitz <michael.schloh@de.cw.net>,
Takashi Ishihara <tishihara@ucdavis.edu>]
- For portability reasons changed definition of PTH_EXT_SFIO to 0/1
instead of FALSE/TRUE because some external definitions use a
casted value and hence make trouble on plain #if constructs.
[Staehli Patrik <patrik.staehli@siemens.ch>]
- Fixed return value (number of occurred events) of pth_wait().
[David Dureau <david.dureau@cea.fr>]
- Replaced thread-unsafe usage of a static struct iovec in
pth_writev_ev() with a thread-safe stack/heap-based solution.
[Ralf S. Engelschall, Mark Burton <markb@ordern.com>]
- Replaced antiquated PTH_FLAG_NOJOIN references with the correct
PTH_ATTR_JOINABLE references in the manual page.
[Takashi Ishihara <tishihara@ucdavis.edu>]
- Fixed a (not very subtle) bug in pth_writev_ev() that screwed up
output if a partial write happened.
[Mark Burton <markb@ordern.com>]
- Fixed static initializers PTH_BARRIER_INIT and PTH_COND_INIT.
[Shawn Wagner <shawnw@speakeasy.org>]
- Typo fixes in pth.pod
[<collver@linuxfreemail.com>]
- Upgraded to GNU shtool, version 1.5.4.
[Ralf S. Engelschall]
- Fixed "make striptease": pth_string.c was not included and some
commands which were removed at all (and this way causes syntax
errors) will be now correctly commented out with ":" commands.
[Paolo Bonzini <bonzini@pc-amo3.elet.polimi.it>]
foo-* to foo-[0-9]*. This is to cause the dependencies to match only the
packages whose base package name is "foo", and not those named "foo-bar".
A concrete example is p5-Net-* matching p5-Net-DNS as well as p5-Net. Also
change dependency examples in Packages.txt to reflect this.
set FOO_CONFIG=${BUILDLINK_CONFIG_WRAPPER.foo} in both CONFIGURE_ENV and
MAKE_ENV. We remove the check for GNU_CONFIGURE because if a package
Makefile includes the buildlink.mk file, then it most likely wants to use
the config script wrappers as well. Change suggested by Hubert Feyrer
(hubertf) and Tomasz Luchowski (zuntum).
BUILDLINK_PREFIX.<pkgname>. This allows buildlink to find X11BASE packages
regardless of whether they were installed before or after xpkgwedge was
installed. Idea by Alistair Crooks <agc@pkgsrc.org>.
FOO_REQD=1.0 being converted to foo>=1.0, one can now directly specify
the dependency pattern as FOO_DEPENDS=foo>=1.0. This allows things like
JPEG_DEPENDS=jpeg-6b, or fancier expressions like for postgresql-lib.
Change existing FOO_REQD definitions in Makefiles to FOO_DEPENDS.
Changes between 1.4a3 and 1.4.0 (29-Jul-2000 to 24-Mar-2001)
*) Added PTHREAD_PRIO_XXXX definitions to pthread.h for
conformance to the POSIX/SUSv2 Pthread API.
*) Implemented the pthread_{set,get}concurrency() API parts of
POSIX/SUSv2, although internally we are (allowed to be) free to not
do anything based on the requested level.
*) Adjusted all pthread_attr_getXXXX() functions to use a "const
pthread_attr_t *" as the first argument instead of "pthread_attr_t
*" to fully-conform to POSIX/SUSv2.
*) Added ENOSYS-stubs for pthread_attr_{set,get}guardsize()
to the Pthread API to be more complete with POSIX/SUSv2 specs.
*) Added still missing soft system call mapping to Pth and Pthread
APIs for functions recv(2), send(2), recvfrom(2) and sendto(2).
*) Upgraded to GNU shtool 1.5.2
*) Fixed an even-manager bug which causes a thread that calls
pth_nap() to never woke up if the only elapsed event was a timer.
*) Added `#define _BITS_SIGTHREAD_H' to pthread.h to avoid inclusion
of bits/sigthread.h (from signal.h) on Linux running glibc6 2.2.
*) Added support to Makefile.in for DESTDIR variable. This allows
easier rolling of installation tarballs (for instance from within
RPM or similar facilities) by using "make install DESTDIR=/tmp/pth".
*) Implemented a pth_system(3) function which is a thread-aware
clone of the POSIX system(2) function.
*) Fixed typos in pth.pod: "fd" -> "s" for pth_connect/pth_accept.
*) Make --disable-shared the default under Solaris-2.[78]/x86, because
it is known to segfault sporadically if Pth is built as a DSO. As
traces showed, it is not a Pth problem, but it looks like a problem
with the dynamic linker on Solaris/x86. The same Solaris versions
on SPARC don't have this problem.
*) Updated copyright messages to cover new year 2001.
*) Fixed quoting in configure.in
*) Let pth_sleep(3) and pth_usleep(3) immediately return
if an argument of zero is given.
*) Fixed pthread.pod: the newer pod2man versions seems to dislike
embedded comments, so I moved them to the top of the file.
*) Changed CVS URL in HACKING document.
*) Mention http://www.mail-archive.com/pth-users@gnu.org/ in pth.pod
and SUPPORT document.
Changes between 1.4a2 and 1.4a3 (01-Jul-2000 to 29-Jul-2000)
*) Upgraded to GNU shtool 1.5.1
*) Fixed (unused) pth_time_mul() function: operator & replaced by %
*) Use --disable-lock for ltconfig.
*) Fixed a few typos in pth.pod.
Changes between 1.4a1 and 1.4a2 (16-Apr-2000 to 01-Jul-2000)
*) Upgraded to GNU Shtool 1.5.0
*) Added OS/390 support to config.sub.
*) Upgraded rse-pmt.ps paper to latest version as it was
published on USENIX 2000.
*) Stack boundary fixes for Interactive Unix support
(--with-mctx-dsp=sjljisc). This allows one also to use this
variant for Interix on Window-NT (a POSIX.1 compliant subsystem).
*) Upgraded to GNU Libtool 1.3.5
*) Fixed config.param parsing: IF is now also allowed on
VARIABLE=VALUE lines.
*) Allow for convinience reasons pth_usleep() to accept also
arguments greater than 1000000.
*) Updated HACKING document.
*) Fixed warnings in pth_string.c related to va_arg() usage
and implicit type conversions.
*) Merge from Pth 1.3.5:
Fixed the <sys/select.h> checks in Autoconf: the logic
was reversed and this way <sys/select.h> wasn't included on
platforms were it existed and included where it wasn't present.
Changes between 1.3.3 and 1.4a1 (10-Mar-2000 to 16-Apr-2000)
*) Added a new feature to config.param: parameters can be extended
with ``<space>IF<space><shell-test>''. Then the preceeding
parameter is only added to the command line if the <shell-test>
returns 0. <shell-test> can be anything which is possible in a
Bourne-Shell `if' construct's expression.
*) Fixed usage of `volatile' qualifier in pointer context.
*) Now check also for -Wno-long-long compiler option under
--enable-debug, because pth_string.c contains `long long' stuff.
*) Now pth.h and pthread.h include the non-standard <sys/select.h>
header on brain-dead platforms (like AIX) to get the definition of
fd_set (which is required for the pth_select prototype).
*) Fixed auto-configuration for ISC and Win32/Cygwin platforms.
*) Removed -L. from $(LDFLAGS) in Makefile.in, because this
is not required (libtool already takes care of this).
*) Added a RPM spec file pth.spec which allows one to build RPM
packages directly from the Pth distribution tarball through a
simple `rpm -tb pth-1.X.Y.tar.gz' call.
*) Removed the too explicit `-m 644' from the libtool/shtool
installation command for libpth.la and instead use a `umask 022'.
The reason is because some platforms require the shared libraries
to be executable, so we cannot use an explicit mode. But we use the
umask to make sure we don't result in world or group writeable files.
*) Use full-path /sbin/sysctl in config.guess on FreeBSD because
not all users have /sbin in their $PATH.
*) Added eight new I/O functions pth_{recv,recvfrom,send,sendto}[_ev](3)
which correspond to the counterparts in UNIX98 (SUSv2).
*) Replaced for security reasons sprintf() and vsprintf() calls
with own pth_snprintf() and pth_vsnprintf() functions from the new
pth_string.c source.
*) Speeded up pth_ring_t handling by inlining code and by maintaining
number of contained nodes explicitly to avoid an O(n) operation when
the number of elements are requested.
*) Upgraded to GNU shtool 1.4.9
out of date - it was based on a.out OBJECT_FMT, and added entries in the
generated PLISTs to reflect the symlinks that ELF packages uses. It also
tried to be clever, and removed and recreated any symbolic links that were
created, which has resulted in some fun, especially with packages which
use dlopen(3) to load modules. Some recent changes to our ld.so to bring
it more into line with other Operating Systems also exposed some cracks.
+ Modify bsd.pkg.mk and its shared object handling, so that PLISTs now contain
the ELF symlinks.
+ Don't mess about with file system entries when handling shared objects in
bsd.pkg.mk, since it's likely that libtool and the BSD *.mk processing will
have got it right, and have a much better idea than we do.
+ Modify PLISTs to contain "ELF symlinks"
+ On a.out platforms, delete any "ELF symlinks" from the generated PLISTs
+ On ELF platforms, no extra processing needs to be done in bsd.pkg.mk
+ Modify print-PLIST target in bsd.pkg.mk to add dummy symlink entries on
a.out platforms
+ Update the documentation in Packages.txt
With many thanks to Thomas Klausner for keeping me honest with this.
Add a new USE_LIBTOOL definition that uses the libtool package instead of
pkglibtool which is now considered outdated.
USE_PKGLIBTOOL is available for backwards compatibility with old packages
but is deprecated for new packages.
*) Do no longer use -woff in CFLAGS for IRIX 6.5.2 and above.
*) Replaced ``while (1)'' constructs with ``for (;;)'' because some
compilers like this more and do not warn about constant expressions.
*) Added hint to pth.pod that ``pth_join(<tid>, NULL)'' is allowed.
*) Cancel and join the ticker thread explicitly in test_select.c
*) Removed unnecessary code in pth_event.c
*) Add special namespace workarounds to pthread.h.in for HPUX
platforms where the pthread_kill() prototypes conflict without this.
*) Added HISTORY document where we now write down the evolution
and release dates of Pth to have a concise history reference.
[Ralf S. Engelschall]
*) Added USERS document where we now collect references to
software packages utilizing GNU Pth.
[Ralf S. Engelschall]
*) Fixed a subtle typo in pth.pod about thread-safe functions
and finished documentation of pth_attr_set/pth_attr_get functions.
[James Robinson <jlrobins@uncc.edu>, Jeremie <jeremie@jabber.org>]
to 1.2.3):
*) Better detection and support for Unix platform differences
*) More complete support for hard syscall wrapping
*) Memory debugging support via Dmalloc library and --with-dmalloc
*) Added a PTH_CTRL_DUMPSTATE to pth_ctrl()
*) Removed PTH_EVENT_PID and enhanced PTH_EVENT_FUNC
*) First cut for Win32/CygWin support
*) New `make striptease' feature for developers
*) New pth.m4 file for using Pth inside Autoconf based packages
*) New large pthread.pod manual page which contains full Pthread API
*) Fixed numerious memory leaks
*) Numerous bugfixes and cleanups