282 Commits

Author SHA1 Message Date
emaste
b55587be1b Rename LLD_AS_LD to LLD_IS_LD, for consistency with CLANG_IS_CC
Reported by:	Dan McGregor <dan.mcgregor usask.ca>
2017-01-27 01:59:12 +00:00
ngie
beac6b308b Carry over r311520 to tools/build/options/WITHOUT_USB_GADGET_EXAMPLES
Discussed with:	wblock

r311520:

Fix src.conf(5) description of WITHOUT_USB_GADGET_EXAMPLES.

PR:		215831
Submitted by:	p5B2E9A8F@t-online.de
MFC after:	1 week
X-MFC with:	r311520
Sponsored by:	iXsystems
2017-01-06 21:08:19 +00:00
ngie
a3a6d6f995 Add WITH_SSP to silence complaints from mkman about there not being a file
MFC after:	3 days
2017-01-02 20:09:09 +00:00
ngie
ef46f46b41 Add documentation for MK_EFI added in r307243 2017-01-02 20:07:56 +00:00
gjb
d4eff3169f Comment the RCSID.
Sponsored by:	The FreeBSD Foundation
2016-12-19 15:09:30 +00:00
emaste
6673b8a203 Build loaders reproducibly when WITH_REPRODUCIBLE_BUILD
When WITH_REPRODUCIBLE_BUILD=yes is set in src.conf(5), eliminate the
time, user, and host from the loader's version information.  This allows
builds to produce bit-for-bit identical output.

Reviewed by:	bapt
MFC after:	1 month
Relnotes:	yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D8842
2016-12-19 14:45:59 +00:00
emaste
74e52dacf4 Add WITH_REPRODUCIBLE_BUILD src.conf(5) knob to disable kernel metadata
The kernel builds reproducibly, except for the time, date, user, and
hostname baked into the kernel (reported at startup and via the
kern.version sysctl for uname).  Add a build knob to disable the
inclusion of this metadata.

Reviewed by:	jhb
MFC after:	1 month
Relnotes:	Yes
Sponsored by:	Reproducible Builds World Summit 2, Berlin
Differential Revision:	https://reviews.freebsd.org/D8809
2016-12-15 21:26:58 +00:00
emaste
3e20f5ea69 Add WITH_LLD_AS_LD build knob
If set it installs LLD as /usr/bin/ld.  LLD (as of version 3.9) is not
capable of linking the world and kernel, but can self-host and link many
substantial applications. GNU ld continues to be used for the world and
kernel build, regardless of how this knob is set.

It is on by default for arm64, and off for all other CPU architectures.

Sponsored by:	The FreeBSD Foundation
2016-11-25 13:15:28 +00:00
dim
a0e4c65bb9 Merge ^/head r307383 through r307735. 2016-10-21 16:29:40 +00:00
emaste
01ba1df6a7 Add knobs to make GNU diff and GNU grep optional
This is added to facilitate experiments building FreeBSD without
copyleft software.

If WITHOUT_GNU_DIFF is set no /usr/bin/diff or /usr/bin/diff3 will
be built.

If WITHOUT_GNU_GREP is set then BSD grep will be installed as
/usr/bin/bsdgrep or /usr/bin/grep, depending on the WITH_BSD_GREP
knob.

Reviewed by:	brooks (earlier)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	Differential Revision: https://reviews.freebsd.org/D8288
2016-10-20 14:48:57 +00:00
dim
cd7f5b90ee Merge ^/head r306906 through r307382. 2016-10-15 22:49:04 +00:00
bapt
4dc36d36b7 Remove GNU rcs from base.
GNU rcs is still available as a package:
- rcs: Latest GPLv3 GNU rcs version.
- rcs57: Copy of the latest version of GNU rcs (GPLv2) from base.

Relnotes:	yes
2016-10-15 12:07:37 +00:00
emaste
e2bfce771a Correct sense of WITHOUT_MANDOCDB knob
WITHOUT_MANDOCDB *disables* the use of mandoc's makewhatis.
2016-10-10 15:40:08 +00:00
dim
f3218d8c82 Merge ^/head r306412 through r306905. 2016-10-09 13:30:57 +00:00
bapt
05bd0055b6 Remove the WITH_FMAKE option left over from r284464
MFC after:	3 days
2016-10-08 19:54:01 +00:00
emaste
a58ac4182d makeman: avoid bogus output with duplicated options
On some targets 'make showconfig' currently reports both 'no' and 'yes'
for some options. For example:

% make TARGET=mips showconfig | grep SSP
MK_SSP           = no
MK_SSP           = yes

Emit a warning on encountering a duplicated variable, and skip the
second entry.

Sponsored by:	The FreeBSD Foundation
2016-10-05 20:12:00 +00:00
emaste
10f6344f80 Retire WITHOUT_ELFCOPY_AS_OBJCOPY option
In FreeBSD 11 ELF Tool Chain's elfcopy is installed as objcopy by
default, with the option to switch back to GNU objcopy by setting
WITHOUT_ELFCOPY_AS_OBJCOPY in make.conf.

We plan to remove the outdated in-tree binutils in FreeBSD 12, so
remove the temporary transition aid.

Reviewed by:	brooks, imp
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D7337
2016-10-03 17:49:26 +00:00
emaste
ef95843ce2 Merge ^/head r306303 through 306411. 2016-09-28 19:29:01 +00:00
emaste
8e7680d1fd Add a WITHOUT_DIALOG src.conf(5) knob
It also turns off dependencies (bsdinstall, bsdconfig, dpv, tzsetup).

Reviewed by:	dteske
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D7969
2016-09-27 18:08:38 +00:00
dim
3222cf867d Merge ^/head r305892 through r306302. 2016-09-24 20:58:59 +00:00
bdrewery
272d3e2ffe SYSTEM_COMPILER is not forced off with META_MODE after r304682.
Sponsored by:	Dell EMC Isilon
2016-09-21 21:32:05 +00:00
bapt
fa84bd8c2d Disable GNU rcs by default
All remaining tools using rcs has been switched to directly use diff3(1):
- etcupdate(8)
- freebsd-update(8)

Note that the ident(1) tool is been already replaced long ago with a BSD
licensed version, as such it remains installed.

GNU rcs is still available from ports:
- rcs: newer GPLv3 version
- rcs57: the latest version from base (GPLv2)
2016-09-18 15:01:11 +00:00
emaste
26ebe61d5c Add WITH_/WITHOUT_LLD knobs to enable the lld linker
Use this to control inclusion of the libllvm functionality required
by lld. Enable by default on arm64 and amd64, the two platforms where
lld is most usable for testing.

Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D7713
2016-08-31 21:18:38 +00:00
jtl
bbaee6454f Document support for alternate TCP stacks.
Differential Revision:	https://reviews.freebsd.org/D6940
Reviewed by:	hiren
Approved by:	re (gjb)
Sponsored by:	Juniper Networks
2016-06-28 13:37:01 +00:00
bdrewery
107ea631d3 WITH_META_MODE: Enable printing of some of make's environment on error.
This will print a set of variables from make on error using
MAKE_PRINT_VAR_ON_ERROR.  It is already enabled for the DIRDEPS_BUILD.
It may make sense to enable this in the non-meta mode as well once
people are more used to its more verbose error output.

This makes it much simpler to see which .meta file is used when a
command files so that it may be inspected for the build command.

Suggested by:	sjg
Approved by:	re (implicit)
Sponsored by:	EMC / Isilon Storage Division
2016-06-14 16:20:25 +00:00
bdrewery
2e92e3aeda WITH_META_MODE: Lessen the filemon(4) requirement scope.
- Move the sys.mk filemon requirement to bsd.init.mk as a warning.
  This is intended only to show when building directly in a subdirectory
  without filemon loaded.
- Move the error into Makefile and only apply it when building
  from the META_TGT_WHITELIST target list.

-DNO_FILEMON can be used to suppress both the warning and the error but
makes WITH_META_MODE less useful.  It will only compare build commands
in this mode rather than track all dependencies.

This fixes installing from a jail which doesn't need filemon in this
phase [1].

Reported by:	Nikolai Lifanov <lifanov@mail.lifanov.com> [1]
Approved by:	re (implicit)
Sponsored by:	EMC / Isilon Storage Division
2016-06-14 16:20:19 +00:00
lidl
eba392fe96 Document BLACKLIST related build options
Reported by:	bdrewery
Sponsored by:	The FreeBSD Foundation
2016-06-07 16:35:55 +00:00
bdrewery
e18064dd5c Document WITH_META_MODE enforcing WITHOUT_SYSTEM_COMPILER.
makeman doesn't handle this since it would need to enable all
non-default options when checking enabling 1 option, which
then convolutes what is really affecting each other.
2016-06-05 23:14:06 +00:00
bdrewery
39ee029a9c WITH_META_MODE: Enable bmake's missing meta rebuild feature 2016-06-05 23:04:42 +00:00
bdrewery
d79d0c45f4 WITH_META_MODE: Correct description of missing .meta file.
Sponsored by:	EMC / Isilon Storage Division
2016-05-24 23:15:52 +00:00
bdrewery
07b39d8fb0 Opportunistically skip building a cross-compiler with SYSTEM_COMPILER set.
This will still build the compiler for the target but will not build the
bootstrap cross-compiler in the cross-tools phase.  Other toolchain
bootstrapping, such as elftoolchan and binutils, currently still occurs.

This will utilize the default CC (cc, /usr/bin/cc) as an external compiler.

This is planned to be on-by-default eventually.

This will utilize the __FreeBSD_cc_version compiler macro defined in the
source tree and compare it to CC's version.  If they match then the
cross-compiler is skipped.  If [X]CC is an external compiler (absolute
path) or WITHOUT_CROSS_COMPILER is already set, then this logic is skipped.
If the expected bootstrap compiler type no longer matches the found CC
compiler type (clang vs gcc), then the logic is skipped.  As an extra
safety check the version number is also compared from the compiler to
the tree version.

Clang:
  The macro FREEBSD_CC_VERSION is defined in:
    lib/clang/include/clang/Basic/Version.inc
  For clang -target will be used if TARGET_ARCH != MACHINE_ARCH.  This
  is from the current external toolchain logic.  There is currently an
  assumption that the host compiler can build the TARGET_ARCH.  This
  will usually be the case since we don't conditionalize target arch
  support in clang, but it will break when introducing new
  architectures.  This problem is mitigated by incrementing the version
  when adding new architectures.

GCC:
  The macro FBSD_CC_VER is defined in:
    gnu/usr.bin/cc/cc_tools/freebsd-native.h
  For GCC there is no simple -target support when TARGET_ARCH !=
  MACHINE_ARCH.  In this case the opportunistic skip is not done.  If we
  add proper support for this case in external toolchain logic then it
  will be fine to enable.

This relies on the macros being incremented whenever any change occurs
to these compilers that warrant rebuilding files.  It also should never
repeat earlier values.

Reviewed by:	brooks, bapt, imp
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D6357
2016-05-21 01:32:23 +00:00
bdrewery
c1a6c8cc5c Add a WITH_LIBSOFT 2016-05-20 19:23:07 +00:00
bdrewery
29604bc22b Add more content for WITH_META_MODE/WITH_DIRDEPS_BUILD.
Sponsored by:	EMC / Isilon Storage Division
2016-04-14 22:00:49 +00:00
bdrewery
4b40a9f944 Note the brokenness of WITHOUT_INSTALLLIB.
Sponsored by:	EMC / Isilon Storage Division
2016-04-13 21:01:58 +00:00
bdrewery
2b5f6fc5bf The build does work now with WITHOUT_TOOLCHAIN.
The bootstrap cross tools are still built in this mode as well.

Sponsored by:	EMC / Isilon Storage Division
2016-04-13 20:55:05 +00:00
bdrewery
a214132005 Add some more content for WITH_META_MODE.
Sponsored by:	EMC / Isilon Storage Division
2016-04-12 03:40:13 +00:00
bdrewery
9afacef2b7 Document the behavior of NO_DIRDEPS/NO_DIRDEPS_BELOW.
Sponsored by:	EMC / Isilon Storage Division
2016-04-12 03:37:42 +00:00
bdrewery
ca9bfffeeb Remove FAST_DEPEND reference missed in r297434. 2016-03-30 23:53:12 +00:00
bdrewery
59f4cb814d Remove the old depend (mkdep) code and make FAST_DEPEND the one true way.
Reviewed by:	emaste, hselasky (partial), brooks (brief)
Discussed on:	arch@
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D5742
2016-03-30 23:50:23 +00:00
bdrewery
55158da34a Add a WITHOUT_FAST_DEPEND 2016-03-11 17:00:42 +00:00
trasz
fa1857f115 Fix section numbers for autofs(5), kbdcontrol(1), vidcontrol(1), quota(1),
and telnet(1) in the right place.

MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2016-03-01 11:36:10 +00:00
emaste
6947c7d029 Document that WITHOUT_ELFCOPY_AS_OBJCOPY will be removed
In case ELF Tool Chain's elfcopy introduces any regressions this knob is
available as a transition aid. It will be removed once we are confident
that any regressions have been fixed.
2016-02-29 16:39:38 +00:00
emaste
9f5beacde1 Add WITH_GDB src.conf(5) description 2016-02-11 00:30:51 +00:00
emaste
4e0e9ef378 Add missing src.conf(5) descriptions for tool chain components
Sponsored by:	The FreeBSD Foundation
2016-02-11 00:14:00 +00:00
emaste
6ccca77a16 Update list of binutils controlled by WITHOUT_BINUTILS_BOOTSTRAP
Tools removed from the list are now provided by the ELF Tool Chain
project and are not controlled by the WITHOUT_BINUTILS_BOOTSTRAP knob.

Sponsored by:	The FreeBSD Foundation
2016-02-10 23:57:09 +00:00
emaste
b88b2cfedc Support use of LLVM's libunwind for exception unwinding
It is built in libgcc_s.so and libgcc_eh.a to simplify transition.

It is enabled by default on arm64 (where we previously had no other
unwinder) and may be enabled for testing on other platforms by setting
WITH_LLVM_LIBUNWIND in src.conf(5).

Also add compiler-rt's __gcc_personality_v0 implementation for use with
the LLVM unwinder.

Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D4787
2016-01-09 00:42:07 +00:00
bdrewery
22d96ca125 Correct comment about MAKEOBJDIRPREFIX in src-env.conf.
It may only be used with WITH_AUTO_OBJ, which the WITH_DIRDEPS_BUILD does.  We
could support this in the normal build as well if we forced creating the directory
and setting .OBJDIR.

Sponsored by:	EMC / Isilon Storage Division
2015-12-15 18:42:30 +00:00
ume
8c4f802e38 Fix breakage by recent collation change.
LC_ALL has to be exported.
2015-11-28 00:41:37 +00:00
des
24641fd80b Retire the NONE cipher option. 2015-11-23 12:48:13 +00:00
sjg
95ced83cd0 Regen src.conf.5 2015-11-14 04:50:28 +00:00