119 Commits

Author SHA1 Message Date
manu
482531ced3 Switch back to the BSDL DTC (Device Tree Compiler).
The BSDL dtc has grown the needed features (overlays mostly) and is able to
compile all of our base DTS.
You can use WITH_GPL_DTC is you need the GPL one or DTC= in make.conf(5)
to specify an alternate location for the compiler to use.

Discussed with: emaste, imp
2017-06-20 02:09:50 +00:00
bapt
c0d513aaf1 Finish removal of groff 2017-06-07 23:26:28 +00:00
bapt
ac6edc194c Remove groff from base
All manpages in base are now compatible with mandoc(1), all roff documentation
will be relocated in the doc tree. man(1) can now use groff from the ports tree
if it needs.

Also remove checknr(1) and colcrt(1) which are only useful with groff.

Approved by:	(no objections on the mailing lists)
2017-06-07 23:00:34 +00:00
emaste
c787b852ae revert r313473 (Disable LLD_IS_LD option combinations that fail)
r316647 corrected the build of tblgen and libllvm as dependencies for
LLD so undo the temporary seat-belt.

We still want to extend the build infrastructure to automatically detect
the case where the host LLD can be used instead of building a bootstrap
LLD, and likely extend libllvmminimal to meet LLD's needs for cases
where the build includes LLD but not Clang.

Sponsored by:	The FreeBSD Foundation
2017-04-30 16:12:23 +00:00
jhb
54f1738f42 Add a new GDB_LIBEXEC option to install gdb and kgdb to /usr/libexec.
When this option is enabled, only gdb and kgdb are installed to
/usr/libexec for use by crashinfo(8). Other bits of GDB such as
gdbserver and gdbtui are not installed. For this option to be
effective, GDB must be enabled.

Rework r317094 to re-enable GDB on all platforms but enable
GDB_LIBEXEC on platforms for which the GDB in ports is a superset of
functionality.

Reviewed by:	emaste, kib
Suggested by:	kib
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D10449
2017-04-25 18:08:56 +00:00
emaste
af85d5feea bsdgrep: disable GNU_GREP_COMPAT by default
The GNU extension bits in the base system are old, no longer faithful
to upstream, and surprising in some regards. Switch to documenting
WITH_GNU_GREP_COMPAT and default GNU_GREP_COMPAT to OFF in the name of
good behavior.

According to http://www.regular-expressions.info, GNU extensions:

-  Add missing quantifiers to BREs: \?, \+

-  Add branching to BREs: \|

-  Add backreferences (\1 through \9) to EREs

-  Add \w, \W, \s, and \S corresponding to :alnum:, [^[:alnum:]],
   :space:, and [^[:space:]] respectively

-  Add word boundaries and anchors:
   \b: word boundary
   \B: not word boundary
   \<: Strt of word
   \>: End of word
   \`: Start of subject string
    \': End of subject string

These extensions are still available in /usr/bin/grep by default today,
as it is still GNU grep.  As part of the bsdgrep migration plan these
extensions may be added to bsdgrep's regex support if necessary.

Submitted by:	Kyle Evans <kevans91 at ksu.edu>
Reviewed by:	cem
Differential Revision:	https://reviews.freebsd.org/D10114
2017-04-21 14:50:29 +00:00
emaste
dd5e4bc8dd bsdgrep: add BSD_GREP_FASTMATCH knob for built-in fastmatch
Bugs have been found in the fastmatch implementation as used in bsdgrep.
Some have been fixed (r316495) while fixes for others are in review
(D10098).

In comparison with the fastmatch implementation, Kyle Evans found that:

- regex(3)'s performance with literal expressions offers a speed
  improvement over fastmatch

- regex(3)'s performance, both with simple BREs and EREs, seems to be
  comparable

The regex implementation was imported in r226035, and the commit message
reports:

    This is a temporary solution until the whole regex library is
    not replaced so that BSD grep development can continue and the
    backported code gets some review and testing. This change only
    improves scalability slightly, there is no big performance boost
    yet but several minor bugs have been found and fixed.

Introduce a WITH_/WITHOUT_BSD_GREP_FASTMATCH knob to support testing
of both approaches.

PR:		175314, 194823
Submitted by:	Kyle Evans <kevans91 at ksu.edu>
Reviewed by:	bdrewery (in part)
Differential Revision:	https://reviews.freebsd.org/D10282
2017-04-21 14:36:09 +00:00
ngie
1fa93003ee Add a knob, WITH*_RPCBIND_WARMSTART_SUPPORT, to allow the end-user to build
rpcbind(8) with/without warmstart support.

The knob defaults to off to preserve POLA for the feature.

See rpcbind(8) for more details about the warmstart feature.

MFC after:	7 weeks
Relnotes:	yes
Sponsored by:	Dell EMC Isilon
2017-04-19 20:45:46 +00:00
emaste
ae274c92ce Remove WITHOUT_GNU and WITHOUT_GNU_SUPPORT src.conf.knobs
These have no effect (and WITHOUT_GNU is documented as having no
effect). I intend to later introduce a WITHOUT_GPL knob to serve a
similar purpose as WITHOUT_GNU's previously documented intent, but with
a more accurate name. To avoid confusion over the transition though just
remove the existing, nonfunctional ones.
2017-04-19 18:59:38 +00:00
jhb
8da757991f Disable in-tree GDB by default on x86, mips, and powerpc.
GDB in ports contains all of the functionality as GDB in base
(including kgdb) for these platforms along with additional
functionality.  In-tree GDB remains enabled on ARM and sparc64.
GDB in ports does not currently support kernel debugging on arm,
and ports GDB for sparc64 has not been tested (though it does
include sparc64 support).

Reviewed by:	bdrewery, emaste, imp
Relnotes:	yes
Sponsored by:	DARPA / AFRL
Differential Revision:	https://reviews.freebsd.org/D10399
2017-04-18 16:27:48 +00:00
emaste
7a064c83e9 Make WITHOUT_TOOLCHAIN imply WITHOUT_LLD.
LLD is a toolchain component.
2017-04-10 18:21:30 +00:00
emaste
adbeb954e1 Introduce LLD_BOOTSTRAP to control lld as bootstrap linker
Add WITH_LLD_BOOTSTRAP and WITHOUT_LLD_BOOTSTRAP knobs, similar to the
Clang bootstrap knobs.

Reviewed by:	dim
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D10249
2017-04-09 01:35:19 +00:00
bapt
fff68d3c49 Finish removal of WITHOUT_MANDOCDB 2017-03-12 03:35:01 +00:00
np
8bbe5d5c15 Add cxgbetool(8) to the base system.
Move cxgbetool from tools/tools to usr.sbin. Compile and install it on
platforms where cxgbe(4) is built by default.  Knobs (WITH_CXGBETOOL and
WITHOUT_CXGBETOOL) have been added so that the user can override the
default setting.

Reviewed by:	ngie@, gnn@, bdrewery@
MFC after:	1 month
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D9854
2017-03-03 03:11:58 +00:00
dim
22c5790481 Merge ^/head r313644 through r313895. 2017-02-17 20:19:38 +00:00
imp
36fafdbb83 Remove EISA bus support for add-in cards. Remove related kernel and
compile options. Remove doxygen pointers to now deleted files. Remove
EISA and VME as examples in bus_space.9.

Retained EISA mode code for IO PIC and MPTABLES because that's not
EISA bus, per se, and some people have abused EISA to mean "EISA-like
behavior as opposed to ISA" rather than using it for EISA add-in
cards.

Relnotes: yes
2017-02-16 21:57:35 +00:00
emaste
91728c7f76 Disable LLD_IS_LD option combinations that fail
If WITH_LLD is disabled LLD is not built and cannot be installed as
/usr/bin/ld, so disable WITH_LLD_IS_LD.

Currently we do not compare the LLD host/in-tree version and LLD
requires the LLVM libraries to be built, so force WITH_SYSTEM_COMPILER
off when WITH_LLD_IS_LD is set.

The logic for bootstrapping LLD requires some tidying later. We should
be able to detect that the host linker is the same version and avoid
building LLD in the same way that WITH_SYSTEM_COMPILER handles Clang.
We also may be able to extend libllvmminimal to meet LLD's needs.  For
now this change unbreaks buildworld with default settings except for
WITH_LLD_IS_LD.

Reported by:	Shawn Webb
Reviewed by:	bdrewery
Tested by:	Shawn Webb
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D9487
2017-02-09 14:47:34 +00:00
dim
b6265d45c3 Merge ^/head r312720 through r312893. 2017-01-27 20:01:46 +00:00
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
emaste
94ea8e2433 Enable LLD (as ld.lld) on i386 and arm
With this change LLD will be built on the same set of architectures that
use Clang as /usr/bin/cc. It is not yet fully functional as a system
linker for i386 and arm, but is ready for further testing and
investigation.
2017-01-26 02:22:23 +00:00
emaste
f1dc1afb9a Build Clang on all architectures if host compiler is C++11
Recent versions of Clang are becoming usable for non-x86 non-arm FreeBSD
architectures. If the compiler is capable of building Clang, do so in
order to facilitate further testing.

Reviewed by:	dim, imp
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D8267
2017-01-25 20:33:31 +00:00
ngie
0c2fe4384a rcs was removed in r307351; kill off WITH*_RCS
MFC after:	never
2017-01-02 20:01:07 +00:00
ngie
b162ce4b49 Move the "MK_* options..." section before the "... MK_*_SUPPORT..." section
For the case that someone set WITHOUT_GSSAPI=, now WITHOUT_KERBEROS_SUPPORT
will be properly set.

This will likely fix the issue for the default case noted in the PR I filed
back in 2011. I am trying to fix the less obvious case documented in the PR
still.

MFC after:	2 weeks
PR:		159745
2017-01-02 19:55:18 +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
bapt
dc742321aa Make WITHOUT_CAPSICUM implying WITHOUT_CASPER
PR:		214562
Reported by:	dewayne@heuristicsystems.com.au
MFC after:	2 days
2016-12-10 13:29:51 +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
922643f72d Merge ^/head r308491 through r308841. 2016-11-19 16:05:55 +00:00
br
92df741441 Add full softfloat and hardfloat support for RISC-V.
Hardfloat is now default (use riscv64sf as TARGET_ARCH
for softfloat).

Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D8529
2016-11-16 15:21:32 +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
emaste
1245cf0634 Force MK_GDB to no if MK_BINUTILS == no
This is currently encoded in conditional blocks in gnu/lib/Makefile and
gnu/usr.bin/Makefile. Set it via src.opts.mk to make GDB's dependency
on binutils more clear.
2016-10-19 19:57:36 +00:00
dim
cd7f5b90ee Merge ^/head r306906 through r307382. 2016-10-15 22:49:04 +00:00
imp
75ec24dd53 Create libefivar library. This library aims to provide
the same API as the GPL'd version of this library. It implements the common
Linux API for programatically manipulating UEFI environment varibales using
the UEFI Runtime Services the kernel provides. It replaces the old efi
library since it is programmed to a different interface, but retails the
CHAR16 to UTF-8 and vice versa conversion routines. The new name is to match
Linux program's expectations.

Differential Revision: https://reviews.freebsd.org/D8128
Reviewed by: kib@, wblock@, Ganael Laplanche
2016-10-11 22:30:41 +00:00
dim
f3218d8c82 Merge ^/head r306412 through r306905. 2016-10-09 13:30:57 +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
imp
2f8cc58430 SSP is broken on all mips. 2016-09-29 13:38:14 +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
br
20b0fd729c Mark SSP broken on MIPS.
Sponsored by:	DARPA, AFRL
Sponsored by:	HEIF5
2016-09-27 09:44:30 +00:00
dim
3222cf867d Merge ^/head r305892 through r306302. 2016-09-24 20:58:59 +00:00
emaste
842516661d Force LLVM_LIBUNWIND off if we don't have a C++11 compiler
Tested by:	bde
Differential Revision:	https://reviews.freebsd.org/D7746
2016-09-23 13:21:29 +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
2ab33c94cb Build lld by default on amd64 and arm64 2016-09-01 20:36:10 +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
bdrewery
3fce81858a Re-enable WITH_SYSTEM_COMPILER with WITH_META_MODE.
This was disabled in r301468 due to -target/--sysroot sometimes being used in
the build and other times not being used.  Now that it is always used since
r304681, it is safe to combine the features.

MFC after:	3 days
Sponsored by:	EMC / Isilon Storage Division
2016-08-23 15:22:17 +00:00
emaste
0d4d3262d1 Forcibly disable MK_TESTS if building without C++
Several atf components require C++, and the test suite is not usable
if building WITHOUT_CXX.

Reviewed by:	bdrewery, jmmv
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D7597
2016-08-22 17:45:30 +00:00
emaste
d20793840b Enable LLVM libunwind by default on amd64 and i386
It is a maintained and updated runtime exception stack unwinder that
should be a drop-in replacement.

It can be disabled by setting WITHOUT_LLVM_LIBUNWIND in src.conf.

PR:		206039 [exp-run]
Sponsored by:	The FreeBSD Foundation
2016-07-27 16:01:44 +00:00
bdrewery
81ddc3b19a WITH_SYSTEM_COMPILER: Enable by default
This improves buildworld, toolchain, kernel-toolchain, and universe targets.
See r300354 or src.conf(5) for more details.

Approved by:	re (gjb)
Relnotes:	yes (r300354)
Sponsored by:	EMC / Isilon Storage Division
2016-06-24 19:55:59 +00:00
bdrewery
42d9d45fb8 Fix native powerpc64 build of lib32 with in-tree GCC.
- This was broken by r300350 and r300885.
- Add some comments around the external GCC logic since it is spread out
  and in need of some cleanup.
- The problem was that X_COMPILER_TYPE is always defined from CC->XCC's
  default, so if /usr/bin/cc is GCC (as it is on native powerpc64) then
  X_COMPILER_TYPE was getting GCC and triggering the external logic in
  Makefile.libcompat.  It was intended to always provide -isystem with
  GCC since --sysroot is used into the lib32 sysroot which won't modify
  the header path without the -isystem.  The use of the libc++/std=c++11
  override was only intended to be used for external compilers though
  (more accurately GCC 4.8+ but that's a separate assumption to
  cleanup).  Apply the same logic from Makefile.inc1 to Makefile.libcompat
  to only add the libc++ override when needed for external compilers.

Pointyhat to:	bdrewery
Tested with:	native ppc64 (swills), universe, ppc64 xtoolchain,
		amd64 xtoolchain, sparc64 cross-build of ppc64 (host GCC 4.2)
Reported by:	andreast, swills
Approved by:	re (gjb)
Sponsored by:	EMC / Isilon Storage Division
2016-06-15 23:58:03 +00:00
bdrewery
f6ed7b9188 WITH_SYSTEM_COMPILER: Disable with WITH_META_MODE for now.
The WITH_META_MODE build is intended to be a working incremental build.
It spies on the build command to see if things should be rebuilt if the
command changes.  If you run buildworld, it builds a cross-compiler,
then do installworld and buildworld again it will invoke the
WITH_SYSTEM_COMPILER logic.  This then adds on -target/--sysroot, etc,
and causes rebuilds due to the changed build command even though the
compiler used is technically the same revision.  Since the incremental
build is not cleaning anything by default then there is much
less risk to rebuilding the already-existing cross-compiler.  Just
disable the combined logic and always use and build the cross-compiler.

An alternative to this would be to always pass -target/--sysroot.  Doing
so may occur in the future.

Sponsored by:	EMC / Isilon Storage Division
2016-06-05 23:05:04 +00:00