aboutsummaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
...
* Disconnect powerpc from the default tinderbox for now.John Baldwin2019-10-141-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | The wrong toolchain was set in MAKE_PARAMS_powerpc, however, there are some other issues preventing powerpc from building in tinderbox: 1) There is no powerpc-gcc and powerpc-xtoolchain-gcc port that provides an external 32-bit powerpc GCC toolchain. 2) On other targets, the same toolchain can build all of the architectures for a given target. MIPS achieves this by always setting -mabi and -EB/-EL explicitly instead of relying on the compiler's default architecture. PowerPC might be able to do the same thing, but as of today, powerpc-gcc would be required for powerpc and powerpcspe and powerpc64-gcc would be required for powerpc64. Our existing logic for make universe does not permit per-MACHINE_ARCH toolchains. I tried hacking TARGETS_powerpc to only include powerpc64 when powerpc64-gcc was present, and while that skipped the 32-bit worlds, it tried to build all the kernels. Reported by: jeff Discussed with: imp Notes: svn path=/head/; revision=353523
* Wordsmith and simplifyWarner Losh2019-10-091-9/+7
| | | | | | | | | | | | | | | Simplify expressions as suggested by jhb. The extra indirection made sense in earlier versions of this patch, but not the final one. While here, apply suggestion from emaste for wording of universe. Also wordsmith awkwardly worded comment about when we effectively neuter the universe build for an architecture. Once llvm 9.0 has been vetted for mips and powerpc, I'll take them out of these lists. Notes: svn path=/head/; revision=353370
* Don't compile old gcc 4.2.1 archs by default in universe/tinderbox.Warner Losh2019-10-091-7/+31
| | | | | | | | | | | | | | | | | | Only compile clang supporting architectures of amd64, arm, arm64, i386, and riscv as part of universe. Compile the other architectures if MAKE_OBSOLETE_GCC is defined. In all cases, explicit lists of architectures in TARGETS= on the command line override. For mips, powerpc and sparc64, do the same thing we do for risvc when MAKE_OBSOLETE_GCC isn't defined and short-circuit their universe build with an echo saying to install the xtoolchain port or pkg. PR: 241134 Discussed on: arch@ (https://lists.freebsd.org/pipermail/freebsd-arch/2019-August/019674.html) Differential Revision: https://reviews.freebsd.org/D21942 Notes: svn path=/head/; revision=353367
* Add a top-level makeman targetKyle Evans2019-10-011-1/+2
| | | | | | | | Abstracting away the details of how src.conf(5) is generated is arguably a good thing; do so with a top-level makeman target. Notes: svn path=/head/; revision=352929
* pkgbase: Add the sub stage-packages targets to TGTSEmmanuel Vadot2019-07-241-1/+1
| | | | | | | | | | This helps when you don't want to run the dependencies targets. Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D20955 Notes: svn path=/head/; revision=350275
* Modernize the MAKE_JUST_KERNELS hint in the top-level makefile.Mark Johnston2019-05-241-7/+2
| | | | | | | | | | | | | It doesn't make sense to limit to -j12 anymore, build scalability is better than it used to be. Fold the hint into the description of the universe target. Reviewed by: imp MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D20342 Notes: svn path=/head/; revision=348241
* Fix a typo when sanity checking in the bootstrap-tools targetEnji Cooper2019-04-091-1/+1
| | | | | | | | | | | | | The path is incorrect for the linker in the error message. It should have been /usr/bin/ld, not /usr/bin/cc . Reviewed by: emaste Approved by: emaste (mentor) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D19852 Notes: svn path=/head/; revision=346056
* Update comment about 'universe' disk usageEric van Gyzen2018-11-101-3/+4
| | | | | | | | | | It's 167 GB now (or 81 GB with ZFS lz4). MFC after: 2 weeks Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=340328
* Add a top-level make target to rebuild all sysent files.Brooks Davis2018-11-081-0/+2
| | | | | | | | | | | | | | The sysent target is useful when changing makesyscalls.sh, when making paired changes to syscalls.master files, or in a future where freebsd32 sysent entries are built from the default syscalls.master. Reviewed by: bdrewery Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D17899 Notes: svn path=/head/; revision=340242
* Allow building world without inheriting $PATHAlex Richardson2018-11-051-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Inheriting $PATH during the build phase can cause the build to fail when compiling on a different system due to missing build tools or incompatible versions somewhere in $PATH. This has cause build failures for us before due to the jenkins slaves still running FreeBSD 10. Listing the tools we depend on explicitly instead of just using whatever happens to be in $PATH allows us to check that we don't accidentally add a new build dependency. All tools that do no need to be bootstrapped will now be symlinked to ${WORLDTMP}/legacy/bin and during the build phase $PATH will only contain ${WORLDTMP}. There is also a new variable "BOOTSTRAP_ALL_TOOLS" which can be set to force compiling almost all bootstrap tools instead of symlinking them. This will not bootstrap tools such as cp,mv, etc. since they may be used during the build and for those we should really only be using POSIX compatible options. Furthermore, this change is required in order to be able to build on non-FreeBSD hosts. While the same binaries may exist on Linux/MacOS they often accept different flags or produce incompatible output. Approved By: brooks (mentor) Differential Revision: https://reviews.freebsd.org/D16815 Notes: svn path=/head/; revision=340157
* Don't include the broken riscv64sf TARGET_ARCH in universe.Brooks Davis2018-10-091-1/+2
| | | | | | | | | | | | | | riscv64sf has been broken due to duplicate symbols for months and degrades the quality of universe builds. Remove it until this is resolved leaving a comment to it is not re-added. PR: 232085 Reviewed by: emaste Approved by: re (gjb, kib) Sponsored by: DARPA, AFRL Notes: svn path=/head/; revision=339272
* As discussed several times on freebsd-arch, start to decommission armeb.Warner Losh2018-07-171-1/+1
| | | | | | | | | | Remove armeb/arm from KNOWN_ARCHS. Remove armeb from arm universe targets. Differential Revision: https://reviews.freebsd.org/D16257 Notes: svn path=/head/; revision=336434
* tinderbox: If the clang lookup fails fallback to the old default behavior.Bryan Drewery2018-06-281-6/+8
| | | | | | | | | | | | | This fixes errors from the MK_CLANG_BOOTSTRAP/MK_LLD_BOOTSTRAP lookups to not force using XCC/XLD but to rather just build them as normal by allowing their own bootstrap logic to work. MFC after: 3 weeks X-MFC-with: r335711 r335769 Sponsored by: Dell EMC Notes: svn path=/head/; revision=335770
* Include existing MAKE_PARAMS_<target> when determining the universe toolchain.John Baldwin2018-06-281-2/+2
| | | | | | | | | | | | | | | This fixes a warning for each RISCV target during universe by passing in the required CROSS_TOOLCHAIN setting which will in turn set CROSS_BINUTILS_PREFIX correctly. It also ensures that a tinderbox build uses the correct compiler for riscv. Previously it was using the shared clang compiler instead of riscv64-gcc. Reviewed by: bdrewery Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D16049 Notes: svn path=/head/; revision=335769
* Fix typo in top-level MakefileDevin Teske2018-06-271-1/+1
| | | | | | | | | | | Submitted by: Ben Widawsky <ben.widawsky@intel.com> MFC after: 3 days X-MFC-to: stable/11 stable/10 Sponsored by: Smule, Inc. Differential Revision: https://reviews.freebsd.org/P186 Notes: svn path=/head/; revision=335750
* tinderbox: Only build clang/lld once if needed.Bryan Drewery2018-06-271-2/+79
| | | | | | | | | | | | | | Need to handle LLD_BOOTSTRAP separately (for archs like i386). This would be much better off with an off-by-default option like SHARED_TOOLCHAIN that universe force-enabled. Then a normal buildworld would store the toolchain there if enabled and otherwise in WORLDTMP with only the 1 arch selected. MFC after: 3 weeks Sponsored by: Dell EMC Notes: svn path=/head/; revision=335711
* tinderbox: Give details about kernel builds.Bryan Drewery2018-06-271-2/+7
| | | | | | | | | | | | This is a bit noisy now but it was silent before leading to wondering if it was doing anything. MFC after: 1 week Suggested by: rpokala Sponsored by: Dell EMC Notes: svn path=/head/; revision=335708
* Only look for NOTES as needed.Bryan Drewery2018-06-201-4/+4
| | | | | | | Sponsored by: Dell EMC Notes: svn path=/head/; revision=335460
* Add WITH_SYSTEM_LINKER, on by default, that avoids building lld when possible.Bryan Drewery2018-06-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This works similar to WITH_SYSTEM_COMPILER added in r300354. It only supports lld via WITH_LLD_BOOTSTRAP. When both SYSTEM_COMPILER and SYSTEM_LINKER logic passes then libclang will not build in cross-tools. If either check fails though then libclang is built. The .info is reworked to notify when libclang will be built since if either clang or lld needs to be rebuilt, but not the other, the notification can lead to confusion on why "clang is building". -fuse-ld= is not used with this method so some combinations of compiler and linker are expected to fail. A new 'make test-system-linker' target is added to see the logic results. Makefile.inc1: CROSS_BINUTILS_PREFIX support had to be moved higher up so that XLD could be set and MK_LLD_BOOTSTRAP disabled before checking SYSTEM_LINKER logic as done with SYSTEM_COMPILER. This also required moving where bsd.linker.mk was read since XLD needs to be set before parsing it. This creates a situation where src.opts.mk can not test LINKER_FEATURES or add LLD_BOOTSTAP to BROKEN_OPTIONS. Reviewed by: emaste (earlier version) Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D15894 Notes: svn path=/head/; revision=335450
* Restore arm, riscv, sparc64, and mips to UNIVERSE after r334128Ed Maste2018-05-241-2/+1
| | | | Notes: svn path=/head/; revision=334153
* libpmcstat: compile in events based on json descriptionMatt Macy2018-05-241-1/+2
| | | | Notes: svn path=/head/; revision=334128
* Don't read SRC_ENV_CONF for MAKEOBJDIRPREFIX guard.Bryan Drewery2018-03-031-3/+3
| | | | | | | | | | | | | | This is mostly to allow using MAKEOBJDIRPREFIX in src-env.conf on stable where src.sys.obj.mk is not going to be MFC'd. It is still valid on head but effectively a NOP due to MAKEOBJDIRPREFIX being handled differently in src.sys.obj.mk. Reported by: eadler MFC after: 1 week Sponsored by: Dell EMC Notes: svn path=/head/; revision=330364
* Add a note about why we have the conditional before includingWarner Losh2018-02-071-2/+6
| | | | | | | | | | | | | | | | bsd.compiler.mk. It's so fmake from older 9.x systems still works (still a supported build config, and having the note here will let us know when we can cull it more easily). Also pull in a related change from include to sinclude from arichardson@'s cross building work, as well as it's companion in Makefile.inc1 with a note about why we do the odd thing there. Submitted by: archardson Differential Revision: https://reviews.freebsd.org/D14241 Notes: svn path=/head/; revision=328975
* crossbuild: Make the CHECK_TIME variable work on LinuxAlex Richardson2018-02-061-1/+1
| | | | | | | | | | | | | Linux /usr/bin/find doesn't understand the -mtime -0s flag. Instead create a temporary file and compare that file's mtime to sys/sys/param.h to check whether the clock is correct. Reviewed By: jhb, imp Approved By: jhb (mentor) Differential Revision: https://reviews.freebsd.org/D14157 Notes: svn path=/head/; revision=328935
* tinderbox/universe: Don't execute KERNCONFS lookup if not needed.Bryan Drewery2017-12-071-0/+2
| | | | | | | Sponsored by: Dell EMC Notes: svn path=/head/; revision=326648
* Revert r325529: No longer needed after r325699.Bryan Drewery2017-12-071-1/+1
| | | | | | | Sponsored by: Dell EMC Notes: svn path=/head/; revision=326647
* Use TARGET_ARCH=riscv64 when TARGET=riscvWarner Losh2017-11-211-1/+1
| | | | | | | | | | The supported targets are riscv64 and riscv64sf. Use the former when building with a bare TARGET=riscv and it is the more common one. Sponsored by: Netflix Notes: svn path=/head/; revision=326071
* Move top-level AUTO_OBJ logic to Makefile.sys.inc.Bryan Drewery2017-11-181-28/+1
| | | | | | | Sponsored by: Dell Notes: svn path=/head/; revision=325973
* Remove build system support for lint.Warner Losh2017-11-171-1/+1
| | | | | | | Differential Revision: https://reviews.freebsd.org/D13124 Notes: svn path=/head/; revision=325954
* Rework r325568 so all 'make LINT' targets work.Bryan Drewery2017-11-131-1/+1
| | | | | | | | Reported by: ngie Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325776
* META_MODE: Avoid some logic if disabled and allow enabling with make argument.Bryan Drewery2017-11-111-3/+11
| | | | | | | Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325698
* AUTO_OBJ: Disable in non-build targets.Bryan Drewery2017-11-111-0/+27
| | | | | | | | | | | | | | | There's no reason to create object directories for targets like 'installworld' or 'distributeworld', and the others in this list. Specifying MK_AUTO_OBJ as a make argument allows circumventing this if needed for some reason. This fixes mergemaster creating a full object tree due to doing a 'make installconfig' tree walk. Reported by: Mark Millard Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325697
* Remove rerelease target that was added in r38978.Bryan Drewery2017-11-101-1/+1
| | | | | | | | | | I'm not sure what this target is but it doesn't exist now and doesn't seem to have existed before. Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325682
* native-xtools: Fix for GCC archs.Bryan Drewery2017-11-101-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | - This also adds in a _cleanobj step as needed. - This redirects TARGET/TARGET_ARCH to NXB_TARGET/NXB_TARGET_ARCH in Makefile.inc1 as the main build needs to be for MACHINE rather than TARGET. First build the toolchain and then use that as an external toolchain to build the needed directories and NXB_TARGET-toolchain, all as MACHINE files though via TARGET_TRIPLE=MACHINE_TRIPLE. The NXBDIRS is evaluated in the 'everything' submake as it needs to be based on TARGET's src.opts.mk values, such as MK_GCC=yes when building on a MK_CLANG=yes MACHINE. This can likely be changed to a specific _native-xtools-everything target later and the funky late evaluation of SUBDIR_OVERRIDE removed. X-MFC-With: r325001 Pointyhat to: bdrewery MFC after: 2 months Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325673
* Deal with src.conf for top-level MAKEOBJDIRPREFIX guard.Bryan Drewery2017-11-101-1/+2
| | | | | | | | | | | - Don't discard SRCCONF value since it may incorrectly have MAKEOBJDIRPREFIX in it. - Add note about src.conf not being a suitable place for MAKEOBJDIRPREFIX. Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325627
* universe: Fix creating LINT files with AUTO_OBJ.Bryan Drewery2017-11-081-1/+2
| | | | | | | | | | These are expected to be created in .CURDIR. Reported by: kib Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325568
* AUTO_OBJ: Don't create TARGET. directories during 'make universe'.Bryan Drewery2017-11-081-1/+1
| | | | | | | | Reported by: rpokala Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325529
* Simplify location of bootstrap make.Bryan Drewery2017-11-051-2/+5
| | | | | | | Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325413
* AUTO_OBJ is unsafe at the moment as it is for some reason removing /etc with ↵Bryan Drewery2017-11-021-1/+0
| | | | | | | _cleanobj. Notes: svn path=/head/; revision=325348
* Something is very wrongBryan Drewery2017-11-021-0/+1
| | | | Notes: svn path=/head/; revision=325347
* Add a 'make cleanuniverse'.Bryan Drewery2017-11-011-0/+1
| | | | | | | | | | This will remove all build files for the source directory when MK_UNIFIED_OBJDIR is enabled. Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325289
* Suggest TARGET/TARGET_ARCH, XDEV/XDEV_ARCH are depcrecated in r269031.Bryan Drewery2017-10-291-1/+1
| | | | | | | | MFC after: 2 weeks Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325083
* Change native-xtools to not install by default; add a native-xtools-install.Bryan Drewery2017-10-291-4/+8
| | | | | | | | | | | | | | | Without this the user has to mess with 'make -f Makefile.inc1 ...' to figure out where the files are installed in the OBJDIR and then they need to copy them to where they really wanted them. Using DESTDIR may be problematic after r325001 as well. The files will be installed to DESTDIR/NXTP where NXTP defaults to /nxb-bin. MFC after: 2 weeks Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325082
* build(7): Document native-xtools.Bryan Drewery2017-10-291-1/+3
| | | | | | | | MFC after: 2 weeks Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325080
* Fix xdev TARGET/TARGET_ARCH assertion and expand to native-xtools.Bryan Drewery2017-10-291-0/+16
| | | | | | | | | | | | The top of Makefile.inc1 requires TARGET/TARGET_ARCH be defined. Just building 'make xdev' would already set them, so this error was never triggered. Moving it to Makefile fixes the problem. MFC after: 2 weeks Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325079
* Disable AUTO_OBJ as a make argument to ensure it really is disabled.Bryan Drewery2017-10-291-1/+1
| | | | | | | | | | If the user sets this to yes as a make argument too we still want to ensure these do not get enabled. Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325078
* Support armv7 builds for userlandWarner Losh2017-10-051-1/+1
| | | | | | | | | | | | | | | | | | | Make armv7 as a new MACHINE_ARCH. Copy all the places we do armv6 and add armv7 as basically an alias. clang appears to generate code for armv7 by default. armv7 hard float isn't supported by the the in-tree gcc, so it hasn't been updated to have a new default. Support armv7 as a new valid MACHINE_ARCH (and by extension TARGET_ARCH). Add armv7 to the universe build. Differential Revision: https://reviews.freebsd.org/D12010 Notes: svn path=/head/; revision=324340
* Quote ${MAKE} when passing in env in case it contains spaces.Bryan Drewery2017-08-161-1/+1
| | | | | | | | | | Downstream we are wrapping MAKE with a limits(1) call which interferes with these non-quoted cases. Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=322585
* Make _TO_CPUARCH macro for ARCH to CPUARCH conversionsWarner Losh2017-08-121-2/+7
| | | | | | | | | | | | Consolidate all the regular expressions to convert from MACHINE_ARCH to MACHINE_CPUARCH into a variable and use that variable in preference to the almost identical copies in the tree (which should have been identical). Differential Revision: https://reviews.freebsd.org/D11986 Notes: svn path=/head/; revision=322429
* genericize target exclusion for missing external toolchainEd Maste2017-07-271-7/+15
| | | | | | | | | | | | | Previously we excluded riscv from make universe / tinderbox if the required xtoolchain package was not installed. Make that logic generic so that we can loop over multiple architectures, in preparation to test patches to have other architectures rely on external toolchain. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D11652 Notes: svn path=/head/; revision=321616