History log of /freebsd-current/share/mk/bsd.own.mk
Revision Date Author Comments
# 01918855 02-Jan-2024 Warner Losh <imp@FreeBSD.org>

bsd.own.mk: Assume a modern make

Commit 83cb5bae966d7 added a check for MAKE_VERSION being new enough to
handle CTFCONVERT_CMD being an empty string since fmake of the time
didn't support it until just a few commits before 83cb5bae966d7. Later,
it was augmented with a check for .PARSEDIR to see if bmake was
running. fmake and boostrapping from fmake haven't worked in maybe 6 or
8 years, so we can remove the check here. If you want to update from
your FreeBSD 7 or FreeBSD 8 systems, you're even more out of luck than
you were before and must jump to an older version before jumping to
current for the source upgrade path.

Sponsored by: Netflix
Reviewed by: brooks, emaste
Pull Request: https://github.com/freebsd/freebsd-src/pull/980


# a9758e46 25-Nov-2023 Konstantin Belousov <kib@FreeBSD.org>

Do not install kernel and modules with executable access bit set

They are not executables and cannot be activated by kernel.

Reviewed by: emaste, imp
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D42768


# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# 55f35c53 08-Feb-2023 Warner Losh <imp@FreeBSD.org>

Use 'mixed' links for 'hard' links by default.

emaste suggested this in https://github.com/freebsd/freebsd-src/pull/133
and it works. It will do the right thing by default, and handle the weird
cases 133 was trying to fix.


# fcf12081 15-Jul-2022 Jessica Clarke <jrtc27@FreeBSD.org>

Makefile.inc1 release bsd.own.mk: Introduce and use TAR_CMD

Our uses of tar rely on BSDisms, and so do not work in environments
where GNU tar is the default tar. Providing a TAR_CMD variable like
some other commands allows it to be overridden to use bsdtar in such
cases.

Reviewed by: brooks, delphij, gjb
Obtained from: CheriBSD
Differential Revision: https://reviews.freebsd.org/D35813


# 599d032a 20-Nov-2019 Warner Losh <imp@FreeBSD.org>

Standardize EFI's ESP mount point.

Mount the UEFI ESP on /boot/efi. No current system uses this by default, but
there are many ad-hoc schemes that do this in /efi or /esp or /uefi and adding a
new directory at the top-level would have a much higher likelihood of
collision. Document this in /etc/mtree/BSD.root.mtree and create EFIDIR and
related variables in bsd.own.mk.

Differential Revision: https://reviews.freebsd.org/D21344


# a6bb5342 09-Aug-2018 John Baldwin <jhb@FreeBSD.org>

Correct default path of kernel modules.


# f324fafc 27-Jul-2018 Eitan Adler <eadler@FreeBSD.org>

Feex a cuple of small typos


# fa8c921e 29-Jun-2018 Brooks Davis <brooks@FreeBSD.org>

Correct link metadata created when installing with -DNO_ROOT.

Explicitly specify owner/group/mode metadata when creating links.

More consistently use INSTALL_SYMLINK to install symlinks.

Reviewed by: bdrewery
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D11231


# c74ace92 09-May-2018 Brad Davis <brd@FreeBSD.org>

Enable directory creation with FILESDIR.

This is part of packaging base work.

Reviewed by: will
Approved by: bapt (mentor), allanjude (mentor)
Differential Revision: https://reviews.freebsd.org/D15130


# c2f5940d 24-Mar-2018 Emmanuel Vadot <manu@FreeBSD.org>

Add dtb overlays support

DTB Overlays are useful to change/add nodes to a dtb without the need to
modify it.
Add support for building dtbo during buildkernel.
The goal of DTBO present in the FreeBSD source tree is to fill a gap in
time when we submit changes upstream (Linux). Instead of waiting 2 to 4 months
we can add a DTBO in tree in the meantime.
This is not for adding DTBO for capes/hat/addon boards, those will be
better to put in a ports.
This is also not for enabling a i2c/spi/pwm controller on certain pins,
each user have a different use case for those (which pins to use etc ...)
and we cannot have all possible configuration.

Add a dtbo for sun8i-h3-sid which add the SID node missing in upstream dts.

Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D14782


# 49a1108a 20-Feb-2018 Bryan Drewery <bdrewery@FreeBSD.org>

Move SVNVERSION_CMD into the one place that uses it.

This code, which is basically `svnversion || svnliteversion`, generates
2 fstatat(2) for every directory in PATH for every Makefile parsed that
includes bsd.own.mk. This can add up for things like generating a Ports
index (Poudriere) or building a dependency graph for base.

Sponsored by: Dell EMC
MFC after: 2 weeks


# 1cbb5888 17-Nov-2017 Warner Losh <imp@FreeBSD.org>

Remove build system support for lint.

Differential Revision: https://reviews.freebsd.org/D13124


# ebd2eeb3 11-Aug-2017 Glen Barber <gjb@FreeBSD.org>

Add SVNVERSION_CMD to bsd.own.mk, adding the capability to include
svnversion metadata to the runtime and kernel packages.

Instead of traversing src/sys, as is done by newvers.sh for uname(1),
a full tree walk is done to prevent userland and/or modifications
from not being reflected in a modified tree (M).

MFC after: 5 days
Sponsored by: The FreeBSD Foundation


# 5ace6b1c 30-Jul-2017 Enji Cooper <ngie@FreeBSD.org>

Add a default coverage "prefix", COVERAGEDIR

It defaults to /usr/lib/cov, for symmetry with /usr/lib/debug (DEBUGDIR).

See r321449 for the other piece.


# ad706c65 19-Jun-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Follow-up r320061: Need to respect make.conf/env LIBDIR overrides.

This fixes the lib32 build from creating all stale .depend files.

X-MFC-With: 320061
MFC after: 1 week
Sponsored by: Dell EMC Isilon


# d0ab0ec2 17-Jun-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Fix Makefiles which override LIBDIR to not add incorrect dependencies into .depend.

This fixes these cases which would rebuild every time:
make[6]: /usr/obj/usr/src/libexec/rtld-elf/tests/libpythagoras/.depend, 1: ignoring stale .depend for /usr/obj/usr/src/tmp/usr/tests/libexec/rtld-elf/libm.a
make[6]: /usr/obj/usr/src/lib/libxo/tests/encoder/.depend, 1: ignoring stale .depend for /usr/obj/usr/src/tmp/usr/tests/lib/libxo/libxo.a
make[7]: /usr/obj/usr/src/lib/libthr/tests/dlopen/dso/.depend, 1: ignoring stale .depend for /usr/obj/usr/src/tmp/usr/tests/lib/libthr/dlopen/libpthread.a

The problem is that some Makefiles will override LIBDIR to where they want
their library to install. bsd.libnames.mk will then use ${LIBDIR} to define
where *existing* libraries are. This then leads to looking for the
libraries in the *target* place rather than the *expected* place.

We may want to expand this (and all of the other *DIR variables in bsd.own.mk)
into something like what Ports has, a PREFIX and a LOCALBASE. PREFIX being
where things are being installed to and LOCALBASE being where they already are.

For now store the default expected LIBDIR into LIBDIR_BASE and use that for
library locations.

Reported by: sbruno
MFC after: 1 week
Sponsored by: Dell EMC Isilon


# 4f2bab59 27-May-2017 Eric van Gyzen <vangyzen@FreeBSD.org>

Fix INSTALL_AS_USER

Move INSTALL_AS_USER into bsd.init.mk to maximize the chance that
it has final authority over fooOWN and fooGRP.

Reviewed by: sjg
MFC after: 3 days
Sponsored by: Dell EMC
Differential Revision: https://reviews.freebsd.org/D10810


# aeb76c0b 16-Dec-2016 Matthew Seaman <matthew@FreeBSD.org>

Revert r309339, thus re-instating r309314

The original problem with conflicting definitions of ${PKG_CMD} was
solved by r427523 in ports (see https://reviews.freebsd.org/D8677), so
this should be safe now.

Reviewed by: gjb
Approved by: gjb
Differential Revision: https://reviews.freebsd.org/D8120


# ebc7f2b8 30-Nov-2016 Glen Barber <gjb@FreeBSD.org>

Revert r309314, which breaks installing ports.

Requested by: antoine
Differential Revision: https://reviews.freebsd.org/D8120 (related)
Sponsored by: The FreeBSD Foundation


# 91c915fa 30-Nov-2016 Matthew Seaman <matthew@FreeBSD.org>

Allow a user-overridable setting 'PKG_CMD' to control the command used
to create a repo during 'make packages'

This would have been useful for a situation I found myself in where
pkg(8) had been upgraded to a version that wanted the FBSD_1.5 ABI
version but libc.so.7 had not been upgraded, and only provided
FBSD_1.4. I found I needed to update libc in order to run pkg, and I
also needed to use pkg to update libc... Which is why pkg-static
exists, but there's currently no way to tell the build system to use
pkg-static instead of pkg.

This creates a variable PKG_CMD, default value 'pkg', that can be
overridden from the command line.

Reviewed by: gjb
Approved by: gjb
Differential Revision: https://reviews.freebsd.org/D8120


# 28a235e1 26-May-2016 John Baldwin <jhb@FreeBSD.org>

Update default KMODDIR in comment after r299393.

Submitted by: hselasky


# 5f0263c1 10-May-2016 John Baldwin <jhb@FreeBSD.org>

Change the default installation directory for modules to /boot/modules.

Kernel installs always override KMODDIR when installing modules, so
this default setting is only used for standalone module builds. Many
out-of-tree modules manually override KMODDIR already to avoid placing
modules in /boot/kernel. This now makes that behavior the default.

Discussed on: arch@
Reviewed by: imp
Relnotes: yes


# a2835556 25-Feb-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Fix build without FAST_DEPEND and without running 'make depend' after r295985.

The OBJS_DEPEND_GUESS mechanism required moving the bsd.dep.mk inclusion
to after the checks, but left DEPENDFILE not-yet-set. Move it to
bsd.own.mk to resolve this.

Pointyhat to: bdrewery
Reported by: antoine (ports failures)
Sponsored by: EMC / Isilon Storage Division


# cf10dd45 25-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Stop looking up the same id(1) results in sub-makes.

Sponsored by: EMC / Isilon Storage Division


# 0e9c4ca8 05-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Correct a comment which appears to be mistakingly mechanically changed in r265420.

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# f98f68bd 11-Oct-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Use existing CONFDIR instead of adding a new CONFIGDIR

Reported by: jbeich


# 2c9976e3 10-Oct-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Install bsd.confs.mk
Rename ETCDIR into CONFIGDIR to avoid conflicts with the ports tree


# 9b4f4918 09-Oct-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Add a new bsd.confs.mk similar to bsd.files.mk or bsd.incs.mk

It defines a CONFS variable for all files supposed to be installed as a
configuration file and handle as such


# b946bedd 05-Oct-2015 Warner Losh <imp@FreeBSD.org>

Previous versions of bsd.own.mk included bsd.compiler.mk
only when _WITHOUT_SRCCONF wasn't defined. Restore this
behavior because bsd.ports.mk depends on this in subtle
ways. The compat include of bsd.compiler.mk should
be removed in 12 anyway.

PR: 203540


# 0f3c3059 24-Aug-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Remove now unused LIBPRIVATEDIR

Sponsored by: Gandi.net


# af38028d 27-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Make all shared library a relative symlink

This makes sysroot usable for cross building, it also removes the need for
_SHLIBDIRPREFIX (keeps its definition since picobsd uses it and I have no time
to test it)

Differential Revision: https://reviews.freebsd.org/D2920
Submitted by: imp, adrian
Tested by: adrian


# f5374544 10-Jun-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Building on fmake is no longer possible so removed tests for bmake.


# bd9cab6f 17-Feb-2015 Rui Paulo <rpaulo@FreeBSD.org>

release: use xz via pipe when compressing the tarballs.

libarchive(3) doesn't support the new liblzma API yet, but this change
allows us to enable multi-threaded xz compression.
``make release'' should now finish in half the time on a machine with
several cores and fast disks (our typical build server).

This behaviour only applies when building a release and it doesn't
affect buildworld/installworld. To disable threaded xz compression,
set XZ_THREADS=1.

Reviewed by: gjb
Tested by: gjb


# 9f78f7b2 09-Feb-2015 Warner Losh <imp@FreeBSD.org>

Move these definitions to bsd.own.mk along side the kernel directory /
user defines. Make this work with WITH_INSTALL_AS_USER as well.

Noticed by: ian@


# e977d70f 08-Nov-2014 Mark Johnston <markj@FreeBSD.org>

Revert r274200. Implicitly setting DEBUG_FLAGS when WITH_CTF is true is
not the right way to do this.

Requested by: kan


# 59a9e2ca 06-Nov-2014 Mark Johnston <markj@FreeBSD.org>

Automatically build with debug symbols when building with WITH_CTF.
Otherwise there's nothing for ctfconvert to do, and it ends up emitting an
error for each object file. Also remove some redundant checks from
bsd.prog.mk and bsd.lib.mk.

Differential Revision: https://reviews.freebsd.org/D1111
Reviewed by: imp


# e23dd3b2 27-May-2014 Warner Losh <imp@FreeBSD.org>

Better documentation for why KERBEROS and OPENSSH are here, and where
to look for all the other options that used to be here (well, in
bsd.own.mk)

Suggested by: des@


# 7bbde42e 16-May-2014 Simon J. Gerraty <sjg@FreeBSD.org>

There is no guarantee that user gid maps to a name so in etc/Makefile
we want _gid to be id, so use _gn for the name.


# c6063d0d 05-May-2014 Warner Losh <imp@FreeBSD.org>

Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.


# 6a542ebe 18-Apr-2014 Warner Losh <imp@FreeBSD.org>

Copy bsd.own.mk to bsd.opts.mk and separate out the option setting
code from the rest. Include bsd.opts.mk in bsd.own.mk to preserve
current behavior. Future revisions will replace the inclusion of
bsd.own.mk elsewhere with bsd.opts.mk or a more appropriate new
file that's still being finalized.


# 2bf36e7e 18-Apr-2014 Warner Losh <imp@FreeBSD.org>

Separate out enabling building clang and/or gcc for the system and
building clang and/or gcc as the bootstrap compiler. Normally, the
default compiler is used. WITH_CLANG_BOOTSTRAP and/or
WITH_GCC_BOOTSTRAP will enable building these compilers as part
bootstrap phase. WITH/WITHOUT_CLANG_IS_CC controls which compiler is
used by default for the bootstrap phase, as well as which compiler is
installed as cc. buildworld now successfully completes building the
cross compiler with WITHOUT_CLANG=t and WITHOUT_GCC=t and produces a
built system with neither of these included.

Similarlly, MK_BINUTILS_BOOTSTRAP controls whether binutils is built
during this phase.

WITHOUT_CROSS_COMPILER will now force MK_BINUTILS_BOOTSTRAP=no,
MK_CLANG_BOOTSTRAP=no and MK_GCC_BOOTSTRAP=no.

BOOTSTRAP_COMPILER was considered, but rejected, since pc98 needs both
clang and gcc to bootstrap still. It should be revisisted in the
future if this requirement goes away. Values should be gcc, clang or
none. It could also be a list.

The odd interaction with Xfoo cross/external tools needs work, but
is beyond the scope of this change as well.


# 0abe2561 18-Apr-2014 Warner Losh <imp@FreeBSD.org>

Convert NO_MANCOMPRESSED to MK_MANCOMPRESSED.


# 77667fec 18-Apr-2014 Warner Losh <imp@FreeBSD.org>

Don't build EISA by default anymore. Remove from i386 GENERIC and
create an option that defaults to "no" on all platforms to not build
the EISA bits.

Discussed on: arch@


# a0f4cb1e 13-Apr-2014 Warner Losh <imp@FreeBSD.org>

r264402 builds fine, but turns out there are problems with
install. Back it out until they can be tracked down.


# 5bce9711 12-Apr-2014 Warner Losh <imp@FreeBSD.org>

Convert NO_MANCOMPRESS to normal convention.


# 35074a0a 07-Apr-2014 Warner Losh <imp@FreeBSD.org>

Need to test .MAKE.LEVEL everywhere before using it for bootstrapping
issues between fmake and bmake.


# cf57243a 05-Apr-2014 Warner Losh <imp@FreeBSD.org>

Convert sort to using newer MK_ convention.


# a5fc5b62 05-Apr-2014 Warner Losh <imp@FreeBSD.org>

Convert from WITHOUT_SYSCALL_COMPAT to MK_SYSCALL_COMPAT.


# 14a7e8f1 02-Apr-2014 Warner Losh <imp@FreeBSD.org>

Move setting of the MK_xxx variables based on NO_xxx to avoid
triggering the "you aren't allowed to set this" warning when building
stand alone in directories whose Makefile sets NO_MAN, for example.


# bcca5958 02-Apr-2014 Warner Losh <imp@FreeBSD.org>

FreeBSD make (aka fmake) doesn't grok .MAKE.LEVEL. Failsafe and assume
that it is OK to set MK_xxx flags.


# 74b229cb 01-Apr-2014 Warner Losh <imp@FreeBSD.org>

Don't test WITHOUT_FOO in program makefiles, test MK_FOO instead.


# fffba3db 01-Apr-2014 Warner Losh <imp@FreeBSD.org>

There's no need to set the default for GNUCXX based on WITHOUT_CXX
being defined. The system works fine without it (because GNUCXX isn't
built when WITHOUT_CXX is defined), and it is one of the few places we
test WITHOUT_FOO instead of MK_FOO in the base system. Simply
eliminate it to solve both problems. Also, minor tweak to make it
clearer that the default is always NO for GNUGCC on i386.


# e5c1052e 01-Apr-2014 Warner Losh <imp@FreeBSD.org>

Eliminate FDT being treated specially. When the BSDL DTC was
introduced, the meaning of WITH_FDT changed from 'do FDT in boot
loader and build dtc compiler' to be simply 'do FDT things in the boot
loader'. Now that we test for FDT in the architecture specific files,
this test here is now redunant and encourages bad behavior, so just
eliminate it and make it always yes. Those architectures whose boot
loaders don't support FDT already omit it when it is set to yes
anyway.


# 15eee895 30-Mar-2014 Warner Losh <imp@FreeBSD.org>

Kill NO_TESTS and use MK_TESTS=no when we want to skip them.


# e091d985 30-Mar-2014 Warner Losh <imp@FreeBSD.org>

Allow the build system to safely set MK_FOO to avoid the ambiguity
when both WITH_FOO and WITHOUT_FOO are set. Use this where
possible. Only disallow setting of MK_FOO on the command line. This
was preferable to inventing a new mechanism or fixing the undef bug
(bin/183762) which precludes users from turning off anything we turn
off for parts of the build with WITHOUT_FOO prior to this.


# 73279d41 22-Mar-2014 Andrew Turner <andrew@FreeBSD.org>

Add a new ARM TARGET_ARCH, armv6hf. This is considered experimental.

This targets the existing ARMv6 and ARMv7 SoCs that contain a VFP unit.
This is an optional coprocessors may not be present in all devices, however
it appears to be in all current SoCs we support.

armv6hf targets the VFP variant of the ARM EABI and our copy of gcc is too
old to support this. Because of this there are a number of WITH/WITHOUT
options that are unsupported and must be left as the default value. The
options and their required value are:
* WITH_ARM_EABI
* WITHOUT_GCC
* WITHOUT_GNUCXX

In addition, without an external toolchain, the following need to be left
as their default:
* WITH_CLANG
* WITH_CLANG_IS_CC

As there is a different method of passing float and double values to
functions the ABI is incompatible with existing armv6 binaries. To use
this a full rebuild of world is required. Because no floating point values
are passed into the kernel an armv6 kernel with VFP enabled will work with
an armv6hf userland and vice versa.


# 2c284d93 13-Mar-2014 Gleb Smirnoff <glebius@FreeBSD.org>

Remove IPX support.

IPX was a network transport protocol in Novell's NetWare network operating
system from late 80s and then 90s. The NetWare itself switched to TCP/IP
as default transport in 1998. Later, in this century the Novell Open
Enterprise Server became successor of Novell NetWare. The last release
that claimed to still support IPX was OES 2 in 2007. Routing equipment
vendors (e.g. Cisco) discontinued support for IPX in 2011.

Thus, IPX won't be supported in FreeBSD 11.0-RELEASE.


# eeb913c9 28-Feb-2014 Warner Losh <imp@FreeBSD.org>

Integrate device-tree upstream files into the build process:
(1) Invoke cpp to bring in files via #include (although the old
/include/ stuff is supported still).
(2) bring in files from either vendor tree or freebsd-custom files
when building.
(3) move all dts* files from sys/boot/fdt/dts to
sys/boot/fdt/dts/${MACHINE} as appropriate.
(4) encode all the magic to do the build in sys/tools/fdt/make_dtb.sh
so that the different places in the tree use the exact same logic.
(5) switch back to gpl dtc by default. the bsdl one in the tree has
significant issues not easily addressed by those unfamiliar with
the code.


# 6a54f620 22-Feb-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Rename WITHOUT_DMA into WITHOUT_DMAGENT to avoid confusion

Requested by: ian


# 2879baf2 21-Feb-2014 Dimitry Andric <dim@FreeBSD.org>

Move the part in bsd.own.mk that sets -Wno-c++11-extensions for clang to
bsd.sys.mk, where it really belongs. This also causes the flag to get
added when clang is *not* the default system compiler, but is still
used, e.g. by setting WITH_CLANG_IS_CC manually.

MFC after: 3 days


# 8f26887d 30-Jan-2014 Brooks Davis <brooks@FreeBSD.org>

Merge from CheriBSD:
commit 2d581e8caf79d7a0f5a24590eccd06da90cccb74
Author: Brooks Davis <brooks@one-eyed-alien.net>
Date: Mon Jan 27 22:57:51 2014 +0000

Add WITHOUT_FMTREE to disable building fmtree.

MFC after: 4 weeks
Sponsored by: DARPA, AFRL


# 6adfbbbf 30-Jan-2014 Brooks Davis <brooks@FreeBSD.org>

Merge from CheriBSD:
commit 6b569451b92c48ccf1768da32e7e89189e1aa253
Author: Brooks Davis <brooks@one-eyed-alien.net>
Date: Mon Jan 27 22:50:46 2014 +0000

Always install nmtree as mtree.
For compability, link mtree to nmtree.

X-MFC after: never
Sponsored by: DARPA, AFRL


# 38e23337 30-Jan-2014 Brooks Davis <brooks@FreeBSD.org>

Merge from CheriBSD:
commit c1acf022c533c5ae27e0cd556977eafe3f5959eb
Author: Brooks Davis <brooks@one-eyed-alien.net>
Date: Fri Jan 17 21:46:44 2014 +0000

Add an option WITHOUT_NCURSESW to suppress building and linking to
libncursesw. While wide character support it useful we'd like to
only need one ncurses library on embedded systems.

MFC after: 4 weeks
Sponsored by: DARPA, AFRL


# c904339f 22-Jan-2014 Steven Kreuzer <skreuzer@FreeBSD.org>

Remove WITHOUT_ATF as it has been replaced by WITH_TESTS

PR: conf/185326
Reported by: Igor Mozolevsky <igor@hybrid-lab.co.uk>
Approved by: hrs (mentor)


# 7c27d023 17-Dec-2013 Ed Maste <emaste@FreeBSD.org>

Require a C++11 compiler to build LLDB

In practice the old test (using MK_CLANG_IS_CC) is similar, but
COMPILER_FEATURES provides the information we actually want to test.

Sponsored by: DARPA, AFRL


# 42a85952 02-Dec-2013 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Please welcome casperd daemon. It (and its services) will be responsible for
giving access to functionality that is not available in capability mode
sandbox. The functionality can be precisely restricted.

Start with the following services:
- system.dns - provides API compatible to:
- gethostbyname(3),
- gethostbyname2(3),
- gethostbyaddr(3),
- getaddrinfo(3),
- getnameinfo(3),
- system.grp - provides getgrent(3)-compatible API,
- system.pwd - provides getpwent(3)-compatible API,
- system.random - allows to obtain entropy from /dev/random,
- system.sysctl - provides sysctlbyname(3-compatible API.

Sponsored by: The FreeBSD Foundation


# 17e27327 27-Nov-2013 Peter Wemm <peter@FreeBSD.org>

Revert r258672. We clearly don't compile libraries enough times.


# ff678e6c 26-Nov-2013 Peter Wemm <peter@FreeBSD.org>

At great personal risk, change the default for LIB32 from yes to no. As
mentioned in UPDATING, you can even do it as an as-needed operation after
doing a buildworld/installworld. You can set WITH_LIB32=yes in make.conf
or src.conf.


# 7efdb5bc 11-Nov-2013 Glen Barber <gjb@FreeBSD.org>

Remove stray MK_PKGTOOLS leftover from r257444.

Sponsored by: The FreeBSD Foundation


# 57028ca4 08-Nov-2013 Julio Merino <jmmv@FreeBSD.org>

Fix buildworld when WITH_TESTS is enabled.

The addition of the TESTS knob and its enabling of the build of tests in
lib/libcrypt/tests/ broke the build. The reason is that we cannot descend
into tests/ subdirectories until all prerequisites have been built, which
in the case of tests may be "a lot of things" (libatf-c in this case).

Ensure that we do not walk tests/ directories during the bootstrapping of
the libraries as part of buildworld.

Reviewed by: freebsd-testing
Approved by: rpaulo (mentor)


# 912ce912 03-Nov-2013 Peter Wemm <peter@FreeBSD.org>

Remove the WITH_LIBICONV_COMPAT hack that seems to do more harm than
good. This caused libc to spoof the ports libiconv namespace and
provide a colliding libiconv.so.3 to fool rtld. This should have
been removed some time ago.


# b9cd6b0a 25-Oct-2013 Brooks Davis <brooks@FreeBSD.org>

Switch the default mtree to nmtree our new NetBSD derived mtree.

Exp-run by: bdrewery
MFC after: 3 days
Sponsored by: DARPA/AFRL


# bc694214 25-Oct-2013 Rui Paulo <rpaulo@FreeBSD.org>

Disable WITH_TESTS= for now.


# e2197f80 24-Oct-2013 Rui Paulo <rpaulo@FreeBSD.org>

Set up the /usr/tests hierarchy.

Populate /usr/tests with the only test programs that currently live
in the tree (those in lib/libcrypt/tests/) and add all the build
machinery to accompany this change.

In particular:

- Add a WITHOUT_TESTS variable that users can define to request that
no tests be put in /usr/tests.
- Add a top-level Kyuafile for /usr/tests and a way to create similar
Kyuafiles in top-level subdirectories.
- Add a BSD.tests.dist file to define the directory layout of
/usr/tests.

Submitted by: Julio Merino jmmv google.com
Reviewed by: sjg
MFC after: 2 weeks


# 5e6f3a8e 24-Oct-2013 Rui Paulo <rpaulo@FreeBSD.org>

Move the TESTSBASE definition to bsd.own.mk.

We need to be able to reference the value of TESTSBASE without requiring
the inclusion of bsd.test.mk (e.g. in etc/Makefile), so move its definition
to the more generic bsd.own.mk.

Submitted by: Julio Merino jmmv google.com
Reviewed by: sjg
MFC after: 2 weeks


# f936a2e5 22-Oct-2013 Brooks Davis <brooks@FreeBSD.org>

Stop conflating WITHOUT_CLANG with WITHOUT_CLANG_IS_CC. This allows
bootstrapping a copy of clang without building clang for the base system
which is useful for nanobsd and similar setups. It's still probably
wrong to conflate what is installed as /usr/bin/cc with the selection
of a bootstrap compiler under WITH*_CLANG_IS_CC, but that's for another
day.

MFC after: 1 week
Sponsored by: DARPA/AFRL


# 6f5639e3 12-Oct-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Sync-up with what's being use in Juniper for building ATF in meta mode.


# c9fc60be 09-Oct-2013 Glen Barber <gjb@FreeBSD.org>

Revert r256095, r256120 (partial), r256121:

r256095:
- Add gnu/usr.bin/rcs back to the base system.

r256120:
- Add WITHOUT_RCS back to src.conf.5.

r256121:
- Remove UPDATING entry regarding gnu/usr.bin/rcs removal.

Requested by: many
Approved by: re (marius)
Discussed with: core


# 258c9eb9 06-Oct-2013 Eitan Adler <eadler@FreeBSD.org>

Good bye RCS. You will be missed.

(devel/rcs and devel/rcs57 are available as alternatives)

Approved by: core
Approved by: re (hrs)


# 56b72efe 30-Sep-2013 Dag-Erling Smørgrav <des@FreeBSD.org>

Remove BIND.

Approved by: re (gjb)


# 70aeafb4 24-Sep-2013 Dag-Erling Smørgrav <des@FreeBSD.org>

Flip the switch: disable BIND and enable LDNS_UTILS.

Approved by: re (blanket)


# e8f1392d 19-Sep-2013 Ed Maste <emaste@FreeBSD.org>

Add LLDB bmake infrastructure

This connects LLDB to the build, but it is disabled by default. Add
WITH_LLDB= to src.conf to build it.

Note that LLDB requires a C++11 compiler so is disabled on platforms
using GCC.

Approved by: re (gjb)
Sponsored by: DARPA, AFRL


# 8f8790cd 15-Sep-2013 Dag-Erling Smørgrav <des@FreeBSD.org>

Build and install the Unbound caching DNS resolver daemon.

Approved by: re (blanket)


# 2442cc58 08-Sep-2013 Dag-Erling Smørgrav <des@FreeBSD.org>

Create a private library directory (LIBPRIVATEDIR) for libraries which
we don't want to expose but which can't or shouldn't be static.

To mark a library as private, define PRIVATELIB in its Makefile. It
will be installed in LIBPRIVATEDIR, which is normally /usr/lib/private
(or /usr/lib32/private for 32-bit libraries on 64-bit platforms).

To indicate that a program or library depends on a private library,
define USEPRIVATELIB in its Makefile. The correct version of
LIBPRIVATEDIR will be added to its run-time library search path.

Approved by: re (blanket)


# 1a29bd50 06-Sep-2013 David Chisnall <theraven@FreeBSD.org>

Only set -Wno-c++11-extensions if we're building with clang, so bootstrapping
clang with gcc doesn't fail.


# 60ee5dc5 06-Sep-2013 David Chisnall <theraven@FreeBSD.org>

Fix use of MACHINE_ARCH where MACHINE was intended for pc98 detection.

Reported by: nwhitehorn


# 52b42bac 06-Sep-2013 David Chisnall <theraven@FreeBSD.org>

On platforms where clang is the default compiler, don't build gcc or libstdc++.
To enable them, set WITH_GCC and WITH_GNUCXX in src.conf.
Make clang default to using libc++ on FreeBSD 10.
Bumped __FreeBSD_version for the change.

GCC is still enabled on PC98, because the PC98 bootloader requires GCC to build
(or, at least, hard-codes the use of gcc into its build).

Thanks to everyone who helped make the ports tree ready for this (and bapt
for coordinating them all). Also to imp for reviewing this and working on the
forward-porting of the changes in our gcc so that we're getting to a much
better place with regard to external toolchains.

Sorry to all of the people who helped who I forgot to mention by name.

Reviewed by: bapt, imp, dim, ...


# 4b97b388 28-Aug-2013 Pedro F. Giffuni <pfg@FreeBSD.org>

Drop build option switch for the older GNU patch.

As promised, drop the option to make the older GNU patch
the default.

GNU patch is still being built but something drastic may
happen to it to it before Release.


# 88f6b1e4 27-Aug-2013 Devin Teske <dteske@FreeBSD.org>

It was brought to my attention that SVN r252862 was incomplete. It needed
to also make this change, to completely deprecate WITH_BSDCONFIG.


# 27eaacc7 21-Aug-2013 Andrey V. Elsukov <ae@FreeBSD.org>

Really disconnect pkg_install from the build.

Reported by: Mikhail Timofeyev


# 0ff204bb 13-Aug-2013 Peter Wemm <peter@FreeBSD.org>

The iconv in libc did two things - implement the standard APIs, the GNU
extensions and also tried to be link time compatible with ports libiconv.
This splits that functionality and enables the parts that shouldn't
interfere with the port by default.

WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker
symbols and even a stub libiconv.so.3 that are good enough to be able
to 'pkg delete -f libiconv' on a running system and reasonably expect it
to work.

I have tortured many machines over the last few days to try and reduce
the possibilities of foot-shooting as much as I can. I've successfully
recompiled to enable and disable the libiconv_compat modes, ports that use
libiconv alongside system iconv etc. If you don't enable the
WITH_LIBICONV_COMPAT switch, they don't share symbol space.

This is an extension of behavior on other system. iconv(3) is a standard
libc interface and libiconv port expects to be able to run alongside it on
systems that have it.

Bumped osreldate.


# 21244d52 26-Jul-2013 Pedro F. Giffuni <pfg@FreeBSD.org>

Make the BSD-licensed patch the default.

The BSD-licensed patch(1) command has matured and it's behaviour
can be considered equivalent to the older version of GNU patch
in the tree.

The switch has been extensively tested [1] and only two ports
presented regressions, which have since been fixed.

For convenience a new WITH_GNU_PATCH option is available,
but it will likely be removed in the near future.

PR: 176313
Approved by: portmgr


# bab06c29 22-Jul-2013 Gleb Smirnoff <glebius@FreeBSD.org>

Fix build.


# 46e95f64 16-Jul-2013 Andrew Turner <andrew@FreeBSD.org>

2 years, 10 months, 22 days after the projects/arm_eabi branch was created
make the ARM EABI the default ABI on arm, armeb, armv6 and armv6eb.

This is intended to be the default ABI from now on with the old ABI to be
retired. Because of this all users are strongly suggested to upgrade to the
ARM EABI.

As the two ABIs are incompatible it is unlikely upgrading in place will
work. Users should perform a full backup and either use an external machine
to upgrade, or install to an alternative location on their media. They
should also reinstall all ports or packages when these are available.

The only known issues are:
- pkg incorrectly detects the ABI. This is fixed upstream, and will a
patch will be made to the port.
- GDB can have issues with executables built with clang.

__FreeBSD_version has been bumped.


# 1cbff2a9 15-Jun-2013 Eitan Adler <eadler@FreeBSD.org>

Remove CVS from the base system.

Discussed with: many
Reviewed by: peter, zi
Approved by: core


# 42f8c5b5 07-Jun-2013 Ed Maste <emaste@FreeBSD.org>

Add a new knob WITH_DEBUG_FILES to control the building of standalone
debug files for userland programs and libraries. The "-g" debug flag
is automatically applied when WITH_DEBUG_FILES is set.

The debug files are now named ${prog}.debug and ${shlib}.debug for
consistency with other systems and documentation. In addition they are
installed under /usr/lib/debug, to simplify the process of installing
them if needed after a crash. Users of bsd.{prog,lib}.mk outside of the
base system place the standalone debug files in a .debug subdirectory.
GDB automatically searches both of these directories for standalone
debug files.

Thanks to everyone who contributed changes, review, and testing during
development.


# 3ddfb24d 16-May-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Build bmake by default.
If someone explicitly builds usr.bin/make while MK_BMAKE==yes,
install it as 'fmake'.

Reviewed by: brooks


# a09aff83 15-May-2013 Brooks Davis <brooks@FreeBSD.org>

Add support for an external cross compiler. The cross compiler is
specified by passing the XCC, XCXX, and XCPP variables (corresponding to
CC, CXX, and CPP) to buildworld/buildkernel. The compiler must be clang
or be configured to target the appropriate architecture.

To speed build times, if XCC is an absolute path or
WITHOUT_CROSS_COMPILER is defined then no cross compiler will be built
during the cross-tools stage.

Limited documentation of this feature can currently be found at:

https://wiki.freebsd.org/ExternalToolchain

This functionality should be considered experimental and is subject to
change without notice.

Sponsored by: DARPA, AFRL
Discussed with: imp, sjg


# a5b2b29f 15-May-2013 Brooks Davis <brooks@FreeBSD.org>

Add a new option WITHOUT_FORMAT_EXTENSIONS to disable flags related to
checking our kernel printf extensions. This is useful to allow
compilers without these extensions to build kernels.

Sponsored by: DARPA, AFRL


# 4e3b8d20 26-Apr-2013 Eitan Adler <eadler@FreeBSD.org>

Remove the WITH_IDEA option and build it unconditionally.
The European version of the patent expired in 2011.
The US version of the patent expired in 2012 or prior.

Reviewed by: des
No objection from: cperciva, ehaupt


# cfa9e283 28-Mar-2013 Andrew Turner <andrew@FreeBSD.org>

Welcome clang as the default compiler on ARM.

Change the default compiler for little-endian ARM to clang to allow for more
testing before 10.0 is released. As LLVM and clang currnetly lack support
for big-endian ARM leave gcc as the default there.

This will also allow us to investigate moving to use the hard floating-point
version of the ARM EABI on SoCs that include the Vector Floating Point unit.
A version of this is included in all ARMv6 and ARMv7 SoCs we currently, and
are likely to support.

Both the current ABI and the new EABI are supported by clang and it will be
built correctly depending on which is selected by the user.


# 89ba026a 26-Mar-2013 Ed Maste <emaste@FreeBSD.org>

Unconditionally include ${SRCCONF} if overridden

This avoids silently failing to include ${SRCCONF} specified by a make(1)
invocation.


# 03bec0a9 15-Feb-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Remove duplicate option entries


# 4e7b60a4 15-Feb-2013 Dag-Erling Smørgrav <des@FreeBSD.org>

The relationship between LDNS_UTILS and BIND_UTILS was inverted.


# 62cd261e 04-Feb-2013 Andrew Turner <andrew@FreeBSD.org>

Build clang for little-endian arm by default. Due to size issues when built
with gcc disable CLANG_FULL for now.


# df5d2454 02-Feb-2013 Dimitry Andric <dim@FreeBSD.org>

Pull in r170135 from upstream clang trunk:

Dont use/link ARCMT, StaticAnalyzer and Rewriter to clang when the user
specifies not to. Dont build ASTMatchers with Rewriter disabled and
StaticAnalyzer when it's disabled.

Without all those three, the clang binary shrinks (x86_64) from ~36MB
to ~32MB (unstripped).

To disable these clang components, and get a smaller clang binary built
and installed, set WITHOUT_CLANG_FULL in src.conf(5). During the
initial stages of buildworld, those extra components are already
disabled automatically, to save some build time.

MFC after: 1 week


# ce06f5f6 30-Jan-2013 Dimitry Andric <dim@FreeBSD.org>

Fix a problem introduced in r231057: in bsd.own.mk, move the test for
whether clang is enabled to just after the last place where it could
have been forced to "no".

MFC after: 3 days


# 2dd076b8 29-Jan-2013 Gabor Kovesdan <gabor@FreeBSD.org>

- Add a BSD-licensed patch, ported by Pedro F. Giffuni (pfg) from
DragonflyBSD and install it as bsdpatch. WITH_BSD_PATCH makes it
default and installs GNU patch as gnupatch.

Submitted by: pfg
Obtained from: The DragonflyBSD Project


# af0dd31f 22-Jan-2013 David Chisnall <theraven@FreeBSD.org>

Import new (BSDL) device tree compiler. Now built by default, so that it can't
be used on the host system (and not installed on the device, if required). The
GPL'd one is still available if there are any devices that need it (make
universe passes with it, including kernels that use fdt, but there may be some
out-of-tree ones). WITH_GPL_DTC can be used to select the old one, for now.

Probably won't be MFC'd, but we'll remove the GPL'd version in head after the
new one has had a lot more testing and ship it in 10.0.


# 12dd8cb1 21-Jan-2013 Brooks Davis <brooks@FreeBSD.org>

Replace all known uses of ln in the build process with appropriate
install -l invocations via new INSTALL_LINK and INSTALL_SYMLINK
variables.

Sponsored by: DARPA, AFRL
Reviewed by: ian, ray, rpaulo


# 38d90616 18-Jan-2013 Eitan Adler <eadler@FreeBSD.org>

Add option to make pc-sysinstall optional

Approved by: cperciva


# 1992e9a1 16-Jan-2013 Andrew Turner <andrew@FreeBSD.org>

Add compiler support for the ARM EABI.

ARM EABI support is disabled by default and can be enabled by setting
WITH_ARM_EABI when building, however only the kernel-toolchain target will
work with this flag until the rest of the support is added.


# e6a64a84 16-Jan-2013 Bjoern A. Zeeb <bz@FreeBSD.org>

Add a src.conf(5) option to allow users to compile in the "NONE cipher",
which, only after authentication, disables crypto, and only for sessions
without a terminal.

Submitted by: Jeremy Chadwick (freebsd jdc.parodius.com)
PR: bin/163095
MFC after: 10 days


# edd42017 10-Jan-2013 Dag-Erling Smørgrav <des@FreeBSD.org>

Remove all support for legacy NOFOO and NO_FOO build options.


# 624c4889 09-Jan-2013 Brooks Davis <brooks@FreeBSD.org>

Always install our mtree as /usr/sbin/fmtree and link it as
/usr/sbin/mtree by default.

Add a src.conf option WITH_NMTREE that causes NetBSD's mtree to be linked
as /usr/sbin/mtree as well as /usr/sbin/nmtree.


# 4dae514d 20-Dec-2012 Ed Maste <emaste@FreeBSD.org>

Sort default option lists


# 3b0cfc13 21-Nov-2012 Simon J. Gerraty <sjg@FreeBSD.org>

If .PARSEDIR is defined we have bmake, and CTFCONVERT_CMD can be empty.

PR: 172440
Approved by: marcel (mentor)


# a58de88b 21-Nov-2012 Simon J. Gerraty <sjg@FreeBSD.org>

INSTALL_AS_USER: output of id -un will never match 0 so use id -u
and USER for BINOWN etc.

Approved by: marcel (mentor)


# 5b6478b0 05-Nov-2012 Brooks Davis <brooks@FreeBSD.org>

After years of hard work by many FreeBSD and LLVM developers, make
clang the default compiler on i386 and amd64 systems.

Special thanks to: dim, ed, rdivacky


# c175365c 21-Oct-2012 Marcel Moolenaar <marcel@FreeBSD.org>

Add ATF to the build. This is may be a bit rought around the egdes,
but committing it helps to get everyone on the same page and makes
sure we make progress.

Tinderbox breakages that are the result of this commit are entirely
the committer's fault -- in other words: buildworld testing on amd64
only.

Credits follow:

Submitted by: Garrett Cooper <yanegomi@gmail.com>
Sponsored by: Isilon Systems
Based on work by: keramida@
Thanks to: gnn@, mdf@, mlaier@, sjg@
Special thanks to: keramida@


# e6116d5b 17-Oct-2012 Attilio Rao <attilio@FreeBSD.org>

Disconnect non-MPSAFE NWFS from the build in preparation for dropping
GIANT from VFS. In addition, disconnect also netncp, which is a base
requirement for NWFS.

In the possibility of a future maintenance of the code and later
readd to the FreeBSD base, maybe we should think about a better location
for netncp. I'm not entirely sure the / top location is actually right,
however I will let network people to comment on that more specifically.

This is not targeted for MFC.


# 2e650f3f 13-Oct-2012 Gabor Kovesdan <gabor@FreeBSD.org>

- Remove WITH_GNU_SORT support


# d4d90f10 06-Oct-2012 Marcel Moolenaar <marcel@FreeBSD.org>

Add bmake to the build and allow it to be installed as make(1) instead
of FreeBSD's make by setting WITH_BMAKE. The WITH_BMAKE build makes it
easy for people to switch while working out the kinks -- think ports
tree here. The option will be removed in due time.

Submitted by: Simon Gerraty (sjg@juniper.net)


# 815e67dd 26-Sep-2012 Brooks Davis <brooks@FreeBSD.org>

Add a COMPILER_FEATURES variable that is set in bsd.compiler.mk.

When the compiler is clang add c++11 to COMPILER_FEATURES.

When the compiler supports c++11, default to building libc++. This will
not impact the compliation of programs, but will make it easier for
users with clang compiled systems to test libc++ by passing -stdlib=libc++
to their c++ compliations.


# e5deeefe 12-Sep-2012 David E. O'Brien <obrien@FreeBSD.org>

Add MK_KDUMP.


# 7750ad47 22-Aug-2012 Marcel Moolenaar <marcel@FreeBSD.org>

Sync FreeBSD's bmake branch with Juniper's internal bmake branch.

Requested by: Simon Gerraty <sjg@juniper.net>


# 641a6cfb 13-Jul-2012 Devin Teske <dteske@FreeBSD.org>

Import bsdconfig(8) as a replacement for the post-install abilities of
deprecated sysinstall(8). NOTE: WITH_BSDCONFIG is currently required.

Submitted by: Devin Teske (dteske), Ron McDowell <rcm@fuzzwad.org>
Reviewed by: Ron McDowell <rcm@fuzzwad.org>
Approved by: Ed Maste (emaste)


# f2ed2848 02-Jul-2012 Gleb Smirnoff <glebius@FreeBSD.org>

Fix build after r237997.


# 7d26b3ee 26-Jun-2012 Gabor Kovesdan <gabor@FreeBSD.org>

- Switch to BSD sort as default sort. GNU sort will still be installed as
"gnusort". Most of the BSD sort development work was done by
Oleg Moskalenko <oleg.moskalenko@citrix.com>.
- GNU grep can be set to default by setting WITH_GNU_GREP. It will cause
BSD sort to be installed as "bsdsort".

Portbuild tested by: linimon


# a8f682ad 26-Jun-2012 David E. O'Brien <obrien@FreeBSD.org>

Add -DWITH_INSTALL_AS_USER to the source build (naming matches the
same functionality of The Ports Collection).
This sets BINOWN, BINGRP, etc... to match current user. This this
allows 'install', as used in 'make install', to succeed (assuming
user has write permissions).

Submitted by: Simon J Gerraty <sjg@juniper.net>
Discussed on: freebsd-arch


# bc5116ba 16-Jun-2012 Robert Millan <rmh@FreeBSD.org>

In CTFCONVERT_CMD initialization, check that ${MAKE_VERSION} is defined
before using it. Bootstrap make (as built by usr.bin/make/Makefile.dist)
does not define this variable, but it needs to parse bsd.own.mk in order
to build a complete make.


# 6663ff44 19-May-2012 Marcel Moolenaar <marcel@FreeBSD.org>

Add build opton MK_LS_COLORS to control whether ls(1) supports colors
(and thus needs to depend on libtermcap). Embedded systems may not
want or need colors.

Obtained from: Juniper Networks, Inc.


# aa39c447 19-May-2012 Marcel Moolenaar <marcel@FreeBSD.org>

Add build option MK_ED_CRYPTO to control whether ed(1) is to have the
ability to encrypt/decrypt files. Embedded systems can typically have
OpenSSL, but not for ed(1) to use it.

Obtained from: Juniper Networks, Inc.


# 7f725bcd 17-May-2012 Grzegorz Bernacki <gber@FreeBSD.org>

Import work done under project/nand (@235533) into head.

The NAND Flash environment consists of several distinct components:
- NAND framework (drivers harness for NAND controllers and NAND chips)
- NAND simulator (NANDsim)
- NAND file system (NAND FS)
- Companion tools and utilities
- Documentation (manual pages)

This work is still experimental. Please use with caution.

Obtained from: Semihalf
Supported by: FreeBSD Foundation, Juniper Networks


# 85d7de10 10-May-2012 Gabor Kovesdan <gabor@FreeBSD.org>

- Hook up BSD sort to the build. By default, it will be installed as
"bsdsort" and GNU sort will be the default "sort". When WITH_BSD_SORT
is set, BSD sort will be the default "sort" and GNU sort will be installed
as "gnusort".


# 400b97c7 07-May-2012 Dimitry Andric <dim@FreeBSD.org>

Revert r234656, and apply a proper fix for binutils PR 10474, which
caused linking clang on 32-bit PowerPC to fail with "relocation
truncated to fit: R_PPC_REL24" errors.

Original diffs (relicensed under GPLv2 with permission from author):
http://sourceware.org/git/?p=binutils.git;a=commit;h=1fd262ff7d7ea5adf4894c6b960e092e7e43e3cd
http://sourceware.org/git/?p=binutils.git;a=commit;h=053c49fbff58bd33bd0d12200ea61302f92caceb

Tested by: andreast
MFC after: 1 week


# 4f20e4f2 29-Apr-2012 Konstantin Belousov <kib@FreeBSD.org>

Add src.conf option WITH_SHARED_TOOLCHAIN to enable building the
toolchain binaries as dynamically linked. Option is disabled by
default.

Reviewed by: ru (previous version)
MFC after: 2 weeks


# bf270f7c 24-Apr-2012 Dimitry Andric <dim@FreeBSD.org>

After r234596, temporarily disable building clang on 32-bit PowerPC,
until we are able to fix the binutils bug that makes linking clang fail
with "relocation truncated to fit: R_PPC_REL24" errors. This should fix
the tinderboxes for now.


# dfbaea83 29-Feb-2012 Dimitry Andric <dim@FreeBSD.org>

Add a WITH_CLANG_IS_CC option for src.conf(5), disabled by default, that
installs clang as /usr/bin/cc, /usr/bin/c++ and /usr/bin/cpp.

Note this does *not* disable building and installing gcc, which will
still be available as /usr/bin/gcc, /usr/bin/g++ and /usr/bin/gcpp. If
you want to disable gcc completely, you must use WITHOUT_GCC.

MFC after: 2 weeks


# 4a47892c 03-Feb-2012 Robert Millan <rmh@FreeBSD.org>

Add MK_SOURCELESS build option. Setting MK_SOURCELESS to "no" will disable
kernel modules that include binary-only code.

More fine-grained control is provided via MK_SOURCELESS_HOST (for native code
that runs on host CPU) and MK_SOURCELESS_UCODE (for microcode).

Reviewed by: julian, delphij, freebsd-arch
Approved by: kib (mentor)
MFC after: 2 weeks


# 6508f34e 02-Jan-2012 Robert Watson <rwatson@FreeBSD.org>

Add WITHOUT_CAPSICUM src.conf(5) define, which can be used to compile out
use of Capsicum by userspace applications.

MFC after: 3 weeks
Sponsored by: Google, Inc.


# 5f73185f 02-Dec-2011 Max Khon <fjoe@FreeBSD.org>

Revert to conservative defaults. WITH_PROFILE is a default now.

NO_PROFILE overrides in Makefile.inc1 and bsd.own.m are left intact
so that the reversal to the WITHOUT_PROFILE will be easier in future.


# 83cb5bae 30-Nov-2011 Max Khon <fjoe@FreeBSD.org>

- CTF knob is now implemented using common scheme: MK_CTF=yes/no is
defined based on WITH/WITHOUT_CTF settings, default is WITHOUT_CTF,
NO_CTF overrides WITH_CTF (used by Makefile.inc1)
- CTFCONVERT_CMD/NORMAL_CTFCONVERT are now defined to empty string
if make(1) can handle empty commands


# 1a5d0ec1 29-Nov-2011 Max Khon <fjoe@FreeBSD.org>

CTFCONVERT_CMD=... hack does not work sufficiently well in parallel builds.

Put a bandaid until make(1) is taught to ignore empty commands.


# d0ed1ea4 29-Nov-2011 Max Khon <fjoe@FreeBSD.org>

Turn off profiled libs build by default.
Can be enabled back using WITH_PROFILE=yes in /etc/src.conf


# 78e7e3ec 29-Nov-2011 Max Khon <fjoe@FreeBSD.org>

- fix WITH_CTF when specified in /etc/src.conf [1]
- CTFCONVERT_CMD=... is a hack (should be defined to empty string instead):
make(1) should be taught to ignore empty commands silently in compat mode
(as it does in !compat mode, GNU make also silently ignores empty commands)
and to skip printing empty commands in !compat mode
- config(8) should generate ${NORMAL_CTFCONVERT} invocation without '@':
this will allow to simplify kern.pre.mk even more and lessen the number
of shell invocations during kernel build when CTF is turned off
- WITH_CTF can now be converted to usual MK_CTF=yes/no infrastructure

Pointy hat to: fjoe [1]


# 1ade5947 29-Nov-2011 Max Khon <fjoe@FreeBSD.org>

Allow NO_FOO to override WITH_FOO that could be specified in /etc/src.conf.

This is required to override knobs (e.g. WITH_PROFILE) during buildworld
stages in Makefile.inc1 (otherwise the build is stopped due to both WITH_FOO
and WITHOUT_FOO defined).


# 49c8e5e7 25-Nov-2011 Dimitry Andric <dim@FreeBSD.org>

Fix breakage after r227983; lib/libcxxrt still got built, because it was
not disabled in the usual way (by adding it to __DEFAULT_NO_OPTIONS in
share/mk/bsd.own.mk), and because the test for MK_LIBCPLUSPLUS in
Makefile.inc1 was incorrect.

Pointy hat to: dim


# ebcc5e9a 20-Nov-2011 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Connect LLVM/clang to the build on powerpc64. After the binutils 2.17.50
import, it works without issue.


# 96f4c1e3 20-Oct-2011 Jayachandran C. <jchandra@FreeBSD.org>

Build 'dtc' by default for MIPS.

The device tree compiler is needed during the kernel build to compile
DTS files to DTB.

Reviewed by: stas


# cf78df8a 27-Jun-2011 Stefan Eßer <se@FreeBSD.org>

Add macros to specify owner, group and mode of config files for installation.

Submitted by: Chris Rees (crees)


# 9f0c9022 17-Jun-2011 Ed Schouten <ed@FreeBSD.org>

Add WITHOUT_UTMPX switch to the build system.

This knob removes the tools that are exclusively used to view and
maintain the databases maintained by utmpx, namely last, users, who,
wtmpcvt, ac, lastlogin and utxrm.

The tool w is not in this list, because it has some other functionality
which is unrelated to utmpx; it is hardlinked to the uptime tool.


# d380e0d2 22-May-2011 Warner Losh <imp@FreeBSD.org>

Start to usher INSTALL_NODEBUG hack out the door. Add new
WITH{OUT,}_KERNEL_SYMBOLS (defaulting to WITH). In the fullness of
time, likely around 2020, INSTALL_NODEBUG will be removed. For now,
don't print a warning when using INSTALL_NODEBUG, but that will be
coming soon.


# 0163af23 18-May-2011 Warner Losh <imp@FreeBSD.org>

Implement WITH{,OUT}_{GCC,BINUTILS} to provide finer-grained control
over building gcc and binutils. They default to true, unless
MK_TOOLCHAIN is no.

Reviewed by: ru@


# 56c14fc8 10-May-2011 Ruslan Ermilov <ru@FreeBSD.org>

Removed unsupported options MK_BINUTILS and MK_GCC that were
silently added in r218936.


# 4b89ae57 10-May-2011 Ruslan Ermilov <ru@FreeBSD.org>

Another fallout from r220359: MK_GNU_CPIO was mistakenly re-added
after being removed in r205702. Remove it again.


# 970a7653 30-Apr-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

Introduce two new options MK_INET and MK_INET_SUPPORT analogically
with INET6 equivalents. Patch reather than re-genenerating src.conf
(given the current problem with the script that does the re-gen).

Reviewed by: gnn
Sponsored by: The FreeBSD Foundation
Sponsored by: iXsystems
MFC after: 2 weeks


# 6d67f694 17-Apr-2011 Dimitry Andric <dim@FreeBSD.org>

Remove libobjc and other Objective-C related components, as these are
extremely outdated, and not used by anything in the base system.

Silence from: current@


# b3eb927f 06-Apr-2011 Ulrich Spörlein <uqs@FreeBSD.org>

Complete WITHOUT_CXX support. It implies WITHOUT_GROFF and
WITHOUT_CLANG.

Don't build clang bootstrap/build-tools depending on this flag. We also
keep gperf, devd and libstdc++ around to prevent foot-shooting and to
make this a two-way street.


# 1b595919 05-Apr-2011 Warner Losh <imp@FreeBSD.org>

Make clang default on x86 and powerpc, but not on other architectures.
Make fdt default on arm and powerpc.

This now includes cross compiled targets, where before we tried to
make it host-based.

Also, move the lists of default yes and no options to a variable.

In general, only build tools should get this treatment in bsd.own.mk.
Also, the use of TARGET* in the bsd.*mk files is discouraged, but
necessary here due to the ordering of things in buildworld. We make
the native case work by testing MACHINE_ARCH after TARGET_ARCH.


# aa0a1e58 21-Mar-2011 Jeff Roberson <jeff@FreeBSD.org>

- Merge in OFED 1.5.3 from projects/ofed/head


# ad30f8e7 24-Feb-2011 Gabor Kovesdan <gabor@FreeBSD.org>

Add the BSD-licensed Citrus iconv to the base system with default off
setting. It can be built by setting the WITH_ICONV knob. While this
knob is unset, the library part, the binaries, the header file and
the metadata files will not be built or installed so it makes no impact
on the system if left turned off.

This work is based on the iconv implementation in NetBSD but a great
number of improvements and feature additions have been included:

- Some utilities have been added. There is a conversion table generator,
which can compare conversion tables to reference data generated by
GNU libiconv. This helps ensuring conversion compatibility.
- UTF-16 surrogate support and some endianness issues have been fixed.
- The rather chaotic Makefiles to build metadata have been refactored
and cleaned up, now it is easy to read and it is also easier to add
support for new encodings.
- A bunch of new encodings and encoding aliases have been added.
- Support for 1->2, 1->3 and 1->4 mappings, which is needed for
transliterating with flying accents as GNU does, like "u.
- Lots of warnings have been fixed, the major part of the code is
now WARNS=6 clean.
- New section 1 and section 5 manual pages have been added.
- Some GNU-specific calls have been implemented:
iconvlist(), iconvctl(), iconv_canonicalize(), iconv_open_into()
- Support for GNU's //IGNORE suffix has been added.
- The "-" argument for stdin is now recognized in iconv(1) as per POSIX.
- The Big5 conversion module has been fixed.
- The iconv.h header files is supposed to be compatible with the
GNU version, i.e. sources should build with base iconv.h and
GNU libiconv. It also includes a macro magic to deal with the
char ** and const char ** incompatibility.
- GNU compatibility: "" or "char" means the current local
encoding in use
- Various cleanups and style(9) fixes.

Approved by: delphij (mentor)
Obtained from: The NetBSD Project
Sponsored by: Google Summer of Code 2009


# d51726b0 21-Feb-2011 Warner Losh <imp@FreeBSD.org>

Back out 218933 and 281934. The easy cases still worked, but some
hard cases broke in worse ways than the status quo. Back them out
until that can be resolved.


# 016b099e 21-Feb-2011 Warner Losh <imp@FreeBSD.org>

Testing based on MACHINE_ARCH is problematic. Default to yes to build
clang. A separate change will fix buildworld to default to yes or no
based on the target.


# 61e05fce 10-Feb-2011 Giorgos Keramidas <keramida@FreeBSD.org>

Add LIBEXECDIR to the bsd.own.mk vars, pointing to /usr/libexec by default

Some of the patches we are preparing for porting ATF from NetBSD
refer to '/usr/libexec' several times. Instead of repeating the
path all over the place, add ${LIBEXECDIR} to match ${LIBDATADIR}
and reduce the redundancy of the relevant makefiles.

Submitted by: Garrett Cooper <yanegomi@gmail.com>
Approved by: ru
MFC after: 1 month


# 47033eb2 22-Dec-2010 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Enable build of FDT components by default. dtc is a required build tool
for all FDT-enabled kernels, and having it off by default means that
building these kernels fails by default. This fixes FDT-related build
failures in make universe on ARM and PowerPC.

Reviewed by: imp


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# eef93d2f 05-Oct-2010 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

- Introduce WITH_GPIO knob and disable building gpioctl
by default. Most systems do not need it.


# 6608cc57 23-Aug-2010 Gabor Kovesdan <gabor@FreeBSD.org>

- Change default grep back to GNU version. BSD grep can be built with the
WITH_BSD_GREP knob.
- Bump __FreeBSD_version

Requested by: dougb
Approved by: delphij (mentor)


# 4dc88ebe 22-Jul-2010 Gabor Kovesdan <gabor@FreeBSD.org>

Add BSD grep to the base system and make it our default grep.

Deliverables: Small and clean code (1,4 KSLOC vs GNU's 8,5 KSLOC),
lower memory usage than GNU grep, GNU compatibility,
BSD license.

TODO: Performance is somewhat behind GNU grep but it is only
significant for bigger searches. The reason is complex, the
most important factor is that GNU grep uses lots of
optimizations to improve the speed of the regex library.
First, we need a modern regex library (practically by adopting
TRE), add support for GNU-style non-standard regexes and then
reevalute the performance issues and look for bottlenecks. In
the meantime, for those, who need better performance, it is
possible to build GNU grep by setting WITH_GNU_GREP.

Approved by: delphij (mentor)
Obtained from: OpenBSD (http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/grep/),
freegrep (http://github.com/howardjp/freegrep)
Sponsored by: Google SoC 2008
Portbuild tests run by: kris, pav, erwin
Acknowledgements to: fjoe (as SoC 2008 mentor),
everyone who helped in reviewing and testing


# d7af5349 12-Jun-2010 Rafal Jaworowski <raj@FreeBSD.org>

Do not set WITH_FDT by default based on arch, as this does not work for
a bootstrap stage tool.

FDT-enabled platforms will have to specify WITH_FDT explicitly at buildworld
time for now until TBEMD is complete, which is going to provide means for such
arch based selection of build components.

Discussed with: imp


# 6513cfc8 09-Jun-2010 Roman Divacky <rdivacky@FreeBSD.org>

Hook clang into the build on i386/amd64/powerpc.

Approved by: ed (mentor)


# a328ce6d 26-May-2010 Rafal Jaworowski <raj@FreeBSD.org>

Use MACHINE_ARCH instead of TARGET_ARCH.

Pointed out by: imp


# 2ddf40c6 25-May-2010 Jung-uk Kim <jkim@FreeBSD.org>

MFC: r208320

Add a new build option, MAN_UTILS. This option lets you control building
utilities and related support files for manual pages, which were previously
controlled by MAN. For POLA, the default depends on MAN, i.e., WITHOUT_MAN
implies WITHOUT_MAN_UTILS and WITH_MAN implies WITH_MAN_UTILS.
Note this patch implicitly fixes a documentation bug of src.conf(5), which
says WITHOUT_MAN may be used to not build manual pages while it was also
disabling some utilities for manual pages.

Approved by: re (kib)


# 4f1ca2a8 25-May-2010 Rafal Jaworowski <raj@FreeBSD.org>

Introduce a new build knob for Flattened Device Tree support.

Reviewed by: imp
Sponsored by: The FreeBSD Foundation


# 07e547fe 19-May-2010 Jung-uk Kim <jkim@FreeBSD.org>

Add a new build option, MAN_UTILS. This option lets you control building
utilities and related support files for manual pages, which were previously
controlled by MAN. For POLA, the default depends on MAN, i.e., WITHOUT_MAN
implies WITHOUT_MAN_UTILS and WITH_MAN implies WITH_MAN_UTILS. This patch
is slightly improved by me from:

PR: misc/145212


# 92fc4757 29-Mar-2010 Xin LI <delphij@FreeBSD.org>

MFC r205702:

Remove GNU cpio after fix of CVE-2010-0624.

Note that this is actually a no-op for most users, as this GNU
cpio was broken on -HEAD and 8-STABLE since last March until
the recent fix.

FreeBSD 8.0+ uses BSD cpio by default and the code is being
actively maintained.


# 36e60cda 26-Mar-2010 Xin LI <delphij@FreeBSD.org>

Remove GNU cpio after fix of CVE-2010-0624.

Note that this is actually a no-op for most users, as this GNU
cpio was broken on -HEAD and 8-STABLE since last March until
the recent fix.

FreeBSD 8.0+ uses BSD cpio by default and the code is being
actively maintained.

Blessed by: kientzle
With hat: secteam
MFC after: 3 days


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# c9e0de01 30-Jan-2010 Antoine Brodin <antoine@FreeBSD.org>

MFC r202440 to stable/8:
Unbreak world WITHOUT_NETGRAPH.

PR: 137487
Submitted by: bf (previous version)
No objections: net@


# 622008b6 15-Jan-2010 Antoine Brodin <antoine@FreeBSD.org>

Unbreak world WITHOUT_NETGRAPH.

PR: 137487
Submitted by: bf (previous version)
No objections: net@
MFC after: 2 weeks


# 536613bc 01-Jun-2009 Doug Barton <dougb@FreeBSD.org>

Add support for the build options that are currently in the port:
WITH_BIND_IDN
WITH_BIND_LARGE_FILE
WITH_BIND_SIGCHASE
WITH_BIND_XML


# d2a0bb08 05-Apr-2009 Ed Schouten <ed@FreeBSD.org>

Remove if_ppp(4) and if_sl(4).

Not only did these two drivers depend on IFF_NEEDSGIANT, they were
broken 7 months ago during the MPSAFE TTY import. if_ppp(4) has been
replaced by ppp(8). There is no replacement for if_sl(4).

If we see regressions in for example the ports tree, we should just use
__FreeBSD_version 800045 to check whether if_ppp(4) and if_sl(4) are
present. Version 800045 is used to denote the import of MPSAFE TTY.

Discussed with: rwatson, but also rwatson's IFF_NEEDSGIANT emails on the
lists.


# 67e78480 07-Jan-2009 Bjoern A. Zeeb <bz@FreeBSD.org>

Document that with r186854 we started using KMODOWN/KMODGRP
for the kernel as well and no longer only for modules.

Reviewed by: kib, antoine
MFC after: 26 days


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 690f477d 21-Sep-2008 Sam Leffler <sam@FreeBSD.org>

add new build knobs and jigger some existing controls to improve
control over the result of buildworld and installworld; this especially
helps packaging systems such as nanobsd

Reviewed by: various (posted to arch)
MFC after: 1 month


# d57e5bc4 16-Jun-2008 Doug Barton <dougb@FreeBSD.org>

Properly alphabetize the BSD_CPIO option


# 6973701a 15-Jun-2008 Doug Barton <dougb@FreeBSD.org>

1. Make the BSD version of cpio the default [1]
a. The BSD version will be built and installed unless
WITHOUT_BSD_CPIO is defined.
b. The GNU version will not be built or installed unless
WITH_GNU_CPIO is defined. If this is defined, the symlink
in /usr/bin will be to the GNU version whether the BSD
version is present or not.

When these changes are MFCed the defaults should be flipped.

2. Add a knob to disable the building of GNU grep. This will
make it easier for those that want to test the BSD version in
the ports.

Approved by: kientzle [1]


# 2e598474 26-May-2008 Bjoern A. Zeeb <bz@FreeBSD.org>

Remove ISDN4BSD (I4B) from HEAD as it is not MPSAFE and
parts relied on the now removed NET_NEEDS_GIANT.
Most of I4B has been disconnected from the build
since July 2007 in HEAD/RELENG_7.

This is what was removed:
- configuration in /etc/isdn
- examples
- man pages
- kernel configuration
- sys/i4b (drivers, layers, include files)
- user space tools
- i4b support from ppp
- further documentation

Discussed with: rwatson, re


# dbdb679c 29-Mar-2008 Ruslan Ermilov <ru@FreeBSD.org>

Remove options MK_LIBKSE and DEFAULT_THREAD_LIB now that we no longer
build libkse. This should fix WITHOUT_LIBTHR builds as a side effect.


# 4ef19e96 24-Jan-2008 Ruslan Ermilov <ru@FreeBSD.org>

Cosmetique: sort the list.


# 7500fac9 17-Jan-2008 Christian Brueffer <brueffer@FreeBSD.org>

Remove remnants of old *_FORTRAN build flags.

Approved by: rwatson (mentor)
MFC after: 3 days


# 6dc51eca 12-Dec-2007 Ruslan Ermilov <ru@FreeBSD.org>

- Fix setting of MK_GSSAPI option by bsd.own.mk; its value should
default to the value of MK_KERBEROS unless set explicitly by
WITH_GSSAPI/WITHOUT_GSSAPI. (This introduces another type of
MK_* variables which itself is questionable.)

- Teach tools/build/options/makeman script that generates the
src.conf(5) manpage about the new type of MK_* variables.

- Fix broken logic in lib/Makefile.


# 3fe21f77 10-Dec-2007 Doug Barton <dougb@FreeBSD.org>

Hide the building and installation of libgssapi behind the
WITHOUT_KERBEROS knob. While GSS can be used for other things
some third party software (most notably ports/x11/kdelibs3)
takes the presence of libgssapi as an indication that kerberos
is available, and attempts to link with the kerberos libs. If
they are not available, the build will fail.

Because you might want to use GSS but not kerberos, add a knob
to re-enable it if WITHOUT_KERBEROS is present.

Document the new knob, and the new behavior of WITHOUT_KERBEROS.

Not objected and/or generally agreed to by: freebsd-arch

Problem discussed/analyzed in:
PR: ports/116484


# 4f6d329f 20-Oct-2007 Ruslan Ermilov <ru@FreeBSD.org>

- Convert NO_INSTALLLIB option to a new syntax: makefiles should
test MK_INSTALLLIB, users can set WITHOUT_INSTALLLIB. The old
NO_INSTALLLIB is still supported as several makefiles set it.

- While here, fix an install when instructed not to install libs
(usr.bin/lex/lib/Makefile).

PR: bin/114200
Submitted by: Henrik Brix Andersen


# 64965b57 12-Oct-2007 Ruslan Ermilov <ru@FreeBSD.org>

Though it was possible to configure our BIND to build even when
libpthread support isn't present, our maintainer felt it's an
overkill, so instead enforce the BIND dependency on libpthread.


# 946367b8 09-Oct-2007 David E. O'Brien <obrien@FreeBSD.org>

Tweak the handling of "WITHOUT_LIBPTHREAD". Also remove the accidental
treatment of 'LIBKSE' as an "old style" knob.

Submitted by: ru
Approved by: re(kensmith)


# 65c045e9 09-Oct-2007 David E. O'Brien <obrien@FreeBSD.org>

Repo copy libpthreads to libkse.
This introduces the WITHOUT_LIBKSE nob,
and changes WITHOUT_LIBPTHREADS to mean with neither threading libs.
Approved by: re(kensmith)


# 4907faa6 26-Jun-2007 Remko Lodder <remko@FreeBSD.org>

Make zoneinfo optional so that a filesystem upgrade/update does not overwrite
possibly installed thirdparte zoneinfo databases (from ports for example).

PR: bin/104713
Submitted by: Mark Andrews <Mark_Andrews at isc dot org> (original patch
rewritten by me to be more consistent with the new practise).
Approved by: re (kensmith)
Approved by: imp (mentor)
Reviewed by: ru (some time ago already)


# 04031e9a 12-Jun-2007 Stephane E. Potvin <sepotvin@FreeBSD.org>

Options spring cleanup:
- Add and document the KVM and KVM_SUPPORT options that
are needed for the ifmcstats(3) makefile
- Garbage collect unused variables
- Add missing inclusion of bsd.own.mk where needed

Approved by: kan (mentor)
Reviewed by: ru


# 36aa6a9b 18-May-2007 Alexander Kabaev <kan@FreeBSD.org>

Introduce WITHOUT_SSP option that allows users to exclude LGPLed
libssp from the build.


# 00fb440c 13-May-2007 Daniel Eischen <deischen@FreeBSD.org>

Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.
Warning, after symbol versioning is enabled, going back is not easy
(use WITHOUT_SYMVER at your own risk).

Change the default thread library to libthr.

There most likely still needs to be a version bump for at least the
thread libraries. If necessary, this will happen later.


# ceef0c31 05-Apr-2007 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Connect ZFS to the build.


# 9a9ea25f 26-Jan-2007 Xin LI <delphij@FreeBSD.org>

Replace the GNU gzip with a slightly modified NetBSD gzip. The
NetBSD version is a feature-to-feature re-implementation of GNU
gzip using the freely-redistributable zlib and this version is
expected to be mostly bug-to-bug compatible with the GNU
implementation.

- Because this is a piece of mature code and we want to make
changes so it is added directly rather than importing to
src/contrib.
- Connect newly added code to src/usr.bin/ and rescue/rescue
build.
- Disconnect the GNU gzip code from build for now, they will
be eventually removed completely.
- Provide two new src.conf(5) knobs, WITHOUT_BZIP2_SUPPORT and
WITHOUT_BZIP2.

Tested by: kris (full exp-7 pointyhat build)
Approved by: core (importing a 4-clause BSD licensed file)
Approved by: re (adding new utility during -HEAD code slush)


# 8ef03c79 19-Nov-2006 Ruslan Ermilov <ru@FreeBSD.org>

Try harder to not leak src/ build stuff into ports/ environment
by not exposing the MK_* variables that were designed for src/.

Requested by: many


# 87d0f81c 01-Nov-2006 John Birrell <jb@FreeBSD.org>

Add a build option to support WITH_CDDL and WITHOUT_CDDL, defaulting
to WITH_CDDL.

This option enables building code that is licensed under Sun's CDDL.
The DTrace code is licensed that way, so by default it will get built
unless the WITHOUT_CDDL option is used.

There is another build toggle, NO_CTF, which turns off execution of
ctfconvert and ctfmerge in sys.mk, but this can't be implemented as
WITH_/WITHOUT because bsd.own.mk isn't included in all Makefiles and
sys.mk is included automatically by make.


# 2e975006 30-Sep-2006 Ruslan Ermilov <ru@FreeBSD.org>

Removed libc_r build support.


# 4df1f59e 10-Sep-2006 Warner Losh <imp@FreeBSD.org>

Add a knob for compiling the tree -DNDEBUG. This turns off all the
asserts and makes binaries smaller. The binaries also become
repeatable again. As it was, without this md5's of binaries built
with different paths differed.

# Where do I document this?


# f6ce2a64 17-May-2006 Poul-Henning Kamp <phk@FreeBSD.org>

Send the pcvt(4) driver off to retirement.


# 06a99fe3 27-Apr-2006 Hajimu UMEMOTO <ume@FreeBSD.org>

- Extend the nsswitch to support Services, Protocols and Rpc
databases.
- Make nsswitch support caching.

Submitted by: Michael Bushkov <bushman__at__rsu.ru>
Sponsored by: Google Summer of Code 2005


# c8205323 01-Apr-2006 Poul-Henning Kamp <phk@FreeBSD.org>

Have WITHOUT_BIND_MTREE imply WITHOUT_BIND_ETC


# 0472dafa 24-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Revert last delta, it breaks cross-compiles.


# a6a3b057 23-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Option MK_LIB32 only exists on amd64.


# b8159417 21-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Folded WITH_HESIOD_SUPPORT into WITH_HESIOD.


# d5555765 21-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Desupport the *_COLLECT2 no-op.


# cea557ad 20-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Extend coverage of the MK_IPX build option to the following:

- <netipx> headers [1]
- IPX library (libipx)
- IPX support in ifconfig(8)
- IPXrouted(8)
- new MK_NCP option

New MK_NCP build option controls:

- <netncp> and <fs/nwfs> headers
- NCP library (libncp)
- ncplist(1) and ncplogin(1)
- mount_nwfs(8)
- ncp and nwfs kernel modules

User knobs: WITHOUT_IPX, WITHOUT_IPX_SUPPORT, WITHOUT_NCP.

[1] <netsmb/netbios.h> unconditionally uses <netipx> headers
so they are still installed. This needs to be dealt with.


# 96155803 18-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Commit a forgotten part of NO_PROFILE/NO_LIB32 conversion.


# 930081e7 18-Mar-2006 Poul-Henning Kamp <phk@FreeBSD.org>

Add default for MK_PROFILE


# 73b06dcb 18-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Replace .sinclude by .if exists()/.include/.endif so that older make(1)'s can
handle it as well.


# e1fe3dba 17-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Reimplementation of world/kernel build options. For details, see:

http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html

The src.conf(5) manpage is to follow in a few days.

Brought to you by: imp, jhb, kris, phk, ru (all bugs are mine)


# 84aac273 11-Apr-2005 Hartmut Brandt <harti@FreeBSD.org>

Make sure the only thing that follows .endif or .else is a comment.


# d966048e 06-Jan-2005 Kirill Ponomarev <krion@FreeBSD.org>

Remove trailing spaces.


# fe670e46 05-Feb-2004 Ruslan Ermilov <ru@FreeBSD.org>

Temporarily put STRIP back; bsd.port.mk still needs it.


# 4c25ae57 05-Feb-2004 Ruslan Ermilov <ru@FreeBSD.org>

Don't define STRIP in bsd.own.mk.


# 4270213c 17-Aug-2003 David E. O'Brien <obrien@FreeBSD.org>

Fix typo.

Submitted by: Ulrich Spoerlein <q@uni.de>


# 379e8aa7 03-Mar-2003 Ruslan Ermilov <ru@FreeBSD.org>

If we carry our MODULES_WITH_WORLD, we probably also do not want
for installkernel to wipe them out later. So install them under
/boot/modules if that is the case.


# 66422f5b 16-Sep-2002 Peter Wemm <peter@FreeBSD.org>

Initiate deorbit burn for the i386-only a.out related support. Moves are
under way to move the remnants of the a.out toolchain to ports. As the
comment in src/Makefile said, this stuff is deprecated and one should not
expect this to remain beyond 4.0-REL. It has already lasted WAY beyond
that.

Notable exceptions:
gcc - I have not touched the a.out generation stuff there.
ldd/ldconfig - still have some code to interface with a.out rtld.
old as/ld/etc - I have not removed these yet, pending their move to ports.
some includes - necessary for ldd/ldconfig for now.

Tested on: i386 (extensively), alpha


# d2893b16 29-Jul-2002 Ruslan Ermilov <ru@FreeBSD.org>

Drop support for COPY, -c has been the default mode of install(1)
for a long time now.

Approved by: bde


# c7b111cb 12-May-2002 Ruslan Ermilov <ru@FreeBSD.org>

Added new bsd.incs.mk which handles installing of header files
via INCS. Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files. Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.

Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1. Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):

kerberos5/lib/libtelnet/Makefile
lib/libbz2/Makefile
lib/libdevinfo/Makefile
lib/libform/Makefile
lib/libisc/Makefile
lib/libmenu/Makefile
lib/libmilter/Makefile
lib/libpanel/Makefile

Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.

Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD. Similarly for INCOWN, INCGRP,
and INCMODE.

Consistently use INCLUDEDIR instead of /usr/include.

gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.

These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".


# 07b10385 18-Apr-2002 Ruslan Ermilov <ru@FreeBSD.org>

In rare cases, we might want to include bsd.own.mk directly.
So protect it from being included twice.


# 2bdaf7e8 17-Apr-2002 Ruslan Ermilov <ru@FreeBSD.org>

Don't include bsd.own.mk from sys.mk, this makes it impossible
to use ``.if defined()'' inside bsd.own.mk to test for defines
in individual makefiles. For example, setting DEBUG_FLAGS in
Makefile didn't take the desired effect on the STRIP assignment.

Added bsd.init.mk (like in NetBSD) that handles the inclusion
of ../Makefile.inc and bsd.own.mk from all bsd.*.mk files that
"build something".

Back out bsd.own.mk,v 1.15: moved OBJFORMAT initialization back
to sys.mk (several source tree makefiles want to check it early)
and removed MACHINE_ARCH initialization (it's hard to see from
looking at the commitlogs what the problem was at the time, but
now it serves no purpose).

Prohibit the direct inclusion of bsd.man.mk and bsd.libnames.mk.

Protect bsd.obj.mk from repetitive inclusion. Prohibiting the
direct inclusion of bsd.obj.mk might be a good idea too.


# 8e748d82 13-Feb-2002 Alexey Zelkin <phantom@FreeBSD.org>

Correct comment: mklocale(1) and NLS are absolutely independent


# 7778ad49 13-Feb-2002 Alexey Zelkin <phantom@FreeBSD.org>

Correct NLSOWN and NLSGRP values.


# ecce2474 13-Jun-2001 Ruslan Ermilov <ru@FreeBSD.org>

Games ownership cleanup.

Urged by: bde


# 3bdfa9e5 05-Sep-2000 David E. O'Brien <obrien@FreeBSD.org>

The kernel is now known as `kernel.ko' and it and its matching modules
live in ``/boot/kernel/''.


# 24f8e0e9 09-Jun-2000 Guy Helmer <ghelmer@FreeBSD.org>

NONBINMODE -> NOBINMODE for NLSMODE.

PR: bin/8811
Submitted by: Naohiko Tsuji <yakisoba@osaka.interq.or.jp>
Prompted by: Nathan Ahlstrom <nrahlstr@winternet.com>


# fccf86c1 14-Jan-2000 Rodney W. Grimes <rgrimes@FreeBSD.org>

Introduce the new mk internal target _includeinstall and add the
controlling knob defaults INCOWN, INCGRP, INCMODE, and INCDIR.

Reviewed by: marcel, and make world


# 4c62f5d1 08-Nov-1999 Alexey Zelkin <phantom@FreeBSD.org>

Fix comments: LKM -> KLD, /etc/objectformat -> /etc/objformat


# 7f3dea24 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 0099533a 24-Jun-1999 John-Mark Gurney <jmg@FreeBSD.org>

add support to buildworld as a normal user:
-DNOFSCHG disables installation of libs with flag schg
GAMEGRP change the group with which games are installed

also organize the binary section into alphebetical order some what..


# e0e77ef1 23-Apr-1999 Peter Wemm <peter@FreeBSD.org>

s/lkm(4)/kld(4)/


# 29789c6d 20-Apr-1999 Peter Wemm <peter@FreeBSD.org>

Default KMODDIR = /modules now, not /lkm


# 10f7260a 06-Jan-1999 Peter Wemm <peter@FreeBSD.org>

OBJFORMAT=elf in the absense of an override for both alpha and i386 by
default now.


# 830775aa 19-Oct-1998 Warner Losh <imp@FreeBSD.org>

Default to aout only on i386. Before we defaulted to elf only on
Alpha. This is a minor, but important distinction. Should be a no-op
to the install base. If OBJFORMAT is set elsewhere, things work
exactly as they did before.


# 5ecaf9a8 14-Sep-1998 David E. O'Brien <obrien@FreeBSD.org>

Change file ownership from bin.bin to root.wheel.


# 04df7eaa 31-Aug-1998 John Birrell <jb@FreeBSD.org>

Oops, I missed the update from /etc/objectformat to /etc/objformat
which caused a port-ELF upgrade to continue to build aout.


# 3cba8076 30-Aug-1998 John Birrell <jb@FreeBSD.org>

Remove BINFORMAT which is only set when building tools that need to have
a default format.

Include /etc/objformat to get the installed object type if it exists
and if OBJFORMAT is not already defined.


# 7c9bea41 17-Aug-1998 John Birrell <jb@FreeBSD.org>

Add default OBJFORMAT so that the build process can test for this
without having to run objformat to determine it.


# cf94fb21 03-Aug-1998 Bruce Evans <bde@FreeBSD.org>

Fixed building -current under 2.2.6 using `make world'. Moved some
recently added definitions from sys.mk to bsd.own.mk. Include the
src-relative bsd.own.mk in src/Makefile to pick up all new definitions.
Don't check that MACHINE_ARCH is defined in src/Makefile, since it is
(and should have been) guaranteed to be defined.


# cabb97dc 26-May-1998 Søren Schmidt <sos@FreeBSD.org>

ELF preparation step 2:

Move a.out libraries to /usr/lib/aout to make space for ELF libs.
Make rtld usr /usr/lib/aout as default library path.
Make ldconfig reject /usr/lib as an a.out library path.
Fix various Makefiles for LIBDIR!=/usr/lib breakage.

This will after a make world & reboot give a system that no
longer uses /usr/lib/*, infact one could remove all the old
libraries there, they are not used anymore.

We are getting close to an ELF make world, but I'll let this
all settle for a week or two...


# 8d17ea52 19-Mar-1998 Bruce Evans <bde@FreeBSD.org>

Use gzip's -n flag so that simple regression tests of `make world'
work better.


# 5ea3b080 03-Jan-1998 Steve Price <steve@FreeBSD.org>

Add a couple of ?='s missed in the previous commit.

Noticed by: Paul Allenby <pallenby@zibbi.mikom.csi.co.za>


# c7d591d6 03-Jan-1998 Wolfram Schneider <wosch@FreeBSD.org>

Add new variables:

LIBCOMPATDIR [/usr/lib/compat]
LIBDATADIR [/usr/libdata]
INCLUDEDIR [/usr/include]
LIBEXECDIR [/usr/libexec]


# f7ea12a0 08-Mar-1997 Wolfram Schneider <wosch@FreeBSD.org>

Add new variables COMPRESS_CMD and COMPRESS_EXT.

bsd.doc.mk:
rename GZIPCMD to DCOMPRESS_CMD, add DCOMPRESS_EXT
bsd.info.mk:
rename GZIPCMD to ICOMPRESS_CMD, add ICOMPRESS_EXT
set INFOTMPL to ${INFODIR}/dir-tmpl
bsd.man.mk
rename ZEXTENSION to MCOMPRESS_EXT, MCOMPRESS to MCOMPRESS_CMD


# b97fa2ef 22-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Revert $FreeBSD$ to $Id$


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# cd9a2f5c 23-Jun-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Bring in my changes for removing the pestilent obj links (unless you
really want them) from /usr/src. This is the final version of the
patches, incorporating the feedback I've received from -current.


# 53996fad 25-May-1996 Wolfram Schneider <wosch@FreeBSD.org>

Add some comments for variables and targets.


# 05e5545f 31-Mar-1996 Wolfram Schneider <wosch@FreeBSD.org>

add SHAREDIR?=, SHAREOWN?=, SHAREGRP?=, SHAREMODE?=,
INFOOWN?=, INFOGRP?=, INFOMODE?=

set variables recursive, eg. change KMODOWN?=bin to KMODOWN?=${BINOWN}

from NetBSD:
add NLSDIR?=, NLSGRP?=, NLSOWN?=, NLSMODE?=,
BSDSRCDIR?=, BSDOBJDIR?=, NOBINMODE?=


# 86ec11ba 23-Mar-1996 Wolfram Schneider <wosch@FreeBSD.org>

KMODDIR= -> KMODDIR?=
add INFODIR


# 82622fe0 11-Mar-1996 Wolfram Schneider <wosch@FreeBSD.org>

add DOCDIR, DOCOWN, DOCGRP, DOCMODE for documents
add LIBDIR, LINTLIBDIR, SHLIBDIR, LIBOWN, LIBGRP, LIBMODE for libs
add KMODOWN, KMODGRP, KMODMODE
new variable KMODDIR similar to BINDIR


# e82b0b99 16-Sep-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Add support for DEBUG_FLAGS. If you say something like:

make DEBUG_FLAGS=-g2

You can compile something for debugging at debugging level 2.
It will also take care not to strip the resulting executable(s).


# d14f862c 04-Aug-1994 Garrett Wollman <wollman@FreeBSD.org>

Add a couple of files we created in 1.x.