aboutsummaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
...
* WITH_META_MODE: Whitelist targets that are meta-mode-safe.Bryan Drewery2016-06-141-6/+24
| | | | | | | | | | | | | | META_TGT_WHITELIST is added to define which build targets are safe for meta mode. See comments for more details. This fixes 'make delete-old-libs' to properly show the interactive prompt. Approved by: re (implicit) Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=301887
* Add more missing .PHONYBryan Drewery2016-06-141-24/+24
| | | | | | | | Approved by: re (implicit) Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=301885
* Only include bsd.compiler.mk for bmakes that use -m .../share/mk by default.Bryan Drewery2016-06-051-0/+2
| | | | | | | | | | Otherwise they error when trying to include the file, which also has its own dependencies. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=301472
* WITH_META_MODE: Enable bmake's missing meta rebuild featureBryan Drewery2016-06-051-0/+5
| | | | Notes: svn path=/head/; revision=301466
* Fix bmake version upgrade logic to use the new bmake.Bryan Drewery2016-06-051-3/+6
| | | | | | | | | | | | Otherwise it was only used on the next build. This was a flaw in r295980. MFC after: 3 days Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=301465
* Make armv6 hard float abi by default. Kill armv6hf.Warner Losh2016-05-181-2/+2
| | | | | | | | | | Allow CPUTYPE=soft to build the current soft-float abi libraries. Add UPDATING entry to announce this. Approved by: re@ (gjb) Notes: svn path=/head/; revision=300119
* Follow-up r298220: Don't pass down META_MODE which will still enable it.Bryan Drewery2016-04-181-0/+1
| | | | | | | | Reported by: Nikolai Lifanov <lifanov@mail.lifanov.com> Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=298221
* META_MODE: Disable during installworld and similar.Bryan Drewery2016-04-181-0/+8
| | | | | | | | | | | | META_MODE may create cookies during staging of files to WORLDTMP that would also prevent installation of the files to the final DESTDIR, since the cookie already exists. This is not yet the case but will be soon. Prevent other similar issues by disabling META_MODE for any top-level install targets. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=298220
* MFHGlen Barber2016-04-161-3/+3
|\ | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=298092
| * Mark some more .PHONY targets.Bryan Drewery2016-04-141-2/+2
| | | | | | | | | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=297993
| * Define the *soft targets properly.Bryan Drewery2016-04-141-1/+1
| | | | | | | | | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=297988
* | MFHGlen Barber2016-04-041-1/+1
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=297567
| * Remove the old depend (mkdep) code and make FAST_DEPEND the one true way.Bryan Drewery2016-03-301-1/+1
| | | | | | | | | | | | | | | | | | | | Reviewed by: emaste, hselasky (partial), brooks (brief) Discussed on: arch@ Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D5742 Notes: svn path=/head/; revision=297434
* | MFHGlen Barber2016-03-141-4/+7
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=296869
| * Use the newly minted Makefile.libcompat to implement libsoft librariesWarner Losh2016-03-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | for the armv6 ABI switch. This also make WITH_LIBSOFT functional on the arm platform. As a transition thing, this seems to work even without switching the ABI (we basically build the same libraries twice when MK_LIBSOFT=yes until the ABI cut over next month). MK_LIBSOFT remains default no. Notes: svn path=/head/; revision=296779
| * Avoid MK_TESTS error on stable/10 by just preventing SUBDIR recursion.Bryan Drewery2016-03-111-1/+1
| | | | | | | | Notes: svn path=/head/; revision=296676
| * Avoid bmake upgrade NO_MAN warning by just setting MAN to empty.Bryan Drewery2016-03-111-1/+1
| | | | | | | | | | | | | | Suggested by: imp Notes: svn path=/head/; revision=296675
| * Revert r296645 as it breaks stable/10->head builds.Bryan Drewery2016-03-111-2/+1
| | | | | | | | Notes: svn path=/head/; revision=296671
| * FAST_DEPEND: Use .dinclude to enable full .depend logic in bmake.Bryan Drewery2016-03-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The inclusion of .MAKE.DEPENDFILE (.depend) has special logic in make to ignore stale/missing dependencies. bmake 20160220 added a '.dinclude' directive that uses the special logic for .depend when including the file. This fixes a build error when a file is moved or deleted that exists in a .depend.OBJ file. This happened in r292782 when sha512c.c "moved" and an incremental build of lib/libmd would fail with: make: don't know how to make /usr/src/lib/libcrypt/../libmd/sha512c.c. Stop Now this will just be seen as a stale dependency and cause a rebuild: make: /usr/obj/usr/src/lib/libmd/.depend.sha512c.o, 13: ignoring stale .depend for /usr/src/lib/libcrypt/../libmd/sha512c.c --- sha512c.o --- ... This rebuild will only be done once since the .depend.sha512c.o will be updated on the build with the -MF flags. This also removes -MP being passed for the .depend.OBJ generation (which would create fake targets for system headers) since the logic is no longer needed to protect from missing files. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=296646
| * Fix bmake upgrade NO_MAN warnings.Bryan Drewery2016-03-111-1/+2
| | | | | | | | | | | | | | | | MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=296645
| * Fix make -n upgrade_checks.Bryan Drewery2016-03-111-1/+1
| | | | | | | | | | | | | | | | MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=296643
* | MFHGlen Barber2016-03-101-1/+1
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=296625
| * Don't ever create object directories here with MK_AUTO_OBJ.Bryan Drewery2016-03-081-1/+1
| | | | | | | | | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=296549
* | MFHGlen Barber2016-03-021-4/+3
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=296318
| * Add order for installworld/installkernel.Bryan Drewery2016-02-241-0/+1
| | | | | | | | | | | | | | | | MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=296014
| * Support a WANT_MAKE_VERSION.Bryan Drewery2016-02-241-4/+2
| | | | | | | | | | | | | | | | | | | | This will be used soon for .dinclude support in FAST_DEPEND. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=295980
* | Include a 'package-pkg' target, intended for use forGlen Barber2016-02-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | architectures we do not provide upstream pkg(8) packages. This is not tied to anything as-is, and likely will break your system if used (based on experience with testing with powerpc). There is an overwhelming amount of evil happening here, so until the issues are fixed, it will not be tied into the 'packages' target. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=295955
* | MFHGlen Barber2016-02-101-1/+2
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=295458
| * Fix make universe when running with non POSIX/C locales using a locale sensitiveBaptiste Daroussin2016-02-101-1/+2
| | | | | | | | | | | | | | | | | | | | pattern Reported by: many Submitted by: jilles Notes: svn path=/head/; revision=295455
* | Add logic to rotate the package repository, keyed on PKG_VERSION,Glen Barber2016-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | and create a 'latest' symlink to the PKG_VERSION repository path. Suggested by: des Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=295447
* | Rename the signpackages target to sign-packages, and include it in theDag-Erling Smørgrav2016-02-081-1/+1
| | | | | | | | | | | | | | packages meta-target so 'make packages' now does everything. Notes: svn path=/projects/release-pkg/; revision=295397
* | Split the packages target into stage-packages and create-packages to makeDag-Erling Smørgrav2016-02-081-2/+3
| | | | | | | | | | | | | | | | it possible to roll new packages from an existing build without having to restage them. Notes: svn path=/projects/release-pkg/; revision=295396
* | MFHGlen Barber2016-02-081-3/+8
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=295394
| * Simplify running the FreeBSD test suiteEnji Cooper2016-02-071-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace `make regress` (legacy test make target) and `make test` (incomplete test make target added with the FreeBSD test suite) with make check as it's consistent with other open source projects. `make check` defaults to running tests from `.OBJDIR`, but can be overridden with the `CHECKDIR` variable. Add `make checkworld` target to simplify running the FreeBSD test suite from `TESTSBASE` (i.e. the top-level tests directory), similar to buildworld. Document `make check` and `make checkworld` in build(7). Other minor changes: - Rename intermediate file (`Kyuafile.auto`) to `Kyuafile` to simplify `make check`. - Remove terse warnings attached to `beforetest`/`aftertest`. - Add kyua binary check to check target in suite.test.mk; error out if it's not found The MFC is [partly] contingent on other build related changes being MFCed. Differential Revision: https://reviews.freebsd.org/D4406 MFC after: 2 months X-MFC to: stable/10 Relnotes: yes Reviewed by: bdrewery, Evan Cramer <eccramer@gmail.com> Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=295380
* | MFHGlen Barber2016-02-021-1/+8
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=295172
| * Add order for installworld/distribution.Bryan Drewery2016-02-021-0/+1
| | | | | | | | | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=295161
| * Add make universe targets "kernels" and "worlds".Ian Lepore2016-01-311-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "make kernels" is now shorthand for "make universe -DMAKE_JUST_KERNELS" "make worlds" is now shorthand for "make universe -DMAKE_JUST_WORLDS" The kernels target includes modules (unless you add -DNO_MODULES). And of course you can still add all the other universe options, such as "make kernels TARGETS=arm" to build kernels for all arm arches, or TARGET_ARCH=armv6 to build all armv6 kernels, etc. Reviewed by: imp Notes: svn path=/head/; revision=295099
* | Add 'stagekernel' target, which invokes 'distributekernel'Glen Barber2016-01-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with -DNO_ROOT to create the METALOG mtree(8) file. Separate the default STAGEDIR for world (WSTAGEDIR) and kernel (KSTAGEDIR). Fix the 'create-kernel-packages' target to work properly. Evaluate if 'kernel' is set when invoking mtree-to-plist.awk, which splits the kernel and kernel.debug into separate plist files. Fix METALOG creation when building/packaging multiple kernels. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=294942
* | Add a 'signpackages' target, which creates the pkg repositoryGlen Barber2016-01-251-1/+1
| | | | | | | | | | | | | | | | | | | | metadata files and uses the path of PKGSIGNKEY for signing, if set. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=294733
* | MFHGlen Barber2016-01-121-1/+1
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=293718
| * Always try to upgrade to bmake if not already using it.Bryan Drewery2016-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is mostly targetting stable/10 which requires bmake to build and has issues upgrading from <10. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division PR: 198062 Notes: svn path=/head/; revision=293342
| * Revert r293286. It was not intended to come in yet.Bryan Drewery2016-01-071-0/+7
| | | | | | | | Notes: svn path=/head/; revision=293288
| * Move the MAKEOBJDIRPREFIX value guard to sys.mk and expand to MAKEOBJDIR.Bryan Drewery2016-01-071-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will ensure that the variable was not set as a make override, in make.conf, src.conf or src-env.conf. It allows setting the value in src-env.conf when using WITH_AUTO_OBJ since that case properly handles changing .OBJDIR (except if MAKEOBJDIRPREFIX does not yet exist which is being discussed to be changed). This change allows setting a default MAKEOBJDIRPREFIX via local.sys.env.mk. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=293286
* | MFH r289384-r293170Glen Barber2016-01-041-57/+23
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=293172
| * Update advice on obj disk space requirementsEd Maste2015-12-141-2/+2
| | | | | | | | | | | | | | | | The Makefile is not the best place for this information, but at least it is now less out of date. Notes: svn path=/head/; revision=292217
| * Start support for the RISC-V 64-bit architecture developed by UC Berkeley.Ruslan Bukin2015-12-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RISC-V is a new ISA designed to support computer research and education, and is now become a standard open architecture for industry implementations. This is a minimal set of changes required to run 'make kernel-toolchain' using external (GNU) toolchain. The FreeBSD/RISC-V project home: https://wiki.freebsd.org/riscv. Reviewed by: andrew, bdrewery, emaste, imp Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D4445 Notes: svn path=/head/; revision=292124
| * Fix errors being ignored in many phases of the build since the bmake ↵Bryan Drewery2015-12-011-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | integration. Say it with me, "I will not chain commands with && in Makefiles" This was originally fixed and explained quite well by bde@ in r36074. The initial bmake integration caused 'set -e' to stop being used which lead to r252419. Later 'set -e' expectations were fixed with bmake in r254980. Because of the && here, errors would be ignored when building in parallel and a dependency failed. Such as bootstrap-tools since it builds everything in parallel. If any tool failed in obj/depend/all, it would just ignore the error and continue to build. This later would result in cascaded errors that only confused the real issue. This could also cause commands after the failed command to still execute, leading to more confusion. This should be fine if the command is in a sub-shell such as: (cmd1 && cmd2) This reverts r252419. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=291605
| * Rename META_MODE option to DIRDEPS_BUILDSimon J. Gerraty2015-11-141-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | This allows META_FILES option to be renamed META_MODE. Also add META_COOKIE_TOUCH for use in targets that can benefit from a cookie when in meta mode. Differential Revision: https://reviews.freebsd.org/D4153 Reviewed by: bdrewery Notes: svn path=/head/; revision=290816
| * Move 'make cleandir' from Makefile to Makefile.inc1.Bryan Drewery2015-11-091-33/+1
| | | | | | | | | | | | | | | | | | | | | | This leads the way for fixing cross-build cleanup, and eventually replacing 'cleandir' with it during the build. Sponsored by: EMC / Isilon Storage Division MFC after: 2 weeks Notes: svn path=/head/; revision=290626
| * Add built-in ccache build support via WITH_CCACHE_BUILD option.Bryan Drewery2015-11-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ccache is mostly beneficial for frequent builds where -DNO_CLEAN is not used to achieve a safe pseudo-incremental build. This is explained in more detail upstream [1] [2]. It incurs about a 20%-28% hit to populate the cache, but with a full cache saves 30-50% in build times. When combined with the WITH_FAST_DEPEND feature it saves up to 65% since ccache does cache the resulting dependency file, which it does not do when using mkdep(1)/'CC -E'. Stats are provided at the end of this message. This removes the need to modify /etc/make.conf with the CC:= and CXX:= lines which conflicted with external compiler support [3] (causing the bootstrap compiler to not be built which lead to obscure failures [4]), incorrectly invoked ccache in various stages, required CCACHE_CPP2 to avoid Clang errors with parenthesis, and did not work with META_MODE. The option name was picked to match the existing option in ports. This feature is available for both in-src and out-of-src builds that use /usr/share/mk. Linking, assembly compiles, and pre-processing avoid using ccache since it is only overhead. ccache does nothing special in these modes, although there is no harm in calling it for them. CCACHE_COMPILERCHECK is set to 'content' when using the in-tree bootstrap compiler to hash the content of the compiler binary to determine if it should be a cache miss. For external compilers the 'mtime' option is used as it is more efficient and likely to be correct. Future work may optimize the 'content' check using the same checks as whether a bootstrap compiler is needed to be built. The CCACHE_CPP2 pessimization is currently default in our devel/ccache port due to Clang requiring it. Clang's -Wparentheses-equality, -Wtautological-compare, and -Wself-assign warnings do not mix well with compiling already-pre-processed code that may have expanded macros that trigger the warnings. GCC has so far not had this issue so it is allowed to disable the CCACHE_CPP2 default in our port. Sharing a cache between multiple checkouts, or systems, is explained in the ccache manual. Sharing a cache over NFS would likely not be worth it, but syncing cache directories between systems may be useful for an organization. There is also a memcached backend available [5]. Due to using an object directory outside of the source directory though you will need to ensure that both are in the same prefix and all users use the same layout. A possible working layout is as follows: Source: /some/prefix/src1 Source: /some/prefix/src2 Source: /some/prefix/src3 Objdir: /some/prefix/obj Environment: CCACHE_BASEDIR='${SRCTOP:H}' MAKEOBJDIRPREFIX='${SRCTOP:H}/obj' This will use src*/../obj as the MAKEOBJDIRPREFIX and tells ccache to replace all absolute paths to be relative. Using something like this is required due to -I and -o flags containing both SRC and OBJDIR absolute paths that ccache adds into its hash for the object without CCACHE_BASEDIR. distcc can be hooked into by setting CCACHE_PREFIX=/usr/local/bin/distcc. I have not personally tested this and assume it will not mix well with using the bootstrap compiler. The cache from buildworld can be reused in a subdir by first running 'make buildenv' (from r290424). Note that the cache is currently different depending on whether -j is used or not due to ccache enabling -fdiagnostics-color automatically if stderr is a TTY, which bmake only does if not using -j. The system I used for testing was: WITNESS Build options: -j20 WITH_LLDB=yes WITH_DEBUG_FILES=yes WITH_CCACHE_BUILD=yes DISK: ZFS 3-way mirror with very slow disks using SSD l2arc/log. The arc was fully populated with src tree files and ccache objects. RAM: 76GiB CPU: Intel(R) Xeon(R) CPU L5520 @2.27GHz 2 package(s) x 4 core(s) x 2 SMT threads = hw.ncpu=16 The WITH_FAST_DEPEND feature was used for comparison here as well to show the dramatic time savings with a full cache. buildworld: x buildworld-before + buildworld-ccache-empty * buildworld-ccache-full % buildworld-ccache-full-fastdep # buildworld-fastdep +-------------------------------------------------------------------------------+ |% * # +| |% * # +| |% * # xxx +| | |A | | A| | A | |A | | A | +-------------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 3 3744.13 3794.31 3752.25 3763.5633 26.935139 + 3 4519 4525.04 4520.73 4521.59 3.1104823 Difference at 95.0% confidence 758.027 +/- 43.4565 20.1412% +/- 1.15466% (Student's t, pooled s = 19.1726) * 3 1823.08 1827.2 1825.62 1825.3 2.0785572 Difference at 95.0% confidence -1938.26 +/- 43.298 -51.5007% +/- 1.15045% (Student's t, pooled s = 19.1026) % 3 1266.96 1279.37 1270.47 1272.2667 6.3971113 Difference at 95.0% confidence -2491.3 +/- 44.3704 -66.1952% +/- 1.17895% (Student's t, pooled s = 19.5758) # 3 3153.34 3155.16 3154.2 3154.2333 0.91045776 Difference at 95.0% confidence -609.33 +/- 43.1943 -16.1902% +/- 1.1477% (Student's t, pooled s = 19.0569) buildkernel: x buildkernel-before + buildkernel-ccache-empty * buildkernel-ccache-empty-fastdep % buildkernel-ccache-full # buildkernel-ccache-full-fastdep @ buildkernel-fastdep +-------------------------------------------------------------------------------+ |# @ % * | |# @ % * x + | |# @ % * xx ++| | MA | | MA| | A | | A | |A | | A | +-------------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 3 571.57 573.94 571.79 572.43333 1.3094401 + 3 727.97 731.91 728.06 729.31333 2.2492295 Difference at 95.0% confidence 156.88 +/- 4.17129 27.4058% +/- 0.728695% (Student's t, pooled s = 1.84034) * 3 527.1 528.29 528.08 527.82333 0.63516402 Difference at 95.0% confidence -44.61 +/- 2.33254 -7.79305% +/- 0.407478% (Student's t, pooled s = 1.02909) % 3 400.4 401.05 400.62 400.69 0.3306055 Difference at 95.0% confidence -171.743 +/- 2.16453 -30.0023% +/- 0.378128% (Student's t, pooled s = 0.954969) # 3 201.94 203.34 202.28 202.52 0.73020545 Difference at 95.0% confidence -369.913 +/- 2.40293 -64.6212% +/- 0.419774% (Student's t, pooled s = 1.06015) @ 3 369.12 370.57 369.3 369.66333 0.79033748 Difference at 95.0% confidence -202.77 +/- 2.45131 -35.4225% +/- 0.428227% (Student's t, pooled s = 1.0815) [1] https://ccache.samba.org/performance.html [2] http://www.mail-archive.com/ccache@lists.samba.org/msg00576.html [3] https://reviews.freebsd.org/D3484 [5] https://github.com/jrosdahl/ccache/pull/30 PR: 182944 [4] MFC after: 3 weeks Sponsored by: EMC / Isilon Storage Division Relnotes: yes Notes: svn path=/head/; revision=290526