This is based on the decision The NetBSD Foundation made in 2008 to
do so, which was already applied to src.
This change has been applied to code which is likely not in other
repositories.
ok board@, reviewed by riastradh@
The voodoo that checks this now keeps track of which packages caused
what, and in addition to the list FORCED_PKGSRC of packages that have
been forced to non-builtin, it also produces a list FORCED_PKGSRC_REASONS
of the form pkg:causing-pkg{,causing-pkg...}.
(which means that USE_BUILTIN.pkg has been set to no because
USE_BUILTIN.causing-pkg is set to no.)
This could probably just be one list but I'm not sure if anything is
relying on the format of the current FORCED_PKGSRC.
wrapped version by full path. This fixes some cases where the wrappers
have been bypassed. lang/lua52 triggered the investigation as it failed
to link against libreadline, which should have been translated to
libedit. Tested by jperkin and myself with full bulk builds.
to the same value anyway. Also removes a comment from 2005 which was
possibly wrong at the time it was committed, given the same construct
has been used in bsd.buildlink3.mk unchanged since 2004.
due to misspelling in the old wrapper case and for cwrappers, it creates
more problems than it fixes. If parts of /usr/lib should really be
preserved, they should be added explicitly as pass-thru directory.
directories of the compiler/linker when using cwrappers. Command line
flags will often put them before the corresponding flags for
PREFIX/include and PREFIX/lib, so the version from outside .buildlink
would be prefered. The other way around is much less likely to be a
problem and normally the expected case. Bump required cwrappers version
for the necessary exact-match feature.
likely that the files in this code path do not exist, so this can save a
significant number of exec's, especially for packages with a large number of
dependencies, with a corresponding reduction in the run time for the 'wrapper'
phase.
In addition, remove a 'useless use of cat' instance to save more exec's.
transformed before ${X11BASE}. On Red Hat Linux with native X11,
X11BASE=/usr and so any ${LOCALBASE} which is under that hierarchy
(e.g. the default /usr/pkg) will break in weird and wonderful ways.
In addition to this, use ${LIBABISUFFIX} where appropriate, and avoid
some extra transformations in the X11BASE=/usr case.
This along with other recent changes gets us to a very healthy >12k
packages with native X11 on Red Hat Linux 6 (and clones).
and force USE_BUILTIN.pkg=no for packages that depend on packages where
USE_BUILTIN.pkg is no. The names of any such packages are accumulated in
the variable FORCED_PKGSRC for reference; this is currently undocumented
and could be dropped in the future.
This makes it a lot safer to install pkgsrc versions of selected X
libraries without switching wholesale to pkgsrc X; however, other
issues may still exist and caution is still advisable.
As seen on tech-pkg.
Also note: this may affect the builds of packages we don't realize are
affected and that haven't been revbumped. If you find one, let us know
so we can bump its version (or do that yourself) -- most likely this
change will produce in working, properly-linked packages that were
previously broken, but if problems arise please speak up.
however that is not the case. To get that behaviour use ':S/c/ /g'.
Fixes a number of issues on various OPSYS introduced with the recent
COMPILER_* and SYSTEM_DEFAULT_RPATH abstractions.
instead of hard-coded /usr/include, /usr/lib, ... paths.
* allow empty BUILDLINK_PREFIX.${_pkg_}, for builtin packags not match such
model (Haiku's system headers and libraries are in different hier).
"yes" or "no" for whether BUILDLINK_{INCDIRS,LIBDIRS,RPATHDIRS}.<pkg>
should automatically be added to the compiler/linker search paths.
Defaults to "yes".
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.
the full requirement rather than just the package name. This message
should never be seen (after all, the package we need is supposed to
*get* installed) but sometimes if things are screwed up in one way or
another it does show up. Since often what's wrong is that the package
that's installed is the wrong version, not that it's missing entirely,
this way the error message makes a lot more sense.
E.g. http://mail-index.netbsd.org/tech-pkg/2008/06/12/msg001126.html et seq.
ok dillo@
in bsd.buildlink3.mk was broken with pkg_install-20080309 was it
returned a relative path. It would have failed before e.g. with symbolic
links in the path. pkg_info -E is simpler and was added exactly for this
purpose. Fixes PR 38213 and PR 38211.
- USE_CROSS_COMPILATION activates it, CROSS_DESTDIR specifies root of
the target filesystem
- derive _CROSS_DESTDIR from CROSS_DESTDIR or MAKEOBJDIR
- buildlink3.mk prefixes the files to symlink with _CROSS_DESTDIR
- compiler/gcc.mk knows about the target prefix (e.g. i386--netbsdelf)
- PKG_DBDIR is prefixed with _CROSS_DESTDIR
- package-install and bin-install are not called with su
- install and strip are redirected to the tool version
- links for the target specific ar, as, ld, nm, objdump, ranlib and
strip are added
- compiler wrapper detect if linking is requested or not
- special command sinks for CPP and CC/CXX add the cross-compile magic:
- modify include dirs to get the target /usr/include
- modify linker dirs and runpath to use target /usr/lib at link time,
but keep correct rpath entries
Supported-by: Google SoC 2007
Basic tests by he@ on Sparc. Review from jlam@.