FreeBSD src
Go to file
Bryan Drewery ca95e9dd77 Fix native-xtools build to use a proper sysroot.
This takes longer but should reliably produce working binaries.
The old version linked against system libraries and headers
which would be a problem if building a native-xtools against
a newer source than the host system.  With a proper sysroot made
first this is not a problem.

This also allows:
- NXBDIRS to be built in parallel
- NXBDIRS to be installed to NXBDESTDIR in parallel
- SYSTEM_COMPILER logic to work again.  Note that because this change
  is adding a sysroot phase the compiler may be built up to twice now.
  The first is the "cross-compiler" even though it is for the native
  architecture, but it is still built to ensure the latest compiler
  is used to generate the binaries, unless SYSTEM_COMPILER allows
  /usr/bin/cc to be used.  Then the target compiler is built
  which is actually a cross-compiler since it runs on native host
  but generates TARGET.TARGET_ARCH binaries.

Note this also changes the path used for the OBJDIR.  It used to use
/usr/obj/target.target_arch/nxb/<srcdir> for objects and
/usr/obj/target.target_arch/nxb-bin for installed files, but now uses
/usr/obj/nxb/target.target_arch/<srcdir> for objects and
/usr/obj/nxb/target.target_arch/<srcdir>/nxb-bin for installed files.
  - NXBDESTDIR can be specified for where to install or queried with
    `make -f Makefile.inc1 TARGET=... TARGET_ARCH=... -V NXBDESTDIR`

This could potentially be improved to reuse an existing sysroot.  The
problem is with building the SUBDIR_OVERRIDE list it needs to use a
different OBJDIR since it is building all statically.  We don't want to
pollute the existing 'buildworld' OBJDIR and cause confusion on the next
build.  Using a separate OBJDIR for the 'everything' phase mostly works
except for some things like linking in INTERNALLIBS that exist in the
other OBJDIR.

MFC after:	1 month
Sponsored by:	Dell EMC Isilon
2017-10-25 21:46:36 +00:00
bin Undocument "tdnam" (leaving it as an alias), and rename the column 2017-10-09 13:53:41 +00:00
cddl Fix zpool_read_all_labels when vfs.aio.enable_unsafe=0 2017-10-25 16:01:19 +00:00
contrib After jemalloc was updated to version 5.0.0 in r319971, i386 executables 2017-10-23 21:31:04 +00:00
crypto Upgrade to OpenSSH 7.5p1. 2017-08-04 12:57:24 +00:00
etc Add support for compressed kernel dumps. 2017-10-25 00:51:00 +00:00
gnu Support armv7 builds for userland 2017-10-05 23:01:33 +00:00
include libc: Do not refer to _DefaultRuneLocale in ctype inlines 2017-10-22 20:01:07 +00:00
kerberos5 Replace the include path using CURDIR with KRB5DIR. This is consistent 2017-08-21 12:42:05 +00:00
lib Prefix {TARGET,BUILD}_TRIPLE with LLVM_ to avoid Makefile.inc1 collision. 2017-10-25 21:45:55 +00:00
libexec Remove unneeded calls to access(2) from rtld(1); just call open(2) instead. 2017-10-24 12:56:08 +00:00
release Increase the arm/armv6 and arm/armv7 images from 2.5GB to 3GB, 2017-10-13 15:16:57 +00:00
rescue Remove rcmds. 2017-10-06 08:43:14 +00:00
sbin Implement power cycle in init. 2017-10-25 15:30:40 +00:00
secure Convert traditional ${MK_TESTS} conditional idiom for including test 2017-08-02 08:35:51 +00:00
share Implement IPMI support for RB_POWRECYCLE 2017-10-25 15:30:53 +00:00
sys Evaluate packet size after the firewall had its chance in the ip6 fast path 2017-10-25 19:21:48 +00:00
targets clean up remnants of removed GPL software 2017-10-13 18:30:32 +00:00
tests Add a test for sending a signal while stepping a thread via PT_STEP. 2017-10-25 17:23:33 +00:00
tools native-xtools: Override proper NXBDESTDIR. 2017-10-25 21:46:33 +00:00
usr.bin Limit top display of total swap size by the max swap size system can 2017-10-25 11:44:46 +00:00
usr.sbin Extract a set of pmcstat functions and interfaces to the new internal 2017-10-24 16:28:00 +00:00
.arcconfig callsign isn't required anymore 2016-09-29 06:19:45 +00:00
.arclint phabricator related changes: 2015-04-20 20:33:22 +00:00
COPYRIGHT Bump copyright year. 2016-12-31 12:41:42 +00:00
LOCKS
MAINTAINERS Add asomers as a pjdfstest co-maintainer per the project status change 2017-06-28 09:25:15 +00:00
Makefile Support armv7 builds for userland 2017-10-05 23:01:33 +00:00
Makefile.inc1 Fix native-xtools build to use a proper sysroot. 2017-10-25 21:46:36 +00:00
Makefile.libcompat Support armv7 builds for userland 2017-10-05 23:01:33 +00:00
ObsoleteFiles.inc Remove mbpool(9) now that it has no consumers. 2017-10-18 00:18:03 +00:00
README Vendor import of OpenSSH 7.5p1. 2017-08-03 10:10:20 +00:00
README.md Remove hard line breaks from README.md 2017-03-01 15:39:58 +00:00
UPDATING Add note to updating about shifting LOADER_*SUPPORT options. 2017-10-22 03:52:26 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

For copyright information, please see the file COPYRIGHT in this directory (additional copyright information also exists for some sources in this tree - please see the specific source directories for more information).

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7) and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html for more information, including setting make(1) variables.

The buildkernel and installkernel targets build and install the kernel and the modules (see below). Please see the top of the Makefile in this directory for more information on the standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process. See build(7), config(8), and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information.

Note: If you want to build and install the kernel with the buildkernel and installkernel targets, you might need to build world before. More information is available in the handbook.

The kernel configuration files reside in the sys/<arch>/conf sub-directory. GENERIC is the default configuration used in release builds. NOTES contains entries and documentation for all possible devices, not just those commonly used.

Source Roadmap:

bin				System/user commands.

cddl			Various commands and libraries under the Common Development  
				and Distribution License.

contrib			Packages contributed by 3rd parties.

crypto			Cryptography stuff (see crypto/README).

etc				Template files for /etc.

gnu				Various commands and libraries under the GNU Public License.  
				Please see gnu/COPYING* for more information.

include			System include files.

kerberos5		Kerberos5 (Heimdal) package.

lib				System libraries.

libexec			System daemons.

release			Release building Makefile & associated tools.

rescue			Build system for statically linked /rescue utilities.

sbin			System commands.

secure			Cryptographic libraries and commands.

share			Shared resources.

sys				Kernel sources.

tests			Regression tests which can be run by Kyua.  See tests/README
				for additional information.

tools			Utilities for regression testing and miscellaneous tasks.

usr.bin			User commands.

usr.sbin		System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html