summaryrefslogtreecommitdiffstats
path: root/Makefile.inc1
Commit message (Collapse)AuthorAgeFilesLines
* Revert r267233 for now. PIE support needs to be reworked.bdrewery2014-08-191-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | 1. 50+% of NO_PIE use is fixed by adding -fPIC to INTERNALLIB and other build-only utility libraries. 2. Another 40% is fixed by generating _pic.a variants of various libraries. 3. Some of the NO_PIE use is a bit absurd as it is disabling PIE (and ASLR) where it never would work anyhow, such as csu or loader. This suggests there may be better ways of adding support to the tree. Many of these cases can be fixed such that -fPIE will work but there is really no reason to have it in those cases. 4. Some of the uses are working around hacks done to some Makefiles that are really building libraries but have been using bsd.prog.mk because the code is cleaner. Had they been using bsd.lib.mk then NO_PIE would not have been needed. We likely do want to enable PIE by default (opt-out) for non-tree consumers (such as ports). For in-tree though we probably want to only enable PIE (opt-in) for common attack targets such as remote service daemons and setuid utilities. This is also a great performance compromise since ASLR is expected to reduce performance. As such it does not make sense to enable it in all utilities such as ls(1) that have little benefit to having it enabled. Reported by: kib
* Create the native-xtools target. This target creates only the crossimp2014-08-181-1/+43
| | | | | | | | | | | | | | building toolchain for the host computer. This toolchain produces TARGET_ARCH and assumes the rest of the system contains libraries for the target. It is intended to be used in a "qemu-user jail" where all the binaries would otherwise be the target architecture's to build ports. However, emulation of the compilers is too slow, so we build native binaries for that. Rather than use the xdev produced binaries, with all their weird links and paths, these binaries use the native paths. They will not work unless installed into the qemu-user jail. Differential Revision: https://phabric.freebsd.org/D518 Reviewed by: sbruno@
* Fix atmconfig compilation when MK_ATM == yes and MK_BSNMP == nongie2014-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Makefile.inc1: Always compile gensnmptree with bootstrap-tools when MK_BSNMP != no instead of depending on a potentially stale tool installed on the build host sbin/atm/atmconfig/Makefile: - Always remove oid.h to avoid cluttering up the build/src tree. - Consolidate all of the RESCUE/MK_BSNMP != no logic under one conditional to improve readability - Remove unnecessary ${.OBJDIR} prefixing for oid.h and use ${.TARGET} instead of spelling out oid.h - Add a missing DPADD for ${LIBCRYPTO} when compiled MK_BSNMP == yes and MK_OPENSSL == yes and not compiling for /rescue/rescue sbin/atm/atmconfig/main.c: Change #ifndef RESCUE to #ifdef WITH_BSNMP in main.c to make it clear that we're compiling bsnmp support into atmconfig Approved by: jmmv (mentor) Phabric: D579 PR: 143830 MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
* Run dtrace in 32-bit mode when compiling 32-bit libraries.rpaulo2014-08-081-1/+2
| | | | MFC after: 3 days
* m4 now requires libohash, ensure it gets built when bootstrapping.ian2014-08-071-1/+2
|
* 10 has a new flex (2.5.37) and the config.h for unbound has been updated toroberto2014-08-071-4/+4
| | | | | | | | | | | | | | | | | | | | take this into account. Alas it breaks source upgrade from any version of 9 because flex is not built as a bootstrap-tools (it would be for older versions). That means "libunbound/configlexer.c" is built with the old flex but using config.h for the new one. Build is thus broken going from 9.* to 10. Make flex a bootstrap-tools entry if host is less than 1000033 to take into account the flex update in 10. Tested on both 9.2-RC3 and 9.3 by myself and dim@. Running buildworld in head but as both 10 and 11 has the new flex, it will not matter. Reviewed by: imp Approved by: des, imp MFC after: 1 week Phabric: D554
* Merge from CheriBSD:brooks2014-08-041-1/+2
| | | | | | | | | | | Make the sysinit tool a build tool rather than building in with /usr/bin/cc and running it from OBJDIR. (It will be moved to usr.bin once a manpage is written and a few style cleanups are done.) Split the makefile bits for Hans' kernel shim layer into their own includable kshim.mk. Move USB support into a .mk file so loaders can include it.
* Deprecate the use of XDEV and XDEV_ARCH and just use TARGET/TARGET_ARCHsbruno2014-07-231-9/+7
| | | | | | | | | | | | | | | | | for the xdev build target, which is awesome and totally works. Reapply svn R268377 with correct name of libsupc++ here as this does resolve one dependancy race when building the xdev target. the xdev target builds for amd64, i386, mips, mips64 and armv6 with this commit, must be built as root, must be built from /usr/src, must not have a /usr/obj and places the xdev tools in /usr/$TARGET_ARCH-freebsd the xdev target still leaves some assorted files strewn about your /usr/src when this is done and needs to be investigated further. Phabric: https://phabric.freebsd.org/D385 Submitted by: bsdimp
* Run mtree for BSD.tests.dist during make xdev-install, if the tests aredim2014-07-211-0/+4
| | | | | | | enabled (which they are in the default configuration). Otherwise, it will fail because ${XDDESTDIR}/usr/include/atf-c does not exist. MFC after: 3 days
* Make MK_GNUCXX mean "build the libstdc++ and libsupc++ libraries" andimp2014-07-101-1/+1
| | | | | | | nothing more. Force it to be "no" when MK_CXX is "no" to simplify usage. It no longer also means "build g++" since we no longer have a platform where that's interesting now that pc98 no longer needs clang and gcc, but not g++. pc98 now just uses clang after boot2 changes.
* Separate out the links creation from the other targets. This wasimp2014-07-101-6/+6
| | | | | | | supposed to have been done for the original commit, but somebody forgot. Pointy-hat-to: imp@
* Typo means that this couldn't have possibly fixed anything, so revertimp2014-07-081-1/+0
| | | | r268377.
* xdev builds libsupc++ and libstdc++ in a slightly strange way. Thisimp2014-07-071-0/+1
| | | | | cause a race to be exposed between the two. Compensate for this race by serializing the build/install of libstdc++ before libsupc++.
* Remove ia64 from the list of known architectures and add an entry tomarcel2014-07-021-1/+1
| | | | | | | | | | | | UPDATING. This is the first step towards the removal of ia64 from head. A buildworld for ia64 will now yield: % make buildworld make[1]: "/usr/src/Makefile.inc1" line 151: Unknown target ia64:ia64. While here, trim the ia64-specific additions from ObsoleteFiles.inc Discussed at: BSDcan
* Merge ^/projects/release-debugdist into ^/head:gjb2014-07-011-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r262491, r262493, r262516, r267345, r267397: r262491: Add DEBUG_DISTRIBUTIONS, and set it to include base and EXTRA_DISTRIBUTIONS, excluding 'doc', since the documentation distribution does not have corresponding debug information. Use DEBUG_DISTRIBUTIONS in the 'distributeworld installworld' and 'packageworld' targets, to reduce the number of occurances of excluding distributions that do not have .debug files. r262493: In release/Makefile, explicitly set WITHOUT_DEBUG_FILES=1 for dvdrom and cdrom targets. (Later reverted.) Exclude the *.debug.txz distributions from dvdrom and cdrom images, but include them for ftp distribution. r262516: Rename ${dist}.debug.txz to ${dist}-dbg.txz to prevent the following output: eval: ${base....}: Bad substitution eval: ${doc....}: Bad substitution eval: ${games....}: Bad substitution eval: ${lib32....}: Bad substitution This also follows other naming conventions seen in the wild. r267345: Explicitly set MK_DEBUG_FILES=no, which overrides the WITH_DEBUG_FILES=1 and WITHOUT_DEBUG_FILES=1 collisions previously experienced. This change allows us to create the {base,kernel}_debug.txz distributions without accidentally installing the *.debug files on the medium itself. r267397: Remove evaluations of MK_DEBUG_FILES where not needed. If DEBUG_DISTRIBUTIONS is empty, which is true if MK_DEBUG_FILES evaluates to 'no' above, the loop does nothing. MFC after: 1 month Tested on: head@r267801 Reviewed by: brooks [1], emaste, imp [1] [1] earlier version Sponsored by: The FreeBSD Foundation
* 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
OpenPOWER on IntegriCloud