summaryrefslogtreecommitdiffstats
path: root/Makefile.inc1
Commit message (Collapse)AuthorAgeFilesLines
* Rename the WITHOUT_VT_SUPPORT knob to WITHOUT_VTemaste2014-06-301-1/+1
| | | | | | | | | The _SUPPORT knobs have a consistent meaning which differs from the behaviour controlled by this knob. As the knob is opt-out and has not appeared in a release the impact should be low. Suggested by: imp, wblock MFC after: 1 week
* - Add a LOCAL_ITOOLS to allow adding additional tools required for thebdrewery2014-06-171-1/+3
| | | | | | | | installworld and distributeworld targets PR: 179562 Submitted by: Garrett Cooper <yaneurabeya@gmail.com> MFC after: 1 week
* Build vt(4) fonts during buildworldemaste2014-06-121-1/+6
| | | | | | | | vtfontcvt(8) is now built during buildworld, so can be used as a bootstrap tool to create vt(4) fonts from source .hex or .bdf font files, rather than having uuencoded binary fonts in the tree. Sponsored by: The FreeBSD Foundation
* Put the test suite in its own tests.txz distribution file.jmmv2014-06-101-0/+7
| | | | | | | | | | | | | | Force all the contents of /usr/tests to go into a separate distribution file so that users of binary releases can easily choose to not install it. To make this possible, we need two fixes: - bsd.subdir.mk needs to properly honor NO_SUBDIR in all cases so that we do not recurse into 'tests' subdirectories when we needn't. Otherwise, we end up with some Kyuafiles in base.txz. - etc/Makefile needs to skip installing tests in its 'distribute' target so that a Kyuafile doesn't leak into base.txz. Approved by: gjb
* In preparation for ASLR [1] support add WITH_PIE to support building with -fPIE.bdrewery2014-06-081-3/+3
| | | | | | | | | | | | | | | | This is currently an opt-in build flag. Once ASLR support is ready and stable it should changed to opt-out and be enabled by default along with ASLR. Each application Makefile uses opt-out to ensure that ASLR will be enabled by default in new directories when the system is compiled with PIE/ASLR. [2] Mark known build failures as NO_PIE for now. The only known runtime failure was rtld. [1] http://www.bsdcan.org/2014/schedule/events/452.en.html Submitted by: Shawn Webb <lattera@gmail.com> Discussed between: des@ and Shawn Webb [2]
* When libelf and libdwarf were updated, we didn't bump the minimalimp2014-05-231-3/+2
| | | | | version needed for CTF tools, so sometimes we'd use the host's CTF tools that didn't work. Be sure to bootstrap in that case.
* Fix build: Build libavl as prebuild-lib.delphij2014-05-221-0/+2
| | | | X-MFC-With: 266520
* Eliminate EARLY_BUILD flag. It is redundant and means MK_CLANG_FULL=noimp2014-05-101-4/+5
| | | | | | and MK_LLDB=no, so set those explicitly (now that we can do that). Simplify tests for these variables as well, since we know they will always be defined regardless of the phase of the build.
* Migrate NO_WARN to MK_WARN. Support legacy NO_WARN usage. Remove aimp2014-05-101-5/+5
| | | | | check for EARLY_BUILD because it isn't necessary (MK_WARN=no will always be defined for that).
* Document src.opts.mk changes and the decoupling of /etc/src.conf fromimp2014-05-061-1/+1
| | | | anything but the source tree.
* Use src.opts.mk in preference to bsd.own.mk except where we need stuffimp2014-05-061-2/+2
| | | | from the latter.
* Add appropriate quoting to allow building with a KERNCONFDIR containingthomas2014-05-031-2/+2
| | | | | | | spaces. PR: kern/162736 MFC after: 1 week
* Turns out this .if evaluated not in the context of the makedtb targetimp2014-04-301-3/+0
| | | | | sometimes due to Makefile expansion rules. Make the test for things being NULL elsewhere...
* Allow FDT_DTS_FILE to be a list, either in the makedtb target, or in aimp2014-04-301-17/+5
| | | | | | | kernel config file. If you also want to have a static DTB compiled into your kernel, however, it cannot be a list. We have no mechanism in the kernel for picking one, so that doesn't make sense and will result in a compile-time error.
* Add dependency for libm to libstdc++. This fixes high -j value buildsimp2014-04-281-0/+1
| | | | | | when not building with clang. Submitted by: ian@
* make_dtb.sh is designed to be used in a kernel build environment whereimp2014-04-261-1/+2
| | | | | | | MACHINE is defined to the target's value, not the host's value. However, in Makefile.inc1, it is still defined to be the host's value. Make the makedtb target work by expanding TARGET in the existance test, and passing MACHINE=$TARGET in the call to make_dtb.sh
* Eliminate NO_INCS. It is used one place, and MK_TOOLCHAIN=no willimp2014-04-251-2/+2
| | | | | handle the job just as well. Opt for simplicity rather than one more option.
* Spell NO_PROFILE= as MK_PROFILE=no.imp2014-04-251-6/+6
|
* Remove NO_CTF, exccept as an undocumented compatibilityimp2014-04-251-7/+7
| | | | | | option. Convert all other uses to MK_CTF=no. Set MK_CTF=no rather than the indirect WITHOUT_CDDL in filemon regression. It is expected that NO_CTF will be removed in FreeBSD 12 entirely.
* Separate out enabling building clang and/or gcc for the system andimp2014-04-181-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Up the minimum system to build FreeBSD current to 8.0-RELEASE. Theimp2014-04-131-13/+3
| | | | | | | | | | issues with vendors that needed 7.x support have been resolved. Many vendors are still using 8.x build platforms, however, so bumping this up to 9.0 will have to wait until that is resolved. Actual support for building from 8.x still relies on those vendors fixing bugs that are present as most developers have moved onto 9.x or newer platforms. Reviewed by: marcel@
* Determine whether to build clang and its bootstrap tools the sameimp2014-04-131-1/+1
| | | | | | | | | | way. This allows a clang bootstrap to happen, even when WITHOUT_CLANG is defined. This is a minimal version of a more extensive change which can be MFC'd more easily. However, we have to also test to see if we're building clang as not cc, since the bootstrap for that needs these cross tools and it is easier to build them in just one place. MFC after: 1 week
* Prevent XDTP from being a relative pathbapt2014-04-041-1/+5
| | | | | | | | XDTP is used as the default SYSROOT for clang and thus should be an absolute path. PR: arm/188249 Submitted by: Edgar Martinez <wink15987@gmail.com> Reviewed by: imp
* XDDESTDIR should not be set by the user, instead the user might want to tweakbapt2014-04-031-1/+1
| | | | | | XDTP and let the standard DESTDIR decide where to install. Discussed with: imp
* Some xdev fixes:bapt2014-04-031-4/+9
| | | | | | | | | | | | | | | | | | - if TARGET_ARCH is not defined and XDEV_ARCH is defined then early define TARGET_ARCH to the valud of XDEV_ARCH: This allow the xdev-build target to be able to correctly chose the compiler it needs to build - Allow overwriting XDTP to allow a user to not chose where the xdev env will live in - Fix build for gcc only xdev (like ia64) by providing the proper -B to the toolchain and not relying on gcc being installed already in base - Fix TOOLS_PREFIX so the generated toolchain has the right default sysroot when installed intead of getting the DESTDIR one - Fix supporting DESTDIR - Also overwrite CXX (needed for cross building c++ libraries with clang) and CPP (needed to cross build some libraries when gcc is the target default compiler but gcc is not installed on the building host) Discussed with: imp
* It is possible that MK_GNUCXX is "yes" but MK_CXX is "no" so make sureimp2014-04-011-1/+1
| | | | MK_CXX isn't "no" before building these libraries.
* Ensure make xdev respect which compiler is CCbapt2014-04-011-6/+7
| | | | and which compilers should be built according to standard build options
* There's no need to guess at the COMPILER_TYPE to pass it down. Weimp2014-03-301-27/+9
| | | | | | | | | | guess wrong for buildkernel when CC=gcc49, say. Eliminate all the guessing. COMPILER_TYPE propigates properly on its own, if specified, and we guess it correctly otherwise lower in the build. Also, fix conditionals for armv6hf when using an external compiler chain. They were broken before, but unused. Also, prefer checking the compiler type over CLANG_IS_CC since the latter is only supposed to be used to determine what symlinks to install (more fixes to follow).
* Move stray targets out of the xdev section.imp2014-03-301-2/+2
|
* Kill NO_TESTS and use MK_TESTS=no when we want to skip them.imp2014-03-301-19/+19
|
* Allow the build system to safely set MK_FOO to avoid the ambiguityimp2014-03-301-9/+9
| | | | | | | | 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.
* When building g++, we need to build libsupc earlier to avoid a raceimp2014-03-301-0/+3
| | | | | with libproc. Not sure why people didn't see this before now, but I get it often for higher (20-30) -j builds, but never for -j1 builds.
* Only set XDDESTDIR if it wasn't already set to allow people toimp2014-03-281-1/+1
| | | | override it.
* Add a new ARM TARGET_ARCH, armv6hf. This is considered experimental.andrew2014-03-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix kern/187712: config(8) does not respect KERNCONFDIR.asomers2014-03-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | The impact of this bug is that you cannot build a kernel if both of the following are true: 1) The kernel config file is in a non-default location 2) The kernel config file uses the "include" statement from config(5). usr.sbin/config/main.c usr.sbin/config/config.8 usr.sbin/config/config.h usr.sbin/config/lang.l Added a "-I path" option to config(8). By analogy to cc(1), it adds an extra path in which the "include" statement will search for files. Makefile.inc1 Pass "-I ${KERNCONFDIR}" to config(8). PR: kern/187712 Reviewed by: will, imp (previous version) MFC after: 3 weeks Sponsored by: Spectra Logic Corporation
* With the more generous footprints today, it makes little sense to useimp2014-03-141-0/+3
| | | | UFS1 by default any more. Switch to UFS2.
* Remove IPX support.glebius2014-03-141-5/+1
| | | | | | | | | | | 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.
* Use ${MAKE} so that we always use the same version/implementationmarcel2014-03-021-2/+2
| | | | of make.
* Integrate device-tree upstream files into the build process:imp2014-02-281-5/+5
| | | | | | | | | | | | | | (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.
* Merge from CheriBSD:brooks2014-01-301-9/+5
| | | | | | | | | | | | commit 1b41f6de7ca09e04fdc6f66bc478ea6c981a41b9 Author: Brooks Davis <brooks@one-eyed-alien.net> Date: Mon Jan 27 22:59:02 2014 +0000 Now that mtree is always nmtree use it as mtree Tested on: ref9-amd64 X-MFC after: never Sponsored by: DARPA, AFRL
* Fix the build so -DNO_TESTS is passed in various phases that don'tasomers2014-01-241-8/+14
| | | | | | | | | | | require tests in order to build or install. Crucially, don't try to install tests during the lib32 install phase. This commit supersedes r261081, which fixed the lib32 install phase problem, but didn't fix other phases. Submitted by: Garrett Cooper Reviewed by: sjg MFC after: 13 days
* Replace the old unix_seqpacket and unix_seqpacket_exercise tests, whichasomers2014-01-231-1/+1
| | | | | | | | | | | were a little broken and not automatable, with unix_seqpacket_test. It's coverage is a superset of the old tests and it uses ATF. It includes test cases for bugs kern/185813 and kern/185812. PR: kern/185812 PR: kern/185813 Sponsored by: Spectra Logic MFC after: 2 weeks
* Generate /var/db/services.db during 'make distribution' so that it isjhb2014-01-221-1/+1
| | | | | | | | present during new installs. Update etcupdate and mergemaster to ignore the generated file. Tested by: gjb (release build) MFC after: 1 month
* Remove aicasm as a build dependency. It made sense when the ahc and ahdscottl2014-01-071-9/+0
| | | | | | | | | | | | drivers and their firmware were under active development, but those days have passed. The firmware now exists in pre-compiled form, no longer dependent on it's sources or on aicasm. If you wish to rebuild the firmware from source, the glue still exists under the 'make firmware' target in sys/modules/aic7xxx. This also fixes the problem introduced with r257777 et al with building kernels the old fashioned way in sys/$arch/compile/$CONFIG when the ahc/ahd drivers were included.
* Please welcome casperd daemon. It (and its services) will be responsible forpjd2013-12-021-1/+7
| | | | | | | | | | | | | | | | | | | 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
* Move my simple logging API to a separate library. It is now already usedpjd2013-12-011-1/+3
| | | | | | | | | | by hastctl(8), hastd(8) and auditdistd(8) and will soon be also used by casperd(8) and its services. There is no documentation and pjdlog.h header file is not installed in /usr/include/ to keep it private. Unfortunately we don't have /lib/private/ at this point, only /usr/lib/private/, so the library is installed in /lib/. Sponsored by: The FreeBSD Foundation
* Attempt to move the POSIX iconv* symbols out of runtime linker space.peter2013-11-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | FreeBSD systems usually implemented this as a third party module and our implementation hasn't played as nicely with the old way as it could have. To that end: * Rename the iconv* symbols in libc.so.7 to have a __bsd_ prefix. * Provide .symver compatability with existing 10.x+ binaries that referenced the iconv symbols. All existing binaries should work. * Like on Linux/glibc systems, add a libc_nonshared.a to the ldscript at /usr/lib/libc.so. * Move the "iconv*" wrapper symbols to libc_nonshared.a This should solve the runtime ambiguity about which symbols resolve to where. If you compile against the iconv in libc, your runtime dependencies will be unambiguous. Old 9.x libraries and binaries will always resolve against their libiconv.so.3 like they did on 9.x. They won't resolve against libc. Old 10.x binaries will be satisified by the .symver helpers. This should allow ports to selectively compile against the libiconv port if needed and it should behave without ambiguity now. Discussed with: kib
* Move all atf directories to the tests mtree.jmmv2013-11-161-1/+1
| | | | | | | | | This is to ensure that test-related directories don't get needlessly created (and later deleted) when MK_TESTS=no. Problem found by jhb@. Approved by: rpaulo (mentor)
* Strip the -pN patch level from the VERSION string which gets encoded intocperciva2013-11-131-1/+1
| | | | | | | | | | CTF data. Otherwise FreeBSD Update builds think every kernel file has changed every time there's a security advisory, since the FreeBSD Update build code isn't smart enough to look inside CTF data to ignore those changes. Pointy hat to: cperciva MFC after: 1 day, or before the next BETA
* This change builds kernel tools based on the same assumption as buildingian2013-11-091-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the kernel itself: If building for the same architecture as the build host, the kernel build assumes that the host toolchain is capable of building the kernel. If it's not, "make kernel-toolchain" will bootstrap a new set of tools that will work. With this change the same assumptions are made for building kernel tools, and the existing host toolchain is used to do the build (notably, the build doesn't link the tools with the legacy libraries, which may not even exist). If ever for some reason the host toolchain isn't capable of building the kernel tools, then doing a "make kernel-toolchain" will bootstrap newer tools to get the job done. So when built as part of buildworld or kernel-toolchain, the kernel tools are built using the XMAKE (via BMAKE) commands and environment. When built as part of building just the kernel on a same-target host, the tools are built using the new KTMAKE commands and environment. What doesn't jump out at you in the diffs is that the difference between BMAKE and KTMAKE is that BMAKE contains this magic line which changes how the build is done because it changes what files get included for .include <bsd.prog.mk> and other standard includes: MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}" and KTMAKE doesn't, and contains this instead: TOOLS_PREFIX=${WORLDTMP} Hopefully this brings the "how to build aicasm with the right toolchain" saga to a conclusion that works in all usage scenarios that have historically been supported.
OpenPOWER on IntegriCloud