This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
Changes between 2.0.6 and 2.0.7 (22-Nov-2005 to 08-Jun-2006)
*) Let AC_CHECK_PTH use "pth-config --libs --all" instead of just
"pth-config --libs" to allow it to work under platforms like
Solaris where additional libraries are required.
[Ralf S. Engelschall]
Changes between 2.0.5 and 2.0.6 (05-Oct-2005 to 22-Nov-2005)
*) Add a missing "break" in pth_attr.c:pth_attr_ctrl().
[Stefan Schippers <stefan@schippers.it>]
*) Return an error if pth_kill() is called before pth_init().
[Martin Kraemer <Martin.Kraemer@Fujitsu-Siemens.com>]
Changes between 2.0.3 and 2.0.4 (03-Dec-2004 to 18-Feb-2005)
*) Fix internal determination of maximum number in a size_t in
the string formatter engine.
[Ralf S. Engelschall]
*) Add quotes around function names for AC_DEFUN in pth.m4 to avoid
warnings about "underquoted definitions".
[Stephane Loeuillet <stephane.loeuillet@cegetel.net>]
*) Do not insist on writing to the source directory on "make install"
in order to more closely follow GNU standards.
[Bruno Haible <bruno@clisp.org>]
*) Remove "*.bak" and "*~" files under "make distclean"
instead of "make clean".
[Bruno Haible <bruno@clisp.org>]
Changes between 2.0.2 and 2.0.3 (12-Sep-2004 to 03-Dec-2004)
*) Resurrect the old "make striptease" command by fixing the
configure run-time in the stripped down source tree and fixing the
list of source files.
[Ralf S. Engelschall]
*) The pth_uctx_save() and pth_uctx_restore() API functions
unfortunately were broken by design because they are C
_functions_. This leads to one more deadly nesting on the
run-time stack which effectively caused the pth_mctx_restore()
in pth_uctx_restore() to return to the end of pth_uctx_save()
but then the control flow unfortunately returns to the
pth_uctx_restore() caller instead of the pth_uctx_save() caller
because the call to pth_uctx_restore() had already overwritten the
run-time stack position where the original return address for the
pth_uctx_save() call was stored.
The only workaround would be to #define pth_uctx_save() and
pth_uctx_restore() as C _macros_, but this then would require that
lots of the GNU Pth internals from pth_mctx.c would have to be
exported in the GNU Pth API (which in turn is not acceptable). So,
the only consequence is to remove the two functions again from the
GNU Pth API.
[Ralf S. Engelschall, Stefan Brantschen <sbr@acm.org>]
*) Enhance internal pth_mctx_save() if getcontext(3) is used for the
machine context saving by better emulating the setjmp(3) style
return code semantics.
[Ralf S. Engelschall]
*) Do not break in pth_msgport_find() if a message port
was created with a NULL name.
[Ralf S. Engelschall]
*) Better error checking in pth_key_xxx() functions.
[Ralf S. Engelschall]
*) Added PTH_CTRL_FAVOURNEW control which allows the user
to disable the favouring of new threads on scheduling
to get more strict priority based scheduling behavior.
[Ralf S. Engelschall, Vinu V <Vinu_V@mindtree.com>]
Changes between 2.0.1 and 2.0.2 (13-Jul-2004 to 12-Sep-2004)
*) Added hard syscall wrappers for send(2) and recv(2).
[NetBSD pkgsrc patches]
*) Internally handle errors returned from pth_event() in order
to pass them upstream to the caller in pth_high.c functions.
[Ralf S. Engelschall, NetBSD pkgsrc patches]
*) Fix syscall wrapper for sendto(2).
[NetBSD pkgsrc patches]
*) Use "(char *)NULL" instead of plain "NULL" in last argument to
execl(2) to avoid GCC 3.5's "warning: missing sentinel in function call".
[Ralf S. Engelschall]
*) Workaround Autoconf/m4 problems in pth.m4 by using "m4_define"
instead of just "define" and no using m4_undefine at all.
[Dr. Andreas Mueller <afm@othello.ch>]
*) Avoid side-effects by defining _XOPEN_SOURCE only temporarily
for inclusion of <poll.h> instead of permanently.
[Graham Nash <gnash@ncube.com>]
*) Workaround GCC 2.x and 3.5 (3.4 worked fine) macro parsing
behaviour by using a pre-declared function pointer type "typedef
int (*pth_event_func_t)(void *);" instead of using an inlined
"int (*)(void *)".
[Ralf S. Engelschall, Robert Anderson <RWA@sbcglobal.net>]
*) Fixed prototype for pthread_attr_setschedparam(3) from
to use a "const struct sched_param *" argument.
[Rafael Ávila de Espíndola <rafael.espindola@ic.unicamp.br>]
Changes between 2.0.0 and 2.0.1 (17-Feb-2003 to 13-Jul-2004)
*) Fix handling/casting of "int (*)(void *)" callback functions.
[Ralf S. Engelschall]
*) Resolve symbol conflict in pth_string.c between pow10/round
and GCC builtins.
[Ralf S. Engelschall]
*) Use GCC 3.3 option "-fno-strict-aliasing" (if available) under
Autoconf option "--enable-debug" because mainly pth_mctx.c
contains important and correct pointer casting constructs which
are not acceptable in "strict aliasing" for GCC.
[Ralf S. Engelschall]
*) Fixed implementation so that --enable-pthread now correctly
implies --enable-syscall-soft.
[Steve Alstrin <Steve.Alstrin@NetIQ.com>, Ralf S. Engelschall]
*) Replace some 0 by more politically correct NULL in pth_string.c
[Ralf S. Engelschall]
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
the normal case when BUILDLINK_DEPENDS.<pkg> isn't specified, it receives
a value only once due to the multiple inclusion protection in the
bulldlink3.mk files. In the case where a package includes several
buildlink3.mk files that each want a slightly different version of another
dependency, having BUILDLINK_DEPENDS.<pkg> be a list allows for the
strictest <pkg> dependency to be matched.
Changes:
*) Make pth_poll(3) more compliant to POSIX.1-2001/SUSv3 poll(2).
*) Make pth_select(3) more compliant to POSIX.1-2001/SUSv3 select(2).
*) Replaced pth_event_occurred() with pth_event_status().
*) Add Autoconf option --with-fdsetsize=NUM for enlarging FD_SETSIZE.
*) Added thread attribute PTH_ATTR_DISPATCHES.
*) Added sub-API pth_uctx_* for user-space context switching.
*) Add a Pth variant of the new POSIX pselect(2) function.
*) Internally cleaned up the error handling macros.
*) Added POSIX-compliant sanity checks for bad fds.
*) Added pth_nanosleep() function.
*) Allow a NULL name for pth_msgport_create()
*) Completely rewrote the "hard syscall mapping".
*) Added support to pth_poll(3) for POLLD{RD,WR}{NORM,BAND}.
*) Fixed a long-standing termination bug in pth_exit(3).
*) Upgraded to Autoconf 2.57, Shtool 1.6.2 and Libtool 1.4.3.
*) Add optional support for OSSP ex based exception handling.
system call's return values are postprocessed by the libc stub
(eg alpha).
Change pth to call libc's internal _fork(). This is only available
since NetBSD-1.5, older releases are SOL -- sorry, but we need something
working for 1.6.1.
We should audit all the PTH_SYSCALL_HARD plugins whether they neglect
libc assembler magic...
bump PKGREVISION
* 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.