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).
variables PTHREAD_{CFLAGS,CPPFLAGS,LDFLAGS,LIBS} should be automatically
added to their respective variables. Defaults to "yes".
Packages that only require some parts to be linked the the pthreads
compiler/linker options should set this to "no" and selectively add
those options via patches to the right makefiles..
automatically by pthread.buildlink3.mk. Also, factor out the pthread
library out of PTHREAD_LDFLAGS into a standalone variable PTHREAD_LIBS
and use it in packages where necessary (usually the ones that don't
have a GNU configure script).
pthread.buildlink3.mk into a separate file, pthread.builtin.mk,
that is handled using the usual builtin.mk logic.
(2) If pthread.buildlink3.mk is included by a package Makefile, then
automatically add the necessary compiler and linker flags to
compile and link pthread-enabled/reentrant code. For native
pthreads, this means passing -pthread to the compiler and linker.
For the userland pthread replacement, we pass -D_REENTRANT and
-lpthread instead.
(3) Add PTHREAD_{CFLAGS,LDFLAGS,LIBS} in both CONFIGURE_ENV and MAKE_ENV
when pthread.buildlink3.mk is included so that the configure and
build processes can use these values. Remove these definitions
from bsd.pkg.mk since PTHREAD_* variables are all declared within
pthread.buildlink3.mk.
XXX For now, PTHREAD_LDFLAGS is a superset of PTHREAD_LIBS until
XXX packages that use use PTHREAD_LDFLAGS can be fixed.
so that the buildlink3 framework knows to use the various
BUILDLINK_*.pthread variables. This fixes a long-standing and long-
overlooked bug in pthread.buildlink3.mk that has existed since the
buildlink3 framework was initially committed.
As a result of this change, modifications to packages to introduce
PTHREAD_{CFLAGS,LDFLAGS} in various places to either the configure script
or into Makefiles are probably no longer needed.
BUILDLINK_LDADD.pthread was empty, so add a check to find the libraries
and if they are found, add -lpthread to BUILDLINK_LDADD.pthread, thanks
to grant beattie for the suggestion.
Reported and tested by Sergio Jimenez <tripledes at eslack dot org>.
systems known to support its (FreeBSD, NetBSD, Linux).
fixes breakage caused by passing -pthread to SunPro cc(1) and likely
also fixes platforms other than the above.
add 'pthread' to BUILDLINK_PACKAGES so that
BUILDLINK_{{LD,C}FLAGS,LDADD}.pthread actually have an effect.
This should fix the build of at least tcl/tk related packages now
that tcl and tk packages are thread-aware.
Remove comments about linking native pthread libraries and headers into
${BUILDLINK_DIR} as this does not happen.
by moving the inclusion of buildlink3.mk files outside of the protected
region. This bug would be seen by users that have set PREFER_PKGSRC
or PREFER_NATIVE to non-default values.
BUILDLINK_PACKAGES should be ordered so that for any package in the
list, that package doesn't depend on any packages to the left of it
in the list. This ordering property is used to check for builtin
packages in the correct order. The problem was that including a
buildlink3.mk file for <pkg> correctly ensured that <pkg> was removed
from BUILDLINK_PACKAGES and appended to the end. However, since the
inclusion of any other buildlink3.mk files within that buildlink3.mk
was in a region that was protected against multiple inclusion, those
dependencies weren't also moved to the end of BUILDLINK_PACKAGES.