Commit Graph

974 Commits

Author SHA1 Message Date
Enji Cooper
9dc634de35 Serialize all of _kerberos5_bootstrap_tools to avoid build failures involving
make bootstrap-tools

On the plus side, this also greatly reduces complexity

MFC after: 1 week
Pointyhat to: ngie
Reported by: Willem Jan Withagen <wjw@digiware.nl>
2015-04-21 10:17:25 +00:00
Ed Maste
2d8d8e3c03 Bump crunch BOOTSTRAPPING for ELF header offset fix in r277557 2015-04-17 16:02:49 +00:00
Warner Losh
c5e8e000fc RELEASEDIR was removed in FreeBSD 9.x, at the same time /boot/loader
stopped using kgzip in the release process. We no longer need to build
kgzip as a cross tool, and tests for RELEASEDIR are obsolete, so
remove both.

Differential Revision: https://reviews.freebsd.org/D2313
2015-04-17 15:55:13 +00:00
Enji Cooper
6c4f929517 Defeat race with MK_KERBEROS == yes introduced with bootstrap-tools
parallelization work done in r279197

- kerberos5/lib/libroken requires kerberos5/tools/make-roken to build
- kerberos5/tools/asn1_compile, kerberos5/tools/slc, and usr.bin/compile_et
  require kerberos5/lib/libroken and kerberos5/lib/libvers

This race is incredibly evident when cross-building sparc64 on
ref10-amd64.freebsd.org

MFC after: 1 week
Pointyhat to: ngie
2015-04-16 21:45:07 +00:00
Warner Losh
008bd7c6f6 People are still getting burned by the byacc upgraded, switch to
always doing byacc until someone figures out the more nuanced version
to switch off of.
2015-04-16 20:50:37 +00:00
Andrew Turner
b40d31d0a1 Only use the CROSS_BINUTILS_PREFIX tool if it exists.
Reviewed by:	emaste
Sponsored by:	The FreeBSD Foundation
2015-04-02 17:03:02 +00:00
Dimitry Andric
76e2c537bc Ensure the cross assembler, linker and objcopy are used for the build32
stage, just like for the regular world stage.

Reviewed by:	rodrigc, imp, bapt, emaste
MFC after:	1 week
Differential Revision: https://reviews.freebsd.org/D2187
2015-04-02 06:58:17 +00:00
Craig Rodrigues
5ab58881db Add --sysroot to the compiler flags for clang or gcc external toolchains
Before this fix, --sysroot was only added to the compiler flags if a clang
external toolchain was used.

Reviewed by:   imp
2015-03-26 23:37:03 +00:00
Warner Losh
996d8a0d17 Add some more explanation to the different phases of the build. 2015-03-25 21:59:36 +00:00
Ed Maste
b9a9d9ca9b Force MK_INCLUDES for the legacy stage
As legacy executes "make installincludes" we don't want it to be
disabled by a src.conf setting.

Reviewed by:	imp
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D2143
2015-03-25 20:57:08 +00:00
Andrew Turner
8daa81674e Start to import support for the AArch64 architecture from ARM. This change
only adds support for kernel-toolchain, however it is expected further
changes to add kernel and userland support will be committed as they are
reviewed.

As our copy of binutils is too old the devel/aarch64-binutils port needs
to be installed to pull in a linker.

To build either TARGET needs to be set to arm64, or TARGET_ARCH set to
aarch64. The latter is set so uname -p will return aarch64 as existing
third party software expects this.

Differential Revision:	https://reviews.freebsd.org/D2005
Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
2015-03-19 13:53:47 +00:00
Ed Maste
a8bed44af5 When cross-building with an external toolchain we still need a target strip
It is used by at least crunchide(1).
2015-03-17 19:35:50 +00:00
Bryan Drewery
215d02b78c Add LIB_CXX so that C++ libraries will use CXX to link.
This fixes C++ libraries not implicitly linking in libc++.  This is
generally not an issue because the final linking with the compiled binary
will involve CXX via PROG_CXX or other means.  It is however
inconsistent with libraries implicitly linking in libc and problematic
for trying to build libraries with '-z defs' to ensure all direct
dependencies are linked in.

libatf-c++ is currently the only consumer of this new feature.

Differential Revision:	https://reviews.freebsd.org/D2039
Reviewed by:	imp
Discussed with:	bapt
MFC after:	2 weeks
Sponsored by:	EMC / Isilon Storage Division
2015-03-17 15:16:36 +00:00
Ed Maste
4c4073fd06 Provide automatic cross-binutils path if no BINUTILS_BOOTSTRAP
The in-tree binutils does not support arm64, so will not work for the
forthcoming FreeBSD arm64 port. BROKEN_OPTIONS will include
BINUTILS_BOOTSTRAP, so provide a default CROSS_BINUTILS_PREFIX for this
case.

Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
2015-03-12 08:40:32 +00:00
Warner Losh
e22b751530 It appears that xlint isn't used in the build process, so it certainly
doesn't need to be a build tool.
2015-03-12 08:32:20 +00:00
Ed Maste
fe692231f8 Support CROSS_BINUTILS_PREFIX with in-tree compiler
Reviewed by:	bapt, imp
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D1974
2015-02-26 20:02:29 +00:00
Enji Cooper
3e3b707248 Fill in missing dependencies for dtrace related tools so the bootstrap-tools
compiles properly on older hosts

Pointyhat to: me
X-MFC with: r279197
MFC after: 2 weeks
2015-02-23 06:46:04 +00:00
Enji Cooper
aebc0e3579 Parallelize building bootstrap-tools
Differential Revision: https://reviews.freebsd.org/D1901
MFC after: 2 weeks
Reviewed by: ian
No serious objections from: imp
2015-02-23 05:28:17 +00:00
Jung-uk Kim
9c633deb70 Fix bootstrap on systems with old yacc with small MAXTABLE. 2015-02-18 23:10:15 +00:00
Peter Grehan
784b6cd5e9 Restore the ability to use clang as an external compiler. This was
inadvertently removed when support for external GCC was added.

Deprecate XFLAGS in favour of the newer XCFLAGS/XCXXFLAGS.

Tested with:	make universe, make CROSS_COMPILER_PREFIX=/usr/bin/ buildworld
Reviewed by:	imp, bapt
2015-02-18 19:27:51 +00:00
Rui Paulo
bd9cab6fb4 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
2015-02-17 23:13:45 +00:00
Rui Paulo
3b66656a20 Fix a typo when invoking tar(1) to create the debug distributions. 2015-02-16 23:29:56 +00:00
Colin Percival
11d9aa6707 Step 1 of eliminating the "games" distribution: Move binaries to /usr/bin;
update paths; and include everything in the "base" distribution.

The "games" distribution being optional made sense when there were more
games and we had small disks; but the "games-like" games were moved into
the ports tree a dozen years ago and the remaining "utility-like" games
occupy less than 0.001% of my laptop's small hard drive.  Meanwhile every
new user is confronted by the question "do you want games installed" when
they they try to install FreeBSD.

The next steps will be:

2. Removing punch card (bcd, ppt), phase-of-moon (pom), clock (grdc), and
caesar cipher (caesar, rot13) utilities.  I intend to keep fortune, factor,
morse, number, primes, and random, since there is evidence that those are
still being used.

3. Merging src/games into src/usr.bin.

This change will not be MFCed.

Reviewed by:	jmg
Discussed at:	EuroBSDCon
Approved by:	gjb (release-affecting changes)
2015-02-12 05:35:00 +00:00
Baptiste Daroussin
b48e3e7365 Remove remnant from texinfo 2015-02-11 08:26:36 +00:00
Glen Barber
cf4b80d882 Exclude 'tests' from DEBUG_DISTRIBUTIONS.
Sponsored by:	The FreeBSD Foundation
2015-02-10 01:35:26 +00:00
Rui Paulo
532000256b Merge xz 5.2.0.
This brings support for multi-threaded compression.  This brings close
N times faster compression where N is the number of CPU cores.
Because of this, liblzma now depends on libthr.

Soon libarchive will be modified to use the new lzma API.

Thanks to antoine@ for the exp-run.

Differential Revision:	 https://reviews.freebsd.org/D1786
Reviewed by:	bapt
2015-02-09 06:20:34 +00:00
Enji Cooper
31a741f473 Conditionalize building radius support into libpam, ppp, etc via
MK_RADIUS_SUPPORT

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division
2015-02-04 06:53:45 +00:00
Ed Maste
27051ca14b Restore addr2line to cross tools
Addr2line is not required for the build, and a per-arch binary is no
longer required with the switch to the ELF Tool Chain. However, building
these tools during the cross tools stage can be useful for developers
who cross build HEAD from stable/10, and adds very little to the build
time.

Reviewed by:	ian, imp
Differential Revision:	https://reviews.freebsd.org/D1583
2015-01-23 21:34:08 +00:00
Ed Maste
8b817932f7 Fix bootstrap on systems with old libdwarf and WITHOUT_CDDL
ELF Tool Chain tools need libelf and libdwarf.

Submitted by:	jmallett (earlier version)
Reviewed by:	jmallett
Sponsored by:	The FreeBSD Foundation
2015-01-21 21:49:03 +00:00
Ed Maste
da010b5606 Remove addr2line from cross elftoolchain tools list
It is not required, and there is no reason to install it just because it
came with the binutils cross tools.

Sponsored by:	The FreeBSD Foundation
2015-01-21 19:04:55 +00:00
Baptiste Daroussin
2d2813618c Remove GNU texinfo from base along with all info pages.
To be able to info pages consider installing texinfo from ports print/texinfo or
via pkg: pkg install texinfo

Differential Revision:	https://reviews.freebsd.org/D1409
Reviewed by:	emaste, imp (previous version)
Relnotes:	yes
2015-01-02 18:45:03 +00:00
Ed Maste
7d612a433e Use BINUTILS_BOOTSTRAP knob for binutils only
Previously it also disabled building elftoolchain bootstrap tools such as
strip(1).

Differential Revision:	https://reviews.freebsd.org/D1398
Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
2014-12-30 18:42:53 +00:00
Enji Cooper
851cc4c0c3 Update the text for building texinfo with build-tools to reflect the fact
that make install is being called as well

MFC after: 1 week
X-MFC with: r276052
2014-12-22 04:54:57 +00:00
Enji Cooper
492c2b1f49 Build selective portions of gnu/usr.bin/texinfo as part of build-tools to
ensure that building on a host without makeinfo (i.e. a host where
make delete-old -DWITHOUT_INFO was run), then building with MK_INFO == yes
doesn't manifest in build errors when building info pages

This manifested itself like the following when I was build testing an MFC
change on stable/10:

  makeinfo --no-split -I /usr/src/gnu/lib/libregex/doc -I /usr/src/gnu/lib/libregex/doc regex.texi  -o regex.info
  makeinfo: not found
  *** [regex.info] Error code 127

make[6]: stopped in /usr/src/gnu/lib/libregex/doc
1 error

Tested on a head VM without makeinfo installed and by building with MK_INFO=yes

MFC after: 1 week
2014-12-22 04:52:24 +00:00
Enji Cooper
9e7d291e9a Fix accidental MK_DEBUG_FILES=no addition to NXBMAKE in r275909
X-MFC with: r275909
Sponsored by: EMC / Isilon Storage Division
2014-12-18 18:30:33 +00:00
Enji Cooper
c8ed1da7c3 Don't build full clang toolchain or clang extras in stages 1-3 of buildworld
MFC after: 1 week
Reviewed by: dim (as part of a "larger" diff)
Phabric: D1336
Sponsored by: EMC / Isilon Storage Division
2014-12-18 18:26:10 +00:00
Enji Cooper
f703589ef4 Fix building/installing tests when TESTSBASE != /usr/tests
The work in r258233 hardcoded the assumption that tests was the last component
of the tests tree by pushing tests as an explicit prefix for the paths in
BSD.tests.dist and /usr was the prefix for all tests, per BSD.usr.dist and all
of the mtree calls used in Makefile.inc1. This assumption breaks if/when one
provides a custom TESTSBASE "prefix", e.g. TESTSBASE=/mytests .

One thing that r258233 did properly though was remove "/usr/tests" creation
from BSD.usr.dist -- that should have not been there in the first place. That
was an "oops" on my part for the work that was originally committed in r241823

MFC after: 2 weeks
Phabric: D1301
Reviewed by: imp
Sponsored by: EMC / Isilon Storage Division
2014-12-18 18:16:00 +00:00
Enji Cooper
f9d93ea775 Fix sporadic build failures due to race when running make installworld
when strip gets replaced at install time by adding it to ITOOLS for the
default usr.bin/xinstall STRIP_CMD

This will fix the failure noted in this Jenkins build step:
https://jenkins.freebsd.org/job/Build-UFS-image/688/

This will also fix the issue reported by alfred@ dealing with installing on
targets that differ from build hosts (e.g. installing on i386/i386 when built
on amd64/amd64)

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division
2014-12-17 20:02:07 +00:00
Brooks Davis
5f25ee9cef Add an UPDATING entry and warning about the change in r274807 to help users
transition to the new behavior.

Discussed with:	jmallett
Sponsored by:	DARPA, AFRL
2014-12-16 20:45:17 +00:00
Enji Cooper
46fe68cd1c Add makewhatis to ITOOLS if MK_MAN != no
This will fix installation with differing host targets in installworld, so
one can build i386/i386 on an amd64 host, then install to an i386/i386 target

Reported by: alfred
Phabric: D1280
MFC after: 1 week
2014-12-08 18:29:20 +00:00
Enji Cooper
317b32d45e Build gperf with xdev as part of _xb-bootstrap-tools
This will unbreak the build when "env MK_CXX=no make delete-old" has been run
on the build host post-r272849

Tested with the following commands:

/bin/sh
export __MAKE_CONF=/dev/null SRCCONF=/dev/null
export MK_CLANG=no MK_CLANG_BOOTSTRAP=no MK_GCC=yes MK_GCC_BOOTSTRAP=yes
export MK_GNUCXX=yes TARGET=armv6 TARGET_ARCH=arm make xdev
make toolchain
make xdev-build
sudo -E make xdev-install
/usr/armv6-freebsd/usr/bin/cc -dumpmachine | grep arm

X-MFC with: r272849
Reported by: Dan Raymond <draymond@foxvalley.net>, gjb
2014-12-08 09:09:50 +00:00
Enji Cooper
2bc62d50f6 Build gperf with xdev as part of _xb-bootstrap-tools to unbreak the build
if/when MK_CXX == no and make delete-old has been run on the build host,
post-r272849

Tested with the following command:

% sudo env MK_CLANG=no MK_CLANG_BOOTSTRAP=no MK_GCC=yes MK_GCC_BOOTSTRAP=yes \
           MK_GNUCXX=yes make xdev
2014-12-08 07:33:11 +00:00
Enji Cooper
1955a4bf0e Push the build-tools logic down into Makefile.inc1 so it's localized all in
one spot, and the potential for installing to the wrong DESTDIR is lower
2014-12-08 06:33:49 +00:00
Enji Cooper
da976f9d68 MFhead @ r275496 2014-12-05 07:48:25 +00:00
Ed Maste
3194293903 Build infrastructure for elftoolchain tools
Set WITH_ELFTOOLCHAIN_TOOLS in src.conf to use the elftoolchain version
of the following tools:

 * addr2line
 * elfcopy (strip / mcs)
 * nm
 * size
 * strings

Reviewed by:	bapt (earlier version)
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D1224
2014-12-01 17:49:42 +00:00
Enji Cooper
1d91a05822 share/termcap requires ex from usr.bin/vi in order to compile, and since usr.bin
comes after share in SUBDIR in Makefile.inc1, the build will fail when vi is not
installed on the build host

Run build-tools for usr.bin/vi and install ex, etc to WORLDTMP to enable building
share/termcap on hosts that don't have nvi installed on them
2014-11-29 01:53:27 +00:00
Enji Cooper
f541dd9b51 Implement MK_RADIUS_SUPPORT to make libradius and assorted support optional 2014-11-27 04:16:47 +00:00
Enji Cooper
7e57795a34 Don't try and build 32-bit versions of hyperv / bhyve 2014-11-26 06:54:17 +00:00
Brooks Davis
0e97688fe1 Slightly alter the handling of LOCAL_LIB_DIRS to skip addition of
directories in LOCAL_LIB_DIRS if they are subdirectories of directories
listed in LOCAL_DIRS.  This allows a hierarchy like:

	foo
	foo/lib
	foo/usr.bin
	foo/usr.sbin

to be supported with LOCAL_DIRS=foo LOCAL_DIRS=foo/lib.

MFC after:	1 week
Sponsored by:	DARPA, AFRL
2014-11-21 18:35:48 +00:00
Brooks Davis
e163efb6c7 Add a guard against attempting to invoke the buildenv target with -j# as
that silently exits rather than doing something useful.

MFC after:	1 week
Sponsored by:	DARPA, AFRL
2014-11-21 18:18:37 +00:00