370643 |
22-Sep-2021 |
git2svn |
Update OptionalObsoleteFiles.inc with NTP docs
The list of files for MK_NTP was incomplete.
PR: 218193 Submitted by: brnrd MFC after: 1 week
(cherry picked from commit 4154e70ea8dc0ac0d1639374ea3bc7b6c9744b9f)
Git Hash: 59a0ec578693887386ed787d2ee34d37f346eb80 Git Author: emaste@FreeBSD.org |
368285 |
02-Dec-2020 |
dim |
MFC r367304:
Add WITH_LLVM_CXXFILT option to install llvm-cxxfilt as c++filt
Since elftoolchain's cxxfilt is rather far behind on features, and we ran into several bugs, add an option to use llvm-cxxfilt as an drop-in replacement.
It supports the same options as elftoolchain cxxfilt, though it doesn't have support for old ARM (C++ Annotated Reference Manual, not the CPU) and GNU v2 manglings. But these are irrelevant in 2020.
Note: as we already compile the required libraries as part of libllvm, this will not add any significant build time either.
PR: 250702 Reviewed by: emaste, yuri Differential Revision: https://reviews.freebsd.org/D27071
MFC r367712:
Ensure make delete-old does not unlink the llvm-cxxfilt and its manpage, after r367304 and r367324, when WITH_LLVM_CXXFILT is enabled.
Noticed by: "Herbert J. Skuhra" <herbert@gojira.at> |
365662 |
12-Sep-2020 |
dim |
MFC r365371:
Turn MALLOC_PRODUCTION into a regular src.conf(5) option
For historical reasons, defining MALLOC_PRODUCTION in /etc/make.conf has been used to turn off potentially expensive debug checks and statistics gathering in the implementation of malloc(3).
It seems more consistent to turn this into a regular src.conf(5) option, e.g. WITH_MALLOC_PRODUCTION / WITHOUT_MALLOC_PRODUCTION. This can then be toggled similar to any other source build option, and turned on or off by default for e.g. stable branches.
Reviewed by: imp, #manpages Differential Revision: https://reviews.freebsd.org/D26337
MFC r365373:
Follow-up r365371 by removing sentences which indicate the state of the MK_MALLOC_PRODUCTION option on -CURRENT.
Also, for the sake of backwards compatibility, support the old way of enabling 'production malloc', e.g. by adding a define in make.conf(5). |
364841 |
26-Aug-2020 |
jhb |
MFC 359050: Add missing DTrace files for WITHOUT_CDDL=yes. |
364839 |
26-Aug-2020 |
jhb |
MFC 361093: Don't remove ubsec(4) manual page for WITHOUT_USB=yes.
In head this manpage has been removed entirely, but ubsec(4) is a PCI device and not a USB device. |
363496 |
24-Jul-2020 |
dim |
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 10.0.1 final (aka llvmorg-10.0.1-0-gef32c611aa2).
MFC r360702:
Merge commit 4ca2cad94 from llvm git (by Justin Hibbits):
[PowerPC] Add clang -msvr4-struct-return for 32-bit ELF
Summary:
Change the default ABI to be compatible with GCC. For 32-bit ELF targets other than Linux, Clang now returns small structs in registers r3/r4. This affects FreeBSD, NetBSD, OpenBSD. There is no change for 32-bit Linux, where Clang continues to return all structs in memory.
Add clang options -maix-struct-return (to return structs in memory) and -msvr4-struct-return (to return structs in registers) to be compatible with gcc. These options are only for PPC32; reject them on PPC64 and other targets. The options are like -fpcc-struct-return and -freg-struct-return for X86_32, and use similar code.
To actually return a struct in registers, coerce it to an integer of the same size. LLVM may optimize the code to remove unnecessary accesses to memory, and will return i32 in r3 or i64 in r3:r4.
Fixes PR#40736
Patch by George Koehler!
Reviewed By: jhibbits, nemanjai Differential Revision: https://reviews.llvm.org/D73290
Requested by: jhibbits
MFC r361410:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp llvmorg-10.0.1-rc1-0-gf79cd71e145 (aka 10.0.1 rc1).
MFC r362235 (by kp):
llvm: Default to -mno-relax on RISC-V
Compiling on a RISC-V system fails with 'relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax'.
Our default linker (ld.lld) doesn't support relaxation, so default to no-relax so we don't generate object files the linker can't handle.
Reviewed by: mhorne Sponsored by: Axiado Differential Revision: https://reviews.freebsd.org/D25210
MFC r362445:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp llvmorg-10.0.0-97-g6f71678ecd2 (not quite 10.0.1 rc2, as more fixes are still pending).
MFC r362587 (by cem):
Add WITH_CLANG_FORMAT option
clang-format is enabled conditional on either WITH_CLANG_EXTRAS or WITH_CLANG_FORMAT. Some sources in libclang are build conditional on either rule, and obviously the clang-format binary itself depends on the rule.
clang-format could still use a manual page.
Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D25427
MFC r362609:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp llvmorg-10.0.0-129-gd24d5c8e308. Getting closer to 10.0.1-rc2.
MFC r362679:
Regenerate ReStructuredText based manpages for llvm-project tools:
* bugpoint.1 * clang.1 * llc.1 * lldb.1 * lli.1 * llvm-ar.1 * llvm-as.1 * llvm-bcanalyzer.1 * llvm-cov.1 * llvm-diff.1 * llvm-dis.1 * llvm-dwarfdump.1 * llvm-extract.1 * llvm-link.1 * llvm-mca.1 * llvm-nm.1 * llvm-pdbutil.1 * llvm-profdata.1 * llvm-symbolizer.1 * llvm-tblgen.1 * opt.1
Add newly generated manpages for:
* llvm-addr2line.1 (this is an alias of llvm-symbolizer) * llvm-cxxfilt.1 * llvm-objcopy.1 * llvm-ranlib.1 (this is an alias of llvm-ar)
Note that llvm-objdump.1 is an exception, as upstream has both a plain .1 file, and a .rst variant. These will have to be reconciled upstream first.
MFC r362680:
Follow-up to r362679, add more entries to OptionalObsoleteFiles.inc
MFC r362719:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp llvmorg-10.0.1-rc2-0-g77d76b71d7d.
Also add a few more llvm utilities under WITH_CLANG_EXTRAS:
* llvm-dwp, a utility for merging DWARF 5 Split DWARF .dwo files into .dwp (DWARF package files) * llvm-size, a size(1) replacement * llvm-strings, a strings(1) replacement
MFC r362733:
Remove older llvm-ranlib.1 entry from ObsoleteFiles.inc, as it has gotten its own manpage now, and should be no longer be removed by "make delete-old".
MFC r362734:
Fix llvm-strings.1 not installing, this was a copy/paste error.
MFC r363401:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 10.0.1 final (aka llvmorg-10.0.1-0-gef32c611aa2).
There were no changes since rc2, except in the upstream regression tests, which we do not ship.
Relnotes: yes |
362701 |
27-Jun-2020 |
dim |
MFC r348689 (by emaste):
Use CLANG knob to remove llvm-symbolizer man page
r348504 moved llvm-symbolizer from the CLANG_EXTRAS knob to CLANG, but the man page was still in the CLANG_EXTRAS section in OptionalObsoleteFiles.inc.
Reported by: jhb |
362674 |
27-Jun-2020 |
dim |
MFC r348677 (by emaste):
move llvm-ar and llvm-nm to appropriate location in OptionalObsoleteFiles.inc
After r348610 `make delete-old` was still removing llvm-ar and llvm-nm (and associated man pages).
Reported by: jhb Sponsored by: The FreeBSD Foundation
MFC r348761 (by jkim):
Move llvm-ranlib to appropriate location in OptionalObsoleteFiles.inc.
Note llvm-ar is linked to llvm-ranlib since r311565. r348677 fixed "make delete-old" issue with llvm-ar but missed it somehow.
Discussed with: emaste, jhb |
360784 |
07-May-2020 |
dim |
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp llvmorg-10.0.0-0-gd32170dbd5b (aka 10.0.0 release), and a number of follow-ups.
MFC r356479 (by bdragon):
[PowerPC] Fix libllvmminimal build when building from powerpc64 ELFv1.
When bootstrapping on powerpc64 ELFv1, it is necessary to use binutils ld.bfd from ports for the bootstrap, as this is the only modern linker for ELFv1 host tools.
As binutils ld.bfd is rather strict in its handling of undefined symbols, it is necessary to pull in Support/Atomic.cpp to avoid an undefined symbol.
Reviewed by: dim, emaste Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D23072
MFC r356930:
Add more Subversion mergeinfo bootstrap information, to hopefully increase the probability of merging in vendor changes.
MFC r358408 (by brooks):
Merge commit 7214f7a79 from llvm git (by Sam Elliott):
[RISCV] Lower llvm.trap and llvm.debugtrap
Summary: Until this commit, these have lowered to a call to abort().
`llvm.trap()` now lowers to `unimp`, which should trap on all systems.
`llvm.debugtrap()` now lowers to `ebreak`, which is exactly what this instruction is for.
Reviewers: asb, luismarques
Reviewed By: asb
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69390
This fixes miscompilation resulting in linking failures with INVARIANTS disabled.
Reviewed by: dim Differential Revision: https://reviews.freebsd.org/D23857
MFC r358851:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 10.0.0-rc3 c290cb61fdc.
Release notes for llvm, clang, lld and libc++ 10.0.0 will become available here:
https://releases.llvm.org/10.0.0/docs/ReleaseNotes.html https://releases.llvm.org/10.0.0/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/10.0.0/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/10.0.0/projects/libcxx/docs/ReleaseNotes.html
PR: 244251
MFC r358854:
Add one additional file to libllvmminimal, to help the ppc64 bootstrap.
Reported by: bdragon PR: 244251
MFC r358857:
Move another file in libllvm from sources required for world, to sources required for bootstrap, as the PowerPC builds need this.
Reported by: bdragon PR: 244251
MFC r359082:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp llvmorg-10.0.0-rc4-5-g52c365aa9ca. The actual release should follow Real Soon Now.
PR: 244251
MFC r359084:
Merge commit 00925aadb from llvm git (by Fangrui Song):
[ELF][PPC32] Fix canonical PLTs when the order does not match the PLT order
Reviewed By: Bdragon28
Differential Revision: https://reviews.llvm.org/D75394
This is needed to fix miscompiled canonical PLTs on ppc32/lld10.
Requested by: bdragon Differential Revision: https://reviews.freebsd.org/D24109
MFC r359085:
Merge commit 315f8a55f from llvm git (by Fangrui Song):
[ELF][PPC32] Don't report "relocation refers to a discarded section" for .got2
Similar to D63182 [ELF][PPC64] Don't report "relocation refers to a discarded section" for .toc
Reviewed By: Bdragon28
Differential Revision: https://reviews.llvm.org/D75419
This is needed to fix compile errors when building for ppc32/lld10.
Requested by: bdragon Differential Revision: https://reviews.freebsd.org/D24110
MFC r359086:
Merge commit b8ebc11f0 from llvm git (by Sanjay Patel):
[EarlyCSE] avoid crashing when detecting min/max/abs patterns (PR41083)
As discussed in PR41083: https://bugs.llvm.org/show_bug.cgi?id=41083 ...we can assert/crash in EarlyCSE using the current hashing scheme and instructions with flags.
ValueTracking's matchSelectPattern() may rely on overflow (nsw, etc) or other flags when detecting patterns such as min/max/abs composed of compare+select. But the value numbering / hashing mechanism used by EarlyCSE intersects those flags to allow more CSE.
Several alternatives to solve this are discussed in the bug report. This patch avoids the issue by doing simple matching of min/max/abs patterns that never requires instruction flags. We give up some CSE power because of that, but that is not expected to result in much actual performance difference because InstCombine will canonicalize these patterns when possible. It even has this comment for abs/nabs:
/// Canonicalize all these variants to 1 pattern. /// This makes CSE more likely.
(And this patch adds PhaseOrdering tests to verify that the expected transforms are still happening in the standard optimization pipelines.
I left this code to use ValueTracking's "flavor" enum values, so we don't have to change the callers' code. If we decide to go back to using the ValueTracking call (by changing the hashing algorithm instead), it should be obvious how to replace this chunk.
Differential Revision: https://reviews.llvm.org/D74285
This fixes an assertion when building the math/gsl port on PowerPC64.
Requested by: pkubja
MFC r359087:
Merge commit 585a3cc31 from llvm git (by me):
Fix -Wdeprecated-copy-dtor and -Wdeprecated-dynamic-exception-spec warnings.
Summary: The former are like:
libcxx/include/typeinfo:322:11: warning: definition of implicit copy constructor for 'bad_cast' is deprecated because it has a user-declared destructor [-Wdeprecated-copy-dtor] virtual ~bad_cast() _NOEXCEPT; ^ libcxx/include/typeinfo:344:11: note: in implicit copy constructor for 'std::bad_cast' first required here throw bad_cast(); ^
Fix these by adding an explicitly defaulted copy constructor.
The latter are like:
libcxx/include/codecvt:105:37: warning: dynamic exception specifications are deprecated [-Wdeprecated-dynamic-exception-spec] virtual int do_encoding() const throw(); ^~~~~~~
Fix these by using the _NOEXCEPT macro instead.
Reviewers: EricWF, mclow.lists, ldionne, #libc
Reviewed By: EricWF, #libc
Subscribers: dexonsmith, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D76150
This is because we use -Wsystem-headers during buildworld, and the two warnings above are now triggered by default with clang 10, preventing most C++ code from compiling without NO_WERROR.
Requested by: brooks Differential Revision: https://reviews.freebsd.org/D24049
MFC r359333:
Merge commit f0990e104 from llvm git (by Justin Hibbits):
[PowerPC]: e500 target can't use lwsync, use msync instead
The e500 core has a silicon bug that triggers an illegal instruction program trap on any sync other than msync. Other cores will typically ignore illegal sync types, and the documentation even implies that the 'illegal' bits are ignored.
Address this hardware deficiency by only using msync, like the PPC440.
Differential Revision: https://reviews.llvm.org/D76614
Requested by: jhibbits
MFC r359334:
Merge commit 459e8e948 from llvm git (by Justin Hibbits):
[PowerPC]: Don't allow r0 as a target for LD_GOT_TPREL_L/32
Summary: The linker is free to relax this (relocation R_PPC_GOT_TPREL16) against R_PPC_TLS, if it sees fit (initial exec to local exec). If r0 is used, this can generate execution-invalid code (converts to 'addi %rX, %r0, FOO, which translates in PPC-lingo to li %rX, FOO). Forbid this instead.
This fixes static binaries using locales on FreeBSD/powerpc (tested on FreeBSD/powerpcspe).
Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D76662
Requested by: jhibbits
MFC r359338:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp llvmorg-10.0.0-0-gd32170dbd5b (aka 10.0.0 release).
PR: 244251
MFC r359506 (by emaste):
lldb: stop excluding bindings/ subdir
With liblua in the tree we should be able to enable lldb's lua scripting. We'll need the files in bindings/, so start by allowing them to come in with the next import.
Approved by: dim Sponsored by: The FreeBSD Foundation
MFC r359578:
Merge once more from ^/vendor/llvm-project/release-10.x, to get the lldb/bindings directory, which will be used to provide lua bindings for lldb.
Requested by: emaste
MFC r359826:
Merge commit 30588a739 from llvm git (by Erich Keane):
Make target features check work with ctor and dtor-
The problem was reported in PR45468, applying target features to an always_inline constructor/destructor runs afoul of GlobalDecl construction assert when checking for target-feature compatibility.
The core problem is fixed by using the version of the check that takes a FunctionDecl rather than the GlobalDecl. However, while writing the test, I discovered that source locations weren't properly set for this check on ctors/dtors. This patch also fixes constructors and CALLED destructors.
Unfortunately, it doesn't seem too possible to get a meaningful source location for a 'cleanup' destructor, so those are still 'frontend' level errors unfortunately. A fixme was added to the test to cover that situation.
This should fix 'Assertion failed: (!isa<CXXConstructorDecl>(D) && "Use other ctor with ctor decls!"), function Init, file /usr/src/contrib/llvm-project/clang/include/clang/AST/GlobalDecl.h, line 45' when compiling the security/botan2 port.
PR: 245550
MFC r359981:
Revert commit a9ad65a2b from llvm git (by Nemanja Ivanovic):
[PowerPC] Change default for unaligned FP access for older subtargets
This is a fix for https://bugs.llvm.org/show_bug.cgi?id=40554
Some CPU's trap to the kernel on unaligned floating point access and there are kernels that do not handle the interrupt. The program then fails with a SIGBUS according to the PR. This just switches the default for unaligned access to only allow it on recent server CPUs that are known to allow this.
Differential revision: https://reviews.llvm.org/D71954
This upstream commit causes a compiler hang when building certain ports (e.g. security/nss, multimedia/x264) for powerpc64. The hang has been reported in https://bugs.llvm.org/show_bug.cgi?id=45186, but in the mean time it is more convenient to revert the commit.
Requested by: jhibbits
MFC r359994:
Revert commit b6cf400aa fro llvm git (by Nemanja Ivanovic):
Fix bots after a9ad65a2b34f
In the last commit, I neglected to initialize the new subtarget feature I added which caused failures on a few bots. This should fix that.
This unbreaks the build after r359981, which reverted upstream commit a9ad65a2b34f.
Reported by: jhibbits (and jenkins :)
MFC r360129:
Merge commit ce5173c0e from llvm git (by Reid Kleckner):
Use FinishThunk to finish musttail thunks
FinishThunk, and the invariant of setting and then unsetting CurCodeDecl, was added in 7f416cc42638 (2015). The invariant didn't exist when I added this musttail codepath in ab2090d10765 (2014). Recently in 28328c3771, I started using this codepath on non-Windows platforms, and users reported problems during release testing (PR44987).
The issue was already present for users of EH on i686-windows-msvc, so I added a test for that case as well.
Reviewed By: hans
Differential Revision: https://reviews.llvm.org/D76444
This should fix 'Assertion failed: (!empty() && "popping exception stack when not empty"), function popTerminate, file /usr/src/contrib/llvm-project/clang/lib/CodeGen/CGCleanup.h, line 583' when building the net-p2p/libtorrent-rasterbar
PR: 244830 Reported by: jbeich, yuri
MFC r360134:
Merge commit 64b31d96d from llvm git (by Nemanja Ivanovic):
[PowerPC] Do not attempt to reuse load for 64-bit FP_TO_UINT without FPCVT
We call the function that attempts to reuse the conversion without checking whether the target matches the constraints that the callee expects. This patch adds the check prior to the call.
Fixes: https://bugs.llvm.org/show_bug.cgi?id=43976
Differential revision: https://reviews.llvm.org/D77564
This should fix 'Assertion failed: ((Op.getOpcode() == ISD::FP_TO_SINT || Subtarget.hasFPCVT()) && "i64 FP_TO_UINT is supported only with FPCVT"), function LowerFP_TO_INTForReuse, file /usr/src/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp, line 7276' when building the devel/libslang2 port (and a few others) for PowerPC64.
Requested by: pkubaj
MFC r360350:
Tentatively apply https://reviews.llvm.org/D78877 (by Dave Green):
[ARM] Only produce qadd8b under hasV6Ops
When compiling for a arm5te cpu from clang, the +dsp attribute is set. This meant we could try and generate qadd8 instructions where we would end up having no pattern. I've changed the condition here to be hasV6Ops && hasDSP, which is what other parts of ARMISelLowering seem to use for similar instructions.
Fixed PR45677.
This fixes "fatal error: error in backend: Cannot select: t37: i32 = ARMISD::QADD8b t43, t44" when compiling sys/dev/sound/pcm/feeder_mixer.c for armv5. For some reason we do not encounter this on head, but this error popped up while building universes for stable/12.
MFC r360697:
In r358396 I merged llvm upstream commit 2e24219d3, which fixed "error: unsupported relocation on symbol" when assembling arm 'adr' pseudo instructions. However, the upstream commit did not take big-endian arm into account.
Applying the same changes to the big-endian handling is straightforward, thanks to Andrew Turner and Peter Smith for the hint. This will also be submitted upstream. |
360661 |
05-May-2020 |
dim |
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.1 final release c1a0a213378a458fbea1a5c77b315c7dce08fd05, and a number of follow-ups.
MFC r355948:
Bootstrap mergeinfo for contrib/llvm-project
Merge (record-only) the following paths to contrib/llvm-project: * ^/vendor/llvm-project/master * ^/vendor/llvm-project/release-8.x * ^/vendor/llvm-project/release-9.x
MFC r355951:
Merge empty dir updates from r355950 in vendor/llvm-project.
MFC r355957:
Merge diff elimination updates from r355953 into vendor/llvm-project.
MFC r355959:
Consolidate FREEBSD-Xlist files of different llvm sub-projects into one.
MFC r356004:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.1 final release c1a0a213378a458fbea1a5c77b315c7dce08fd05.
Release notes for llvm, clang, lld and libc++ 9.0.1 will become available here:
https://releases.llvm.org/9.0.1/docs/ReleaseNotes.html https://releases.llvm.org/9.0.1/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/9.0.1/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/9.0.1/projects/libcxx/docs/ReleaseNotes.html
PR: 240629
MFC r356005:
Merge commit f97936fab from llvm git (by Eric Fiselier):
[libc++] Cleanup and enable multiple warnings.
Too many warnings are being disabled too quickly. Warnings are important to keeping libc++ correct. This patch re-enables two warnings: -Wconstant-evaluated and -Wdeprecated-copy.
In future, all warnings disabled for the test suite should require an attached bug. The bug should state the plan for re-enabling that warning, or a strong case why it should remain disabled.
This should fix a number of new g++ 9 warnings.
Requested by: rlibby
MFC r356100:
Merge commit d3aeac8e2 from llvm git (by Justin Hibbits)
[PowerPC] Only use PLT annotations if using PIC relocation model
Summary: The default static (non-PIC, non-PIE) model for 32-bit powerpc does not use @PLT annotations and relocations in GCC. LLVM shouldn't use @PLT annotations either, because it breaks secure-PLT linking with (some versions of?) GNU LD.
Update the available-externally.ll test to reflect that default mode should be the same as the static relocation, by using the same check prefix.
Reviewed by: sfertile Differential Revision: https://reviews.llvm.org/D70570
Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D22913
MFC r356104 (by jhibbits):
[PowerPC] enable atomic.c in compiler_rt and do not check and forces lock/lock_free decisions in compiled time
Summary: Enables atomic.c in compiler_rt and forces clang to not emit a call for runtime decision about lock/lock_free. At compiling time, if clang can't decide if atomic operation can be lock free, it emits calls to external functions like `__atomic_is_lock_free`, `__c11_atomic_is_lock_free` and `__atomic_always_lock_free`, postponing decision to a runtime check. According to LLVM code documentation, the mechanism exists due to differences between x86_64 processors that can't be decided at runtime.
On PowerPC and PowerPCSPE (32 bits), we already know in advance it can't be lock free, so we force the decision at compile time and avoid having to implement it in an external library.
This patch was made after 32 bit users testing the PowePC32 bit ISO reported llvm could not be compiled with in-base llvm due to `__atomic_load8` not implemented.
Submitted by: alfredo.junior_eldorado.org.br Reviewed by: jhibbits, dim
Differential Revision: https://reviews.freebsd.org/D22549
MFC r356112 (by jhibbits):
[PowerPC64] Starting from FreeBSD 13.0, default to ELFv2 ABI
This changes the LLVM default powerpc64 ABI to ELFv2, if target OS is FreeBSD >= 13.0
This will also be sent upstream.
Submitted by: alfredo.junior_eldorado.org.br Reviewed by: dim, luporl Relnotes: YES Differential Revision: https://reviews.freebsd.org/D20383
MFC r356256:
Merge commit 468a0cb5f from llvm git (by Craig Topper):
[X86] Add X87 FCMOV support to X86FlagsCopyLowering.
Fixes PR44396
Merge commit 86f48999f from llvm git (by Craig Topper):
[X86] Fix typo in getCMovOpcode.
The 64-bit HasMemoryOperand line was using CMOV32rm instead of CMOV64rm. Not sure how to test this. We have no test coverage that passes true for HasMemoryOperand.
This fixes 'Assertion failed: (MI.findRegisterDefOperand(X86::EFLAGS) && "Expected a def of EFLAGS for this instruction!"), function runOnMachineFunction' when compiling the misc/gpsim port for i386.
Reported by: yuri Upstream PR: https://bugs.llvm.org/show_bug.cgi?id=44396
MFC r356329:
Merge commit 41449c58c from llvm git (by Roger Ferrer Ibanez):
[RISCV] Fix evaluation of %pcrel_lo
The following testcase
function: .Lpcrel_label1: auipc a0, %pcrel_hi(other_function) addi a1, a0, %pcrel_lo(.Lpcrel_label1) .p2align 2 # Causes a new fragment to be emitted
.type other_function,@function other_function: ret
exposes an odd behaviour in which only the %pcrel_hi relocation is evaluated but not the %pcrel_lo.
$ llvm-mc -triple riscv64 -filetype obj t.s | llvm-objdump -d -r -
<stdin>: file format ELF64-riscv
Disassembly of section .text: 0000000000000000 function: 0: 17 05 00 00 auipc a0, 0 4: 93 05 05 00 mv a1, a0 0000000000000004: R_RISCV_PCREL_LO12_I other_function+4
0000000000000008 other_function: 8: 67 80 00 00 ret
The reason seems to be that in RISCVAsmBackend::shouldForceRelocation we only consider the fragment but in RISCVMCExpr::evaluatePCRelLo we consider the section. This usually works but there are cases where the section may still be the same but the fragment may be another one. In that case we end forcing a %pcrel_lo relocation without any %pcrel_hi.
This patch makes RISCVAsmBackend::shouldForceRelocation use the section, if any, to determine if the relocation must be forced or not.
Differential Revision: https://reviews.llvm.org/D60657
This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld.
Requested by: jhb
MFC r356330:
Merge commit da7b129b1 from llvm git (by James Clarke):
[RISCV] Don't force Local Exec TLS for non-PIC
Summary:
Forcing Local Exec TLS requires the use of copy relocations. Copy relocations need special handling in the runtime linker when being used against TLS symbols, which is present in glibc, but not in FreeBSD nor musl, and so cannot be relied upon. Moreover, copy relocations are a hack that embed the size of an object in the ABI when it otherwise wouldn't be, and break protected symbols (which are expected to be DSO local), whilst also wasting space, thus they should be avoided whenever possible. As discussed in D70398, RISC-V should move away from forcing Local Exec, and instead use Initial Exec like other targets, with possible linker relaxation to follow. The RISC-V GCC maintainers also intend to adopt this more-conventional behaviour (see https://github.com/riscv/riscv-elf-psabi-doc/issues/122).
Reviewers: asb, MaskRay
Reviewed By: MaskRay
Subscribers: emaste, krytarowski, hiraditya, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, llvm-commits, bsdjhb
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70649
This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld.
Requested by: jhb
MFC r356331:
?Merge commit c6b09bff5 from llvm git (by Lu?s Marques):
[RISCV] Fix wrong CFI directives
Summary: Removes CFI CFA directives that could incorrectly propagate beyond the basic block they were inteded for. Specifically it removes the epilogue CFI directives. See the branch_and_tail_call test for an example of the issue. Should fix the stack unwinding issues caused by the incorrect directives.
Reviewers: asb, lenary, shiva0217 Reviewed By: lenary Tags: #llvm Differential Revision: https://reviews.llvm.org/D69723
This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld.
Requested by: jhb
MFC r356332:
?Merge commit d7be3eab5 from llvm git (by Lu?s Marques):
[RISCV] Handle fcopysign(f32, f64) and fcopysign(f64, f32)
Summary: Adds tablegen patterns to explicitly handle fcopysign where the magnitude and sign arguments have different types, due to the sign value casts being removed the by DAGCombiner. Support for RV32IF follows in a separate commit. Adds tests for all relevant scenarios except RV32IF.
Reviewers: lenary Reviewed By: lenary Tags: #llvm Differential Revision: https://reviews.llvm.org/D70678
This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld.
Requested by: jhb
MFC r356333:
?Merge commit 189b7393d from llvm git (by John Baldwin):
[lld][RISCV] Use an e_flags of 0 if there are only binary input files.
Summary: If none of the input files are ELF object files (for example, when generating an object file from a single binary input file via "-b binary"), use a fallback value for the ELF header flags instead of crashing with an assertion failure.
Reviewers: MaskRay, ruiu, espindola
Reviewed By: MaskRay, ruiu
Subscribers: kevans, grimar, emaste, arichardson, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, llvm-commits, jrtc27
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71101
This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld.
Requested by: jhb
MFC r356701:
Merge commit f46ba4f07 from llvm git (by Simon Atanasyan):
[mips] Use less registers to load address of TargetExternalSymbol
There is no pattern matched `add hi, (MipsLo texternalsym)`. As a result, loading an address of 32-bit symbol requires two registers and one more additional instruction: ``` addiu $1, $zero, %lo(foo) lui $2, %hi(foo) addu $25, $2, $1 ```
This patch adds the missed pattern and enables generation more effective set of instructions: ``` lui $1, %hi(foo) addiu $25, $1, %lo(foo) ```
Differential Revision: https://reviews.llvm.org/D66771
llvm-svn: 370196
Merge commit 59bb3609f from llvm git (by Simon Atanasyan):
[mips] Fix 64-bit address loading in case of applying 32-bit mask to the result
If result of 64-bit address loading combines with 32-bit mask, LLVM tries to optimize the code and remove "redundant" loading of upper 32-bits of the address. It leads to incorrect code on MIPS64 targets.
MIPS backend creates the following chain of commands to load 64-bit address in the `MipsTargetLowering::getAddrNonPICSym64` method: ``` (add (shl (add (shl (add %highest(sym), %higher(sym)), 16), %hi(sym)), 16), %lo(%sym)) ```
If the mask presents, LLVM decides to optimize the chain of commands. It really does not make sense to load upper 32-bits because the 0x0fffffff mask anyway clears them. After removing redundant commands we get this chain: ``` (add (shl (%hi(sym), 16), %lo(%sym)) ```
There is no patterns matched `(MipsHi (i64 symbol))`. Due a bug in `SYM_32` predicate definition, backend incorrectly selects a pattern for a 32-bit symbols and uses the `lui` instruction for loading `%hi(sym)`.
As a result we get incorrect set of instructions with unnecessary 16-bit left shifting: ``` lui at,0x0 R_MIPS_HI16 foo dsll at,at,0x10 daddiu at,at,0 R_MIPS_LO16 foo ```
This patch resolves two problems: - Fix `SYM_32/SYM_64` predicates to prevent selection of patterns dedicated to 32-bit symbols in case of using N64 ABI. - Add missed patterns for 64-bit symbols for `%hi/%lo`.
Fix PR42736.
Differential Revision: https://reviews.llvm.org/D66228
llvm-svn: 370268
These two commits fix a miscompilation of the kernel for mips64, and should allow clang to be used as the default compiler for mips64.
Requested by: arichards
MFC r356789 (by arichardson):
Merge commit 894f742acb from llvm git (by me):
[MIPS][ELF] Use PC-relative relocations in .eh_frame when possible
When compiling position-independent executables, we now use DW_EH_PE_pcrel | DW_EH_PE_sdata4. However, the MIPS ABI does not define a 64-bit PC-relative ELF relocation so we cannot use sdata8 for the large code model case. When using the large code model, we fall back to the previous behaviour of generating absolute relocations.
With this change clang-generated .o files can be linked by LLD without having to pass -Wl,-z,notext (which creates text relocations). This is simpler than the approach used by ld.bfd, which rewrites the .eh_frame section to convert absolute relocations into relative references.
I saw in D13104 that apparently ld.bfd did not accept pc-relative relocations for MIPS ouput at some point. However, I also checked that recent ld.bfd can process the clang-generated .o files so this no longer seems true.
Reviewed By: atanasyan Differential Revision: https://reviews.llvm.org/D72228
Merge commit 8e8ccf47 from llvm git (by me)
[MIPS] Don't emit R_(MICRO)MIPS_JALR relocations against data symbols
The R_(MICRO)MIPS_JALR optimization only works when used against functions. Using the relocation against a data symbol (e.g. function pointer) will cause some linkers that don't ignore the hint in this case (e.g. LLD prior to commit 5bab291) to generate a relative branch to the data symbol which crashes at run time. Before this patch, LLVM was erroneously emitting these relocations against local-dynamic TLS function pointers and global function pointers with internal visibility.
Reviewers: atanasyan, jrtc27, vstefanovic Reviewed By: atanasyan Differential Revision: https://reviews.llvm.org/D72571
These two changes should allow using lld for MIPS64 (and maybe also MIPS32) by default. The second commit is not strictly necessary for clang+lld since LLD9 will not perform the R_MIPS_JALR optimization (it was only added for 10) but it is probably required in order to use recent ld.bfd.
Reviewed By: dim, emaste Differential Revision: https://reviews.freebsd.org/D23203
MFC r356929:
Merge commit bc4bc5aa0 from llvm git (by Justin Hibbits):
Add 8548 CPU definition and attributes
8548 CPU is GCC's name for the e500v2, so accept this in clang. The e500v2 doesn't support lwsync, so define __NO_LWSYNC__ for this as well, as GCC does.
Differential Revision: https://reviews.llvm.org/D67787
Merge commit ff0311c4b from llvm git (by Justin Hibbits):
[PowerPC]: Add powerpcspe target triple subarch component
Summary: This allows the use of '-target powerpcspe-unknown-linux-gnu' or 'powerpcspe-unknown-freebsd' to be used, instead of '-target powerpc-unknown-linux-gnu -mspe'.
Reviewed By: dim Differential Revision: https://reviews.llvm.org/D72014
Merge commit ba91dffaf from llvm git (by Fangrui Song):
[Driver][PowerPC] Move powerpcspe logic from cc1 to Driver
Follow-up of D72014. It is more appropriate to use a target feature instead of a SubTypeArch to express the difference.
Reviewed By: #powerpc, jhibbits
Differential Revision: https://reviews.llvm.org/D72433
commit 36eedfcb3 from llvm git (by Justin Hibbits):
[PowerPC] Fix powerpcspe subtarget enablement in llvm backend
Summary:
As currently written, -target powerpcspe will enable SPE regardless of disabling the feature later on in the command line. Instead, change this to just set a default CPU to 'e500' instead of a generic CPU.
As part of this, add FeatureSPE to the e500 definition.
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D72673
These are needed to unbreak the build for powerpcspe.
Requested by: jhibbits
MFC r358711:
Merge commit f75939599 from llvm git (by Erich Keane):
Reland r374450 with Richard Smith's comments and test fixed.
The behavior from the original patch has changed, since we're no longer allowing LLVM to just ignore the alignment. Instead, we're just assuming the maximum possible alignment.
Differential Revision: https://reviews.llvm.org/D68824
llvm-svn: 374562
This fixes 'Assertion failed: (Alignment != 0 && "Invalid Alignment"), function CreateAlignmentAssumption', when building recent versions of v8, which invoke __builtin_assume_aligned() with its alignment argument set to 4GiB or more.
Clang will now report a warning, and show the maximum possible alignment instead, e.g.:
huge-align.cpp:1:27: warning: requested alignment must be 536870912 bytes or smaller; maximum alignment assumed [-Wbuiltin-assume-aligned-alignment] void *f(void *g) { return __builtin_assume_aligned(g, 4294967296); } ^ ~~~~~~~~~~
Upstream PR: https://bugs.llvm.org/show_bug.cgi?id=43839 Reported by: cem |
360658 |
05-May-2020 |
dim |
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.0 final release r372316.
(NOTE: This does not yet consolidate all the llvm project sources under contrib/llvm-project (e.g., MFC r355940), due to Subversion limitations. It will be done in a follow-up MFC.)
MFC r348610 (by emaste):
build llvm-ar and llvm-nm with Clang (promote out of CLANG_EXTRAS)
To facilitate experimentation with LTO we require an ar that supports LLVM IR, and to a lesser degree also an nm. As a first step always install llvm-ar and llvm-nm.
Sponsored by: The FreeBSD Foundation
MFC r350453 (by asomers):
Add a CXXWARNFLAGS variable
Some warning flags are valid for C++ but not C. GCC 8 complains if you pass such flags when building a C file. Using a separate variable for these flags allows building both C and C++ files in the same directory (such as the fusefs tests) under GCC.
Reviewed by: cem, emaste Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21116
MFC r350467 (by luporl):
[PPC64] Backport fix for missing IRELATIVE relocations
This is a backport of LLVM commit 8331f61a51a7a0a1efbf5ed398e181593023d151, llvm-svn: 353981:
ELF: Allow GOT relocs pointing to non-preemptable ifunc to resolve to an IRELATIVE where possible.
This is needed in order to make ifuncs work correctly on PPC64.
It fixes an issue with lld, in which it would skip emitting necessary IRELATIVE relocations. Without this change, indirect calls to ifuncs would result in a segmentation fault, in static binaries or when defined in the main binary (outside shared libraries).
This change also reverts the local "Preserve relocations against ifuncs when -zifunc-noplt" commit and replaces it by its upstream version, as part of the merge.
Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D21102
MFC r351662 (by emaste):
lldb: shorten thread names to make logs easier to follow
lldb prepends the thread name to log entries, and the existing thread name for the FreeBSD ProcessMonitor thread was longer than the kernel's supported thread name length, and so was truncated. This made logs hard to read, as the truncated thread name ran into the log message. Shorten "lldb.process.freebsd.operation" to just "freebsd.op" so that logs are more readable.
(Upstreaming to lldb still to be done).
MFC r352095 (by emaste):
compiler-rt: use more __sanitizer_time_t on FreeBSD
A few structs were using long for time_t members.
Obtained from: LLVM r370755
MFC r352096 (by emaste):
compiler-rt: use 64-bit time_t for all FreeBSD archs except i386
Obtained from: LLVM r370756
MFC r352167 (by imp):
Remove dir empty since r276851
MFC r352168 (by imp):
Remove dirs empty since r280031
MFC r352169 (by imp):
Remove dir empty since r314564
MFC r352170 (by imp):
Remove dir empty since r327952
MFC r352171 (by imp):
Remove dirs (and their now-empty parents) empty since r344779
MFC r352792 (by emaste):
compiler-rt: correct RISC-V struct_kernel_stat64_sz
The value of struct_kernel_stat64_sz introduced by review D5021 for RISC-V was incorrect.
Also add a __riscv_xlen == 64 conditional as the 32-bit ABI is not yet finalized.
Submitted by: LuÃs Marques Differential Revision: https://reviews.freebsd.org/D21684
MFC r353018 (by kevans):
clang: use -mxgot for 32-bit mips
Various bits in usr.bin/clang/* will fail to compile without -mxgot due to truncated relocations. -mxgot entails a speed penalty, but I suspect we don't care as much about compiler performance in 32-bit mips land.
Reviewed by: arichardson Differential Revision: https://reviews.freebsd.org/D21698
MFC r353358:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.0 final release r372316.
Release notes for llvm, clang, lld and libc++ 9.0.0 are available here:
https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html
PR: 240629
MFC r353363:
Put in a band-aid fix for lldb 9 exiting with "Expected<T> must be checked before access or destruction" when launching executables, while we sort this out with upstream.
Reported by: jbeich PR: 241137
MFC r353415:
Revert r353363 in preparation for applying upstream fix:
Put in a band-aid fix for lldb 9 exiting with "Expected<T> must be checked before access or destruction" when launching executables, while we sort this out with upstream.
PR: 241137
MFC r353416:
Pull in r374444 from upstream lldb trunk (by me):
Fix process launch failure on FreeBSD after r365761
Summary: After rLLDB365761, and with `LLVM_ENABLE_ABI_BREAKING_CHECKS` enabled, launching any process on FreeBSD crashes lldb with:
``` Expected<T> must be checked before access or destruction. Expected<T> value was in success state. (Note: Expected<T> values in success mode must still be checked prior to being destroyed). ```
This is because `m_operation_thread` and `m_monitor_thread` were wrapped in `llvm::Expected<>`, but this requires the objects to be correctly initialized before accessing them.
To fix the crashes, use `llvm::Optional<>` for the members (as indicated by labath), and use local variables to store the return values of `LaunchThread` and `StartMonitoringChildProcess`. Then, only assign to the member variables after checking if the return values indicated success.
Reviewers: devnexen, emaste, MaskRay, mgorny
Reviewed By: devnexen
Subscribers: jfb, labath, krytarowski, lldb-commits
Differential Revision: https://reviews.llvm.org/D68723
PR: 241137
MFC r353579 (by jhb):
Use __FreeBSD_version to determine if gets() has been removed.
GCC compilers set __FreeBSD__ statically to a build-time determined targeted version (which in ports always matches the build host's version). This means that when building any version (12 or 13, etc.) of riscv or some other architecture via GCC on a 12.x host, __FreeBSD__ will always be set to 12. As a result, __FreeBSD__ cannot be used to reliably detect the target FreeBSD version being built. Instead, __FreeBSD_version from either <sys/param.h> (in the kernel) or <osreldate.h> (in userland) should be used.
This changes the gets() test in libc++ to use __FreeBSD_version from <osreldate.h>.
Reported by: jenkins (riscv64 and amd64-gcc) Reviewed by: dim, imp Differential Revision: https://reviews.freebsd.org/D22034
MFC r353711 (by mhorne):
Fix build of LLVM RISC-V backend
Reviewed by: dim MFC with: r353358 Differential Revision: https://reviews.freebsd.org/D21963
MFC r353738:
Pull in r372651 from upstream lld trunk (by Simon Atanasyan):
[mips] Support elf32btsmipn32_fbsd / elf32ltsmipn32_fbsd emulations
Patch by Kyle Evans.
Requested by: kevans
MFC r353739:
Pull in r374154 from upstream clang trunk (by Simon Atanasyan):
[mips] Set default float ABI to "soft" on FreeBSD
Initial patch by Kyle Evans.
Fix PR43596
Requested by: kevans
MFC r353936:
Bump clang's default target CPU for the i386 architecture (aka "x86") to i686, as per the discussion on the freebsd-arch mailing list. Earlier in r352030, I had already bumped it to i586, to work around missing atomic 64 bit functions for the i386 architecture.
Relnotes: yes
MFC r354097:
Pull in r372186 from upstream llvm trunk (by Eli Friedman):
[ARM] VFPv2 only supports 16 D registers.
r361845 changed the way we handle "D16" vs. "D32" targets; there used to be a negative "d16" which removed instructions from the instruction set, and now there's a "d32" feature which adds instructions to the instruction set. This is good, but there was an oversight in the implementation: the behavior of VFPv2 was changed. In particular, the "vfp2" feature was changed to imply "d32". This is wrong: VFPv2 only supports 16 D registers.
In practice, this means if you specify -mfpu=vfpv2, the compiler will generate illegal instructions.
This patch gets rid of "vfp2d16" and "vfp2d16sp", and fixes "vfp2" and "vfp2sp" so they don't imply "d32".
Differential Revision: https://reviews.llvm.org/D67375
Pull in r372187 from upstream clang trunk (by Eli Friedman):
[ARM] Update clang for removal of vfp2d16 and vfp2d16sp
Matching fix for https://reviews.llvm.org/D67375 (r372186).
Differential Revision: https://reviews.llvm.org/D67467
This should fix clang generating invalid opcodes for floating point operations on armv6.
Requested by: mmel
MFC r354146:
Pull in r373338 from upstream llvm trunk (by Simon Pilgrim):
Revert rL349624 : Let TableGen write output only if it changed, instead of doing so in cmake, attempt 2
Differential Revision: https://reviews.llvm.org/D55842 ----------------- As discussed on PR43385 this is causing Visual Studio msbuilds to perpetually rebuild all tablegen generated files
Pull in r373664 from upstream llvm trunk (by Nico Weber):
Reland r349624: Let TableGen write output only if it changed, instead of doing so in cmake
Move the write-if-changed logic behind a flag and don't pass it with the MSVC generator. msbuild doesn't have a restat optimization, so not doing write-if-change there doesn't have a cost, and it should fix whatever causes PR43385.
This should fix the scenario where an incremental build from before r353358 (the clang 9.0.0 upgrade) to r353358 or later fails to update the timestamp of the generated lib/clang/headers/arm_fp16.h header.
After such a build, installing world from read-only source and object directories would attempt to generate the header again, leading to "clang-tblgen: error opening arm_fp16.h.d:Read-only file system".
Reported by: avg, np PR: 241402
MFC r354339:
Merge commit 97e362607 from llvm git (by Nemanja Ivanovic):
[PowerPC] Do not emit HW loop if the body contains calls to lrint/lround
These two intrinsics are lowered to calls so should prevent the formation of CTR loops. In a subsequent patch, we will handle all currently known intrinsics and prevent the formation of HW loops if any unknown intrinsics are encountered.
Differential revision: https://reviews.llvm.org/D68841
This should fix an "invalid CRT loop" assertion when building the www/node port for powerpc64.
Requested by: Alfredo Dal'Ava Júnior <alfredo.junior@eldorado.org.br>
MFC r354347 (by cem):
Fix llvm-libunwind userspace build on ARM
GCC's libgcc exports a few ARM-specific symbols for ARM EABI, AEABI, or EHABI or whatever it's called. Export the same ones from LLVM-libunwind's libgcc_s, on ARM. As part of this, convert libgcc_s from a direct Version.map to one constructed from component Symbol.map files. This allows the ARM-specific Symbol.map to be included only on ARM.
Fix ARM-only oddities in struct name/aliases in LLVM-libunwind to match non-ARM definitions and ARM-specific expectations in libcxxrt / libcompiler_rt.
No functional change intended for non-ARM architectures.
This commit does not actually flip the switch for ARM defaults from libgcc to llvm-libunwind, but makes it possible (to compile, anyway).
MFC r354418 (by cem):
clang: Enable unwind tables on !amd64
There doesn't seem to be much sense in defaulting "on" unwind tables on amd64 and not on other arches. It causes surprising differences between platforms, such as the PR below.
Prior to this change, FreeBSD inherited the default implementation of the method from the Gnu.h Generic_Elf => Generic_GCC parent class, which returned true only for amd64 targets. Override that and opt on always, similar to, e.g., NetBSD.
PR: 241562 Reported by: lwhsu Reviewed by: dim Discussed with: emaste Relnotes: yes Differential Revision: https://reviews.freebsd.org/D22252
MFC r354429:
Merge commit 8e34dd941 from llvm git (by Sanjay Patel):
[x86] avoid crashing when splitting AVX stores with non-simple type (PR43916)
The store splitting transform was assuming a simple type (MVT), but that's not necessarily the case as shown in the test.
This should fix 'Assertion failed: (isSimple() && "Expected a SimpleValueType!")' when building the security/openssl111 port targeting a CPU that supports AVX, but not AVX2, such as sandybridge.
PR: 241747
MFC r354469:
Merge commit f596f4507 from llvm git (by Sam Elliott):
[RISCV] Add Custom Parser for Atomic Memory Operands
Summary: GCC Accepts both (reg) and 0(reg) for atomic instruction memory operands. These instructions do not allow for an offset in their encoding, so in the latter case, the 0 is silently dropped.
Due to how we have structured the RISCVAsmParser, the easiest way to add support for parsing this offset is to add a custom AsmOperand and parser. This parser drops all the parens, and just keeps the register.
This commit also adds a custom printer for these operands, which matches the GCC canonical printer, printing both `(a0)` and `0(a0)` as `(a0)`.
Reviewers: asb, lewis-revill
Reviewed By: asb
Subscribers: s.egerton, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, jfb, PkmX, jocewei, psnobl, benna, Jim, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D65205
llvm-svn: 367553
Merge commit f596f4507 from llvm git (by Sam Elliott):
[RISCV] Add FreeBSD targets
Reviewers: asb
Reviewed By: asb
Subscribers: simoncook, s.egerton, lenary, psnobl, benna, mhorne, emaste, kito-cheng, shiva0217, rogfer01, rkruppe, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D57795
Patch by James Clarke (jrtc27)
llvm-svn: 367557
Merge commit f596f4507 from llvm git (by Hsiangkai Wang):
[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame.
It is necessary to generate fixups in .debug_frame or .eh_frame as relaxation is enabled due to the address delta may be changed after relaxation.
There is an opcode with 6-bits data in debug frame encoding. So, we also need 6-bits fixup types.
Differential Revision: https://reviews.llvm.org/D58335
llvm-svn: 366524
Merge commit f596f4507 from llvm git (by Hsiangkai Wang):
[DebugInfo] Some fields do not need relocations even relax is enabled.
In debug frame information, some fields, e.g., Length in CIE/FDE and Offset in FDE are attributes to describe the structure of CIE/FDE. They are not related to the relaxed code. However, these attributes are symbol differences. So, in current design, these attributes will be filled as zero and LLVM generates relocations for them.
We only need to generate relocations for symbols in executable sections. So, if the symbols are not located in executable sections, we still evaluate their values under relaxation.
Differential Revision: https://reviews.llvm.org/D61584
llvm-svn: 366531
Merge commit f596f4507 from llvm git (by Alex Bradbury):
[RISCV] Don't force absolute FK_Data_X fixups to relocs
The current behavior of shouldForceRelocation forces relocations for the majority of fixups when relaxation is enabled. This makes sense for fixups which incorporate symbols but is unnecessary for simple data fixups where the fixup target is already resolved to an absolute value.
Differential Revision: https://reviews.llvm.org/D63404 Patch by Edward Jones.
llvm-svn: 369257
Merge commit f596f4507 from llvm git (by Alex Bradbury):
[RISCV] Implement getExprForFDESymbol to ensure RISCV_32_PCREL is used for the FDE location
Follow binutils in using RISCV_32_PCREL for the FDE initial location. As explained in the relevant binutils commit <https://github.com/riscv/riscv-binutils-gdb/commit/a6cbf936e3dce68114d28cdf60d510a3f78a6d40>, the ADD/SUB pair of relocations is problematic in the presence of linker relaxation.
This patch has the same end goal as D64715 but includes test changes and avoids adding a new global VariantKind to MCExpr.h (preferring RISCVMCExpr VKs like the rest of the RISC-V backend).
Differential Revision: https://reviews.llvm.org/D66419
llvm-svn: 369375
This series of merges will permit riscv64 kernels and riscv64sf worlds to build with clang instead of gcc (but still using the bfd linker).
Requested by: jhb Obtained from: https://github.com/freebsd/freebsd/compare/master...bsdjhb:riscv_clang
MFC r354662 (by jhb):
Sync target triple generation with the version in Makefile.inc1.
Reviewed by: dim Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22333
MFC r354692 (by emaste):
llvm: use AT_EXECPATH from ELF auxiliary vectors for getExecutablePath
/proc/curproc/file and the KERN_PROC_PATHNAME sysctl may not return the desired path if there are multiple hardlinks to the file.
PR: 241932 Tested by: ler Sponsored by: The FreeBSD Foundation
MFC r354707 (by emaste):
llvm: use elf_aux_info to get executable's path, if available
Obtained from: LLVM a0a38b81ea MFC with: r354692 Sponsored by: The FreeBSD Foundation
MFC r354979:
Merge commit 7bed381ea from llvm git (by Simon Atanasyan):
[mips] Implement Octeon+ `saa` and `saad` instructions
`saa` and `saad` are 32-bit and 64-bit store atomic add instructions.
memory[base] = memory[base] + rt
These instructions are available for "Octeon+" CPU. The patch adds support for both instructions to MIPS assembler and diassembler and introduces new CPU type - "octeon+".
Next patches will implement `.set arch=octeon+` directive and `AFL_EXT_OCTEONP` ISA extension flag support.
Differential Revision: https://reviews.llvm.org/D69849
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354980:
Merge commit 3718102d4 from llvm git (by Simon Atanasyan):
[mips] Support `octeon+` CPU in the `.set arch=` directive
Differential Revision: https://reviews.llvm.org/D69850
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354981:
Merge commit bf996f761 from llvm git (by Simon Atanasyan):
[mips] Write `AFL_EXT_OCTEONP` flag to the `.MIPS.abiflags` section
Differential Revision: https://reviews.llvm.org/D69851
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354982:
Merge commit 3552d3e0f from llvm git (by Simon Atanasyan):
[mips] Add `octeon+` to the list of CPUs accepted by the driver
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354983:
Merge commit e578d0fd2 from llvm git (by Simon Atanasyan):
[mips] Fix `__mips_isa_rev` macros value for Octeon CPU
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354984:
Merge commit 0d14656b9 from llvm git (by Simon Atanasyan):
[mips] Set __OCTEON__ macros
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r354985:
Merge commit a751f557d from llvm git (by Simon Atanasyan):
[mips] Set macros for Octeon+ CPU
This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite.
Requested by: kevans
MFC r355397:
Merge commit 241cbf201 from llvm git (by Nemanja Ivanovic):
[PowerPC] Fix crash in peephole optimization
When converting reg+reg shifts to reg+imm rotates, we neglect to consider the CodeGenOnly versions of the 32-bit shift mnemonics. This means we produce a rotate with missing operands which causes a crash.
Committing this fix without review since it is non-controversial that the list of mnemonics to consider should include the 64-bit aliases for the exact mnemonics.
Fixes PR44183.
This should fix "Assertion failed: (idx < size()), function operator[], file /usr/src/contrib/llvm/include/llvm/ADT/SmallVector.h, line 153" when building the graphics/mesa-dri port for the PowerPC64 ELFv2 ABI.
Reported by: Alfredo Dal'Ava Júnior <alfredo.junior@eldorado.org.br>
MFC r355602:
Add a few missed source files to libllvm, for the MK_LLVM_TARGET_BPF=yes case. Otherwise, linking of clang and other llvm based executables would complain about missing symbols.
Reported by: rstone
MFC r355645 (by cem):
arm: libgcc_s: Fix ABI breakage introduced in r354347
Provide the symbol version for llvm-libunwind's _Unwind_Backtrace that libgcc has historically provided on arm, in addition to the (default) standard version used on all other arch.
Reported by: mmel
MFC r355803 (by mmel):
Fix LLVM libunwnwind _Unwind_Backtrace symbol version for ARM. In original GNU libgcc, _Unwind_Backtrace is published with GCC_3.3 version for all architectures but ARM. For ARM should be publishes with GCC_4.3.0 version. This was originally omitted in r255095, fixed in r318024 and omitted aging in LLVM libunwind implementation in r354347.
For ARM _Unwind_Backtrace should be published as default with GCC_4.3.0 version , (because this is right original version) and again as normal(not-default) with GCC_3.3 version (to maintain ABI compatibility compiled/linked with wrong pre r318024 libgcc)
PR: 233664 |
359748 |
09-Apr-2020 |
kevans |
MFC r359644: llvm: add a build knob for enabling assertions
For head/, this will remain eternally default-on to maintain the status quo. For stable/ branches, it should be flipped to default-off to maintain the status quo.
There's value in being able to flip it one way or the other easily on head or stable branches, whether you want to gain some performance back on head/ (for machines there's little chance you'll actually hit an assertion) or potentially diagnose a problem with the version of llvm on an older branch.
Currently, stable branches get the CFLAGS+= -ndebug line uncommented; going forward, they will instead have the default of LLVM_ASSERTIONS flipped.
[MFC note: that last comment just happened for these two branches] |
357604 |
05-Feb-2020 |
oshogbo |
MFCr356928: When MK_CASPER=no is set remove files which are not needed to run system.
PR: 242971 |
357603 |
05-Feb-2020 |
oshogbo |
MFCr356926: Even when the MK_CASPER is set to "no" we still want to install man pages and the headers. If the user decides to install the system without Casper support, then the Casper functions are mocked, but they still exist in the system.
PR: 242971 |
357602 |
05-Feb-2020 |
oshogbo |
MFCr356925: Those files are already removed in ObsoleteFiles.\ There is no need to remove them twice.
PR: 242971 |
356775 |
16-Jan-2020 |
kevans |
MFC r356356, r356358, r356422: replace gcclibs' libssp
r356356: Provide libssp based on libc
For libssp.so, rebuild stack_protector.c with FORTIFY_SOURCE stubs that just abort built into it.
For libssp_nonshared.a, steal stack_protector_compat.c from ^/lib/libc/secure and massage it to maintain that __stack_chk_fail_local is a hidden symbol.
libssp is now built unconditionally regardless of {WITH,WITHOUT}_SSP in the build environment, and the gcclibs version has been disconnected from the build in favor of this one.
r356358: libssp: fix FORTIFY_SOURCE stub declarations
The LSB 4.1 that I referenced omitted the varargs, and I failed to catch it. The __vsnprintf_chk error was from just downright misreading the page. GCC6 caught all of these, but I had only tested GCC4.2.
r356422: Update libssp paths in various Makefile.depend* files
I've been advised that the model that uses these are fairly resilient, but we do know the proper path to use (or remove, in the case of ^/targets/...), so go ahead and update them to reflect that. |
356345 |
04-Jan-2020 |
cy |
MFC r333552,333558-333568,333573,338568-338569,339275,339278,339294,340037, r349720,356228:
r333552 (des):
Upgrade Unbound to 1.6.0. More to follow.
r333558 (des):
Upgrade Unbound to 1.6.1. More to follow.
r333559 (des):
Upgrade Unbound to 1.6.2. More to follow.
r333560 (des):
Upgrade Unbound to 1.6.3. More to follow.
r333561 (des):
Upgrade Unbound to 1.6.4. More to follow.
r333562 (des):
Upgrade Unbound to 1.6.5. More to follow.
r333563 (des):
Upgrade Unbound to 1.6.6. More to follow.
r333564 (des):
Upgrade Unbound to 1.6.7. More to follow.
r333565 (des):
No reason to keep this around.
r333566 (des):
Upgrade Unbound to 1.6.8. More to follow.
r333567 (des):
Upgrade Unbound to 1.7.0. More to follow.
r333568 (des):
Upgrade Unbound to 1.7.1.
r333573 (des):
Rename all Unbound binaries and man pages from unbound* to local-unbound*.
PR: 222902
r338568 (des):
Upgrade Unbound to 1.7.2. More to follow.
r338569 (des):
Upgrade Unbound to 1.7.3. More to follow.
r339275 (des):
Upgrade Unbound to 1.8.0. More to follow.
r339278 (des):
Upgrade to 1.8.1.
r339294 (des):
Try harder to sanitize the environment before running configure. Remove a workaround for older Unbound versions that used sbrk.
r340037 (des):
Merge upstream r4932: turn so-reuseport option off by default.
r349720 (des):
Upgrade Unbound to 1.9.2.
MFC r356228 (cy): MFV r356143:
Update unbound 1.9.2 --> 1.9.6.
Security: CVE-2017-15105 (fixed by 1.6.7) CVE-2019-18934 (fixed by 1.9.5) |
354136 |
28-Oct-2019 |
dim |
MFC r353933:
Slightly expand description of WITH_SHARED_TOOLCHAIN, add a corresponding WITHOUT_SHARED_TOOLCHAIN description, and regenerate src.conf(5). |
353801 |
21-Oct-2019 |
dim |
Partially MFC r339524 (by imp):
Add missing options.
WITHOUT_LOADER_LUA is only needed since we turned it off by default on powerpc and sparc64 in r338203. Same with WITHOUT_LOADER_GEIL. WITH_NVME, WITHOUT_NVME, WITH_LOADER_FORCE_LE have been needed since they were added.
(Note the NVME options do not apply to stable/11, and have been left out of this MFC.) |
350259 |
23-Jul-2019 |
dim |
MFC r348504 (by kevans):
llvm-symbolizer: Move out of CLANG_EXTRAS, into CLANG
ASAN reports become a lot more useful with llvm-symbolizer in $PATH, and the build is not much more time-consuming. The added benefit is that the resulting reports will actually include symbol information; without, thread trace information includes a bunch of addresses that immediately resolve to an inline function in ^/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h and take a little more effort to examine.
Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D20484
MFC r348689 (by emaste):
Use CLANG knob to remove llvm-symbolizer man page
r348504 moved llvm-symbolizer from the CLANG_EXTRAS knob to CLANG, but the man page was still in the CLANG_EXTRAS section in OptionalObsoleteFiles.inc.
Reported by: jhb
MFC r349004:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp to the upstream release_80 branch r363030 (effectively, 8.0.1 rc2). The 8.0.1 release should follow this within a week or so.
MFC r349351 (by jhibbits, partially):
powerpc: Transition to Secure-PLT, like most other OSs (Toolchain part)
Summary: Toolchain follow-up to r349350. LLVM patches will be submitted upstream for 9.0 as well.
The bsd.cpu.mk change is required because GNU ld assumes BSS-PLT if it cannot determine for certain that it needs Secure-PLT, and some binaries do not compile in such a way to make it know to use Secure-PLT.
Reviewed By: nwhitehorn, bdragon, pfg Differential Revision: https://reviews.freebsd.org/D20598
MFC r349793:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp to the upstream release_80 branch r364487 (effectively, 8.0.1 rc3). The 8.0.1 release will most likely have no further changes.
MFC r350177:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 8.0.1 final release r366581. The only functional change is a fix for a mismerge of upstream r360816, which properly restores the r2 register when unwinding on PowerPC64 (See https://reviews.freebsd.org/D20337).
Relnotes: yes PR: 236062 |
349879 |
10-Jul-2019 |
tijl |
MFC r349641:
Also remove lib32 versions of libradius. |
349715 |
04-Jul-2019 |
cy |
MFC r349449, r349452:
Add the ipmon.5 man page and link ipmon.conf.5 to it.
PR/238816 initially addressed updates to usage() however the PR has morphed into a shopping list of updates to usage() and man pages.
PR: 238816 |
348118 |
22-May-2019 |
dim |
MFC r347978:
Fix OptionalObsoleteFiles copy/paste mistake from r345236, which connected libomp to the build. The comparison should not have been against ${MK_OPENSSH}, but against ${MK_OPENMP}, obviously.
MFC r347979:
To avoid unnecessarily modifying ports, add a -lgomp symlink, since GCC does not ship a -lomp symlink. Also update OptionalObsoleteFiles for this, and add 32-bit variants while here.
Approved by: re (gjb) Submitted by: jbeich PR: 237975 |
346891 |
29-Apr-2019 |
mhorne |
MFC r346016: Add option to build LLVM RISC-V target
Approved by: markj (mentor) |
346482 |
21-Apr-2019 |
kevans |
MFC r341101, r341231, r341276, r341329, r341433, r341780, r342054-r342055, r342721, r342742, r342840, r343008, r343225
r341101: powerpcspe: Don't crash the loader on ubldr with SPE instructions.
-msoft-float seems to be insufficient for disabling the SPE on powerpcspe. Force it off with -mno-spe as well. This prevents a crash in ubldr on powerpcspe.
r341231: loader: command_bcache() should print unsigned values
All bcache counters are unsigned.
r341276: When handling CMD_CRIT error set command_errmsg to NULL after we dump it out, so that it does not result in error message printed twice.
OK load doodoo can't find 'doodoo' can't find 'doodoo' OK
r341329: loader.efi: fix EFI getchar() for multiple consoles
This fix is ported from illumos (issue #9970), the analysis and initial implementation was done by John Levon.
See also: https://www.illumos.org/issues/9970
Currently, efi_cons_getchar() will wait for a key. While this seems to make sense, the implementation of getchar() in common/console.c will loop across getchar() for all consoles without doing ischar() first.
This means that if we've configured multiple consoles, we can't input into the serial, as getchar() will be sat waiting for input only from efi_console.c
This patch does implement a bit more generic key buffer to support translation of input keys, and we use generic efi_readkey() to reduce duplication from calls from getchar() and poll().
r341433: Move inclusion of src.opts.mk later.
src.opts.mk includes bsd.own.mk. This in turn defines CTFCONVERT_CMD depending on the MK_CTF value. We then set MK_CTF to no, which has no real effect. The solution is to set all the MK_foo values before including src.opts.mk.
This should stop the cdboot binary from exploding in size for releases built WITH_CTF=yes in src.conf.
r341780: powerpc/ubldr: Teach powerpc's ubldr to boot 64-bit kernels
This is just a copy of powerpc/ofw's ppc64_elf_freebsd.c modified to fit ubldr's boot format.
r342054: Print an error message in efi_main.c if we can't allocate memory for the heap
With the default Qemu parameters, only 128MB RAM gets given to a VM. This causes the loader to be unable to allocate the 64MB it needs for the heap. This change makes the cause of the error more obvious.
r342055: Cast error message in efi_main.c to CHAR16* to avoid build error
r342721: loader.efi: update memmap command to recognize new attributes
Also move memory type to string translation to libefi for later use.
r342742: loader.efi: efi variable rework and lsefi command added
This update does add diag and debug capabilities to interpret the efi variables, configuration and protocols (lsefi).
The side effect is that we add/update bunch of related headers.
r342840: Create MK_LOADER_VERBOSE and connect it to ELF_VERBOSE in the loader code.
r343008: Add Dell Chromebook to the list of devices with E820 extmem quirk enabled
Just like for Acer C270 chromebook the E820 extmem workaround is required for FreeBSD to boot on Dell chromebook.
r343225: Unbreak mip64 build after r328437
Add exit and getchar functions to beri/boot2 code. They are required by panic_action functin introduced in r328437
PR: 18498, 204916 |
346429 |
20-Apr-2019 |
kevans |
MFC bectl(8)/libbe(3): r337663-337664,337667,337697-337699,337800,337805, 337915-337918,337921,337924,337947,337993-337995,338221-338222,338303, 338417,339047,339972,339994,340334,340507-340508,340592-340594, 340635-340636,340722-340723,340974,342466,342849,342903,342911,343335, 343543,343977,343993-343994,344034,344067,344084,345302,345769, 345845-345846,345848,346082
There are simply too many small changes to enumerate; in summary:
bectl(8)/libbe(3) has been introduced from current state in -CURRENT and added to the stable/11 rescue build. bectl(8) is a tool for managing ZFS boot environments, largely inspired by beadm. It includes features such as being able to jail a boot environment or easily mount it for modification.
Relnotes: probably |
346333 |
17-Apr-2019 |
dim |
After r346168, also merge build infrastructure for LLVM libomp.
MFC r345235:
Add lib/libomp, with a Makefile, and generated configuration headers. Not connected to the main build yet, as there is still the issue of the GNU omp.h header conflicting with the LLVM one. (That is, if MK_GCC is enabled.)
PR: 236062
MFC r345236:
Connect lib/libomp to the build.
* Set MK_OPENMP to yes by default only on amd64, for now. * Bump __FreeBSD_version to signal this addition. * Ensure gcc's conflicting omp.h is not installed if MK_OPENMP is yes. * Update OptionalObsoleteFiles.inc to cope with the conflicting omp.h. * Regenerate src.conf(5) with new WITH/WITHOUT fragments.
Relnotes: yes PR: 236062
MFC r345242:
Explicitly link libomp.so against -lpthread, as it depends on pthread functionality. This should make example OpenMP programs work out of the box.
Reported by: jbeich PR: 236062, 236581
MFC r345278:
Also explicitly link libomp.so against -lm, as it transitively depends on scalbn and a few other math functions, via libcompiler-rt. This should allow OpenMP programs to link with BFD linkers too.
Reported by: jbeich PR: 236062, 236581
MFC r345282:
Remove --as-needed from the linker flags for libomp.so, as these actually prevent the transitive dependency on libm.
Reported by: jbeich PR: 236062, 236581
MFC r345291:
Turn on MK_OPENMP for i386 by default, now that it can build.
Noticed by: jbeich PR: 236062, 236582 |
346296 |
16-Apr-2019 |
dim |
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 8.0.0 final release r356365.
MFC r306265 (by emaste):
Force LLVM_LIBUNWIND off if we don't have a C++11 compiler
Tested by: bde Differential Revision: https://reviews.freebsd.org/D7746
MFC r308100 (by emaste):
compile libunwind c source with -fexceptions
When an exception is thrown the unwinder must unwind its own C source (starting with _Unwind_RaiseException in UnwindLevel1.c), so it needs to be built with unwinding data.
MFC r324998 (by bdrewery):
Prefix {TARGET,BUILD}_TRIPLE with LLVM_ to avoid Makefile.inc1 collision.
The Makefile.inc1 TARGET_TRIPLE is for specifying which -target is used during the build of world.
Reviewed by: dim, imp Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12792
MFC r329093 (by emaste):
Promote llvm-cov to a standalone option
Introduce WITH_/WITHOUT_LLVM_COV to match GCC's WITH_/WITHOUT_GCOV. It is intended to provide a superset of the interface and functionality of gcov.
It is enabled by default when building Clang, similarly to gcov and GCC.
This change moves one file in libllvm to be compiled unconditionally. Previously it was included only when WITH_CLANG_EXTRAS was set, but the complexity of a new special case for (CLANG_EXTRAS | LLVM_COV) is not worth avoiding a tiny increase in build time.
Reviewed by: dim, imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D142645
MFC r331244 (by jhb):
Add support for MIPS to LLVM's libunwind.
This is originally based on a patch from David Chisnall for soft-float N64 but has since been updated to support O32, N32, and hard-float ABIs. The soft-float O32, N32, and N64 support has been committed upstream. The hard-float changes are still in review upstream.
Enable LLVM_LIBUNWIND on mips when building with a suitable (C+11-capable) toolchain. This has been tested with external GCC for all ABIs and O32 and N64 with clang.
Reviewed by: emaste Obtained from: CheriBSD (original N64 patch) Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D14701
MFC r336691 (by emaste):
llvm: remove __FreeBSD_version conditionals
All supported FreeBSD build host versions have backtrace.h, so we can just eliminate that test. For futimes() we can test the compiler's built-in __FreeBSD__ major version rather than relying on including osreldate.h. This should reduce the frequency with which Clang gets rebuilt when building world.
Reviewed by: dim Sponsored by: The FreeBSD Foundation
MFC r337379 (by andrew):
Default to armv5te in LINT on arm. This should fix building LINT there.
MFC r337552:
Add optional LLVM BPF target support
BPF (eBPF) is an independent instruction set architecture which is introduced in Linux a few years ago. Originally, eBPF execute environment was only inside Linux kernel. However, recent years there are some user space implementation (https://github.com/iovisor/ubpf, https://doc.dpdk.org/guides/prog_guide/bpf_lib.html) and kernel space implementation for FreeBSD is going on (https://github.com/YutaroHayakawa/generic-ebpf).
The BPF target support can be enabled using WITH_LLVM_TARGET_BPF, as it is not built by default.
Submitted by: Yutaro Hayakawa <yhayakawa3720@gmail.com> Reviewed by: dim, bdrewery Differential Revision: https://reviews.freebsd.org/D16033
MFC r337585:
In r308100, an explicit -fexceptions flag was added for the C sources from LLVM's libunwind, which end up in libgcc_eh.a and libgcc_s.so. This is because the unwinder needs the unwinder data for its own functions.
However, for the C++ sources in libunwind, -fexceptions is already the default, and this can have the side effect of generating a reference to __gxx_personality_v0, the so-called personality function, which is normally provided by the C++ ABI library (libcxxrt or libsupc++).
If the reference ends up in the eventual libgcc_s.so, linking any non-C++ programs against it will fail with "undefined reference to `__gxx_personality_v0'".
Note that at high optimization levels, the reference is usually optimized away, which is why we have never noticed this problem before.
With clang 7.0.0 though, higher optimization levels don't help anymore, since the addition of address-significance tables [1] in <https://reviews.llvm.org/rL337339>. Effectively, this always causes a reference to __gxx_personality_v0.
After discussion with the upstream author of that change, it turns out that we should compile libunwind sources with the -fno-exceptions -funwind-tables flags instead. This ensures unwind tables are generated, but no references to any personality functions are emitted.
[1] https://lists.llvm.org/pipermail/llvm-dev/2018-May/123514.html
Reported by: jbeich PR: 230399
MFC r340287 (by emaste):
Consolidate gcov entries in OptionalObsoleteFiles
Sponsored by: The FreeBSD Foundation
MFC r340289 (by emaste):
llvm-cov: also install as gcov (if GNU gcov is disabled)
llvm-cov provides a gcov-compatible interface when invoked as gcov.
Reviewed by: dim, markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D17923
MFC r340296 (by emaste):
Move llvm-profdata build into MK_LLVM_COV block
llvm-profdata is used with llvm-cov for code coverage (although llvm-cov can also operate independently in a gcov-compatible mode). Although llvm-profdata can be used independently of llvm-cov it makes sense to group these under one option.
Also handle these in OptionalObsoleteFiles.inc while here.
Sponsored by: The FreeBSD Foundation
MFC r340300 (by emaste):
libllvm: Move SampleProfWriter to SRCS_MIN
It is required by llvm-profdata, now built by default under the LLVM_COV knob. The additional complexity that would come from avoiding building it if CLANG_EXTRAS and LLVM_COV are both disabled is not worth the small savings in build time.
Sponsored by: The FreeBSD Foundation
MFC r340972 (by emaste):
llvm-objdump: initial man page
Based on llvm-objdump's online documentation and usage information. This serves as a starting point; additional detail and cleanup still required.
Also being submitted upstream in LLVM review D54864. I expect to use this bespoke copy while we have LLVM 6.0 or 7.0 in FreeBSD; when we update to LLVM 8.0 it should be upstream and we will switch to it.
PR: 233437 Reviewed by: bcr (man formatting) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18309
MFC r340973 (by emaste):
llvm-objdump.1: remove invalid options
Some options appear in llvm-objdump's usage information as a side effect of its option parsing implementation and are not actually llvm-objdump options. Reported in LLVM review https://reviews.llvm.org/D54864.
Reported by: Fangrui Song Sponsored by: The FreeBSD Foundation
MFC r340975 (by emaste):
llvm-objdump.1: fix igor / mandoc -Tlint warnings
Accidentally omitted from r340972.
MFC r341055 (by emaste):
llvm-objdump.1: remove more unintentional options
Some options come from static constructors in LLVM libraries and are automatically added to llvm's usage output. They're not really supposed to be llvm-objdump options.
Reported by: Fangrui Song in LLVM review D54864 Sponsored by: The FreeBSD Foundation
MFC r344779:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to the upstream release_80 branch r355313 (effectively, 8.0.0 rc3). The release will follow very soon, but no more functional changes are expected.
Release notes for llvm, clang and lld 8.0.0 will soon be available here: <https://releases.llvm.org/8.0.0/docs/ReleaseNotes.html> <https://releases.llvm.org/8.0.0/tools/clang/docs/ReleaseNotes.html> <https://releases.llvm.org/8.0.0/tools/lld/docs/ReleaseNotes.html>
PR: 236062 Relnotes: yes
MFC r344798 (by emaste):
libllvm: promote WithColor and xxhash to SRCS_MIN
The armv6 build failed in CI due to missing symbols (from these two source files) in the bootstrap Clang.
This affected only armv6 because other Clang-using archs are using LLD as the bootstrap linker, and thus include SRCS_MIW via LLD_BOOTSTRAP.
Reported by: CI, via lwhsu Sponsored by: The FreeBSD Foundation
MFC r344825:
Add a few missed files to the MK_LLVM_TARGET_BPF=yes case, otherwise clang and various other executables will fail to link with undefined symbols.
Reported by: O. Hartmann <ohartmann@walstatt.org>
MFC r344852:
Put in a temporary workaround for what is likely a gcc 6 bug (it does not occur with gcc 7 or later). This should prevent the following error from breaking the head-amd64-gcc CI builds:
In file included from /workspace/src/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfo.cpp:14:0: /workspace/src/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h:128:54: error: 'template<class _InputIterator> lldb_private::MemoryRegionInfos::MemoryRegionInfos(_InputIterator, _InputIterator, const allocator_type&)' inherited from 'std::__1::vector<lldb_private::MemoryRegionInfo>' using std::vector<lldb_private::MemoryRegionInfo>::vector; ^~~~~~ /workspace/src/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h:128:54: error: conflicts with version inherited from 'std::__1::vector<lldb_private::MemoryRegionInfo>'
Reported by: CI
MFC r344896:
Pull in r354937 from upstream clang trunk (by Jörg Sonnenberger):
Fix inline assembler constraint validation
The current constraint logic is both too lax and too strict. It fails for input outside the [INT_MIN..INT_MAX] range, but it also implicitly accepts 0 as value when it should not. Adjust logic to handle both correctly.
Differential Revision: https://reviews.llvm.org/D58649
Pull in r355491 from upstream clang trunk (by Hans Wennborg):
Inline asm constraints: allow ICE-like pointers for the "n" constraint (PR40890)
Apparently GCC allows this, and there's code relying on it (see bug).
The idea is to allow expression that would have been allowed if they were cast to int. So I based the code on how such a cast would be done (the CK_PointerToIntegral case in IntExprEvaluator::VisitCastExpr()).
Differential Revision: https://reviews.llvm.org/D58821
These should fix assertions and errors when using the inline assembly "n" constraint in certain ways.
In case of devel/valgrind, a pointer was used as the input for the constraint, which lead to "Assertion failed: (isInt() && "Invalid accessor"), function getInt".
In case of math/secp256k1, a very large integer value was used as input for the constraint, which lead to "error: value '4624529908474429119' out of range for constraint 'n'".
PR: 236216, 236194
MFC r344951:
Merge llvm, clang, compiler-rt, libc++, lld, and lldb release_80 branch r355677 (effectively, 8.0.0 rc4), resolve conflicts, and bump version numbers.
PR: 236062
MFC r345018:
Merge LLVM libunwind trunk r351319, from just before upstream's release_80 branch point. Afterwards, we will merge the rest of the changes in the actual release_80 branch.
PR: 236062
MFC r345019:
Merge LLVM libunwind release_80 branch r355677 (effectively, 8.0.0 rc4).
PR: 236062
MFC r345021:
Pull in r355854 from upstream llvm trunk (by Jonas Paulsson):
[RegAlloc] Avoid compile time regression with multiple copy hints.
As a fix for https://bugs.llvm.org/show_bug.cgi?id=40986 ("excessive compile time building opencollada"), this patch makes sure that no phys reg is hinted more than once from getRegAllocationHints().
This handles the case were many virtual registers are assigned to the same physreg. The previous compile time fix (r343686) in weightCalcHelper() only made sure that physical/virtual registers are passed no more than once to addRegAllocationHint().
Review: Dimitry Andric, Quentin Colombet https://reviews.llvm.org/D59201
This should fix a hang when compiling certain generated .cpp files in the graphics/opencollada port.
PR: 236313
MFC r345068 (by jhb):
Move libunwind out of contrib/llvm/projects.
Move LLVM's libunwind to its own contrib/ directory similar to other runtime libraries like libc++ and libcxxrt.
Reviewed by: dim, emaste Differential Revision: https://reviews.freebsd.org/D19534
MFC r345073:
Revert r308867 (which was originally committed in the clang390-import project branch):
Work around LLVM PR30879, which is about a bad interaction between X86 Call Frame Optimization on i386 and libunwind, by disallowing the optimization for i386-freebsd12.
This should fix some instances of broken exception handling when frame pointers are omitted, in particular some unittests run during the build of editors/libreoffice.
This hack will be removed as soon as upstream has implemented a more permanent fix for this problem.
And indeed, after r345018 and r345019, which updated LLVM libunwind to the most recent version, the above workaround is no longer needed. The upstream commit which fixed this is:
https://llvm.org/viewvc/llvm-project?view=revision&revision=292723
Specifically, 32 bit (i386-freebsd) executables optimized with omitted frame pointers and Call Frame Optimization should now behave correctly when a C++ exception is thrown, and the stack is unwound.
Upstream PR: https://llvm.org/bugs/show_bug.cgi?id=30879 PR: 236062
MFC r345152:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, and lldb release_80 branch r356034 (effectively, 8.0.0 rc5), resolve conflicts, and bump version numbers.
PR: 236062
MFC r345231:
Add LLVM openmp trunk r351319 (just before the release_80 branch point) to contrib/llvm. This is not yet connected to the build, the glue for that will come in a follow-up commit.
PR: 236062
MFC r345232:
Bootstrap svn:mergeinfo on contrib/openmp.
PR: 236062
MFC r345233:
Merge openmp release_80 branch r356034 (effectively, 8.0.0 rc5).
PR: 236062
MFC r345234:
Add openmp __kmp_gettid() wrapper, using pthread_getthreadid_np(3). This has also been submitted upstream.
PR: 236062
MFC r345283:
Enable building libomp.so for 32-bit x86. This is done by selectively enabling the functions that save and restore MXCSR, since access to this register requires SSE support.
Note that you may run into other issues with OpenMP on i386, since this *not* yet supported upstream, and certainly not extensively tested.
PR: 236062, 236582
MFC r345345:
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 8.0.0 final release r356365. There were no functional changes since the most recent merge, of 8.0.0 rc5.
Release notes for llvm, clang, lld and libc++ 8.0.0 are now available:
https://llvm.org/releases/8.0.0/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/lld/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/projects/libcxx/docs/ReleaseNotes.html
PR: 236062
MFC r345349:
Pull in r352826 from upstream lld trunk (by Fangrui Song):
[ELF] Support --{,no-}allow-shlib-undefined
Summary: In ld.bfd/gold, --no-allow-shlib-undefined is the default when linking an executable. This patch implements a check to error on undefined symbols in a shared object, if all of its DT_NEEDED entries are seen.
Our approach resembles the one used in gold, achieves a good balance to be useful but not too smart (ld.bfd traces all DSOs and emulates the behavior of a dynamic linker to catch more cases).
The error is issued based on the symbol table, different from undefined reference errors issued for relocations. It is most effective when there are DSOs that were not linked with -z defs (e.g. when static sanitizers runtime is used).
gold has a comment that some system libraries on GNU/Linux may have spurious undefined references and thus system libraries should be excluded (https://sourceware.org/bugzilla/show_bug.cgi?id=6811). The story may have changed now but we make --allow-shlib-undefined the default for now. Its interaction with -shared can be discussed in the future.
Reviewers: ruiu, grimar, pcc, espindola
Reviewed By: ruiu
Subscribers: joerg, emaste, arichardson, llvm-commits
Differential Revision: https://reviews.llvm.org/D57385
Pull in r352943 from upstream lld trunk (by Fangrui Song):
[ELF] Default to --no-allow-shlib-undefined for executables
Summary: This follows the ld.bfd/gold behavior.
The error check is useful as it captures a common type of ld.so undefined symbol errors as link-time errors:
// a.cc => a.so (not linked with -z defs) void f(); // f is undefined void g() { f(); }
// b.cc => executable with a DT_NEEDED entry on a.so void g(); int main() { g(); }
// ld.so errors when g() is executed (lazy binding) or when the program is started (-z now) // symbol lookup error: ... undefined symbol: f
Reviewers: ruiu, grimar, pcc, espindola
Reviewed By: ruiu
Subscribers: llvm-commits, emaste, arichardson
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D57569
Together, these add support for --no-allow-shlib-undefined, and make it the default for executables, so they will fail to link if any symbols from needed shared libraries are undefined.
Reported by: jbeich PR: 236062, 236141
MFC r345449:
Pull in r356809 from upstream llvm trunk (by Eli Friedman):
[ARM] Don't form "ands" when it isn't scheduled correctly.
In r322972/r323136, the iteration here was changed to catch cases at the beginning of a basic block... but we accidentally deleted an important safety check. Restore that check to the way it was.
Fixes https://bugs.llvm.org/show_bug.cgi?id=41116
Differential Revision: https://reviews.llvm.org/D59680
This should fix "Assertion failed: (LiveCPSR && "CPSR liveness tracking is wrong!"), function UpdateCPSRUse" errors when building the devel/xwpe port for armv7.
PR: 236062, 236568 |
345395 |
21-Mar-2019 |
asomers |
MFC r300938, r342154
r300938: Remove the sa(8) tests if MK_ACCT == no when "make delete-old" is run
sa(8) is conditionally installed based on MK_ACCT != no today
Sponsored by: EMC / Isilon Storage Division
r342154: OptionalObsoleteFiles: Fix deleting usr/tests/usr.sbin/sa
It's a directory, not a file.
Reported by: ngie X-MFC-With: 300938 |
345309 |
19-Mar-2019 |
cy |
Partially MFC r345079 + direct commit to stable/11.
The MFC updates tools/build/mk/OptionalObsoleteFiles.inc.
The direct commit updates etc/rc.d/Makefile becasue this file was moved in HEAD to libexec/rc/rc.d/Makefile, making svn merge impossible.
The original log message follows:
Fix still installing ipfilter rc.d files even when WITHOUT_IPFILTER is specified.
When WITHOUT_IPFILTER is specified, delete-old-files fails to delete the optional rc.d files from above. Fix this.
WITHOUT_IPFILTER fails to delete the ipfilter.5 optional file during delete-old-files. Fix this.
Reported by: Dmitry Luhtionov <dmitryluhtionov@gmail.com> |
344462 |
22-Feb-2019 |
avos |
MFC r344214: Refresh OptionalObsoleteFiles.inc for MK_PMC:
- Add missing pmc.haswellxeon.3 to the list. - Correct man page section for pmcstudy.8. |
344454 |
22-Feb-2019 |
avos |
MFC r344201: Remove vi(1)-related files via 'make delete-old' when WITHOUT_VI=1 is set. |
344399 |
21-Feb-2019 |
kevans |
MFC GELI Loader Improvements: r336252, r336254, r336256, r336354, r336532-r336534, r336537, r336626, r337326, r337349, r341071, r341160, r341420, r341473, r341651, r342793
Note that this MFC contains some seemingly unrelated zfsloader bits -- this was needed in order to pull in some later fixes for GELI hand-off w/ ZFS bits included.
r336252: Extend loader(8) geli support to all architectures and all disk-like devices.
This moves the bulk of the geli support from lib386/biosdisk.c into a new geli/gelidev.c which implements a devsw-type device whose dv_strategy() function handles geli decryption. Support for all arches comes from moving the taste-and-attach code to the devopen() function in libsa.
After opening any DEVT_DISK device, devopen() calls the new function geli_probe_and_attach(), which will "attach" the geli code to the open_file struct by creating a geli_devdesc instance to replace the disk_devdesc instance in the open_file. That routes all IO for the device through the geli code.
A new public geli_add_key() function is added, to allow arch/vendor-specific code to add keys obtained from custom hardware or other sources.
With these changes, geli support will be compiled into all variations of loader(8) on all arches because the default is WITH_LOADER_GELI.
r336254: Use if rather than case for a simple boolean. gcc thinks blks is undefined sometimes with the case, but enc is always 0 or 1, so and if / else is better anyway.
r336256: Fix glitched indentation (and rewrap as needed due to deeper indent). No functional changes.
r336354: zfsboot: fix build with WITHOUT_LOADER_GELI
r336532: Collapse zfsloader functionality back down into loader.
We no longer really need a separate zfsloader. It was useful when we were first supporting ZFS and had limited ability to properly boot off of ZFS without the special boot loader. Now that the boot loader has matured, go the way loader.efi pioneered and just build one binary. Change the name of the loader to load in the secondary boot blocks to be just /boot/loader. Provide a symbolic link from zfsloader to loader so people who have not upgraded their boot blocks are not affected. This has the happy benefit of making coexistence easier as well (fewer binaries in the matrix).
r336533: Eliminate zfsloader man page.
Remove all cross references to zfsloader.8 and /boot/zfsloader. Move ZFS specific info into loader.8.
r336534: NM and OBJCOPY are already defined for all builds. There's no need to conditionally define them here.
r336537: Mention zfsloader being folded into loader in UPDATING.
r336626: Older zfs boot blocks don't support symlinks. install the link to zfsloader as a hard link. While newer ones do, the whole point of the link was to transition to the new world order smoothly. A hard link is less flexible, but it works and will result in fewer bumps. Adjust UPDATING entry to match.
r337326: loader: biosdisk.c has leftover geli header.
A small cleanup, remove unneeded #include.
r337349: zfsboot: Fix startup crash
On a FreeNAS mini XL, with geli encrypted drives the loader crashed in geli_read().
When we iterate over the list of disks and allocate the zfsdsk structures we don’t zero out the gdev pointer. In one case that resulted in geli_read() (called on the bogus pointer) dividing by zero.
Use calloc() to ensure the zfsdsk structure is always zeroed, so the pointer is initialised to NULL. As a side benefit it gets rid of one #ifdef LOADER_GELI_SUPPORT.
r341071: Restore the ability to override the disk unit/partition at the boot: prompt in gptboot.
When arch-independent geli support was added, a new static 'gdsk' struct was added, but there was still a static 'dsk' struct, and when you typed in an alternate disk/partition, the string was parsed into that struct, which was then never used for anything. Now the string gets parsed into gdsk.dsk, the struct that's actually used.
r341160: Add comments describing the bootargs handoff between loader(8) and gptboot or zfsboot, when loader(8) is the BTX loader. No functional changes.
r341420: Eliminate duplicated code and struct member definitions in the handoff of args data between gptboot/zfsboot and loader(8).
Despite what seems like a lot of changes here, there are no actual changes in behavior, or in the data layout in the structures involved. This is just eliminating identical code pasted into multiple locations.
In detail, the changes are...
- Move struct zfs_boot_args definition from libsa/zfs/libzfs.h to i386/common/bootargs.h because it is specific to x86 booting and the handoff between zfsboot and loader, and has no relation to the zfs library code in general.
- The geli_boot_args and zfs_boot_args structs both contain an identical set of member variables containing geli information. Extract this out to a new geli_boot_data struct, and embed it in the arg-passing structs.
- Provide new routines geli_import_boot_data() and geli_export_boot_data() that can be shared between gptboot, zfsboot, and loader instead of pasting identical code into several different .c files.
- Remove some checks for a NULL pointer that can never be true because the pointer being tested was set using pointer math (kargs + 1) and that can never result in NULL in this code.
r341473: Fix args cross-threading between gptboot(8) and loader(8) with zfs support.
When loader(8) is built with zfs support enabled, it assumes that any extarg data present is a zfs_boot_args struct, but if the first-stage loader was gptboot(8) the extarg data is actually a geli_boot_args struct. Luckily, zfsboot(8) and gptzfsboot(8) have always passed KARGS_FLAGS_ZFS along with KARGS_FLAGS_EXTARG, so we can use KARGS_FLAGS_ZFS to decide whether the extarg data is a zfs_boot_args struct.
To avoid similar problems in the future, gptboot(8) now passes a new KARGS_FLAGS_GELI to indicate that extarg data is geli_boot_args. In loader(8), if the neither KARGS_FLAGS_ZFS nor KARGS_FLAGS_GELI is set but extarg data is present (which will be the case for gptboot compiled before this change), we now check for the known size of the geli_boot_args struct passed by the older versions of gptboot as a way of confirming what type of extarg data is present.
In a semi-related tidying up, since loader's main() has already decided what type of extarg data is present and set the global 'zargs' var accordingly, don't repeat the check in extract_currdev, just check whether zargs is NULL or not.
r341651: Don't reference zfs-specific variables if LOADER_ZFS_SUPPORT is undefined because the variables will be undefined too.
r342793: MK_ZFS -> {MK_ZFS|MK_LOADER_ZFS}, this is so we can diable userland / kernel ZFS but keep the boot-loaders when using ZoL port.
Relnotes: yes (GELI support extended) Relnotes: yes (zfsloader has been collapsed into loader and may be removed after boot blocks have been updated) |
344220 |
17-Feb-2019 |
kevans |
MFC lualoader: r326353, r328440, r328443, r329166-r329167, r329274, r329329, r329349-r329352, r329355-r329359, r329366-r329369, r329386-r329387, r329393, r329413-r329415, r329417, r329424-r329436, r329457, r329473-r329474, r329496-r329501, r329503-r329504, r329543, r329547-r329551, r329576-r329578, r329580, r329583, r329585-r329590, r329592-r329596, r329609-r329611, r329614, r329619, r329621-r329622, r329624, r329626-r329627, r329629-r329632, r329640-r329641, r329643-r329646, r329649-r329650, r329654, r329656, r329662, r329669-r329671, r329673-r329674, r329680, r329684-r329689, r329692-r329693, r329696-r329700, r329709, r329716, r329731, r329733-r329734, r329747-r329748, r329756, r329779, r329782, r329784, r329786, r329804, r329806, r329809, r329811, r329836, r329850-r329852, r329854, r329856-r329858, r329861, r329895, r329897-r329899, r329901-r329903, r329922-r329924, r329927-r329928, r329944-r329949, r329986-r329987, r330008-r330010, r330012, r330020, r330082-r330084, r330087-r330088, r330098-r330101, r330138-r330139, r330261-r330263, r330267-r330269, r330281-r330284, r330287, r330339-r330342, r330345-r330346, r330369-r330370, r330434-r330435, r330564, r330616-r330618, r330620, r330625, r330690, r330701, r330703, r330825, r331211, r331257, r331259, r331281-r331282, r331304, r331314, r331476-r331477, r331563-r331564, r331854-r331857, r331859-r331860, r332106, r334723, r334879, r334891, r334907, r334912, r334939, r334986, r335009, r335371, r336759, r337711, r337807-r337810, r338054, r338063, r338065-r338067, r338083, r338085-r338086, r338108, r338167-r338168, r338173, r338203, r338255, r338259, r338309, r338394, r338438, r338886, r338893, r339173, r339200, r339218, r339222, r339301, r339307, r339677-r339678, r339702, r339805, r339831, r339849, r340040, r340152
Some notes for this MFC: - This is still pre-forth/lua coexistance; that will come shortly-ish so that forth/lua may be installed together (with forth remaining the default)
- module_blacklist support for lualoader has been MFC'd, but the drm modules are not blacklisted in this stable branch.
r326353: Import lua 5.3.4 to contrib r328440: Preserve the original luaconf.h in a convenient place. Clients will r328443: Gross hack to omit printing hex floating point when the lua number r329166: Add Lua as a scripting langauge to /boot/loader r329167: Add the lua scripts from the lua-bootloader SoC r329274: stand/lua: Exit sub-menus on backspace r329329: stand/lua: Always boot on 'enter' keypress in menus r329349: stand/lua: Reduce magic numbers r329350: stand/lua: Don't descend into an empty kernels submenu r329351: stand/lua: Set reasonable ACPI default based on presence r329352: stand/lua: Consistently use semicolons for line endings r329355: stand/lua: Move kernel selection into main menu r329356: stand/lua: Allow menu items to not have explicit aliases r329357: stand/lua: Remove explicit alias from "Back to main menu" r329358: stand/lua: Say "loader prompt" instead of "lua interpreter" r329359: stand/lua: Remove a magic number/string (not a trivial literal) r329366: stand/lua: Set ACPI's default the proper way (setACPI) r329367: stand/lua: Create a "carousel" menu entry type r329368: stand/lua: Create/use some MENU_ constants where applicable r329369: stand/lua: Remove sneaky kernel assignment r329386: stand/lua: Correct usage and acceptance of BACKSPACE/DELETE keys r329387: stand/lua: Chop off the decimal for numbers passed to setcursor r329393: stand/lua: Use escaped dot instead of single character class r329413: stand/lua: Allow MENU_RETURN items to have func, fix esc. to prompt r329414: stand/lua: Don't try to divide by 0; do nothing r329415: stand/lua: Don't reload kernel config if we only have one kernel r329417: stand/lua: Make CAROUSEL_ENTRY func parameters consistent with name r329424: stand/lua: Don't set autoboot_delay=NO in menu autoboot sequence r329425: stand/lua: Enable menu autoboot; it seems to work r329426: stand/lua: Correct interpretation of autoboot_delay r329427: stand/lua: Color non-default kernels blue r329428: stand/lua: Correct some trivial errors in config r329429: stand/lua: Add debug method to dump modules r329430: stand/lua: Address some nits r329431: stand/lua: Correct test sense, this should have been 'not nil' r329432: stand/lua: Try to load alternate kernels as directories first r329433: stand/lua: Add optional GELI passphrase prompt r329434: stand/lua: Check for nil (GELI prompt) r329435: stand/lua: Style pass r329436: stand/lua: Debugging string snuck in... r329457: stand/lua: dumpModules => lsModules r329473: liblua: Clean up io/loader C module registration r329474: liblua: Emulate DIR, opendir, fdopendir, closedir r329496: stand/lua: Fix verbiage and some typos r329497: stand/lua: Fix module_path handling with multiple kernels r329498: stand/lua: Remove some debugging bits that snuck in... gr... r329499: interp_lua: Register io/loader with regular Lua module system r329500: Lua loader: Add barebones "lfs" module r329501: lua loader: Auto detect eligible list of kernels to boot r329503: liblua: Fix missing '}' in lutil.c after r329499 r329504: stand/lua: More style nits, config.lua r329543: Create style.lua(9) r329547: stand/lua: Allow menu items to be conditionally (in)visible r329548: stand/lua: Addres style.lua(9) concern r329549: stand/lua: Clear the screen before prompting for passwords r329550: stand/lua: Store the loaded kernel as config.kernel_loaded r329551: stand/lua: reload previously loaded kernel at config-load/reload r329576: stand/lua: Defer kernel/module loading until boot or menu escape r329577: stand/lua: Rename bootserial for clarity r329578: stand/lua: Menu style.lua(9) nits r329580: stand/lua: Remove some unused local declarations r329583: stand/lua: Store menu entries in an "entries" table r329585: stand/lua: Add core.isSingleUserBoot r329586: stand/lua: Call menu_entries if it's a function r329587: stand/lua: Swap single-/multi- user boot entries as needed r329588: stand/lua: Re-wrap menu.lua now that I've added indentation... r329589: stand/lua: Track env changes that come in via loader.conf(5) r329590: stand/lua: Restore environment upon config reload r329592: stand/lua: Remove inaccurate comment after r329590 r329593: stand/lua: Change boot menu items' names when swapped r329594: stand/lua: Round up some more style.lua(9) concerns r329595: stand/lua: Re-order locals after copyright notice; require first r329596: stand/lua: Add copyright notice in places r329609: stand/lua: Cache swapped menu, and don't create locals for swapping r329610: style.lua(9): Note that wrapping at 80-columns is not rigid r329611: stand/lua: Wrap tuple assignment earlier for readability r329614: stand/lua: Don't set ACPI off just because we can't detect it. r329619: stand/lua: Extract menu handlers out into menu.handlers table r329621: stand/lua: Add and use drawer.menu_name_handlers r329622: stand/lua: Move drawer.menu_name_handlers further up r329624: stand/lua: Reduce exposure of the drawer module r329626: stand/lua: Refactor logos into drawer.logodefs table r329627: stand/lua: Refactor brands into drawer.branddefs r329629: stand/lua: Use 'graphic' instead of 'logo' for depicting graphics r329630: stand/lua: Stick a copyright notice on drawer.lua r329631: stand/lua: Insert helpful comment for drawer.branddefs r329632: style.lua(9): Clarify local variable guideline r329640: stand/lua: Consistently declare local functions at module scope r329641: stand/lua: Consistently organize modules r329643: Implement loader.command r329644: lualoader: Add ability to intercept cli commands r329645: lualoader: Move carousel storage out into config r329646: lualoader: Eliminate global namespace pollution in loader.lua r329649: Lua lfs.attributes: Provide a more consistent error return r329650: liblua: Add loader.machine and loader.machine_arch properties r329654: lualoader: Ignore ACPI bits on !i386 r329656: loader.lua: Expose errno table to lua r329662: lualoader: Replace invalid construct with valid construct r329669: lualoader: Prefer selected kernel to currently loaded r329670: lualoader: Don't try so hard to load a kernel r329671: lualoader: Prepare for interception of "boot" CLI cmd r329673: lualoader: Intercept boot cli command r329674: lualoader: Intercept the 'autoboot' cli command r329680: lualoader: When restoring environment, only restore unchanged vars r329684: lualoader: Drop terminating semicolons r329685: lualoader: Drop excessive parenthesizing r329686: style.lua(9): Drop notes about semicolons r329687: lualoader: Drop explicit boolean tests; b or not b r329688: lualoader: Don't return false for failure to open config on silent r329689: lualoader: Output "Failed to parse" messages r329692: lualoader: Bring in local.lua module if it exists r329693: lualoader: Return only argstr if with_kernel not requested r329696: lualoader: Add "menu.default", initialized to menu.welcome r329697: lualoader: Drop name requirement for menu separators r329698: lualoader: Directly reference submenu definition with submenu key r329699: lualoader: Simplify menu definitions a little further r329700: lualoader: Allow carousel 'items' to be a table as well r329709: lualoader: Don't autodetect kernels if 'kernels' is explicitly set r329716: lualoader: Use the key that interrupts autoboot as a menu choice r329731: lualoader: Add boot environment support r329733: lualoader: Make kernel autodetect. contingent on loader.conf(5) var r329734: lualoader: Don't execute menu.autoboot() for every opened menu r329747: lualoader: Replace 8-space indentation with a single tab r329748: lualoader: Drop password length restrictions r329756: lualoader: Remove nasty hack for not printing out ".0" r329779: lualoader: Split cli bits out into a cli module r329782: lualoader: Unbreak 'boot [kernel]' by including config r329784: lualoader: Pull argument extraction for cli funcs to cli.arguments r329786: lualoader: Attach cli command functions to cli module r329804: lualoader: Eliminate some unused locals r329806: lualoader: Consistently use double quotes r329809: lualoader: Address some 'luacheck' concerns r329811: lualoader: Clear up an empty conditional branch r329836: lualoader: Attend to some 80-col issues, pointed out by luacheck r329850: lualoader: Drop unused return values; we'll only use the first r329851: Add SPDX tags to lua files r329852: Add copyright notice to core.lua r329854: lualoader: shallowCopyTable => deepCopyTable r329856: lualoader: Use "local function x()" instead "local x = function()" r329857: Centralize lua defines r329858: When the LUA_FLOAT_TYPE != LUA_FLOAT_INT64, we can't ref. float r329861: lualoader: Track effective line number, use it for drawing r329895: liblua: Implement write support r329897: lualoader: Add nextboot support r329898: lualoader: Plug file handle not properly closed r329899: lualoader: Correct test and name r329901: lualoader: Add comment on trailing space, don't operate on nil r329902: lualoader: Remove unused variable; we now use effective line number r329903: lualoader: Explain nextboot stuff a little bit more r329922: lualoader: Split config file I/O out into a separate function r329923: lualoader: Strip config.parse of its I/O privileges r329924: lualoader: throw out nextboot's usage of standard config processing r329927: lualoader: Clean up naming conventions a little bit r329928: lualoader: Remove inaccurate part of comment r329944: lualoader: Don't explicitly index tables without reason r329945: lualoader: menu: Terminate final values in tables with a comma r329946: lualoader: Clean up menu handling a little bit r329947: lualoader: Pull menu redrawing specifics out of menu.process r329948: lualoader: Pull autoboot handling out into menu.run() r329949: lualoader: Explain deviation from naming guidelines r329986: lualoader: Invalidate the screen from menu perspective mnu exit r329987: lualoader: Track the menu currently drawn, instead of validity r330008: lualoader: A little more general menu cleanup r330009: lualoader: More argument name expansion, part 2 r330010: lualoader: screen argument fixes r330012: style.lua(9): Add some additional notes about naming and commas r330020: lualoader: Re-work menu skipping bits r330082: lualoader: Add a twiddle at password prompt r330083: lualoader: Remove remnants of testing... r330084: lualoader: Replace instances of \027 with KEYSTR_ESCAPE r330087: lualoader: Convert instances of KEYSTR_ESCAPE .. "[" -> KEYSTR_CSI r330088: lualoader: Correct test sense, comments, and add some more comments r330098: lualoader: Re-do twiddle r330099: lualoader: Further screen cleanup r330100: lualoader: Remove debug function r330101: lualoader: Add note that \027 is a decimal representation r330138: lualoader: Dedup these "Return to main menu" entries r330139: lualoader: config: Pull some messages out into constants r330261: lualoader: Fix some lint-mentioned errors r330262: lualoader: Use #str instead of tracking length with 'n' r330263: lualoader: Use string literal \xNN instead of string.char() r330267: Add core.lua(8), but do not add to distribution r330268: Add menu.lua(8), but do not add to distribution r330269: core.lua(8): Add missing note about core.KEYSTR_CSI r330281: lualoader: Steamroll the box-drawing r330282: lualoader: Register loader.printc as global printc r330283: lualoader: Use global printc instead of loader.printc r330284: liblua: Use putc instead of printf for printc r330287: lualoader: Reset the cursor position after the menu is drawn r330339: liblua: Add loader.interpret r330340: lualoader: Execute menu_timeout_command at the end of menu autoboot r330341: lualoader: Respect loader_menu_title, prepare for align r330342: lualoader: Respect loader_menu_title_align r330345: lualoader: Tweak positioning and fix an off-by-one r330346: lualoader: Shift menu+brand even for logo=none with customized pos r330369: lualoader: Return meaningful value in cli_execute r330370: lualoader: logdef -> logodef typo r330434: lualoader: Add note about importance of including cli module early r330435: lualoader: Use FILESDIR instead of BINDIR r330564: lualoader: Only loadelf before boot/autoboot if no kernel loaded r330616: lualoader: Expose loader.parse and add cli_execute_unparsed r330617: lualoader: Fix name, cli.execute_unparsed -> cli_execute_unparsed r330618: lualoader: Use cli_execute_unparsed instead of loader.interpret r330620: lualoader: Use cli_execute_unparsed for commands via loader.conf r330625: lualoader: Return status in cli_execute_unparsed properly r330690: stand: Fix copy-paste-o, unbreaks libi386 lualoader build r330701: lualoader: Don't redraw the autoboot message every .05s r330703: lualoader: Cache kernel list r330825: lualoader: Sprinkle some verbose_loading salt r331211: lualoader: Setup default color scheme if we're using colors r331257: lualoader: Reset attributes and color scheme with color.highlight() r331259: lualoader: Use less atomic options for resetting colors/attributes r331281: lualoader: Add primitive hook module to untangle bogus reference r331282: core.lua(8): Update to reflect recently added function r331304: lualoader: Clear up some possible naming confusion r331314: lualoader: Use printc when we expect ANSI escape sequences r331476: lualoader: Make config env-related bits private API r331477: lualoader: Privatize some more config.lua bits r331563: lualoader: Implement try_include and use it for including local r331564: lualoader: Actually re-raise error in try_include r331854: lualoader: Do case-insensitive comparison of "yes" r331855: lualoader: Don't assume that {module}_load is set r331856: lualoader: revert whitespace change that snuck in r331857: lualoader: Simplify some expressions r331859: lualoader: Split logodefs out into logo-* files r331860: lualoader: Don't try to lookup a nil logo r332106: lualoader: Fix menu skipping with loader.conf(5) vars r334723: lualoader: Add a loaded hook for others to execute upon config load r334879: lualoader: Add hook.lua(8) to tree r334891: lualoader: Add cli.lua(8) to the tree r334907: lualoader: Process loader_conf_files properly r334912: lualoader: Support variable substitution in env var settings r334939: lualoader: Allow brand-*.lua for adding new brands r334986: lualoader: More black-on-white fixes r335009: lualoader: Match Forth module-loading behavior w.r.t flags r335371: lualoader: Correct kernel_options handling r336759: lualoader: "nextboot_file" should be spelled "nextboot_conf" r337711: lualoader: Fix parsing of negative number loader.conf(5) variables r337807: Prevent a wanring about checkdp being unused. r337808: When the LUA floating point model is INT64, we don't need to do the r337809: For our INT64 implementation, we can compare integers and numbers r337810: MFV r337586: lua: Update to 5.3.5 r338054: Add config.lua(8) to the tree r338063: lualoader: Stop exporting drawer.draw r338065: lualoader: Hide most of the internal drawing functions r338066: lualoader: Hide the rest of the private interfaces r338067: lualoader: Add drawer-exported variables for default logodefs r338083: Add drawer.lua(8) r338085: Add color.lua(8), password.lua(8), and screen.lua(8) r338086: lualoader: Install all manpages r338108: Serial console menus for lua. r338167: lualoader: Just compare expression directly r338168: lualoader: Refactor config line expressions r338173: lualoader: Fix loader.conf(5) EOL validation for 'exec' lines r338203: Turn off LOADER_GELI and LOADER_LUA for sparc64, until functional r338255: lualoader: Fix (add) Xen support r338259: lualoader: Accept that people use unquoted values in loader.conf r338309: lualoader: Fix override of module_path on loader prompt r338394: lualoader: fix color usage r338438: lualoader: Handle comma-separated kernels as well r338886: Improve loader passwords: r338893: Set the default loader for powerpc(32- and 64-bit) back to to forth r339173: Set the default loader for powerpc64 back to to forth too. r339200: lualoader: Don't draw loader menu with autoboot_delay=-1 r339218: lualoader: Create a module blacklist, add DRM modules to it r339222: lualoader: Honor boot_* variables at lua init r339301: Loader GELI support, like lua loader, seems to be broken on PowerPC r339307: lualoader: Provide a 'menu' command to redraw the menu at prompt r339677: lualoader: unload upon kernel change if a kernel was loaded r339678: menu.lua: Abort autoboot sequence on failed command r339702: lualoader: Improve module loading diagnostics r339805: lualoader: Always return a proper dictionary for blacklist r339831: Move LUA_ROOT to /boot/lua r339849: lualoader: Fix try_include error handling r340040: lualoader: Implement boot-conf r340152: lualoader: Add chainload menu entry
Relnotes: yes ("lualoader has been merged to stable/11, off by default, to facilitate testing") |
344213 |
16-Feb-2019 |
dim |
Merge clang 7.0.1 and several follow-up changes
MFC r318594:
Add libc++experimental.a for std::experimental support
This adds a separate library for supporting std::experimental features. It is purposefully static, and must be explicitly linked into programs using -lc++experimental.
PLEASE NOTE: there is NO WARRANTY as to any stability or continuing existence of the features in the std::experimental parts of the C++ library!
Reviewed by: ed Differential Revision: https://reviews.freebsd.org/D10840
MFC r318598:
Add PICFLAG to build libc++experimental.a, so it can be used in all situations.
Noticed by: kib
r336969 | emaste | 2018-07-31 16:12:09 +0200 (Tue, 31 Jul 2018) | 13 lines
llvm: [ELF][ARM] Add Arm ABI names for float ABI ELF Header flags
The ELF for the Arm architecture document defines, for EF_ARM_EABI_VER5 and above, the flags EF_ARM_ABI_FLOAT_HARD and EF_ARM_ABI_FLOAT_SOFT. These have been defined to be compatible with the existing EF_ARM_VFP_FLOAT and EF_ARM_SOFT_FLOAT used by gcc for EF_ARM_EABI_UNKNOWN.
This patch adds the flags in addition to the existing ones so that any code depending on the old names will still work.
Obtained from: llvm r338370 by Peter Smith
r336970 | emaste | 2018-07-31 16:14:41 +0200 (Tue, 31 Jul 2018) | 9 lines
llvm: [ARM] Complete enumeration values for Tag_ABI_VFP_args
The LLD implementation of Tag_ABI_VFP_args needs to check the rarely seen values of 3 (toolchain specific) and 4 compatible with both Base and VFP. Add the missing enumeration values so that LLD can refer to them without having to use the raw numbers.
Obtained from: llvm r338373 by Peter Smith
r336972 | emaste | 2018-07-31 17:25:03 +0200 (Tue, 31 Jul 2018) | 37 lines
lld: [ELF][ARM] Implement support for Tag_ABI_VFP_args
The Tag_ABI_VFP_args build attribute controls the procedure call standard used for floating point parameters on ARM. The values are:
0 - Base AAPCS (FP Parameters passed in Core (Integer) registers 1 - VFP AAPCS (FP Parameters passed in FP registers) 2 - Toolchain specific (Neither Base or VFP) 3 - Compatible with all (No use of floating point parameters)
If the Tag_ABI_VFP_args build attribute is missing it has an implicit value of 0.
We use the attribute in two ways:
* Detect a clash in calling convention between Base, VFP and Toolchain.
we follow ld.bfd's lead and do not error if there is a clash between an implicit Base AAPCS caused by a missing attribute. Many projects including the hard-float (VFP AAPCS) version of glibc contain assembler files that do not use floating point but do not have Tag_ABI_VFP_args.
* Set the EF_ARM_ABI_FLOAT_SOFT or EF_ARM_ABI_FLOAT_HARD ELF header flag
for Base or VFP AAPCS respectively. This flag is used by some ELF loaders.
References: * Addenda to, and Errata in, the ABI for the ARM Architecture for Tag_ABI_VFP_args * Elf for the ARM Architecture for ELF header flags
Fixes LLVM PR36009
PR: 229050 Obtained from: llvm r338377 by Peter Smith
r337282 | alc | 2018-08-04 04:30:51 +0200 (Sat, 04 Aug 2018) | 7 lines
Set the default image base on arm64 and i386 to a superpage-aligned address.
Reviewed by: emaste, markj Discussed with: dim Differential Revision: https://reviews.freebsd.org/D16385
r339304 | emaste | 2018-10-11 15:19:17 +0200 (Thu, 11 Oct 2018) | 13 lines
lld: set sh_link and sh_info for .rela.plt sections
ELF spec says that for SHT_REL and SHT_RELA sh_link should reference the associated string table and sh_info should reference the "section to which the relocation applies." ELF Tool Chain's elfcopy / strip use this (in part) to control whether or not the relocation entry is copied to the output.
LLVM PR 37538 https://bugs.llvm.org/show_bug.cgi?id=37538
Approved by: re (kib) Obtained from: llvm r344226 (backported for 6.0)
MFC r341825:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to the upstream release_70 branch r348686 (effectively, 7.0.1 rc3). The release will follow very soon, but no more functional changes are expected.
Release notes for llvm, clang and lld 7.0.0 are available here: <http://releases.llvm.org/7.0.0/docs/ReleaseNotes.html> <http://releases.llvm.org/7.0.0/tools/clang/docs/ReleaseNotes.html> <http://releases.llvm.org/7.0.0/tools/lld/docs/ReleaseNotes.html>
PR: 230240, 230355 Relnotes: yes
MFC r342123:
Update clang, llvm, lld, lldb, compiler-rt and libc++ version number to 7.0.1 release r349250. There were no functional changes since the 7.0.1 rc3 import.
PR: 230240, 230355 Relnotes: yes
r343429 | emaste | 2019-01-25 15:46:13 +0100 (Fri, 25 Jan 2019) | 16 lines
clang: default to DWARF 4 as of FreeBSD 13
FreeBSD previously defaulted to DWARF 2 because several tools (gdb, ctfconvert, etc.) did not support later versions. These have either been fixed or are deprecated.
Note that gdb 6 still exists but has been moved out of $PATH into /usr/libexec and is intended only for use by crashinfo(8). The kernel build sets the DWARF version explicitly via -gdwarf2, so this should have no effect there.
PR: 234887 [exp-run] Reviewed by: markj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D17930
MFC r343916:
Pull in r352607 from upstream llvm trunk (by Craig Topper):
[X86] Add FPSW as a Def on some FP instructions that were missing it.
Pull in r353141 from upstream llvm trunk (by Craig Topper):
[X86] Connect the default fpsr and dirflag clobbers in inline assembly to the registers we have defined for them.
Summary: We don't currently map these constraints to physical register numbers so they don't make it to the MachineIR representation of inline assembly.
This could have problems for proper dependency tracking in the machine schedulers though I don't have a test case that shows that.
Reviewers: rnk
Reviewed By: rnk
Subscribers: eraman, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D57641
Pull in r353489 from upstream llvm trunk (by Craig Topper):
[X86] Add FPCW as a register and start using it as an implicit use on floating point instructions.
Summary: FPCW contains the rounding mode control which we manipulate to implement fp to integer conversion by changing the roudning mode, storing the value to the stack, and then changing the rounding mode back. Because we didn't model FPCW and its dependency chain, other instructions could be scheduled into the middle of the sequence.
This patch introduces the register and adds it as an implciit def of FLDCW and implicit use of the FP binary arithmetic instructions and store instructions. There are more instructions that need to be updated, but this is a good start. I believe this fixes at least the reduced test case from PR40529.
Reviewers: RKSimon, spatel, rnk, efriedma, andrew.w.kaylor
Subscribers: dim, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D57735
These should fix a problem in clang 7.0 where it would sometimes emit long double floating point instructions in a slightly wrong order, leading to failures in our libm tests. In particular, the cbrt_test test case 'cbrtl_powl' and the trig_test test case 'reduction'.
Also bump __FreeBSD_cc_version, to be able to detect this in our test suite.
Reported by: lwhsu PR: 234040 Upstream PR: https://bugs.llvm.org/show_bug.cgi?id=40206
MFC r344056:
Pull in r339734 from upstream llvm trunk (by Eli Friedman):
[ARM] Make PerformSHLSimplify add nodes to the DAG worklist correctly.
Intentionally excluding nodes from the DAGCombine worklist is likely to lead to weird optimizations and infinite loops, so it's generally a bad idea.
To avoid the infinite loops, fix DAGCombine to use the isDesirableToCommuteWithShift target hook before performing the transforms in question, and implement the target hook in the ARM backend disable the transforms in question.
Fixes https://bugs.llvm.org/show_bug.cgi?id=38530 . (I don't have a reduced testcase for that bug. But we should have sufficient test coverage for PerformSHLSimplify given that we're not playing weird tricks with the worklist. I can try to bugpoint it if necessary, though.)
Differential Revision: https://reviews.llvm.org/D50667
This should fix a possible hang when compiling sys/dev/nxge/if_nxge.c (which exists now only in the stable/11 branch) for arm. |
344117 |
14-Feb-2019 |
avos |
MFC r343868: Add ypldap(8)-related files and /var/yp directory to the OptionalObsoleteFiles.inc. |
343685 |
02-Feb-2019 |
avos |
MFC r343502: Remove RADIUS-related files when WITHOUT_RADIUS_SUPPORT=true is set in src.conf(5)
PR: 234041 |
342808 |
06-Jan-2019 |
kevans |
Revert r342807, mistakenly including libbe(3)/bectl(8) MFC |
342807 |
06-Jan-2019 |
kevans |
MFC r342362-r342363: config(8) duplicate option handling
r342362: config(8): Allow duplicate options to be specified
config(8)'s option handling has been written to allow duplicate options; if the value changes, then the latest value is used and an informative message is printed to stderr like so:
/usr/src/sys/amd64/conf/TEST: option "VERBOSE_SYSINIT" redefined from 0 to 1
Currently, this is only a possibility for cpu types, MAXUSERS, and MACHINE_ARCH. Anything else duplicated in a config file will use the first value set and error about duplicated options on subsequent appearances, which is arguably unfriendly since one could specify:
include GENERIC nooptions VERBOSE_SYSINIT options VERBOSE_SYSINIT
to redefine the value later anyways.
Reported by: mmacy
r342363: config(8): Remove all instances of an option when opting out
Quick follow-up to r342362: options can appear multiple times now, so clean up all of them as needed. For non-OPTIONS options, this has no effect since they're already de-duplicated. |
339282 |
10-Oct-2018 |
emaste |
MFC r334072, r334247 (eadler): Add the text '@generated' to src.conf.5
This is a cross-tool approach to identifying generated code. Some tools, notably phabricator, handle this marker specially. See https://reviews.freebsd.org/differential/diff/42870/ for such an example. |
339281 |
10-Oct-2018 |
emaste |
MFC r306729: makeman: avoid bogus output with duplicated options
On some targets 'make showconfig' currently reports both 'no' and 'yes' for some options. For example:
% make TARGET=mips showconfig | grep SSP MK_SSP = no MK_SSP = yes
Emit a warning on encountering a duplicated variable, and skip the second entry.
PR: 226908, 229514 Sponsored by: The FreeBSD Foundation |
339162 |
03-Oct-2018 |
kevans |
MFC r338223, r338263: Missing bits from OptionalObsoleteFiles
r338223: Remove ZFS leftovers when WITHOUT_ZFS is set
Submitted by: Oliver Pinter Differential Revision: https://reviews.freebsd.org/D16810
r338263: Remove hyper-v leftovers when WITHOUT_HYPERV is set
hv_vss_daemon was missed. |
337682 |
12-Aug-2018 |
kib |
MFC r336569: Move mostly useless examples binaries from OFED, as well as the Subnet Manager, under the new option WITH_OFED_EXTRA, disabled by default. |
337333 |
04-Aug-2018 |
kevans |
kenv MFC: r335998, r336019, r336026, r336036, r336217, r336335, r336337, r336415-r336416, r336419
As an aside- this has been slightly altered from the version in head to keep the MD and config-static environments mutually exclusive by default.
This difference is a one-line change in init_static_kenv to setup the MD environment if the config-static environment is empty or if loader_env.disabled is explicitly set to 0.
r335998: kern_environment: use any provided environments, evict hintmode/envmode
At the moment, hintmode and envmode are used to indicate whether static hints or static env have been provided in the kernel config(5) and the static versions are mutually exclusive with loader(8)-provided environment. hintmode *can* be reconfigured later to pull from the dynamic environment, thus taking advantage of the loader(8) or post-kmem environment setting.
This changeset fixes both problems at once to move us from a semi-confusing state to a consistent state: if an environment file, hints file, or loader(8) environment are provided, we use them in a well-known order of precedence:
- loader(8) environment - static environment - static hints file
Once the dynamic environment is setup this becomes a moot point. The loader(8) and static environments are merged (respecting the above order of precedence), and the static hints are merged in on an as-needed basis after the dynamic environment has been setup.
Hints lookup are changed to respect all of the above. Before the dynamic environment is setup, lookups use the above-mentioned order and fallback to the next environment if a matching hint is not found. Once the dynamic environment is setup, that is used on its own since it captures all of the above information plus any dynamic kenv settings that came up later in boot.
The following tangentially related changes were made to res_find:
- A hintp cookie is now passed in so that related searches continue using the chain of environments (or dynamic environment) without relying on global state - All three environments will be searched if they actually have valid hints to use, rather than just choosing the first environment that actually had a hint and rolling with that only
The hintmode sysctl has been ripped out. static_{env,hints}.disabled are still honored and will disable their respective environments from being used for hint lookups and from being merged into the dynamic environment, as expected.
r336019: config(8): De-dupe hint/env vars within a single file
r335653 flipped the order in which hints/env files are concatenated to match the order in which vars are processed by the kernel. This is the other hammer to drop.
Use nv(9) to de-dupe entries within a single `hint` or `env` file, using the latest value specified for a key. This leaves some duplicates if a variable is specified in multiple hint/env files or via `envvar` in a kernel config, but the reversed order of concatenation (from r335653) makes this a non-issue as the latest-specified version will be seen first.
This change also silently rewrote hint bits to use the same sanitization process that ian@ wrote for r335642. To the kernel, hints and env vars are basically the same thing through early boot, then get merged into the dynamic environment once kmem becomes available and the dynamic environment is created. They should be subjected to the same restrictions.
libnv has been added to -legacy for the time being to support the build of config(8) with the new cnvlist API.
r336026: config(8): Fix broken ABI
r336019 introduced ${SRCTOP}/sys to the include paths in order to pull in a new sys/{c,}nv.h. This is wrong, because the build tree's ABI isn't guaranteed to match what's running on the host system.
Fix instead by removing -I${SRCTOP}/sys and installing the libnv headers with `make -C lib/libnv includes`... this may or may not get re-worked in the future so that a userland lib isn't installing includes from sys/.
r336036: kern_environment: Fix SYSINIT ordering
The dynamic environment was being initialized at SI_SUB_KMEM, SI_ORDER_ANY. I added the hint-merging at SI_SUB_KMEM, SI_ORDER_ANY as well in r335998 - this can only work by coincidence.
Re-do both to operate at SI_SUB_KMEM + 1, SI_ORDER_FIRST and SI_ORDER_SECOND respectively to be safe. It's sufficiently obfuscated away as to when in SU_SUB_KMEM malloc will be available, and the dynamic environment cannot be relied upon there anyways since it's initialized at SI_ORDER_ANY.
r336217: kern_environment: Give the static environment a chance to disable MD env
This variable has been given the name "loader_env.disabled" as it's the primary way most people will have an MD environment. This restores the previously-default behavior of ignoring the loader(8) environment, which may be useful for vendor distributions or other scenarios where inheriting the loader environment may be considered a security issue or potentially breaking of a more locked-down environment.
As the change to config(5) indicates, disabling the loader environment should not be a choice made lightly since it may provide ACPI hints and other useful things that the system can rely on to boot.
An UPDATING entry has been added to mention an upgrade path for those that may have relied on the previous behavior.
r336335 by arichardson: No longer install sys/nv.h and sys/cnv.h in lib/libnv/Makefile
Use tools/build/Makefile to install the headers into ${WORLDTMP}/legacy instead. Compared to r336026 this has the minor advantage that it avoids unncessary header installation when building the non-bootstrap libnv.
r336337: Unconditionally build libnv in legacy
Rather than using a config(8) built from new tree linking libnv built on host.
r336415: config(8): Add compatibility shims for r335998
Plumb the %VERSREQ from Makefile.<arch> through to the rest of config(8). We've recorded the config(8) version that we're calling "the end of envmode and hintmode," and we'll write them out for earlier versions. Later kernel version bumps will remove envmode/hintmode from the kernel as needed, which is OK since the current kernel does not use them at all.
These compatibility shims really need to go away when the major version rolls over...
r336416: Fix GCC 4.2 build after r336415, proper declaration and prototype
r336419: config(8): Invert checks; envmode/hintmode reflect "env provided"
Relnotes: yes (maybe) [The loader environment may now be used with the config-static environment by specifying loader_env.disabled=0 in the config-static environment] |
336278 |
14-Jul-2018 |
dim |
MFC r335799:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.1 release (upstream r335540).
Relnotes: yes
MFC r335813:
Follow-up to r335799 (llvm/clang 6.0.1 update), by regenerating various headers with new version information defines.
MFC r335819:
More follow-up to r335799 (llvm/clang 6.0.1 update), where I forgot to update mtree files, ObsoleteFiles and a number of other paths. Sorry about all the breakage.
Pointy hat to: me |
335875 |
02-Jul-2018 |
dim |
MFC r335558:
Add support for selectively enabling LLVM targets
This makes it possible, through src.conf(5) settings, to select which LLVM targets you want to build during buildworld. The current list is:
* (WITH|WITHOUT)_LLVM_TARGET_AARCH64 * (WITH|WITHOUT)_LLVM_TARGET_ARM * (WITH|WITHOUT)_LLVM_TARGET_MIPS * (WITH|WITHOUT)_LLVM_TARGET_POWERPC * (WITH|WITHOUT)_LLVM_TARGET_SPARC * (WITH|WITHOUT)_LLVM_TARGET_X86
To not influence anything right now, all of these are on by default, in situations where clang is enabled.
Selectively turning a few targets off manually should work. Turning on only one target should work too, even if that target does not correspond to the build architecture. (In that case, LLVM_NATIVE_ARCH will not be defined, and you can only use the resulting clang executable for cross-compiling.)
I performed a few measurements on one of the FreeBSD.org reference machines, building clang from scratch, with all targets enabled, and with only the x86 target enabled. The latter was ~12% faster in real time (on a 32-core box), and ~14% faster in user time. For a full buildworld the difference will probably be less pronounced, though.
Reviewed by: bdrewery Differential Revision: https://reviews.freebsd.org/D11077 |
335752 |
27-Jun-2018 |
kevans |
MFC r335467: Don't remove loader.conf(5) when built WITHOUT_FORTH
The new stand/ structure installs loader.conf(5) and defaults/loader.conf regardless of interpreter. The only thing gating installation now is MK_BOOT. |
335088 |
13-Jun-2018 |
dim |
MFC r334886:
Add missed libc++ entries to (Optional)ObsoleteFiles.inc
Some of these were removed during the libc++ 5.0.0 import, others were added in the libc++ 6.0.0 import. |
332306 |
08-Apr-2018 |
emaste |
MFC r330110: Add kernel retpoline option for amd64
Retpoline is a compiler-based mitigation for CVE-2017-5715, also known as Spectre V2, that protects against speculative execution branch target injection attacks.
In this commit it is disabled by default, but will be changed in a followup commit.
MFC r330962: Remove KERNEL_RETPOLINE from BROKEN_OPTIONS on i386
Clang will compile both amd64 and i386 with retpoline.
Sponsored by: The FreeBSD Foundation |
332162 |
07-Apr-2018 |
kevans |
MFC r330116, r330118, r330251, r330254
r330116: Some missing LOADER_EFI build option descriptions
r330118: Add missing punctuation to *_LOADER_EFI descriptions...
r330251: Remove LOADER_EFI description files
LOADER_EFI functionality got folded into EFI as of r330248.
r330254: Add descriptions for recently added loader options |
331838 |
31-Mar-2018 |
dim |
Merge clang, llvm, lld, lldb, compiler-rt and libc++ 6.0.0 release, and several follow-up fixes.
MFC r327952:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 (branches/release_60 r321788). Upstream has branched for the 6.0.0 release, which should be in about 6 weeks. Please report bugs and regressions, so we can get them into the release.
Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11 support to build; see UPDATING for more information.
MFC r328010:
Pull in r322473 from upstream llvm trunk (by Andrei Elovikov):
[LV] Don't call recordVectorLoopValueForInductionCast for newly-created IV from a trunc.
Summary: This method is supposed to be called for IVs that have casts in their use-def chains that are completely ignored after vectorization under PSE. However, for truncates of such IVs the same InductionDescriptor is used during creation/widening of both original IV based on PHINode and new IV based on TruncInst.
This leads to unintended second call to recordVectorLoopValueForInductionCast with a VectorLoopVal set to the newly created IV for a trunc and causes an assert due to attempt to store new information for already existing entry in the map. This is wrong and should not be done.
Fixes PR35773.
Reviewers: dorit, Ayal, mssimpso
Reviewed By: dorit
Subscribers: RKSimon, dim, dcaballe, hsaito, llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D41913
This should fix "Vector value already set for part" assertions when building the net/iodine and sysutils/daa2iso ports.
Reported by: jbeich PR: 224867, 224868
MFC r328090:
Pull in r322623 from upstream llvm trunk (by Andrew V. Tischenko):
Allow usage of X86-prefixes as separate instrs. Differential Revision: https://reviews.llvm.org/D42102
This should fix parse errors when x86 prefixes (such as 'lock' and 'rep') are followed by various non-mnemonic tokens, e.g. comments, .byte directives and labels.
PR: 224669, 225054
MFC r328091:
Revert r327340, as the workaround for rep prefixes followed by .byte directives is no longer needed after r328090.
MFC r328141 (by emaste):
lld: Fix for ld.lld does not accept "AT" syntax for declaring LMA region
AT> lma_region expression allows to specify the memory region for section load address.
Should fix [upstream LLVM] PR35684.
LLVM review: https://reviews.llvm.org/D41397
Obtained from: LLVM r322359 by George Rimar
MFC r328143 (by emaste):
lld: Handle parsing AT(ADDR(.foo-bar)).
The problem we had with it is that anything inside an AT is an expression, so we failed to parse the section name because of the - in it.
Requested by: royger Obtained from: LLVM r322801 by Rafael Espindola
MFC r328144 (by emaste):
lld: Fix incorrect physical address on self-referencing AT command.
When a section placement (AT) command references the section itself, the physical address of the section in the ELF header was calculated incorrectly due to alignment happening right after the location pointer's value was captured.
The problem was diagnosed and the first version of the patch written by Erick Reyes.
Obtained from: LLVM r322421 by Rafael Espindola
MFC r328145:
Pull in r322016 from upstream llvm trunk (by Sanjay Patel):
[ValueTracking] remove overzealous assert
The test is derived from a failing fuzz test: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5008
Credit to @rksimon for pointing out the problem.
This should fix "Bad flavor while matching min/max" errors when building the graphics/libsixel and science/kst2 ports.
Reported by: jbeich PR: 225268, 225269
MFC r328146:
Pull in r322106 from upstream llvm trunk (by Alexey Bataev):
[COST]Fix PR35865: Fix cost model evaluation for shuffle on X86.
Summary: If the vector type is transformed to non-vector single type, the compile may crash trying to get vector information about non-vector type.
Reviewers: RKSimon, spatel, mkuper, hfinkel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D41862
This should fix "Not a vector MVT!" errors when building the games/dhewm3 port.
Reported by: jbeich PR: 225271
MFC r328286 (by emaste):
lld: Don't mark a shared library as needed because of a lazy symbol.
Obtained from: LLVM r323221 by Rafael Esp?ndola
MFC r328381:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 (branches/release_60 r323338).
PR: 224669
MFC r328513:
Pull in r322245 from upstream clang trunk (by Craig Topper):
[X86] Make -mavx512f imply -mfma and -mf16c in the frontend like it does in the backend.
Similarly, make -mno-fma and -mno-f16c imply -mno-avx512f.
Withou this "-mno-sse -mavx512f" ends up with avx512f being enabled in the frontend but disabled in the backend.
Reported by: pawel PR: 225488
MFC r328542 (by emaste):
lld: Use lookup instead of find. NFC, just simpler.
Obtained from: LLVM r323395 by Rafael Espindola
MFC r328543 (by emaste):
lld: Only lookup LMARegion once. NFC.
This is similar to how we handle MemRegion.
Obtained from: LLVM r323396 by Rafael Espindola
MFC r328544 (by emaste):
lld: Remove MemRegionOffset. NFC.
We can just use a member variable in MemoryRegion.
Obtained from: LLVM r323399 by Rafael Espindola
MFC r328545 (by emaste):
lld: Simplify. NFC.
Obtained from: LLVM r323440 by Rafael Espindola
MFC r328546 (by emaste):
lld: Improve LMARegion handling.
This fixes the crash reported at [LLVM] PR36083.
The issue is that we were trying to put all the sections in the same PT_LOAD and crashing trying to write past the end of the file.
This also adds accounting for used space in LMARegion, without it all 3 PT_LOADs would have the same physical address.
Obtained from: LLVM r323449 by Rafael Espindola
MFC r328547 (by emaste):
lld: Move LMAOffset from the OutputSection to the PhdrEntry. NFC.
If two sections are in the same PT_LOAD, their relatives offsets, virtual address and physical addresses are all the same.
[Rafael] initially wanted to have a single global LMAOffset, on the assumption that every ELF file was in practiced loaded contiguously in both physical and virtual memory.
Unfortunately that is not the case. The linux kernel has:
LOAD 0x200000 0xffffffff81000000 0x0000000001000000 0xced000 0xced000 R E 0x200000 LOAD 0x1000000 0xffffffff81e00000 0x0000000001e00000 0x15f000 0x15f000 RW 0x200000 LOAD 0x1200000 0x0000000000000000 0x0000000001f5f000 0x01b198 0x01b198 RW 0x200000 LOAD 0x137b000 0xffffffff81f7b000 0x0000000001f7b000 0x116000 0x1ec000 RWE 0x200000
The delta for all but the third PT_LOAD is the same: 0xffffffff80000000. [Rafael] thinks the 3rd one is a hack for implementing per cpu data, but we can't break that.
Obtained from: LLVM r323456 by Rafael Espindola
MFC r328548 (by emaste):
lld: Put the header in the first PT_LOAD even if that PT_LOAD has a LMAExpr
The root problem is that we were creating a PT_LOAD just for the header. That was technically valid, but inconvenient: we should not be making the ELF discontinuous.
The solution is to allow a section with LMAExpr to be added to a PT_LOAD if that PT_LOAD doesn't already have a LMAExpr.
LLVM PR: 36017 Obtained from: LLVM r323625 by Rafael Espindola
MFC r328594 (by emaste):
Pull in r322108 from upstream llvm trunk (by Rafael Esp?ndola):
Make one of the emitFill methods non virtual. NFC.
This is just preparatory work to fix [LLVM] PR35858.
MFC r328595 (by emaste):
Pull in r322123 from upstream llvm trunk (by Rafael Esp?ndola):
Don't create MCFillFragment directly.
Instead use higher level APIs that take care of most bookkeeping.
MFC r328596 (by emaste):
Pull in r322131 from upstream llvm trunk (by Rafael Esp?ndola):
Use a MCExpr for the size of MCFillFragment.
This allows the size to be found during ralaxation. This fixes [LLVM] pr35858.
Requested by: royger
MFC r328753:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 (branches/release_60 r323948).
PR: 224669
MFC r328817:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 (branches/release_60 r324090).
This introduces retpoline support, with the -mretpoline flag. The upstream initial commit message (r323155 by Chandler Carruth) contains quite a bit of explanation. Quoting:
Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre.
Summary: First, we need to explain the core of the vulnerability. Note that this is a very incomplete description, please see the Project Zero blog post for details: https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html
The basis for branch target injection is to direct speculative execution of the processor to some "gadget" of executable code by poisoning the prediction of indirect branches with the address of that gadget. The gadget in turn contains an operation that provides a side channel for reading data. Most commonly, this will look like a load of secret data followed by a branch on the loaded value and then a load of some predictable cache line. The attacker then uses timing of the processors cache to determine which direction the branch took *in the speculative execution*, and in turn what one bit of the loaded value was. Due to the nature of these timing side channels and the branch predictor on Intel processors, this allows an attacker to leak data only accessible to a privileged domain (like the kernel) back into an unprivileged domain.
The goal is simple: avoid generating code which contains an indirect branch that could have its prediction poisoned by an attacker. In many cases, the compiler can simply use directed conditional branches and a small search tree. LLVM already has support for lowering switches in this way and the first step of this patch is to disable jump-table lowering of switches and introduce a pass to rewrite explicit indirectbr sequences into a switch over integers.
However, there is no fully general alternative to indirect calls. We introduce a new construct we call a "retpoline" to implement indirect calls in a non-speculatable way. It can be thought of loosely as a trampoline for indirect calls which uses the RET instruction on x86. Further, we arrange for a specific call->ret sequence which ensures the processor predicts the return to go to a controlled, known location. The retpoline then "smashes" the return address pushed onto the stack by the call with the desired target of the original indirect call. The result is a predicted return to the next instruction after a call (which can be used to trap speculative execution within an infinite loop) and an actual indirect branch to an arbitrary address.
On 64-bit x86 ABIs, this is especially easily done in the compiler by using a guaranteed scratch register to pass the target into this device. For 32-bit ABIs there isn't a guaranteed scratch register and so several different retpoline variants are introduced to use a scratch register if one is available in the calling convention and to otherwise use direct stack push/pop sequences to pass the target address.
This "retpoline" mitigation is fully described in the following blog post: https://support.google.com/faqs/answer/7625886
We also support a target feature that disables emission of the retpoline thunk by the compiler to allow for custom thunks if users want them. These are particularly useful in environments like kernels that routinely do hot-patching on boot and want to hot-patch their thunk to different code sequences. They can write this custom thunk and use `-mretpoline-external-thunk` *in addition* to `-mretpoline`. In this case, on x86-64 thu thunk names must be: ``` __llvm_external_retpoline_r11 ``` or on 32-bit: ``` __llvm_external_retpoline_eax __llvm_external_retpoline_ecx __llvm_external_retpoline_edx __llvm_external_retpoline_push ``` And the target of the retpoline is passed in the named register, or in the case of the `push` suffix on the top of the stack via a `pushl` instruction.
There is one other important source of indirect branches in x86 ELF binaries: the PLT. These patches also include support for LLD to generate PLT entries that perform a retpoline-style indirection.
The only other indirect branches remaining that we are aware of are from precompiled runtimes (such as crt0.o and similar). The ones we have found are not really attackable, and so we have not focused on them here, but eventually these runtimes should also be replicated for retpoline-ed configurations for completeness.
For kernels or other freestanding or fully static executables, the compiler switch `-mretpoline` is sufficient to fully mitigate this particular attack. For dynamic executables, you must compile *all* libraries with `-mretpoline` and additionally link the dynamic executable and all shared libraries with LLD and pass `-z retpolineplt` (or use similar functionality from some other linker). We strongly recommend also using `-z now` as non-lazy binding allows the retpoline-mitigated PLT to be substantially smaller.
When manually apply similar transformations to `-mretpoline` to the Linux kernel we observed very small performance hits to applications running typic al workloads, and relatively minor hits (approximately 2%) even for extremely syscall-heavy applications. This is largely due to the small number of indirect branches that occur in performance sensitive paths of the kernel.
When using these patches on statically linked applications, especially C++ applications, you should expect to see a much more dramatic performance hit. For microbenchmarks that are switch, indirect-, or virtual-call heavy we have seen overheads ranging from 10% to 50%.
However, real-world workloads exhibit substantially lower performance impact. Notably, techniques such as PGO and ThinLTO dramatically reduce the impact of hot indirect calls (by speculatively promoting them to direct calls) and allow optimized search trees to be used to lower switches. If you need to deploy these techniques in C++ applications, we *strongly* recommend that you ensure all hot call targets are statically linked (avoiding PLT indirection) and use both PGO and ThinLTO. Well tuned servers using all of these techniques saw 5% - 10% overhead from the use of retpoline.
We will add detailed documentation covering these components in subsequent patches, but wanted to make the core functionality available as soon as possible. Happy for more code review, but we'd really like to get these patches landed and backported ASAP for obvious reasons. We're planning to backport this to both 6.0 and 5.0 release streams and get a 5.0 release with just this cherry picked ASAP for distros and vendors.
This patch is the work of a number of people over the past month: Eric, Reid, Rui, and myself. I'm mailing it out as a single commit due to the time sensitive nature of landing this and the need to backport it. Huge thanks to everyone who helped out here, and everyone at Intel who helped out in discussions about how to craft this. Also, credit goes to Paul Turner (at Google, but not an LLVM contributor) for much of the underlying retpoline design.
Reviewers: echristo, rnk, ruiu, craig.topper, DavidKreitzer
Subscribers: sanjoy, emaste, mcrosier, mgorny, mehdi_amini, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D41723
PR: 224669
MFC r329033:
Pull in r324594 from upstream clang trunk (by Alexander Ivchenko):
Fix for #31362 - ms_abi is implemented incorrectly for values >=16 bytes.
Summary: This patch is a fix for following issue: https://bugs.llvm.org/show_bug.cgi?id=31362 The problem was caused by front end lowering C calling conventions without taking into account calling conventions enforced by attribute. In this case win64cc was no correctly lowered on targets other than Windows.
Reviewed By: rnk (Reid Kleckner)
Differential Revision: https://reviews.llvm.org/D43016
Author: belickim <mateusz.belicki@intel.com>
This fixes clang 6.0.0 assertions when building the emulators/wine and emulators/wine-devel ports, and should also make it use the correct Windows calling conventions. Bump __FreeBSD_version to make the fix easy to detect.
PR: 224863
MFC r329223:
Pull in r323998 from upstream clang trunk (by Richard Smith):
PR36157: When injecting an implicit function declaration in C89, find the right DeclContext rather than injecting it wherever we happen to be.
This avoids creating functions whose DeclContext is a struct or similar.
This fixes assertion failures when parsing certain not-completely-valid struct declarations.
Reported by: ae PR: 225862
MFC r329410:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 (branches/release_60 r325330).
PR: 224669
MFC r329983:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 (branches/release_60 r325932). This corresponds to 6.0.0 rc3.
PR: 224669
MFC r330384:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 6.0.0 release (upstream r326565).
Release notes for llvm, clang and lld will be available here soon: <http://releases.llvm.org/6.0.0/docs/ReleaseNotes.html> <http://releases.llvm.org/6.0.0/tools/clang/docs/ReleaseNotes.html> <http://releases.llvm.org/6.0.0/tools/lld/docs/ReleaseNotes.html>
Relnotes: yes PR: 224669
MFC r330686:
Pull in r326882 from upstream llvm trunk (by Sjoerd Meijer):
[ARM] Fix for PR36577
Don't PerformSHLSimplify if the given node is used by a node that also uses a constant because we may get stuck in an infinite combine loop.
bugzilla: https://bugs.llvm.org/show_bug.cgi?id=36577
Patch by Sam Parker.
Differential Revision: https://reviews.llvm.org/D44097
This fixes a hang when compiling one particular file in java/openjdk8 for armv6 and armv7.
Reported by: swills PR: 226388
MFC r331065:
Pull in r327638 from upstream llvm trunk (by Matthew Simpson):
[ConstantFolding, InstSimplify] Handle more vector GEPs
This patch addresses some additional cases where the compiler crashes upon encountering vector GEPs. This should fix PR36116.
Differential Revision: https://reviews.llvm.org/D44219 Reference: https://bugs.llvm.org/show_bug.cgi?id=36116
This fixes an assertion when building the emulators/snes9x port.
Reported by: jbeich PR: 225471
MFC r331066:
Pull in r321999 from upstream clang trunk (by Ivan A. Kosarev):
[CodeGen] Fix TBAA info for accesses to members of base classes
Resolves: Bug 35724 - regression (r315984): fatal error: error in backend: Broken function found (Did not see access type in access path!) https://bugs.llvm.org/show_bug.cgi?id=35724
Differential Revision: https://reviews.llvm.org/D41547
This fixes "Did not see access type in access path" fatal errors when building the devel/gdb port (version 8.1).
Reported by: jbeich PR: 226658
MFC r331366:
Pull in r327101 from upstream llvm trunk (by Rafael Espindola):
Don't treat .symver as a regular alias definition.
This patch starts simplifying the handling of .symver.
For now it just moves the responsibility for creating an alias down to the streamer. With that the asm streamer can pass a .symver unchanged, which is nice since gas cannot parse "foo@bar = zed".
In a followup I hope to move the handling down to the writer so that we don't need special hacks for avoiding breaking names with @@@ on windows.
Pull in r327160 from upstream llvm trunk (by Rafael Espindola):
Delay creating an alias for @@@.
With this we only create an alias for @@@ once we know if it should use @ or @@. This avoids last minutes renames and hacks to handle MS names.
This only handles the ELF writer. LTO still has issues with @@@ aliases.
Pull in r327928 from upstream llvm trunk (by Vitaly Buka):
Object: Move attribute calculation into RecordStreamer. NFC
Summary: Preparation for D44274
Reviewers: pcc, espindola
Subscribers: hiraditya
Differential Revision: https://reviews.llvm.org/D44276
Pull in r327930 from upstream llvm trunk (by Vitaly Buka):
Object: Fix handling of @@@ in .symver directive
Summary: name@@@nodename is going to be replaced with name@@nodename if symbols is defined in the assembled file, or name@nodename if undefined. https://sourceware.org/binutils/docs/as/Symver.html
Fixes PR36623
Reviewers: pcc, espindola
Subscribers: mehdi_amini, hiraditya
Differential Revision: https://reviews.llvm.org/D44274
Together, these changes fix handling of @@@ in .symver directives when doing Link Time Optimization.
Reported by: Shawn Webb <shawn.webb@hardenedbsd.org>
MFC r331731:
Pull in r328738 from upstream lld trunk (by Rafael Espindola):
Strip @VER suffices from the LTO output.
This fixes pr36623.
The problem is that we have to parse versions out of names before LTO so that LTO can use that information.
When we get the LTO produced .o files, we replace the previous symbols with the LTO produced ones, but they still have @ in their names.
We could just trim the name directly, but calling parseSymbolVersion to do it is simpler.
This is a follow-up to r331366, since we discovered that lld could append version strings to symbols twice, when using Link Time Optimization. |
331586 |
26-Mar-2018 |
hselasky |
MFC r330653: Add kernel and userspace code to dump the firmware state of supported ConnectX-4/5 devices in mlx5core.
The dump is obtained by reading a predefined register map from the non-destructive crspace, accessible by the vendor-specific PCIe capability (VSC). The dump is stored in preallocated kernel memory and managed by the mlx5tool(8), which communicates with the driver using a character device node.
The utility allows to store the dump in format <address> <value> into a file, to reset the dump content, and to manually initiate the dump.
A call to mlx5_fwdump() should be added at the places where a dump must be fetched automatically. The most likely place is right before a firmware reset request.
Submitted by: kib@ Sponsored by: Mellanox Technologies |
331540 |
26-Mar-2018 |
kevans |
MFC r330115: Add missing WITH_BSD_GREP_FASTMATCH description |
331460 |
23-Mar-2018 |
ian |
MFC r307656, r307659, r307674-r307675, r307679, r307683
Support for WITHOUT_GNU_DIFF and WITHOUT_GNU_GREP, plus manually regenerated src.conf.5, which seems to have picked up a couple changes beyond what was in this MFC.
r307656: Put each SUBDIR on a separate line for ease of maintenance
Additional patches to this file are in progress, and having each SUBDIR entry on a separate line makes it easier to change the order in which the patches are reviewed, tested, and applied.
r307659: Switch gnu/usr.bin/Makefile to SUBDIR.${MK_*} optional subdir style
r307674: Add knobs to make GNU diff and GNU grep optional
This is added to facilitate experiments building FreeBSD without copyleft software.
If WITHOUT_GNU_DIFF is set no /usr/bin/diff or /usr/bin/diff3 will be built.
If WITHOUT_GNU_GREP is set then BSD grep will be installed as /usr/bin/bsdgrep or /usr/bin/grep, depending on the WITH_BSD_GREP knob.
Reviewed by: brooks (earlier) Sponsored by: The FreeBSD Foundation Differential Revision: Differential Revision: https://reviews.freebsd.org/D8288
r307675: Remove trailing whitespace from r307674
r307679: Build libgnuregex only if necessary for other components
Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D8298
r307683: Correct typo in r307679: the variable is MK_GNU_GREP_COMPAT |
330769 |
11-Mar-2018 |
emaste |
MFC r322277 by jlh:
rwho/ruptime/rwhod shouldn't be gated by RCMDS.
As peter@ points out in pr/220953: "rwho, rwhod and ruptime are not part of the remote login suite (rsh, rlogin etc).
They should *not* be in the rcmds package which is disabled by default. We rely on rwho/rwhod/ruptime in the freebsd.org cluster."
This commit is a re-commit of r322029 and r322031 with a better commit log, as pointed out by ngie@.
This also includes the necesary changes to OptionalObsoleteFiles.inc, as requested by jhb@.
PR: 220953 |
329169 |
12-Feb-2018 |
kevans |
MFC r325718: Fix typo in filename.
Noticed by: Shawn Webb (again) |
329140 |
11-Feb-2018 |
kevans |
MFC Loader Fixes 2017q4p6: r324649,r324650,r324651,r324652,r324653,r324654, r324700,r324702,r324709,r324717,r324719,r324841,r324842,r324843,r324845, r324850,r324876,r324877,r324878,r324879,r324880,r324881,r324883,r324980, r324981,r324982,r324995,r325014,r325093,r325094,r325114,r325170,r325171, r325172,r325173,r325174,r325175,r325176,r325248,r325286,r325310,r325332, r325338,r325339,r325376,r325377,r325379,r325380,r325382,r325478,r325479, r325480,r325482,r325483,r325484,r325485,r325556,r325641,r325681,r325685, r325686,r325687,r325688,r325689,r325690,r325691,r325692,r325693,r325694, r325743,r325744,r325748,r325775,r325779,r325780
r324649: Move common/Makefile.inc to sys/boot/loader.mk.
r324650: tweak style
r324651: create defs.mk for common definitions
r324652: Move all the ficl common code into ficl.mk
r324653: LOADER_foo_SUPPORTED
r324654: Explicitly inlcude SYSDIR in the include path
r324700: loader: initialize dv_cleanup in md.c to eliminate clang warning
r324702: We need to include disk.o in libuboot.a when we're building with support for disk access.
r324709: Revert "Unify boot1 with loader" change r324646
r324717: libsa/ip.c: misplaced comment, ip_v is half char, not ip_p
r324719: libsa/ip: stop read loop on bad fragments
r324841: Use BOOTDIR more consistently in defs.mk rather than repeat sys/boot.
r324842: Introduce BOOTOBJ: The top level object directory for the boot tree
r324843: Stopgap fix to the mistmatch between LOADER_GELI_SUPPORT and LOADER_NO_GELI_SUPPORT.
r324845: Use BOOTOBJ and BOOTDIR to find geli includes and libraries.
r324850: Define LIBSA32 to LIBSA on i386 to fix build.
r324876: Move fdt and uboot defines into common uboot.mk.
r324877: End source directories with SRC rather than a hodgepodge of names
r324878: Make at91 boot loader compile again.
r324879: Prefer SRCTOP paths for bits we're grabbing from libc.
r324880: Use BOOTSRC here.
r324881: Use SYSDIR instead of ${.CURDIR}/../..<etc>/sys.
r324883: Use preferred defined paths, rather than relative paths in fdt.
r324980: Use BOOTDIR consistently.
r324981: Move BINDIR definition to defs.mk, and override where it isn't /boot
r324982: Remove sys/boot/arm/at91 and ixp425
r324995: loader.efi: Make framebuffer commands available for arm64
r325014: Add a 'place holder' arm struct efi_fb until a real one comes
r325093: Define new EFI variables
r325094: Cleanup non-arch Makefiles
r325114: Use defs.mk defins in most MD code
r325170: Use defs.mk values for userboot
r325171: Use defs.mk name and prefer bsd.init.mk
r325172: Remove the -nostdlib stuff I added. Instead, fix LDFLAGS to be honored correctly with the new Makefile.inc include order.
r325173: We don't need to build a special ficl for userboot.
r325174: Minor cleanup
r325175: For amd64, compile both zfs and zfs32 libraries.
r325176: Actually add zfs32/Makefile
r325248: loader ptblread() is broken with >512B sectors
r325286: efipart_strategy is using wrong offset with >512B sectors
r325310: zfs.c:vdev_read() needs to be careful about large sectors
r325332: loader: re-enable gzip support for x86
r325338: loader: fix BOOTSRC -> BOOTOBJ in a library path
r325339: This used to have bzip2 support too.
r325376: WIP: centralize machine links
r325377: mostly libsa
r325379: Revert "mostly libsa"
r325380: Revert "WIP: centralize machine links"
r325382: Cleanup stray libstand names to be libsa names.
r325478: Powerpc is a 32-bit boot loader.
r325479: Define LIBFICL32 to be libficl.a on i386 and libficl32.a on amd64.
r325480: Use DO32 for all the places that we need to flag we're building a 32-bit version of a library.
r325482: Move machine and other link creation to defs.mk
r325483: MACHINE can never be powerpc64, so cleanup code that thinks it can.
r325484: Prefer bsd.init.mk to src.opts.mk
r325485: Centralize all 32-bit builds on 64-bit platform stuff.
r325556: loader: set options before including bsd.init.mk
r325641: loader.efi: efi_devpath_is_prefix should return bool
r325681: boot1: avoid using NULL device path
r325685: libsa32 isn't needed for i386. It's already a 32-bit platform.
r325686: Simplify this if to a direct assignment.
r325687: Remove all the empty help files from the powerpc build.
r325688: FDT support doesn't make sense for ps3, remove it.
r325689: Remove LOADER_FDT_SUPPORT as a Makefile variable.
r325690: Remove LOADER_ZFS_SUPPORT as a Makefile variable
r325691: Remove useless PNP define here.
r325692: Replace LOADER_FIREWIRE_SUPPORT variable
r325693: Move LOADER_{NO,}_GELI_SUPPORT to MK_LOADER_GELI
r325694: Install the 4th files in sys/boot/forth instead of each loader
r325743: Make sure the proper loader.rc gets installed.
r325744: boot1: also check for NULL device
r325748: Use proper include file.
r325775: Add loader.conf to the list of files that are MD.
r325779: Add /boot/dts to the list of default modules.
r325780: Don't add /boot/dt*s* but /boot/dt*b*. Stupid think-o. |
327909 |
13-Jan-2018 |
ian |
Fix fallout from applying a patch twice.
Reported by: jhb@ Pointy hat: ian@ |
327843 |
11-Jan-2018 |
ian |
Add description files for WITH/WITHOUT_LINT. These should have been part of r327837.
PR: 223892 Differential Revision: https://reviews.freebsd.org/D13799 |
327204 |
26-Dec-2017 |
dim |
MFC r326496:
Upgrade our copies of clang, llvm, lldb and libc++ to r319231 from the upstream release_50 branch. This corresponds to 5.0.1 rc2.
MFC r326831:
Pull in r315334 from upstream lld trunk (by Rafael Espindola):
Don't create a dummy __tls_get_addr.
We just don't need one with the current setup.
We only error on undefined references that are used by some relocation.
If we managed to relax all uses of __tls_get_addr, no relocation uses it and we don't produce an error.
This is less code and fixes the case were we fail to relax. Before we would produce a broken output, but now we produce an error.
Pull in r320390 from upstream lld trunk (by Rafael Espindola):
Create reserved symbols early so they can be versioned.
This fixes pr35570.
We were creating these symbols after parsing version scripts, so they could not be versioned.
We cannot move the version script parsing later because we need it for lto.
One option is to move both addReservedSymbols and createSyntheticSections earlier. The disadvantage is that some sections created by createSyntheticSections replace other input sections. For example, gdb index replaces .debug_gnu_pubnames, so it wants to run after gc sections so that it can set S->Live to false.
What this patch does instead is to move just the ElfHeader creation early.
Pull in r320412 from upstream lld trunk (by Rafael Espindola):
Handle symbols pointing to output sections.
Now that gc sections runs after linker defined symbols are added it can see symbols that point to an OutputSection.
Should fix a bot failure.
Pull in r320431 from upstream lld trunk (by Peter Collingbourne):
ELF: Do not follow relocation edges to output sections during GC.
This fixes an assertion error introduced by r320390.
Differential Revision: https://reviews.llvm.org/D41095
Together these fix handling of reserved symbols, in particular _end, which is needed to make brk(2) and sbrk(2) work correctly. This unbreaks the emacs ports on amd64, and also appears to unbreak most of world on i386.
Differential Revision: https://reviews.freebsd.org/D13466
MFC r326879 (by emaste):
lld: Simplify a boolean expression by De Morgan's laws.
Cherry-pick lld r315653 by Rui Ueyama: I don't really understand what exactly this expression means, but at least I can mechanically transform it.
Obtained from: LLVM r315653
MFC r326897 (by emaste):
lld: Slightly simplify code and add comment.
Cherry-pick lld r315658 by Rui Ueyama: This is not a mechanical transformation. Even though I believe this patch is correct, I'm not 100% sure if lld with this patch behaves exactly the same way as before on all edge cases. At least all tests still pass.
I'm submitting this patch because it took almost a day to understand this function, and I don't want to lose it.
This fixes jemalloc assertion failures observed at startup with i386 binaries and an lld-linked libc.so.
Reviewed by: dim Obtained from: LLVM r315658 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D13503
MFC r326909:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 5.0.1 release (upstream r320880).
Relnotes: yes
MFC r326957 (by emaste):
lld: Don't write preemptible symbol values to the .got.
It is not necessary and matches what bfd and gold do.
This was a regression from [LLVM] r315658.
Obtained from: LLVM r321023 by Rafael EspÃndola |
326104 |
22-Nov-2017 |
mav |
MFC r325552: s/NgSendMsgReply/NgSendReplyMsg/ in man to match the code.
Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com> |
324023 |
26-Sep-2017 |
dim |
Merge clang, llvm, lld, lldb, compiler-rt and libc++ 5.0.0 release.
MFC r309126 (by emaste):
Correct lld llvm-tblgen dependency file name
MFC r309169:
Get rid of separate Subversion mergeinfo properties for llvm-dwarfdump and llvm-lto. The mergeinfo confuses Subversion enormously, and these directories will just use the mergeinfo for llvm itself.
MFC r312765:
Pull in r276136 from upstream llvm trunk (by Wei Mi):
Use ValueOffsetPair to enhance value reuse during SCEV expansion.
In D12090, the ExprValueMap was added to reuse existing value during SCEV expansion. However, const folding and sext/zext distribution can make the reuse still difficult.
A simplified case is: suppose we know S1 expands to V1 in ExprValueMap, and S1 = S2 + C_a S3 = S2 + C_b where C_a and C_b are different SCEVConstants. Then we'd like to expand S3 as V1 - C_a + C_b instead of expanding S2 literally. It is helpful when S2 is a complex SCEV expr and S2 has no entry in ExprValueMap, which is usually caused by the fact that S3 is generated from S1 after const folding.
In order to do that, we represent ExprValueMap as a mapping from SCEV to ValueOffsetPair. We will save both S1->{V1, 0} and S2->{V1, C_a} into the ExprValueMap when we create SCEV for V1. When S3 is expanded, it will first expand S2 to V1 - C_a because of S2->{V1, C_a} in the map, then expand S3 to V1 - C_a + C_b.
Differential Revision: https://reviews.llvm.org/D21313
This should fix assertion failures when building OpenCV >= 3.1.
PR: 215649
MFC r312831:
Revert r312765 for now, since it causes assertions when building lang/spidermonkey24.
Reported by: antoine PR: 215649
MFC r316511 (by jhb):
Add an implementation of __ffssi2() derived from __ffsdi2().
Newer versions of GCC include an __ffssi2() symbol in libgcc and the compiler can emit calls to it in generated code. This is true for at least GCC 6.2 when compiling world for mips and mips64.
Reviewed by: jmallett, dim Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D10086
MFC r318601 (by adrian):
[libcompiler-rt] add bswapdi2/bswapsi2
This is required for mips gcc 6.3 userland to build/run.
Reviewed by: emaste, dim Approved by: emaste Differential Revision: https://reviews.freebsd.org/D10838
MFC r318884 (by emaste):
lldb: map TRAP_CAP to a trace trap
In the absense of a more specific handler for TRAP_CAP (generated by ENOTCAPABLE or ECAPMODE while in capability mode) treat it as a trace trap.
Example usage (testing the bug in PR219173):
% proccontrol -m trapcap lldb usr.bin/hexdump/obj/hexdump -- -Cv -s 1 /bin/ls ... (lldb) run Process 12980 launching Process 12980 launched: '.../usr.bin/hexdump/obj/hexdump' (x86_64) Process 12980 stopped * thread #1, stop reason = trace frame #0: 0x0000004b80c65f1a libc.so.7`__sys_lseek + 10 ...
In the future we should have LLDB control the trapcap procctl itself (as it does with ASLR), as well as report a specific stop reason. This change eliminates an assertion failure from LLDB for now.
MFC r319796:
Remove a few unneeded files from libllvm, libclang and liblldb.
MFC r319885 (by emaste):
lld: ELF: Fix ICF crash on absolute symbol relocations.
If two sections contained relocations to absolute symbols with the same value we would crash when trying to access their sections. Add a check that both symbols point to sections before accessing their sections, and treat absolute symbols as equal if their values are equal.
Obtained from: LLD commit r292578
MFC r319918:
Revert r319796 for now, it can cause undefined references when linking in some circumstances.
Reported by: Shawn Webb <shawn.webb@hardenedbsd.org>
MFC r319957 (by emaste):
lld: Add armelf emulation mode
Obtained from: LLD r305375
MFC r321369:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 5.0.0 (trunk r308421). Upstream has branched for the 5.0.0 release, which should be in about a month. Please report bugs and regressions, so we can get them into the release.
Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11 support to build; see UPDATING for more information.
MFC r321420:
Add a few more object files to liblldb, which should solve errors when linking the lldb executable in some cases. In particular, when the -ffunction-sections -fdata-sections options are turned off, or ineffective.
Reported by: Shawn Webb, Mark Millard
MFC r321433:
Cleanup stale Options.inc files from the previous libllvm build for clang 4.0.0. Otherwise, these can get included before the two newly generated ones (which are different) for clang 5.0.0.
Reported by: Mark Millard
MFC r321439 (by bdrewery):
Move llvm Options.inc hack from r321433 for NO_CLEAN to lib/clang/libllvm.
The files are only ever generated to .OBJDIR, not to WORLDTMP (as a sysroot) and are only ever included from a compilation. So using a beforebuild target here removes the file before the compilation tries to include it.
MFC r321664:
Pull in r308891 from upstream llvm trunk (by Benjamin Kramer):
[CodeGenPrepare] Cut off FindAllMemoryUses if there are too many uses.
This avoids excessive compile time. The case I'm looking at is Function.cpp from an old version of LLVM that still had the giant memcmp string matcher in it. Before r308322 this compiled in about 2 minutes, after it, clang takes infinite* time to compile it. With this patch we're at 5 min, which is still bad but this is a pathological case.
The cut off at 20 uses was chosen by looking at other cut-offs in LLVM for user scanning. It's probably too high, but does the job and is very unlikely to regress anything.
Fixes PR33900.
* I'm impatient and aborted after 15 minutes, on the bug report it was killed after 2h.
Pull in r308986 from upstream llvm trunk (by Simon Pilgrim):
[X86][CGP] Reduce memcmp() expansion to 2 load pairs (PR33914)
D35067/rL308322 attempted to support up to 4 load pairs for memcmp inlining which resulted in regressions for some optimized libc memcmp implementations (PR33914).
Until we can match these more optimal cases, this patch reduces the memcmp expansion to a maximum of 2 load pairs (which matches what we do for -Os).
This patch should be considered for the 5.0.0 release branch as well
Differential Revision: https://reviews.llvm.org/D35830
These fix a hang (or extremely long compile time) when building older LLVM ports.
Reported by: antoine PR: 219139
MFC r321719:
Pull in r309503 from upstream clang trunk (by Richard Smith):
PR33902: Invalidate line number cache when adding more text to existing buffer.
This led to crashes as the line number cache would report a bogus line number for a line of code, and we'd try to find a nonexistent column within the line when printing diagnostics.
This fixes an assertion when building the graphics/champlain port.
Reported by: antoine, kwm PR: 219139
MFC r321723:
Upgrade our copies of clang, llvm, lld and lldb to r309439 from the upstream release_50 branch. This is just after upstream's 5.0.0-rc1.
MFC r322320:
Upgrade our copies of clang, llvm and libc++ to r310316 from the upstream release_50 branch.
MFC r322326 (by emaste):
lldb: Make i386-*-freebsd expression work on JIT path
* Enable i386 ABI creation for freebsd * Added an extra argument in ABISysV_i386::PrepareTrivialCall for mmap syscall * Unlike linux, the last argument of mmap is actually 64-bit(off_t). This requires us to push an additional word for the higher order bits. * Prior to this change, ktrace dump will show mmap failures due to invalid argument coming from the 6th mmap argument.
Submitted by: Karnajit Wangkhem Differential Revision: https://reviews.llvm.org/D34776
MFC r322360 (by emaste):
lldb: Report inferior signals as signals, not exceptions, on FreeBSD
This is the FreeBSD equivalent of LLVM r238549.
This serves 2 purposes:
* LLDB should handle inferior process signals SIGSEGV/SIGILL/SIGBUS/ SIGFPE the way it is suppose to be handled. Prior to this fix these signals will neither create a coredump, nor exit from the debugger or work for signal handling scenario. * eInvalidCrashReason need not report "unknown crash reason" if we have a valid si_signo
llvm.org/pr23699
Patch by Karnajit Wangkhem
Differential Revision: https://reviews.llvm.org/D35223
Submitted by: Karnajit Wangkhem Obtained from: LLVM r310591
MFC r322474 (by emaste):
lld: Add `-z muldefs` option.
Obtained from: LLVM r310757
MFC r322740:
Upgrade our copies of clang, llvm, lld and libc++ to r311219 from the upstream release_50 branch.
MFC r322855:
Upgrade our copies of clang, llvm, lldb and compiler-rt to r311606 from the upstream release_50 branch.
As of this version, lib/msun's trig test should also work correctly again (see bug 220989 for more information).
PR: 220989
MFC r323112:
Upgrade our copies of clang, llvm, lldb and compiler-rt to r312293 from the upstream release_50 branch. This corresponds to 5.0.0 rc4.
As of this version, the cad/stepcode port should now compile in a more reasonable time on i386 (see bug 221836 for more information).
PR: 221836
MFC r323245:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 5.0.0 release (upstream r312559).
Release notes for llvm, clang and lld will be available here soon: <http://releases.llvm.org/5.0.0/docs/ReleaseNotes.html> <http://releases.llvm.org/5.0.0/tools/clang/docs/ReleaseNotes.html> <http://releases.llvm.org/5.0.0/tools/lld/docs/ReleaseNotes.html>
Relnotes: yes |
323009 |
30-Aug-2017 |
emaste |
MFC r322581: remove debug files in delete-old* when WITHOUT_DEBUG_FILES
Sponsored by: The FreeBSD Foundation |
323005 |
29-Aug-2017 |
jhb |
MFC 309775,312897: Don't delete /usr/bin/ld if it is lld.
309775: Keep /usr/bin/ld for WITHOUT_BINUTILS but WITH_LLD_AS_LD
312897: Rename LLD_AS_LD to LLD_IS_LD, for consistency with CLANG_IS_CC
An additional case missed in r312855
Reported by: Mark Millard |
322582 |
16-Aug-2017 |
kevans |
MFC r317254: bsdgrep: add BSD_GREP_FASTMATCH knob for built-in fastmatch
Bugs have been found in the fastmatch implementation as used in bsdgrep. Some have been fixed (r316495) while fixes for others are in review (D10098).
In comparison with the fastmatch implementation, Kyle Evans found that:
- regex(3)'s performance with literal expressions offers a speed improvement over fastmatch
- regex(3)'s performance, both with simple BREs and EREs, seems to be comparable
The regex implementation was imported in r226035, and the commit message reports:
This is a temporary solution until the whole regex library is not replaced so that BSD grep development can continue and the backported code gets some review and testing. This change only improves scalability slightly, there is no big performance boost yet but several minor bugs have been found and fixed.
Introduce a WITH_/WITHOUT_BSD_GREP_FASTMATCH knob to support testing of both approaches.
Regenerate src.conf(5) as per the original commit
PR: 175314, 194823 Approved by: emaste (mentor, blanket MFC) |
322099 |
05-Aug-2017 |
ngie |
MFC r320702,r320703:
r320702:
Formalize LEAPSECONDS and OLDTIMEZONES in share/zoneinfo/... as `MK_ZONEINFO_LEAPSECONDS_SUPPORT == yes` and `MK_ZONEINFO_OLD_TIMEZONES_SUPPORT == yes`.
Keep `LEAPSECONDS` and `OLDTIMEZONES` for backwards compatibility, but print out a warning notifying users that they should use the new variables, in an effort to migrate them to the variables. This is being done mostly for automated build tools, etc, that might rely on these variables being set. The variables will be removed in the future on ^/head, e.g., after ^/stable/12 is cut.
Relnotes: yes
r320703:
Add tests to help verify Links functionality for .../contrib/tzdata/backwards
MFC with: r320702 |
321246 |
19-Jul-2017 |
ngie |
MFC r316818:
Conditionally install /etc/pam.d/ftp* and /etc/pam.d/telnetd
/etc/pam.d/ftp* should be installed with MK_FTP != no and /etc/pam.d/telnetd should be installed when MK_TELNET != no. |
321129 |
18-Jul-2017 |
ngie |
MFC r303212,r319642,r319830:
r303212 (by bdrewery):
Move chown tests to proper path
r319642:
Add some basic tests for chmod(1)
r319830:
Add more simple positive tests for chown(1)
The tests are largely symmetric with the tests for chmod(1)--added in r319642.
Remove chown-f_test (added in r268030) since the test coverage is now being provided by `chown_test`. |
320718 |
06-Jul-2017 |
ngie |
MFC r317179:
Clean up WITH*_PROFILE
- Clarify that profiled libraries are usable with gprof(8). - Add WITH_PROFILE to complement WITHOUT_PROFILE and placate makeman. |
319388 |
01-Jun-2017 |
ngie |
MFC r314579,r314785:
r314579 (by np):
Add cxgbetool(8) to the base system.
Move cxgbetool from tools/tools to usr.sbin. Compile and install it on platforms where cxgbe(4) is built by default. Knobs (WITH_CXGBETOOL and WITHOUT_CXGBETOOL) have been added so that the user can override the default setting.
r314785:
Fix some trivial manlint warnings
Sentences should begin on new lines, per manlint.
Bump .Dd for the change |
319380 |
01-Jun-2017 |
ngie |
MFC r318177:
Unconditionally install udp(4) and udplite(4) again
I added this to the MK_USB != no block in error in r278202. |
319247 |
30-May-2017 |
ngie |
MFC r313169,r319246:
r313169 (by wblock):
Clarify some option descriptions, add a line of text to makeman to add the slightest hint of a shade of a clue of what it does.
r319246:
Use .Xr to reference libblacklist(3), blacklistctl(8), and blacklistd(8) |
319244 |
30-May-2017 |
ngie |
MFC r317168:
Add a knob, WITH*_RPCBIND_WARMSTART_SUPPORT, to allow the end-user to build rpcbind(8) with/without warmstart support.
The knob defaults to off to preserve POLA for the feature.
See rpcbind(8) for more details about the warmstart feature.
Relnotes: yes |
319228 |
30-May-2017 |
emaste |
MFC r318305: makeman: reword description, based on feedback from wblock |
319192 |
30-May-2017 |
ngie |
MFC r306375,r307802:
r306375 (by emaste):
Add a WITHOUT_DIALOG src.conf(5) knob
It also turns off dependencies (bsdinstall, bsdconfig, dpv, tzsetup).
r307802 (by bapt):
Fix build of tzsetup when WITHOUT_DIALOG is set
Hide dialog specific code behind HAVE_DIALOG. It allows to build a stripped down version (missing the dialog UI) but perfectly function tzsetup when world is built WITHOUT_DIALOG
Reorganise a bit the code to limit the number of blocks under HAVE_DIALOG |
318948 |
26-May-2017 |
gjb |
MFC r318748: Honor WITHOUT_TFTP for check-old* and delete-old* targets.
PR: 217949 Sponsored by: The FreeBSD Foundation |
318618 |
22-May-2017 |
ngie |
MFC r311135:
Add documentation for MK_EFI added in r307243 |
318613 |
22-May-2017 |
ngie |
MFC r315766,r315768:
r315766:
Note that tools/build/options/makeman automatically generated src.conf(5)
This (as a bonus) fixes mdoc warnings with src.conf(5) :)..
r315768:
Remove the .Pa portion I added to the .An macro in AUTHORS section
That doesn't work (mandoc complains about the macro being empty).
That's what I get for being clever and not verifying before committing things again *sigh*.
Partyhat to: ngie |
318472 |
18-May-2017 |
emaste |
MFC LLD changes and enable LLD as /usr/bin/ld on arm64 by default
MFC r316629: do not require binutils port when using lld as ld
r279908 added logic to Makefile.inc1 to automatically set CROSS_BINUTILS_PREFIX for architectures not supported by the in-tree binutils: arm64 when first introduced, and later riscv64 as well.
LLVM's LLD linker is now included in the base system, and is enabled by default for arm64 and capable of linking world and kernel. Thus, avoid automatically setting CROSS_BINUTILS_PREFIX and requiring the binutils port if WITH_LLD_IS_LD is true.
--
MFC r317608: revert r313473 (Disable LLD_IS_LD option combinations that fail)
r316647 corrected the build of tblgen and libllvm as dependencies for LLD so undo the temporary seat-belt.
We still want to extend the build infrastructure to automatically detect the case where the host LLD can be used instead of building a bootstrap LLD, and likely extend libllvmminimal to meet LLD's needs for cases where the build includes LLD but not Clang.
--
MFC r316684: Make WITHOUT_TOOLCHAIN imply WITHOUT_LLD.
LLD is a toolchain component.
--
MFC r316647: Introduce LLD_BOOTSTRAP to control lld as bootstrap linker
Add WITH_LLD_BOOTSTRAP and WITHOUT_LLD_BOOTSTRAP knobs, similar to the Clang bootstrap knobs.
Reviewed by: andrew Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D10793 |
318289 |
15-May-2017 |
emaste |
MFC r310271 (gjb): Comment the RCSID (in WITH_REPRODUCIBLE_BUILD)
Sponsored by: The FreeBSD Foundation |
318288 |
15-May-2017 |
emaste |
MFC r317156: makeman: add a comment describing purpose and invocation
Sponsored by: The FreeBSD Foundation |
318286 |
15-May-2017 |
emaste |
MFC r316706: makeman: don't copy $FreeBSD$ tags from source files into output
Copying the source VCS ID from WITH_/WITHOUT_* into the generated src.conf.5 is not necessary, as it is generally possible to determine the same information using the VCS to examine commit metadata. The individual source files also match the name of the option recorded in the generated file, so it is clear from where the content originated.
The copied IDs generate extraneous, non-content noise in the generated src.conf.5 in some cases, including the first time the file is generated on a stable branch. In addition, the source file $FreeBSD$ tags are not expanded by git or other non-Subversion VCSs, which means that makeman previously could not be used in a non-Subversion working tree.
I accept that there's some desire to keep these, but on balance believe there is more benefit in removing them.
Sponsored by: The FreeBSD Foundation |
318247 |
12-May-2017 |
jhb |
MFC 317412,317413: Fixes for info file removal.
317412: Add info files for GCC 4.2 to the list of info files to remove.
This would only affect upgrades from older versions of non-clang platforms.
317413: Remove info files from optional old files.
Info files are now all removed unconditionally after the removal of texinfo. |
318101 |
09-May-2017 |
bdrewery |
MFC r317415:
Remove an incorrect MLINK for tree(3) introduced in r310728. |
317607 |
30-Apr-2017 |
dim |
MFC r310889 (by jkim):
Do not remove llvm-objdump. It is installed by default since r310840.
MFC r311311 (by jkim):
Remove llvm-objdump when Clang is disabled. It was missed in r310889.
Submitted by: dim |
316423 |
02-Apr-2017 |
dim |
Update clang, llvm, lld, lldb, compiler-rt and libc++ to 4.0.0 release:
MFC r309142 (by emaste):
Add WITH_LLD_AS_LD build knob
If set it installs LLD as /usr/bin/ld. LLD (as of version 3.9) is not capable of linking the world and kernel, but can self-host and link many substantial applications. GNU ld continues to be used for the world and kernel build, regardless of how this knob is set.
It is on by default for arm64, and off for all other CPU architectures.
Sponsored by: The FreeBSD Foundation
MFC r310840:
Reapply 310775, now it also builds correctly if lldb is disabled:
Move llvm-objdump from CLANG_EXTRAS to installed by default
We currently install three tools from binutils 2.17.50: as, ld, and objdump. Work is underway to migrate to a permissively-licensed tool-chain, with one goal being the retirement of binutils 2.17.50.
LLVM's llvm-objdump is intended to be compatible with GNU objdump although it is currently missing some options and may have formatting differences. Enable it by default for testing and further investigation. It may later be changed to install as /usr/bin/objdump, it becomes a fully viable replacement.
Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D8879
MFC r312855 (by emaste):
Rename LLD_AS_LD to LLD_IS_LD, for consistency with CLANG_IS_CC
Reported by: Dan McGregor <dan.mcgregor usask.ca>
MFC r313559 | glebius | 2017-02-10 18:34:48 +0100 (Fri, 10 Feb 2017) | 5 lines
Don't check struct rtentry on FreeBSD, it is an internal kernel structure. On other systems it may be API structure for SIOCADDRT/SIOCDELRT.
Reviewed by: emaste, dim
MFC r314152 (by jkim):
Remove an assembler flag, which is redundant since r309124. The upstream took care of it by introducing a macro NO_EXEC_STACK_DIRECTIVE.
http://llvm.org/viewvc/llvm-project?rev=273500&view=rev
Reviewed by: dim
MFC r314564:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 4.0.0 (branches/release_40 296509). The release will follow soon.
Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11 support to build; see UPDATING for more information.
Also note that as of 4.0.0, lld should be able to link the base system on amd64 and aarch64. See the WITH_LLD_IS_LLD setting in src.conf(5). Though please be aware that this is work in progress.
Release notes for llvm, clang and lld will be available here: <http://releases.llvm.org/4.0.0/docs/ReleaseNotes.html> <http://releases.llvm.org/4.0.0/tools/clang/docs/ReleaseNotes.html> <http://releases.llvm.org/4.0.0/tools/lld/docs/ReleaseNotes.html>
Thanks to Ed Maste, Jan Beich, Antoine Brodin and Eric Fiselier for their help.
Relnotes: yes Exp-run: antoine PR: 215969, 216008
MFC r314708:
For now, revert r287232 from upstream llvm trunk (by Daniil Fukalov):
[SCEV] limit recursion depth of CompareSCEVComplexity
Summary: CompareSCEVComplexity goes too deep (50+ on a quite a big unrolled loop) and runs almost infinite time.
Added cache of "equal" SCEV pairs to earlier cutoff of further estimation. Recursion depth limit was also introduced as a parameter.
Reviewers: sanjoy
Subscribers: mzolotukhin, tstellarAMD, llvm-commits
Differential Revision: https://reviews.llvm.org/D26389
This commit is the cause of excessive compile times on skein_block.c (and possibly other files) during kernel builds on amd64.
We never saw the problematic behavior described in this upstream commit, so for now it is better to revert it. An upstream bug has been filed here: https://bugs.llvm.org/show_bug.cgi?id=32142
Reported by: mjg
MFC r314795:
Reapply r287232 from upstream llvm trunk (by Daniil Fukalov):
[SCEV] limit recursion depth of CompareSCEVComplexity
Summary: CompareSCEVComplexity goes too deep (50+ on a quite a big unrolled loop) and runs almost infinite time.
Added cache of "equal" SCEV pairs to earlier cutoff of further estimation. Recursion depth limit was also introduced as a parameter.
Reviewers: sanjoy
Subscribers: mzolotukhin, tstellarAMD, llvm-commits
Differential Revision: https://reviews.llvm.org/D26389
Pull in r296992 from upstream llvm trunk (by Sanjoy Das):
[SCEV] Decrease the recursion threshold for CompareValueComplexity
Fixes PR32142.
r287232 accidentally increased the recursion threshold for CompareValueComplexity from 2 to 32. This change reverses that change by introducing a separate flag for CompareValueComplexity's threshold.
The latter revision fixes the excessive compile times for skein_block.c.
MFC r314907 | mmel | 2017-03-08 12:40:27 +0100 (Wed, 08 Mar 2017) | 7 lines
Unbreak ARMv6 world.
The new compiler_rt library imported with clang 4.0.0 have several fatal issues (non-functional __udivsi3 for example) with ARM specific instrict functions. As temporary workaround, until upstream solve these problems, disable all thumb[1][2] related feature.
MFC r315016:
Update clang, llvm, lld, lldb, compiler-rt and libc++ to 4.0.0 release. We were already very close to the last release candidate, so this is a pretty minor update.
Relnotes: yes
MFC r316005:
Revert r314907, and pull in r298713 from upstream compiler-rt trunk (by Weiming Zhao):
builtins: Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA.
Summary: Value of __ARM_ARCH_ISA_THUMB isn't based on the actual compilation mode (-mthumb, -marm), it reflect's capability of given CPU.
Due to this: - use __tbumb__ and __thumb2__ insteand of __ARM_ARCH_ISA_THUMB - use '.thumb' directive consistently in all affected files - decorate all thumb functions using DEFINE_COMPILERRT_THUMB_FUNCTION()
--------- Note: This patch doesn't fix broken Thumb1 variant of __udivsi3 !
Reviewers: weimingz, rengolin, compnerd
Subscribers: aemerson, dim
Differential Revision: https://reviews.llvm.org/D30938
Discussed with: mmel |
316250 |
30-Mar-2017 |
ngie |
MFC r315764,r315765:
r315764:
Add a WITHOUT_IPSEC_SUPPORT option description for src.conf(5)
This is a follow up commit to r313330.
r315765:
Fix mdoc(7) warning: new sentences should start on new lines |
316045 |
27-Mar-2017 |
ngie |
MFC r314245:
Fill MK_LIBTHR as far as lib/libthr is concerned
There are other areas of the tree that will need to be evaluated for sanity if they're supposed to be conditionally compiled out of the build/install, like libzpool
Relnotes: yes (this might break someone's system if have the knob set) |
315660 |
21-Mar-2017 |
ngie |
MFC r314241,r315228:
r314241:
Fill in MK_RESCUE by finding paths in ${DESTDIR}/rescue and adding them to OLD_FILES/OLD_DIRS, as necessary.
r315228:
Redirect standard error from find /rescue to /dev/null
This mutes noise from find when /rescue doesn't exist. |
315357 |
16-Mar-2017 |
ngie |
MFC r315113:
Conditionally compile [additional] programs into rescue(8) if requested
Trivial oversight missed in r314240 cleanup because I enable these knobs on my test machines.
MK_INET6_SUPPORT - rtsol MK_NETCAT - nc |
315352 |
16-Mar-2017 |
ngie |
MFC r315111:
Remove /rescue/iscsictl and /rescue/iscsid if MK_ISCSI == no |
315350 |
16-Mar-2017 |
ngie |
MFC r315114:
Remove /rescue/zdb if MK_ZFS == no
Missed in r202452. |
315109 |
12-Mar-2017 |
ngie |
MFC r314240:
Conditionally compile certain programs into rescue(8) if requested
MK_CCD - ccdconfig MK_ROUTED - routed, rtquery |
314825 |
07-Mar-2017 |
ngie |
MFC r314242:
Remove MK_CRYPT stub
It doesn't directly control what gets installed today; it indirectly pulls other knobs (like MK_KERBEROS, etc). |
314367 |
28-Feb-2017 |
ngie |
MFC r314244:
Remove MK_OBJC block
It is no longer represented via src.conf(5) |
312766 |
25-Jan-2017 |
dim |
MFC r311807:
Add recently added libc++ headers to OptionalObsoleteFiles.inc. |
312730 |
25-Jan-2017 |
emaste |
Add WITH_REPRODUCIBLE_BUILD src.conf(5) knob
MFC r310128: Add WITH_REPRODUCIBLE_BUILD src.conf(5) knob to disable kernel metadata
The kernel builds reproducibly, except for the time, date, user, and hostname baked into the kernel (reported at startup and via the kern.version sysctl for uname). Add a build knob to disable the inclusion of this metadata.
MFC r310268: Build loaders reproducibly when WITH_REPRODUCIBLE_BUILD
When WITH_REPRODUCIBLE_BUILD=yes is set in src.conf(5), eliminate the time, user, and host from the loader's version information. This allows builds to produce bit-for-bit identical output. |
312019 |
13-Jan-2017 |
ngie |
MFC r311548:
Carry over r311520 to tools/build/options/WITHOUT_USB_GADGET_EXAMPLES
Discussed with: wblock
r311520:
Fix src.conf(5) description of WITHOUT_USB_GADGET_EXAMPLES.
PR: 215831 |
311934 |
11-Jan-2017 |
dim |
MFC r311565:
Link llvm-ar to llvm-ranlib, if WITH_CLANG_EXTRAS is enabled. When invoked as llvm-ranlib, it can create an archive symbol table for archives of objects compiled for LTO by an LLVM compiler.
Submitted by: Dan McGregor <danismostlikely@gmail.com>
MFC r311806:
After r311565, also remove llvm-ranlib from ObsoleteFiles.inc. |
311551 |
06-Jan-2017 |
ngie |
MFC r311136:
Add WITH_SSP to silence complaints from mkman about there not being a file |
311528 |
06-Jan-2017 |
emaste |
MFC r306966: Correct sense of WITHOUT_MANDOCDB knob
WITHOUT_MANDOCDB *disables* the use of mandoc's makewhatis.
PR: 215831 Sponsored by: The FreeBSD Foundation |
311212 |
04-Jan-2017 |
ngie |
MFC r310665:
Only build/install usr.sbin/bsnmpd/modules/snmp_hast if MK_HAST != no |
311209 |
04-Jan-2017 |
ngie |
MFC r310664:
Only build/install usr.sbin/bsnmpd/modules/snmp_wlan if MK_WIRELESS != no |
311207 |
04-Jan-2017 |
ngie |
MFC r310099,r311000,r311002:
r311000:
Fix spelling errors
r311002:
Install bsnmpclient(3) as snmp_client_{init,set_host,set_port}(3) |
310897 |
31-Dec-2016 |
ngie |
MFC r310728:
Install {asn1,bsnmpagent,bsnmpclient,bsnmplib}.3 as all of the APIs they document
Also, alphabetically sort MAN |
310896 |
31-Dec-2016 |
ngie |
MFC r310654:
Install snmpmod.3 as all of the bsnmpd APIs it documents |
310618 |
26-Dec-2016 |
dim |
MFC r309124:
Upgrade our copies of clang, llvm, lldb, compiler-rt and libc++ to 3.9.0 release, and add lld 3.9.0. Also completely revamp the build system for clang, llvm, lldb and their related tools.
Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11 support to build; see UPDATING for more information.
Release notes for llvm, clang and lld are available here: <http://llvm.org/releases/3.9.0/docs/ReleaseNotes.html> <http://llvm.org/releases/3.9.0/tools/clang/docs/ReleaseNotes.html> <http://llvm.org/releases/3.9.0/tools/lld/docs/ReleaseNotes.html>
Thanks to Ed Maste, Bryan Drewery, Andrew Turner, Antoine Brodin and Jan Beich for their help.
Relnotes: yes
MFC r309147:
Pull in r282174 from upstream llvm trunk (by Krzysztof Parzyszek):
[PPC] Set SP after loading data from stack frame, if no red zone is present
Follow-up to r280705: Make sure that the SP is only restored after all data is loaded from the stack frame, if there is no red zone.
This completes the fix for https://llvm.org/bugs/show_bug.cgi?id=26519.
Differential Revision: https://reviews.llvm.org/D24466
Reported by: Mark Millard PR: 214433
MFC r309149:
Pull in r283060 from upstream llvm trunk (by Hal Finkel):
[PowerPC] Refactor soft-float support, and enable PPC64 soft float
This change enables soft-float for PowerPC64, and also makes soft-float disable all vector instruction sets for both 32-bit and 64-bit modes. This latter part is necessary because the PPC backend canonicalizes many Altivec vector types to floating-point types, and so soft-float breaks scalarization support for many operations. Both for embedded targets and for operating-system kernels desiring soft-float support, it seems reasonable that disabling hardware floating-point also disables vector instructions (embedded targets without hardware floating point support are unlikely to have Altivec, etc. and operating system kernels desiring not to use floating-point registers to lower syscall cost are unlikely to want to use vector registers either). If someone needs this to work, we'll need to change the fact that we promote many Altivec operations to act on v4f32. To make it possible to disable Altivec when soft-float is enabled, hardware floating-point support needs to be expressed as a positive feature, like the others, and not a negative feature, because target features cannot have dependencies on the disabling of some other feature. So +soft-float has now become -hard-float.
Fixes PR26970.
Pull in r283061 from upstream clang trunk (by Hal Finkel):
[PowerPC] Enable soft-float for PPC64, and +soft-float -> -hard-float
Enable soft-float support on PPC64, as the backend now supports it. Also, the backend now uses -hard-float instead of +soft-float, so set the target features accordingly.
Fixes PR26970.
Reported by: Mark Millard PR: 214433
MFC r309212:
Add a few missed clang 3.9.0 files to OptionalObsoleteFiles.
MFC r309262:
Fix packaging for clang, lldb and lld 3.9.0
During the upgrade of clang/llvm etc to 3.9.0 in r309124, the PACKAGE directive in the usr.bin/clang/*.mk files got dropped accidentally.
Restore it, with a few minor changes and additions: * Correct license in clang.ucl to NCSA * Add PACKAGE=clang for clang and most of the "ll" tools * Put lldb in its own package * Put lld in its own package
Reviewed by: gjb, jmallett Differential Revision: https://reviews.freebsd.org/D8666
MFC r309656:
During the bootstrap phase, when building the minimal llvm library on PowerPC, add lib/Support/Atomic.cpp. This is needed because upstream llvm revision r271821 disabled the use of std::call_once, which causes some fallback functions from Atomic.cpp to be used instead.
Reported by: Mark Millard PR: 214902
MFC r309835:
Tentatively apply https://reviews.llvm.org/D18730 to work around gcc PR 70528 (bogus error: constructor required before non-static data member). This should fix buildworld with the external gcc package.
Reported by: https://jenkins.freebsd.org/job/FreeBSD_HEAD_amd64_gcc/
MFC r310194:
Upgrade our copies of clang, llvm, lld, lldb, compiler-rt and libc++ to 3.9.1 release.
Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11 support to build; see UPDATING for more information.
Release notes for llvm, clang and lld will be available here: <http://releases.llvm.org/3.9.1/docs/ReleaseNotes.html> <http://releases.llvm.org/3.9.1/tools/clang/docs/ReleaseNotes.html> <http://releases.llvm.org/3.9.1/tools/lld/docs/ReleaseNotes.html>
Relnotes: yes |
310505 |
24-Dec-2016 |
ngie |
MFC r310186,r310187:
r310186:
Install the lib/libelftc manpages
Some other manpages, e.g. c++filt reference these
r310187:
Remove lib/libelf's manpages if MK_TOOLCHAIN == no
Add a comment to help figure out which set is lib/libelf's and which set is lib/libelftc's |
310126 |
15-Dec-2016 |
ngie |
MFC r309602:
Remove svn[lite]{bench,fsfs} if either MK_SVN == no or MK_SVNLITE == no |
309953 |
12-Dec-2016 |
bapt |
MFC r309797-r309802
r309797: Add entries to remove timed files with make delete-old if WITHOUT_TIMED is set
r309798: Also remove auditdistd files if src.conf has WITHOUT_AUDIT
r309799: Respect WITHOUT_RBOOTD in src.conf when running make delete-old
r309800: Respect WITHOUT_BOOTPARAMD in src.conf when running make delete-old
r309801: Respect WITHOUT_BOOTPD in src.conf when running make delete-old
r309802: Respect WITHOUT_FINGER in src.conf when running make delete-old
PR: 213719, 213720, 213721, 213722, 213723, 213724 Submitted by: philippe.michel7@sfr.fr |
309452 |
03-Dec-2016 |
ngie |
MFC r307713:
Remove /usr/libexec/bsdinstall/hardening if MK_BSDINSTALL == no |
308243 |
03-Nov-2016 |
avg |
MFC r307182,307191,307192: rc.d/zfsbe: new script designed for BE support |
307915 |
25-Oct-2016 |
bapt |
MFC r307786:
Do not install NIS program rc script if WITHOUT_NIS is set
PR: 213375 Submitted by: sergey@akhmatov.ru |
307788 |
22-Oct-2016 |
bapt |
MFC r303784, r303785, r305620:
r303784: etcupdate: directly use diff3(1) instead of merge(1)
During the last attempt to rmeove GNU rcs, 2 blockers were spotted: We need an ident(1) and etcupdate(8) uses merge(1).
Now nothing should prevent to remove rcs from base
Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D7401
r303785: always install etcupdate
Now that etcupdate does not depend on rcs anymore there is no need to conditionnally install it
r305620: (by vangyzen ) etcupdate: preserve the metadata of the destination file
When using diff3 to perform a three-way merge, etcupdate lost the destination file's metadata. The metadata from the temporary file were used instead. This was unpleasant for rc.d scripts, which require execute permission. Use "cat >" to overwrite the destination file's contents while preserving its metadata.
Reviewed by: bapt Sponsored by: Dell Technologies Differential Revision: https://reviews.freebsd.org/D7817 |
307357 |
15-Oct-2016 |
bapt |
MFC r306877
Remove the WITH_FMAKE option left over from r284464 |
302408 |
08-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
302330 |
03-Jul-2016 |
ngie |
Remove ftp(1) related files when MK_FTP == no
Approved by: re (gjb) Differential Revision: https://reviews.freebsd.org/D6969 MFC after: 1 week Reviewed by: ngie Submitted by: rakuco Sponsored by: EMC / Isilon Storage Division
|
302329 |
03-Jul-2016 |
bapt |
Posixify the locales name for variants
For all locales with variants: - if no ambiguity on the locale (only one variant) just use the regular name - if ambiguity, pick one as default and append @<variant> to the others respecting POSIX
As a result: - All the 3 components locales added recently are renamed to the usual 2 components version for all but sr_RS.UTF-8 - Set sr_RS.UTF-8 to the cyrillic variant - Add sr_RS.UTF-8@latin - Remove the symlinks aliases they were created to represent the 2 components version as aliasas and are now useless - Update the OptionalObsoleteFiles.inc and ObsoleteFiles.inc to reflect those changes
Discussed with: ache@ Approved by: re@ (gjb)
|
302247 |
28-Jun-2016 |
jtl |
Document support for alternate TCP stacks.
Differential Revision: https://reviews.freebsd.org/D6940 Reviewed by: hiren Approved by: re (gjb) Sponsored by: Juniper Networks
|
301993 |
17-Jun-2016 |
bdrewery |
Add clang-format under WITH_CLANG_EXTRAS.
Reviewed by: dim Approved by: re (gjb) Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D6856
|
301889 |
14-Jun-2016 |
bdrewery |
WITH_META_MODE: Enable printing of some of make's environment on error.
This will print a set of variables from make on error using MAKE_PRINT_VAR_ON_ERROR. It is already enabled for the DIRDEPS_BUILD. It may make sense to enable this in the non-meta mode as well once people are more used to its more verbose error output.
This makes it much simpler to see which .meta file is used when a command files so that it may be inspected for the build command.
Suggested by: sjg Approved by: re (implicit) Sponsored by: EMC / Isilon Storage Division
|
301888 |
14-Jun-2016 |
bdrewery |
WITH_META_MODE: Lessen the filemon(4) requirement scope.
- Move the sys.mk filemon requirement to bsd.init.mk as a warning. This is intended only to show when building directly in a subdirectory without filemon loaded. - Move the error into Makefile and only apply it when building from the META_TGT_WHITELIST target list.
-DNO_FILEMON can be used to suppress both the warning and the error but makes WITH_META_MODE less useful. It will only compare build commands in this mode rather than track all dependencies.
This fixes installing from a jail which doesn't need filemon in this phase [1].
Reported by: Nikolai Lifanov <lifanov@mail.lifanov.com> [1] Approved by: re (implicit) Sponsored by: EMC / Isilon Storage Division
|
301763 |
09-Jun-2016 |
jilles |
build: Add legacy support for futimens() and utimensat().
In order to allow using utimensat() in install(1), add futimens() and utimensat() to -legacy.
The files futimens.c and utimensat.c are modified copies of the files under lib/libc/sys/ since the libc versions use symbols that do not exist in the libc on the build system (sys_futimens and sys_utimensat) . I expect the next non-sweeping change to both sets of files to be to delete them, anyway.
This will allow reverting r299942 (which is a revert of r299850) enabling nanosecond timestamps in install(1).
Reviewed by: bdrewery
|
301602 |
08-Jun-2016 |
des |
Replace _pam_verbose_error() with a macro. This was the last difference between our libpam and stock OpenPAM, meaning that it is now possible to replace the base libpam with a hypothetical ports version of OpenPAM.
|
301554 |
07-Jun-2016 |
lidl |
Document BLACKLIST related build options
Reported by: bdrewery Sponsored by: The FreeBSD Foundation
|
301553 |
07-Jun-2016 |
lidl |
Separate BLACKLIST vs BLACKLIST_SUPPORT properly
Sponsored by: The FreeBSD Foundation
|
301474 |
05-Jun-2016 |
bdrewery |
Document WITH_META_MODE enforcing WITHOUT_SYSTEM_COMPILER.
makeman doesn't handle this since it would need to enable all non-default options when checking enabling 1 option, which then convolutes what is really affecting each other.
|
301466 |
05-Jun-2016 |
bdrewery |
WITH_META_MODE: Enable bmake's missing meta rebuild feature
|
301415 |
05-Jun-2016 |
lidl |
Correct path for blacklistd.conf in OptionalObsoleteFiles.inc
Fix typo made when adding the blacklistd.conf file to OptionalObsoleteFiles.inc
Submitted by: Herbert J. Skuhra ( herbert at mailbox.org ) Reviewed by: rpaulo Approved by: rpaulo Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D6715
|
301240 |
03-Jun-2016 |
lidl |
Add blacklistd.conf manpage
Install the blacklistd.conf man page, missed in the original commit.
Submitted by: Herbert J. Skuhra ( herbert at mailbox.org ) Reviewed by: rpaulo Approved by: rpaulo Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D6702
|
301226 |
02-Jun-2016 |
lidl |
Add basic blacklist build support
Reviewed by: rpaulo Approved by: rpaulo Relnotes: YES Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D5913
|
300940 |
29-May-2016 |
ngie |
Remove yacc and the yacc tests if MK_TOOLCHAIN == no
yacc's install is conditional based on MK_TOOLCHAIN != no
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
300938 |
29-May-2016 |
ngie |
Remove the sa(8) tests if MK_ACCT == no when "make delete-old" is run
sa(8) is conditionally installed based on MK_ACCT != no today
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
300937 |
29-May-2016 |
ngie |
Remove the etcupdate tests if MK_RCS == no when "make delete-old" is run
etcupdate is conditionally installed based on MK_RCS != no today
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
300936 |
29-May-2016 |
ngie |
Remove the calendar tests if MK_CALENDAR == no when "make delete-old" is run
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
300630 |
24-May-2016 |
bdrewery |
WITH_META_MODE: Correct description of missing .meta file.
Sponsored by: EMC / Isilon Storage Division
|
300354 |
21-May-2016 |
bdrewery |
Opportunistically skip building a cross-compiler with SYSTEM_COMPILER set.
This will still build the compiler for the target but will not build the bootstrap cross-compiler in the cross-tools phase. Other toolchain bootstrapping, such as elftoolchan and binutils, currently still occurs.
This will utilize the default CC (cc, /usr/bin/cc) as an external compiler.
This is planned to be on-by-default eventually.
This will utilize the __FreeBSD_cc_version compiler macro defined in the source tree and compare it to CC's version. If they match then the cross-compiler is skipped. If [X]CC is an external compiler (absolute path) or WITHOUT_CROSS_COMPILER is already set, then this logic is skipped. If the expected bootstrap compiler type no longer matches the found CC compiler type (clang vs gcc), then the logic is skipped. As an extra safety check the version number is also compared from the compiler to the tree version.
Clang: The macro FREEBSD_CC_VERSION is defined in: lib/clang/include/clang/Basic/Version.inc For clang -target will be used if TARGET_ARCH != MACHINE_ARCH. This is from the current external toolchain logic. There is currently an assumption that the host compiler can build the TARGET_ARCH. This will usually be the case since we don't conditionalize target arch support in clang, but it will break when introducing new architectures. This problem is mitigated by incrementing the version when adding new architectures.
GCC: The macro FBSD_CC_VER is defined in: gnu/usr.bin/cc/cc_tools/freebsd-native.h For GCC there is no simple -target support when TARGET_ARCH != MACHINE_ARCH. In this case the opportunistic skip is not done. If we add proper support for this case in external toolchain logic then it will be fine to enable.
This relies on the macros being incremented whenever any change occurs to these compilers that warrant rebuilding files. It also should never repeat earlier values.
Reviewed by: brooks, bapt, imp Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D6357
|
300325 |
20-May-2016 |
bdrewery |
Add a WITH_LIBSOFT
|
299842 |
15-May-2016 |
ngie |
Conditionalize installing etc/rc.d/atm{1,2,3}
`BEFORE: netif` was already in etc/rc.d/atm1, so no additional changes are needed in that script
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
299841 |
15-May-2016 |
ngie |
Remove etc/rc.d/{zfs,zvol} if MK_ZFS != no
MFC after: 2 weeks X-MFC with: r299840 Sponsored by: EMC / Isilon Storage Division
|
299169 |
06-May-2016 |
ngie |
Only install etc/rc.d/{rfcomm_pppd_server,sdpd} if MK_BLUETOOTH != no
These are bluetooth specific services
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
299163 |
06-May-2016 |
ngie |
Fix r299162
share/man/man8/Makefile: - Add src.opts.mk so MK_NIS can be tested - Fix typo in MK_NIS conditional
tools/build/mk/OptionalObsoleteFiles.inc: - Remove WIP diff from ^/user/ngie/detangle-rc
MFC after: 1 week X-MFC with: r299162 Sponsored by: EMC / Isilon Storage Division
|
299162 |
06-May-2016 |
ngie |
Only install NIS section 8 manpages if MK_NIS != no
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
298881 |
01-May-2016 |
pfg |
tools: minor spelling fixes.
Mostly comments but also some user-visible strings.
MFC after: 2 weeks
|
298122 |
16-Apr-2016 |
bapt |
Complete the Obsoletefiles entries
|
298121 |
16-Apr-2016 |
bapt |
Regenerates locales Makefiles and locales
|
298007 |
14-Apr-2016 |
bdrewery |
Add more content for WITH_META_MODE/WITH_DIRDEPS_BUILD.
Sponsored by: EMC / Isilon Storage Division
|
297941 |
13-Apr-2016 |
bdrewery |
Note the brokenness of WITHOUT_INSTALLLIB.
Sponsored by: EMC / Isilon Storage Division
|
297939 |
13-Apr-2016 |
bdrewery |
The build does work now with WITHOUT_TOOLCHAIN.
The bootstrap cross tools are still built in this mode as well.
Sponsored by: EMC / Isilon Storage Division
|
297844 |
12-Apr-2016 |
bdrewery |
Add some more content for WITH_META_MODE.
Sponsored by: EMC / Isilon Storage Division
|
297843 |
12-Apr-2016 |
bdrewery |
Document the behavior of NO_DIRDEPS/NO_DIRDEPS_BELOW.
Sponsored by: EMC / Isilon Storage Division
|
297436 |
30-Mar-2016 |
bdrewery |
Remove FAST_DEPEND reference missed in r297434.
|
297434 |
31-Mar-2016 |
bdrewery |
Remove the old depend (mkdep) code and make FAST_DEPEND the one true way.
Reviewed by: emaste, hselasky (partial), brooks (brief) Discussed on: arch@ Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D5742
|
296889 |
15-Mar-2016 |
imp |
Just install ar5523.bin into /usr/share/firmware and stop compiling it in.
Differential Review: https://reviews.freebsd.org/D5639
|
296669 |
11-Mar-2016 |
bdrewery |
Add a WITHOUT_FAST_DEPEND
|
296417 |
05-Mar-2016 |
dim |
Upgrade our copies of clang, llvm, lldb and compiler-rt to 3.8.0 release.
Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11 support to build; see UPDATING for more information.
Release notes for llvm and clang will soon be available here: <http://llvm.org/releases/3.8.0/docs/ReleaseNotes.html> <http://llvm.org/releases/3.8.0/tools/clang/docs/ReleaseNotes.html>
Thanks to Ed Maste, Roman Divacky, Davide Italiano and Antoine Brodin for their help.
Relnotes: yes
|
296264 |
01-Mar-2016 |
trasz |
Fix section numbers for autofs(5), kbdcontrol(1), vidcontrol(1), quota(1), and telnet(1) in the right place.
MFC after: 1 month Sponsored by: The FreeBSD Foundation
|
296193 |
29-Feb-2016 |
emaste |
Document that WITHOUT_ELFCOPY_AS_OBJCOPY will be removed
In case ELF Tool Chain's elfcopy introduces any regressions this knob is available as a transition aid. It will be removed once we are confident that any regressions have been fixed.
|
295809 |
19-Feb-2016 |
emaste |
Remove objcopy in WITHOUT_TOOLCHAIN if it's from elftoolchain
|
295533 |
11-Feb-2016 |
des |
Remove unbound-contrl-setup since we use a local control socket which does not require keys.
MFC after: 3 days Relnotes: yes
|
295493 |
11-Feb-2016 |
emaste |
Add WITH_GDB src.conf(5) description
|
295491 |
11-Feb-2016 |
emaste |
Add missing src.conf(5) descriptions for tool chain components
Sponsored by: The FreeBSD Foundation
|
295490 |
11-Feb-2016 |
emaste |
Update list of binutils controlled by WITHOUT_BINUTILS_BOOTSTRAP
Tools removed from the list are now provided by the ELF Tool Chain project and are not controlled by the WITHOUT_BINUTILS_BOOTSTRAP knob.
Sponsored by: The FreeBSD Foundation
|
294357 |
19-Jan-2016 |
bdrewery |
Allow specifying an alternative LD_LIBRARY_PATH for the ldd(1) lookup.
This is needed to be able to run check-links.sh against a "sysrooted" binary while ensuring that the ldd(1) call done on the host uses the host libc. It is not possible to set LD_LIBRARY_PATH before calling check-links.sh as then the "sysrooted" libc would be incorrectly used.
A LD_PRELOAD=libc.so is used to ldd(1) as it needs to use the host libc to run. ldd(1) is a simple wrapper around execve(2) and dlopen(2) with env LD_TRACE_LOADED_OBJECTS set. Due to the dlopen(2) restriction on shared library tracing ldd(1) is still required for this lookup.
Sponsored by: EMC / Isilon Storage Division
|
294356 |
19-Jan-2016 |
bdrewery |
Add some documentation.
Sponsored by: EMC / Isilon Storage Division
|
294355 |
19-Jan-2016 |
bdrewery |
Validate that the file exists rather than obscure 'Not an elf file' error.
Sponsored by: EMC / Isilon Storage Division
|
293450 |
09-Jan-2016 |
emaste |
Support use of LLVM's libunwind for exception unwinding
It is built in libgcc_s.so and libgcc_eh.a to simplify transition.
It is enabled by default on arm64 (where we previously had no other unwinder) and may be enabled for testing on other platforms by setting WITH_LLVM_LIBUNWIND in src.conf(5).
Also add compiler-rt's __gcc_personality_v0 implementation for use with the LLVM unwinder.
Relnotes: Yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D4787
|
293357 |
07-Jan-2016 |
garga |
Obsolete inetd related files when WITHOUT_INETD is set
Reviewed by: bapt Approved by: gnn MFC after: 1 week Sponsored by: Rubiconn Communications (Netgate) Differential Revision: https://reviews.freebsd.org/D4742
|
292735 |
25-Dec-2015 |
dim |
Upgrade our copies of clang and llvm to 3.7.1 release. This is a bugfix-only release, with no new features.
Please note that from 3.5.0 onwards, clang and llvm require C++11 support to build; see UPDATING for more information.
|
292658 |
23-Dec-2015 |
emaste |
Install ld also as ld.bfd, for use with cc -fuse-ld=bfd
PR: 205409 [exp-run] MFC after: 1 week Relnotes: Yes Sponsored by: The FreeBSD Foundation
|
292355 |
16-Dec-2015 |
emaste |
Remove lldb(1) files if WITHOUT_LLDB is set
Sponsored by: The FreeBSD Foundation
|
292283 |
15-Dec-2015 |
bdrewery |
Correct comment about MAKEOBJDIRPREFIX in src-env.conf.
It may only be used with WITH_AUTO_OBJ, which the WITH_DIRDEPS_BUILD does. We could support this in the normal build as well if we forced creating the directory and setting .OBJDIR.
Sponsored by: EMC / Isilon Storage Division
|
291627 |
02-Dec-2015 |
bdrewery |
Fully connect cddl/usr.sbin/plockstat.
There seems to be no reason to keep this so private.
Also add missing optional MK_CDDL files.
Sponsored by: EMC / Isilon Storage Division
|
291455 |
29-Nov-2015 |
dim |
Install the public sanitizer headers. These are useful for programs that want to directly interface with sanitizer internals.
|
291414 |
28-Nov-2015 |
ume |
Fix breakage by recent collation change. LC_ALL has to be exported.
|
291198 |
23-Nov-2015 |
des |
Retire the NONE cipher option.
|
290945 |
16-Nov-2015 |
bdrewery |
Revert r290944. It was wrong.
|
290944 |
16-Nov-2015 |
bdrewery |
Fix error case for bmake to echo 0.
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
290928 |
16-Nov-2015 |
bapt |
Bring back a couple of ISO8859-15 locales: - af_ZA.ISO8859-15 - en_AU.ISO8859-15 - en_CA.ISO8859-15 - en_NZ.ISO8859-15 - en_US.ISO8859-15 - fr_CA.ISO8859-15
|
290874 |
15-Nov-2015 |
bapt |
Remove trailing spaces at end of lines
|
290873 |
15-Nov-2015 |
bapt |
Update the list of files to be removed in case world is built WITHOUT_LOCALES
|
290817 |
14-Nov-2015 |
sjg |
Regen src.conf.5
|
290816 |
14-Nov-2015 |
sjg |
Rename META_MODE option to DIRDEPS_BUILD
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
|
290659 |
10-Nov-2015 |
ngie |
- Move ng_bluetooth.4 under MK_BLUETOOTH != no - Move all section 5 bluetooth manpages under MK_BLUETOOTH != no
MFC after: 3 days PR: 193260 Reported by: Philippe Michel <philippe.michel7@sfr.fr> Sponsored by: EMC / Isilon Storage Division
|
290526 |
08-Nov-2015 |
bdrewery |
Add built-in ccache build support via WITH_CCACHE_BUILD option.
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
|
290494 |
07-Nov-2015 |
bapt |
Improve collation string and locales support
Merge collation support from Illumos and DragonflyBSD.
Locales are now generated with the new localedef(1) tool from CLDR POSIX files. The generated files are now identified as "BSD 1.0" format.
The libc now only read "BSD 1.0" locales definitions, all other version will be set to "C" The localedef(1) tool has been imported from Illumos and modified to use tree(3) instead of the CDDL avl(3) A set of tool created by edwin@ and extended by marino@ for dragonfly has been added to be able to generate locales and the Makefiles from the vanilla CLDR unicode databases + a universal UTF-8 charmap (by marino@) Update the locales to unicode v27 Given our regex(3) does not support multibyte (yet) it has been forced to always use locale C Remove now unused colldef(1) and mklocale(1) Finish implementing the numeric BSD extension for ctypes The number of supported locales has grown from 175 to 250 locales. Among the new locales: 6 Arabic locales (AE EG JO MA QA SA), Different variations of spanish locales. Added new 3 components locales for mn_Cyrl_MN, sr_Cyrl_RS sr_Latn_RS, zh_Hans_CN, zh_Hant_HK and zh_Hant_TW. Some aliases has been for 2 components version when possible.
Thanks: Garrett D'Amore (Illumos) who made sure all his work was done under BSD license!, Edwin Groothuis (edwin@) for the work he made on tools to be able to generate locales definition usable in freebsd sources out of vanilla CLDR definitions, John Marino (DragonflyBSD) who first merge the Illumos work into Dragonfly and spent hours tracking down bugs.
|
290435 |
06-Nov-2015 |
bdrewery |
Don't allow environment-set options to bleed into src.conf.5 generation.
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
290433 |
06-Nov-2015 |
bdrewery |
Add a FAST_DEPEND option, off by default, which speeds up the build significantly.
This speeds up buildworld by 16% on my system and buildkernel by 35%.
Rather than calling mkdep(1), which is just a wrapper around 'cc -E', use the modern -MD -MT -MF flags to gather and generate dependencies during compilation. This flag was introduced in GCC "a long time ago", in GCC 3.0, and is also supported by Clang. (It appears that ICC also supports this but I do not have access to test it). This avoids running the preprocessor *twice* for every build, in both 'make depend' and 'make all'. This is especially noticeable when using ccache since it does not cache preprocessor results from mkdep(1) / 'cc -E', but still speeds up compilation with the -MD flags.
For 'make depend' a tree-walk is still done to ensure that all DPSRCS are generated when expected, and that beforedepend/afterdepend and _EXTRADEPEND are all still respected. In time this may change but for now I've been conservative. The time for a tree-walk with -j combined with SUBDIR_PARALLEL is not significant. For example, it takes about 9 seconds with -j15 to walk all of src/ for 'make depend' now on my system.
A .depend file is still generated with the various rules that apply to the final target, or custom rules. Otherwise there are now per-built-object-file .depend files, such as .depend.filename.o. These are included directly by make rather than populating .depend with a loop and .depend lines, which only added overhead to the now almost-NOP 'make depend' phase.
Before this I experimented with having mkdep(1) called in parallel per-file. While this improved the kernel and lib/libc 'make depend' phase, it resulted in slower build times overall.
The -M flags are removed from CFLAGS when linking since they have no effect.
Enabling this by default, for src or out-of-src, can be done once more testing has been done, such as a ports exp-run, and with more compilers.
The system I used for testing was: WITNESS Build options: -j20 WITH_LLDB=yes WITH_DEBUG_FILES=yes WITH_FAST_DEPEND=yes DISK: ZFS 3-way mirror with very slow disks using SSD l2arc/log. The arc was fully populated with src tree files. 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
buildworld: x buildworld-before + buildworld-fastdep +-------------------------------------------------------------------------------+ |+ | |+ | |+ xx x| | |_MA___|| |A | +-------------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 3 3744.13 3794.31 3752.25 3763.5633 26.935139 + 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-fastdep +-------------------------------------------------------------------------------+ |+ x | |++ xx| | A|| |A| | +-------------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 3 571.57 573.94 571.79 572.43333 1.3094401 + 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)
Sponsored by: EMC / Isilon Storage Division MFC after: 3 weeks Relnotes: yes
|
290252 |
02-Nov-2015 |
ngie |
Rename etc/periodic/daily/430.status-rwho to periodic/daily/430.status-uptime
The command was checking local/remote system uptime, so rename the script to match its function and to avoid confusion
The controlling variable in /etc/periodic.conf has been renamed from daily_status_rwho_enable to daily_status_uptime_enable.
MFC after: 3 days Reported by: Peter Jeremy <peter@rulingia.com> Relnotes: yes Sponsored by: EMC / Isilon Storage Division
|
290250 |
02-Nov-2015 |
ngie |
Conditionally install (if_)?(otus|rsu).4, otusfw.4, rsufw.4, and urtwn.4 if MK_USB != no
Add the manpages to OptionalObsoleteFiles.inc
As a side-effect, this also fixes installworld with MK_USB == no
X-MFC with: r290128 Sponsored by: EMC / Isilon Storage Division
|
290059 |
27-Oct-2015 |
emaste |
Add WITHOUT_DEBUG_FILES description
|
289903 |
24-Oct-2015 |
ngie |
Add libvmmapi to OptionalObsoleteFiles.inc when MK_BHYVE == no
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
289662 |
20-Oct-2015 |
jmmv |
Handle lib32 files during delete-old* when MK_LIB32=no.
Extend OptionalObsoleteFiles.inc to delete all lib32 files when MK_LIB32 is set to no on a system that previously had lib32 libraries installed.
Also, to prevent "make delete-old-dirs" from always deleting lib32 directories after an installworld, move the lib32 subtree to its own mtree file that only gets applied when MK_LIB32=yes.
Test: Ran "make delete-old" and "make delete-old-libs" on a system that never had MK_LIB32 enabled, and on a system where MK_LIB32 was enabled and later disabled. Did this both on amd64 and powerpc64.
Test: Ran "make tinderbox" without errors.
Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D3923
|
289275 |
14-Oct-2015 |
emaste |
Add WITHOUT_LLDB for src.conf(5)
It will be enabled by default on certain architectures.
|
288943 |
06-Oct-2015 |
dim |
Upgrade our copies of clang, llvm, lldb, compiler-rt and libc++ to 3.7.0 release.
Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11 support to build; see UPDATING for more information.
Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html> <http://llvm.org/releases/3.7.0/tools/clang/docs/ReleaseNotes.html>
Thanks to Ed Maste, Andrew Turner and Antoine Brodin for their help.
Exp-run: antoine Relnotes: yes
|
288339 |
28-Sep-2015 |
avg |
remove unused sgsmsg utility (originally imported from opensolaris)
MFC after: 25 days
|
288234 |
25-Sep-2015 |
bdrewery |
Add missing binutils ldscripts.
Some of these are after the fix in r288230 to install them.
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
288226 |
25-Sep-2015 |
bdrewery |
META_MODE: Remove DEP_RELDIR from Makefile.depend files.
This has not been needed since r284171 in projects/bmake.
Sponsored by: EMC / Isilon Storage Division
|
288057 |
21-Sep-2015 |
ngie |
Delete /etc/autofs/special_noauto when MK_AUTOFS == no
MFC after: 1 week
|
287973 |
18-Sep-2015 |
bdrewery |
Document NO_DIRDEPS for META_MODE and give link to full details.
|
287942 |
17-Sep-2015 |
bdrewery |
makeman: Fix handling of env-only vars by using SRC_ENV_CONF rather than SRCCONF.
Also note that these env-only vars can be specified on the command line.
This fixes the dependent options that are env-only (such as WITH_META_MODE and WITH_AUTO_OBJ) to properly display their dependencies.
Sponsored by: EMC / Isilon Storage Division
|
287935 |
17-Sep-2015 |
bdrewery |
Optimize makeman slightly by removing uneeded cat and extra test -s.
Sponsored by: EMC / Isilon Storage Division
|
287932 |
17-Sep-2015 |
bdrewery |
src.conf.5: Make it self-documenting that the mkopts are environment-only.
Sponsored by: EMC / Isilon Storage Division
|
287925 |
17-Sep-2015 |
bdrewery |
Document src-env.conf and note its use for MAKEOBJDIRPREFIX and WITH_META_MDOE.
Sponsored by: EMC / Isilon Storage Division
|
287904 |
17-Sep-2015 |
bdrewery |
Document NO_SILENT for META_MODE.
Reword and add some formatting as well.
|
286822 |
16-Aug-2015 |
ngie |
Reap MK_SYSINSTALL
It's no longer in use in the tree (most likely missed when sade/sysinstall were removed)
MFC after: 1 week
|
286745 |
13-Aug-2015 |
antoine |
Stop removing ELF toolchain tools
|
286730 |
13-Aug-2015 |
emaste |
Roll WITHOUT_ELFTOOLCHAIN_TOOLS into WITHOUT_TOOLCHAIN
The option was added only to ease the transition from GNU Binutils to ELF Tool Chain tools, and that process is now complete (for the viable replacements). Noting the removal in UPDATING is sufficient as we have not shipped a release with the option.
Reviewed by: brooks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3240
|
286652 |
12-Aug-2015 |
jmmv |
Mark usr/include/c++/v1/tr1 as obsolete
The directory usr/include/c++/v1 was marked as obsolete but its tr1 subdir was not, resulting in a removal error in delete-old.
|
286451 |
08-Aug-2015 |
garga |
Add missing files to sendmail obsolete files list
Approved by: gshapiro MFC after: 3 days Sponsored by: Netgate Differential Revision: https://reviews.freebsd.org/D3302
|
286332 |
05-Aug-2015 |
emaste |
Remove old GNU Binutils tools now provided by ELF Tool Chain
Reviewed by: bapt, brooks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3238
|
286174 |
02-Aug-2015 |
markj |
Add a src.conf option to build and install the DTrace test suite.
Reviewed by: gnn, ngie Differential Revision: https://reviews.freebsd.org/D3195
|
286044 |
29-Jul-2015 |
emaste |
MK_ELFCOPY_AS_OBJCOPY should be a variable
PR: 201978 Submitted by: O. Hartmann Differential Revision: https://reviews.freebsd.org/D2887
|
286036 |
29-Jul-2015 |
emaste |
Remove mention of non-existent gconv tool
I believe this is a typo of gcov, but gcov is not controlled by WITHOUT_BINUTILS anyhow.
Sponsored by: The FreeBSD Foundation
|
286030 |
29-Jul-2015 |
emaste |
Allow ELF Tool Chain elfcopy to be installed as objcopy
ELF Tool Chain elfcopy is nearly a drop-in replacement for GNU objcopy, but does not currently support PE output which is needed for building x86 UEFI bits.
Add a src.conf knob to allow installing it as objcopy and set it by default for aarch64 only, where we don't have a native binutils.
Reviewed by: bapt Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D2887
|
286029 |
29-Jul-2015 |
emaste |
Update OLD_FILES for tools provided by ELF Tool Chain or Binutils
Sponsored by: The FreeBSD Foundation
|
286016 |
29-Jul-2015 |
emaste |
Include c++filt and readelf in WITHOUT_ELFTOOLCHAIN_TOOLS
|
285890 |
26-Jul-2015 |
bapt |
Replace GNU RCS ident with a BSD license ident
Rationale: ident(1) is useful out of RCS, lot of scripts are using ident(1) and failing when base is built WITHOUT_RCS.
This version is: - fully compatible with RCS 5.7 ident. - fully compatible with RCS 5.9 ident. - passes all ident test from GNU RCS 5.9 test suite
This version has support for: svn extension for the Keyword id (double colon and # before last $)
Différences with GNU RCS ident: - no long options as found in GNU RCS 5.9 (but not commented there). - '-V' reports nothing but has been added for compatibility.
Differential Revision: https://reviews.freebsd.org/D3200 Reviewed by: pfg
|
285617 |
16-Jul-2015 |
ache |
Comment out usr/sbin/mailwrapper removal because for no mailwrapper case we have: /usr/sbin/sendmail -> /usr/sbin/mailwrapper /usr/sbin/mailwrapper -> /usr/libexec/sendmail/sendmail Add comment explaining it.
|
284708 |
22-Jun-2015 |
sjg |
Fix generation of src.conf.5
Since makeman turns all options on, we need to guard somethings from make(showconfig)
|
284703 |
22-Jun-2015 |
emaste |
Report failing value from 'make showconfig' in build option script
Sponsored by: The FreeBSD Foundation
|
284635 |
20-Jun-2015 |
antoine |
Add more obsolete files
|
284628 |
20-Jun-2015 |
antoine |
Add some files to remove when MK_BSD_GREP=no
|
284538 |
18-Jun-2015 |
bapt |
The build and installation of rmail(8) is only related to the SENDMAIL option
|
284537 |
18-Jun-2015 |
bapt |
Do not remove mailwrapper(8) in case WITHOUT_SENDMAIL is used
It is required for other tools in base and/or ports like dma(8) or any MTA available in ports. It is also build and installed anyway even if world is built WITHOUT_SENDMAIL
|
284345 |
13-Jun-2015 |
sjg |
Add META_MODE support.
Off by default, build behaves normally. WITH_META_MODE we get auto objdir creation, the ability to start build from anywhere in the tree.
Still need to add real targets under targets/ to build packages.
Differential Revision: D2796 Reviewed by: brooks imp
|
283777 |
30-May-2015 |
bapt |
Switch to mandoc's version of makewhatis(8), whatis(1), apropos(1) utilities.
This change among other things improve search capabilities over the manpages allowing fine grain query.
A new build option WITHOUT_MANDOCDB has been added to keep the ancient version of the database and the tools. The plan is to entirely remove this option before 11.0-RELEASE.
Differential Revision: https://reviews.freebsd.org/D2603
|
283526 |
25-May-2015 |
dim |
Upgrade our copy of clang and llvm to 3.6.1 release.
This release contains the following cherry-picked revisions from upstream trunk:
226124 226151 226164 226165 226166 226407 226408 226409 226652 226905 226983 227084 227087 227089 227208 227209 227210 227211 227212 227213 227214 227269 227430 227482 227503 227519 227574 227822 227986 227987 227988 227989 227990 228037 228038 228039 228040 228188 228189 228190 228273 228372 228373 228374 228403 228765 228848 228918 229223 229225 229226 229227 229228 229230 229234 229235 229236 229238 229239 229413 229507 229680 229750 229751 229752 229911 230146 230147 230235 230253 230255 230469 230500 230564 230603 230657 230742 230748 230956 231219 231237 231245 231259 231280 231451 231563 231601 231658 231659 231662 231984 231986 232046 232085 232142 232176 232179 232189 232382 232386 232389 232425 232438 232443 232675 232786 232797 232943 232957 233075 233080 233351 233353 233409 233410 233508 233584 233819 233904 234629 234636 234891 234975 234977 235524 235641 235662 235931 236099 236306 236307
Please note that from 3.5.0 onwards, clang and llvm require C++11 support to build; see UPDATING for more information.
|
283247 |
21-May-2015 |
bapt |
Mark libgomp.so.1 as an old lib not an old file
|
283143 |
20-May-2015 |
ngie |
Remove usr/share/dtrace/{tcpconn,tcpstate,tcptrack,udptrack} if MK_CDDL == no
Sponsored by: EMC / Isilon Storage Division
|
283060 |
18-May-2015 |
emaste |
Build libgcov only if we're building base system GCC
Clang uses compiler-rt for the code coverage runtime, and ports GCC provides its own libgcov.
PR: 200203 (exp-run) Sponsored by: The FreeBSD Foundation
|
282994 |
15-May-2015 |
dim |
Provide reallocarray() in -legacy, if needed, to allow building head on previous releases.
Also add a stdlib.h wrapper, which declares the function, otherwise the compiler may assume it returns int, which can cause segfaults on LP64 architectures.
Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D2558
|
282973 |
15-May-2015 |
emaste |
Build libgomp only if we're also building base system GCC
Clang's OpenMP support will emit Intel OpenMP API library calls, and will therefore require libiomp (or whatever name is settled on). An up-to-date version of libgomp is included in ports or pkg GCC. Thus, there is no reason to build base libgomp without base system GCC.
PR: 199979 (exp-run) Reviewed by: pfg Relnotes: Yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D2459
|
282549 |
06-May-2015 |
emaste |
Fix make delete-old for gperf and GCC/CXX options
- Optional components go in OptionalObsoleteFiles - Move gperf removal to be based on MK_GCC only, not MK_CXX and MK_GCC
Reviewed by: imp, sbruno Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D2421
|
282318 |
01-May-2015 |
bapt |
Replace groff's soelim by soeliminate(1) renamed soelim(1)
|
282303 |
01-May-2015 |
emaste |
OptionalObsoleteFiles: don't remove c++filt when using ELF Tool Chain
c++filt is listed here twice, for MK_CXX == no and MK_GCC == no, but r282285 only caught one of them.
|
282295 |
01-May-2015 |
bdrewery |
Add a -v to tell where each symbol is resolved from.
Sponsored by: EMC / Isilon Storage Division
|
282294 |
01-May-2015 |
bdrewery |
Fix a comment
|
282285 |
30-Apr-2015 |
emaste |
Add ELF Tool Chain's c++filt to the build
Differential Revision: https://reviews.freebsd.org/D2408 Reviewed by: brooks, imp Sponsored by: The FreeBSD Foundation
|
281814 |
21-Apr-2015 |
bdrewery |
Tweak BSS symbol handling from r281811 to not consider them unresolved
|
281813 |
21-Apr-2015 |
bdrewery |
Support libraries linked by path.
Sponsored by: EMC / Isilon Storage Division
|
281811 |
21-Apr-2015 |
bdrewery |
- For executables search for matching (B) global uninitialized BSS symbols from linked libraries. Only do this for BSS symbols that have a size which avoids __bss_start. Without this some libraries would be considered unneeded even though they were providing a B symbol. - Add in the symbols from crt1.o to cover a handful of common unresolved symbols. - Consider (C) common data symbols as provided by libraries/crt1. - Move libkey() function to more appropriate place.
Sponsored by: EMC / Isilon Storage Division
|
281810 |
21-Apr-2015 |
bdrewery |
Revert r281805 for now as it breaks due to spaces in output
|
281808 |
21-Apr-2015 |
bdrewery |
Pass full path to ldd(1) so it works on files in cwd.
|
281805 |
21-Apr-2015 |
bdrewery |
Support demangling C++ symbols with -D flag.
Sponsored by: EMC / Isilon Storage Division
|
281791 |
20-Apr-2015 |
bdrewery |
- Speedup significantly by not using subshells for data already fetched. Ran against /usr/local/sbin/pkg: Before: 25.12 real 12.41 user 33.14 sys After: 0.53 real 0.49 user 0.13 sys - Exit with 1 if any missing or unresolved symbol is detected. - Add option '-U' to skip looking up unresolved symbols. - Don't consider provided weak objects as unresolved (nm V).
Sponsored by: EMC / Isilon Storage Division
|
281790 |
20-Apr-2015 |
bdrewery |
Fix indentation to use tabs
|
281714 |
18-Apr-2015 |
kib |
The lseek(2), mmap(2), truncate(2), ftruncate(2), pread(2), and pwrite(2) syscalls are wrapped to provide compatibility with pre-7.x kernels which required padding before the off_t parameter. The fcntl(2) contains compatibility code to handle kernels before the struct flock was changed during the 8.x CURRENT development. The shims were reasonable to allow easier revert to the older kernel at that time.
Now, two or three major releases later, shims do not serve any purpose. Such old kernels cannot handle current libc, so revert the compatibility code.
Make padded syscalls support conditional under the COMPAT6 config option. For COMPAT32, the syscalls were under COMPAT6 already.
Remove WITHOUT_SYSCALL_COMPAT build option, which only purpose was to (partially) disable the removed shims.
Reviewed by: jhb, imp (previous versions) Discussed with: peter Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
281343 |
09-Apr-2015 |
bdrewery |
- Fix support with new elftoolchain readelf(1) - Fix not finding global symbols by checking for D and R. - Follow symlinks - Show which matching symbol was used to consider the library needed.
Discussed with: bapt
|
281053 |
03-Apr-2015 |
bdrewery |
Remove specific reference to g++(1) for WITH_CXX as it may be clang.
MFC after: 1 week
|
280890 |
31-Mar-2015 |
amdmi3 |
- Remove more files when MK_ZONEINFO == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
280889 |
31-Mar-2015 |
amdmi3 |
- Remove more files when MK_TESTS_SUPPORT == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
280888 |
31-Mar-2015 |
amdmi3 |
- Remove more files when MK_LEGACY_CONSOLE == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
280887 |
31-Mar-2015 |
amdmi3 |
- Remove more files when MK_KERBEROS_SUPPORT == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
280886 |
31-Mar-2015 |
amdmi3 |
- Remove more files when MK_KDUMP == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
280885 |
31-Mar-2015 |
amdmi3 |
- Remove more files when MK_JAIL == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
280883 |
31-Mar-2015 |
amdmi3 |
- Remove more files when MK_CASPER == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
280852 |
30-Mar-2015 |
amdmi3 |
- Remove more files when MK_INET6 == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
280851 |
30-Mar-2015 |
amdmi3 |
- Remove more files when MK_FORTH == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
280031 |
15-Mar-2015 |
dim |
Upgrade our copy of clang, llvm and lldb to 3.6.0 release.
Please note that from 3.5.0 onwards, clang/llvm/lldb require C++11 support to build; see UPDATING for more information.
Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html> <http://llvm.org/releases/3.6.0/tools/clang/docs/ReleaseNotes.html>
Thanks to Ed Maste for the lldb part of this upgrade.
Exp-run: antoine
|
279552 |
02-Mar-2015 |
bapt |
Remove gperf(7) if gperf is not installed
|
279529 |
02-Mar-2015 |
bapt |
Install manpage version of texinfo documentation for binutils
|
279150 |
22-Feb-2015 |
cperciva |
Step 2 of eliminating the "games" distribution: Remove punch card utilities.
I was originally planning on removing the phase-of-moon (pom), clock (grdc), and caesar cipher (caesar, rot13) utilities as well, but after I committed r278616 I received an astonishing volume of email informing me that those are still being widely used. Much to my relief, nobody reported continuing to use the punch card utilities in production.
The final step will be to merge src/games into src/usr.bin.
This change will not be MFCed.
|
278616 |
12-Feb-2015 |
cperciva |
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)
|
278202 |
04-Feb-2015 |
ngie |
Clean up more usb related files when MK_USB == no when dealing with manpages, libraries, and binaries
MFC after: 1 week X-MFC with: r278135 Sponsored by: EMC / Isilon Storage Division
|
278193 |
04-Feb-2015 |
ngie |
Add MK_FILE to control whether or not to build file(1), libmagic(3), etc
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
278192 |
04-Feb-2015 |
ngie |
Add the following options to enable/disable several features in the base system
WITHOUT_BOOTPARAMD - bootparamd WITHOUT_BOOTPD - bootpd WITHOUT_FINGER - finger, fingerd WITHOUT_FTP - ftp, ftpd WITHOUT_INETD - inetd WITHOUT_RBOOTD - rbootd WITHOUT_TCP_WRAPPERS - tcpd, et al WITHOUT_TFTP - tftp, tftp-server WITHOUT_TIMED - timed
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
278182 |
04-Feb-2015 |
ngie |
Conditionalize building radius support into libpam, ppp, etc via MK_RADIUS_SUPPORT
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
278135 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_USB == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278134 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_UNBOUND == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278133 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_TEXTPROC == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278132 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_TESTS == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278131 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_TCSH == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278130 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_SYSCONS == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278129 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_SSP == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278128 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_QUOTAS == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278127 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_PORTSNAP == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278126 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_PMC == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278121 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_PF == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278120 |
03-Feb-2015 |
amdmi3 |
- Remove more files when MK_OPENSSH == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278095 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_NTP == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278094 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_NS_CACHING == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278093 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_NLS_CATALOGS == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278092 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_NLS == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278091 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_NETGRAPH_SUPPORT == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278090 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_NETGRAPH == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278089 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_MAN_UTILS == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278088 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_MAN == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278087 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_MAKE == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278086 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_MAIL == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278085 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_LOCALES == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278084 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_LIBCPLUSPLUS == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278083 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_HTML == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278082 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_GROFF == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278049 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_GPIO == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278048 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_DMAGENT == no and move the chunk into its alphabetical place
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278047 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_BSNMP == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278046 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_BSD_CPIO == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278045 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_BOOT == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278044 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_BLUETOOTH == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
278043 |
02-Feb-2015 |
amdmi3 |
- Remove more files when MK_BINUTILS == no
MFC after: 1 week Reviewed by: ngie Approved by: ngie Differential Revision: D1600
|
277741 |
26-Jan-2015 |
ngie |
Respect MK_KERBEROS with etc/rc.d/ipropd_master and etc/rc.d/ipropd_slave
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277740 |
26-Jan-2015 |
ngie |
Honor MK_WIRELESS with etc/rc.d/hostapd and etc/rc.d/wpa_supplicant
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
277739 |
26-Jan-2015 |
ngie |
Honor MK_JAIL with etc/rc.d/jail
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
277738 |
26-Jan-2015 |
ngie |
Honor MK_BLUETOOTH with etc/defaults/bluetooth.device.conf
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
277737 |
26-Jan-2015 |
ngie |
Honor MK_ACCT with etc/pam.d/atrun
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277736 |
26-Jan-2015 |
ngie |
Honor MK_ACCT with etc/rc.d/accounting
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277733 |
26-Jan-2015 |
ngie |
Honor MK_AMD with etc/rc.d/amd
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
277732 |
26-Jan-2015 |
ngie |
Honor MK_API in etc/rc.d
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
277731 |
26-Jan-2015 |
ngie |
Honor MK_LPR with etc/rc.d/lpd
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
277730 |
26-Jan-2015 |
ngie |
Honor MK_ACPI in etc/devd and etc/rc.d
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
277728 |
26-Jan-2015 |
ngie |
Add MK_AUTOFS knob for building and installing autofs(4), et al
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277727 |
26-Jan-2015 |
ngie |
Add MK_BHYVE knob for building and installing bhyve(4), et al
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277725 |
26-Jan-2015 |
ngie |
Add MK_HAST knob for building and installing hastd(8), et al
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277688 |
25-Jan-2015 |
ngie |
Build lib/libgpio if MK_GPIO != no
Fill in corresponding entries for MK_GPIO == no in OptionalObsoleteFiles.inc
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277687 |
25-Jan-2015 |
ngie |
Fill in entries for MK_BSNMP == no
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
277685 |
25-Jan-2015 |
ngie |
Fill in some dtrace entries when MK_CDDL == no
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
277683 |
25-Jan-2015 |
ngie |
Fill in entries for MK_CUSE == no
MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
277678 |
25-Jan-2015 |
ngie |
Add MK_CCD knob for building and installing ccd(4), ccdconfig, etc
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277677 |
25-Jan-2015 |
ngie |
Add MK_BSDINSTALL knob for building and installing bsdinstall
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277676 |
25-Jan-2015 |
ngie |
Add MK_TALK knob for building the talk and talkd
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277675 |
25-Jan-2015 |
ngie |
Add MK_ISCSI knob for building the iscsi initiator, iscsi daemon, kernel modules, etc
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277663 |
25-Jan-2015 |
ngie |
Add MK_EE knob to control installing edit, ee, etc
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
277320 |
18-Jan-2015 |
dim |
Upgrade our copy of clang and llvm to 3.5.1 release. This is a bugfix only release, no new features have been added.
Please note that this version requires C++11 support to build; see UPDATING for more information.
Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.5.1/docs/ReleaseNotes.html> <http://llvm.org/releases/3.5.1/tools/clang/docs/ReleaseNotes.html>
MFC after: 1 month X-MFC-With: 276479
|
277146 |
13-Jan-2015 |
dim |
Connect libclang_rt to the build, for specific architectures. This contains the libraries for Address Sanitizer (asan), Undefined Behavior Sanitizer (ubsan) and Profile Guided Optimization.
ASan is a fast memory error detector. It can detect the following types of bugs:
Out-of-bounds accesses to heap, stack and globals Use-after-free Use-after-return (to some extent) Double-free, invalid free Memory leaks (experimental)
Typical slowdown introduced by AddressSanitizer is 2x.
UBSan is a fast and compatible undefined behavior checker. It enables a number of undefined behavior checks that have small runtime cost and no impact on address space layout or ABI.
PLEASE NOTE: the sanitizers still have some rough edges on FreeBSD, particularly on i386. These will hopefully be smoothed out in the coming time.
Differential Revision: https://reviews.freebsd.org/D1505
|
276945 |
10-Jan-2015 |
dim |
Add the llvm-symbolizer tool, which enables the sanitizers to report more complete debugging information. This tools is only enabled when WITH_CLANG_EXTRAS is on.
Submitted by: Dan McGregor <danismostlikely@gmail.com>
|
276796 |
07-Jan-2015 |
emaste |
Use a set of ELF Tool Chain tools by default
These tools are now from the ELF Tool Chain project:
* addr2line * elfcopy (strip) * nm * size * strings
The binutils versions are available by setting in src.conf: WITHOUT_ELFTOOLCHAIN_TOOLS=yes
Thanks to antoine@ for multiple exp-runs and diagnosing many of the failures.
PR: 195561 (ports exp-run) Sponsored by: The FreeBSD Foundation
|
276559 |
02-Jan-2015 |
bapt |
Fix typo
|
276551 |
02-Jan-2015 |
bapt |
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
|
276479 |
31-Dec-2014 |
dim |
Upgrade our copy of clang, llvm and lldb to 3.5.0 release.
Please note that this version now requires C++11 support to build; see UPDATING for more information.
Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.5.0/docs/ReleaseNotes.html> <http://llvm.org/releases/3.5.0/tools/clang/docs/ReleaseNotes.html>
Thanks to Ed Maste, Roman Divacky, Andrew Turner, Justin Hibbits and Antoine Brodin for their invaluable help with this import.
Approved by: portmgr (antoine) MFC after: 1 month
|
276214 |
25-Dec-2014 |
phk |
Deorbit the IEEE-488/GPIB support.
|
275907 |
18-Dec-2014 |
ngie |
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
|
275388 |
02-Dec-2014 |
emaste |
Add elfcopy and man page to OptionalObsoleteFiles
|
275373 |
01-Dec-2014 |
emaste |
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
|
275138 |
26-Nov-2014 |
gjb |
Whitespace cleanup to fix rendering nits in src.conf(5).
Sponsored by: The FreeBSD Foundation
|
274930 |
23-Nov-2014 |
bapt |
Install mdoc(7) and man(7) from mdoc instead of the one from groff
|
274665 |
18-Nov-2014 |
imp |
Document WITHOUT_USB_EXAMPLES and WITHOUT_TESTS_SUPPORT
Sponsored by: Netflix
|
274664 |
18-Nov-2014 |
imp |
LIB32 is supported for powerpc64 too. Make the note more general about 64-bit processors.
Sponsored by: Netflix
|
274662 |
18-Nov-2014 |
imp |
Acutally, replaces NO_INCS with WITHOUT_INCLUDES and make WITHOUT_TOOLCHAIN imply it instead.
Sponsored by: Netflix
|
274331 |
09-Nov-2014 |
melifaro |
Renove faith(4) and faithd(8) from base. It looks like industry have chosen different (and more traditional) stateless/statuful NAT64 as translation mechanism. Last non-trivial commits to both faith(4) and faithd(8) happened more than 12 years ago, so I assume it is time to drop RFC3142 in FreeBSD.
No objections from: net@
|
274199 |
06-Nov-2014 |
bapt |
Add a quick and dirty script to check validity of links in elf files
|
274016 |
03-Nov-2014 |
ngie |
Integrate pjdfstest test suite execution into kyua
pjdfstest execution is opt-in and must be done as root due to some of the assumptions made by the test suite and lack of error checking in the non-root case
A description of how to execute pjdfstest with kyua is provided in share/pjdfstest/README
Phabric: D824 (an earlier prototype patch) MFC after: 1 month Relnotes: yes Sponsored by: EMC / Isilon Storage Division
|
273929 |
01-Nov-2014 |
jmmv |
MFV: Import atf-0.21.
|
273747 |
27-Oct-2014 |
delphij |
Remove an extra copy of hv_kvp_daemon(8) [1].
While I'm there also correct typos in OptionalObsoleteFiles and add information of the command line options for hv_kvp_daemon(8).
Reported by: jmg [1] Reviewed by: jmg MFC after: 2 weeks
|
273421 |
21-Oct-2014 |
emaste |
Fix typo in src option description
|
273177 |
16-Oct-2014 |
skreuzer |
Correct two typos
PR: 194350 Submitted by: jiashiun@gmail.com Approved by: hrs (mentor)
|
273172 |
16-Oct-2014 |
brooks |
Document that WITHOUT_TOOLCHAIN causes headers to not be installed, not just programs.
|
273171 |
16-Oct-2014 |
brooks |
Per r273155, HYPERV is built by default on platforms where it makes sense and ignored on others.
|
273170 |
16-Oct-2014 |
brooks |
MK_ARB_EABI was removed in r272350 so remove the documentation.
|
272849 |
09-Oct-2014 |
emaste |
Build gperf only if we're using g++ (not clang++)
gperf is used as a build tool for g++ and is not needed for Clang architectures. Ports and third-party software that need it can use the up-to-date devel/gperf port.
PR: 194103 (exp-run) Reviewed by: bapt Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D886
|
272043 |
23-Sep-2014 |
ngie |
Don't install /etc/rc.d/keyserv unless MK_OPENSSL == yes
Sponsored by: EMC / Isilon Storage Division
|
271895 |
20-Sep-2014 |
ngie |
Don't install /etc/rc.d/ftp-proxy unless MK_PF == yes
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
271893 |
20-Sep-2014 |
ngie |
Don't install /etc/rc.d/rwho unless MK_RCMDS == yes
MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
|
271696 |
17-Sep-2014 |
delphij |
Use a devd event to start hv_kvpd instead of doing so in rc.d script. This is cleaner and eliminates the unneeded startup of KVP daemon on systems that do not run as a Hyper-V guest.
Submitted by: hrs X-MFC-with: 271493, 271688, 271699
|
271493 |
13-Sep-2014 |
delphij |
Import HyperV Key-Value Pair (KVP) driver and daemon code by Microsoft, many thanks for their continued support of FreeBSD.
While I'm there, also implement a new build knob, WITHOUT_HYPERV to disable building and installing of the HyperV utilities when necessary.
The HyperV utilities are only built for i386 and amd64 targets.
This is a stable/10 candidate for inclusion with 10.1-RELEASE.
Submitted by: Wei Hu <weh microsoft com> MFC after: 1 week
|
271401 |
10-Sep-2014 |
asomers |
Conditionalize build of etcupdate(8) on MK_RCS. Since etcupdate calls merge(1), which is part of the RCS package, it must not be installed if WITHOUT_RCS update is set. Otherwise, it will produce confusing errors.
CR: https://reviews.freebsd.org/D691 MFC after: 1 week Sponsored by: Spectra Logic
|
270190 |
20-Aug-2014 |
ian |
Don't stop other legs of a parallel build due to a failure in make_check. The whole point is to see if there's any failure, which is handled by building a newer version of make.
|
270171 |
19-Aug-2014 |
hselasky |
Add missing WITHOUT_CUSE file.
|
270168 |
19-Aug-2014 |
bdrewery |
Revert r267233 for now. PIE support needs to be reworked.
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
|
270028 |
15-Aug-2014 |
ngie |
Make the USB and ZFS devd configuration files optional depending on the values of MK_USB/MK_ZFS
Making zfs.conf optional resolves PR # 186971
PR: 186971 Phabric: D606 Approved by: jmmv (mentor) Sponsored by: EMC / Isilon Storage Division
|
269903 |
13-Aug-2014 |
ngie |
Port date/bin/tests to ATF
Phabric: D545 Approved by: jmmv (mentor) Submitted by: keramida (earlier version) MFC after: 2 weeks Sponsored by: Google, Inc Sponsored by: EMC / Isilon Storage Division
|
269902 |
13-Aug-2014 |
ngie |
Convert bin/sh/tests to ATF
The new code uses a "test discovery mechanism" to determine what tests are available for execution
The test shell can be specified via:
kyua test -v test_suites.FreeBSD.bin.sh.test_shell=/path/to/test/sh
Sponsored by: EMC / Isilon Storage Division Approved by: jmmv (mentor) Reviewed by: jilles (maintainer)
|
269884 |
12-Aug-2014 |
ngie |
Complete the usr.bin/yacc kyua integration work I originally submitted via r268811
- Install the Kyuafile by adding FILES to FILESGROUPS - Run the testcases with an unprivileged user
Some of the testcases depend upon behavior that's broken when run as root on FreeBSD because of how permissions are treated with access(2) vs eaccess(2), open(2), etc
- Simplify the test driver to just inspect the exit code from run_test because it now exits with 0 if successful and exits with !0 if unsuccessful - Don't do ad hoc temporary directory creation/deletion; let Kyua handle that - Add entries for files removed in r268811 to OptionalObsoleteFiles.inc
PR: 191020 X-MFC with: r268811 Approved by: jmmv (mentor) Reviewed by: bapt Sponsored by: EMC / Isilon Storage Division
|
269084 |
25-Jul-2014 |
jmmv |
Fix structure of new tests (r268794) for usr.bin/units.
- Make sure the tests go into the right directory. The location was wrong so they were overwriting the bin/chown tests! - Use the right naming scheme for the test program. - Remove the svn:executable property from the shell script.
|
268820 |
17-Jul-2014 |
bapt |
Fix manpages path and sort entries
|
268819 |
17-Jul-2014 |
bapt |
Remove texinfo manpages as well if built WITHOUT_INFO
|
268778 |
16-Jul-2014 |
jmmv |
Enable MK_TESTS by default, take 2.
This is a redo of r267424, which was reverted in r267432 because it broke "make buildworld" from FreeBSD 9.x. This issue has been resolved and this change is still "make tinderbox" clean.
|
268496 |
10-Jul-2014 |
bapt |
The GNU texinfo and GNU info pages are not built and installed anymore, WITH_INFO knob has been added to allow to built and install them again.
Reviewed by: imp
|
268461 |
09-Jul-2014 |
bapt |
The GNU readline library is now an INTERNALLIB - that is, it is statically linked into consumers (GDB and variants) in the base system, and the shared library is no longer installed.
That also allows ports to be able to use a modern version of readline
PR: 162948 Reviewed by: emaste
|
268429 |
08-Jul-2014 |
jilles |
Don't install locale1.0 if MK_NLS == no.
The test locale1.0 depends on locale support; it is meaningless without a working LC_MESSAGES.
I added an OptionalObsoleteFiles.inc entry.
PR: 181151 Submitted by: Garrett Cooper (original version) MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
|
268351 |
07-Jul-2014 |
marcel |
Remove ia64.
This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation
This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h
Discussed at: BSDcan
|
268135 |
02-Jul-2014 |
eadler |
Add documentation for svnlite.
PR: 191544 Reported by: eric Reviewed by: imp MFC After: 1 week
|
268064 |
30-Jun-2014 |
bapt |
Activate the condition for WITHOUT_INFO
Submitted by: antoine
|
268063 |
30-Jun-2014 |
bapt |
fill in the list of obsolete files when base is built with WITHOUT_INFO
|
268022 |
30-Jun-2014 |
emaste |
Rename the WITHOUT_VT_SUPPORT knob to WITHOUT_VT
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
|
267582 |
17-Jun-2014 |
emaste |
share/vt now also includes keymaps
|
267441 |
13-Jun-2014 |
tijl |
Don't install GSS-API headers when the GSSAPI option has been disabled. Some ports assume GSS-API is supported when they find the headers.
PR: 189156 Submitted by: Garrett Cooper <yanegomi@gmail.com>
|
267432 |
13-Jun-2014 |
gjb |
Revert r267424 and r267425: More exploration will be needed in order to silence the tinderbox mails caused by setting WITH_TESTS=1 by default.
Ref: http://tinderbox.freebsd.org/tinderbox-head-build-HEAD-amd64-amd64.full With hat: re
|
267424 |
12-Jun-2014 |
jmmv |
Enable MK_TESTS by default.
This was never intended to be off by default but was done this way because the initial patches broke the build. Things seem stable now (have been so for a while too) and "make tinderbox" is clean so let's try again.
Announced in freebsd-current; all reported shortcomings have been addressed.
|
267233 |
08-Jun-2014 |
bdrewery |
In preparation for ASLR [1] support add WITH_PIE to support building with -fPIE.
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]
|
267181 |
06-Jun-2014 |
jmmv |
Move atf-sh from /usr/bin/ to /usr/libexec/
In r266650, we made libatf-c and libatf-c++ private libraries so that no components outside of the source tree could unintendedly depend on them.
This change does the same for the "atf-sh library" by moving the atf-sh interpreter from its public location in /usr/bin/ to the private location in /usr/libexec/. Our build system will ensure that our own test programs use the right binary, but users won't be able to depend on atf-sh by "mistake".
Committing this now to ride the UPDATING notice added with r267172 today.
|
267172 |
06-Jun-2014 |
jmmv |
Homogenize libatf-* version numbers with upstream.
The libatf-* major version numbers in FreeBSD were one version ahead of upstream because, when atf was first imported into FreeBSD, the upstream numbers were not respected. This is just confusing and bound to cause problems down the road.
Fix this by taking advantage of the fact that libatf-* are now private and that atf is not yet built by default. However, and unfortunately, a clean build is needed for tests to continue working once "make delete-old-libs" has been run; hence the note in UPDATING.
|
267124 |
05-Jun-2014 |
emaste |
Install VT support files
They can be disabled by setting WITHOUT_VT_SUPPORT=yes in src.conf.
Sponsored by: The FreeBSD Foundation
|
267033 |
03-Jun-2014 |
jmmv |
Merge (unused) documentation of WITHOUT_TESTS into WITH_TESTS.
The description of WITH/WITHOUT tweaks should only document the non-default option. TESTS still defaults to no, so the option to be documented is WITH_TESTS.
|
266752 |
27-May-2014 |
gjb |
Remove empty lines that cause mdoc warnings.
Sponsored by: The FreeBSD Foundation
|
266650 |
25-May-2014 |
jmmv |
Change libatf-c and libatf-c++ to be private libraries.
We should not be leaking these interfaces to the outside world given that it's much easier for third-party components to use the devel/atf package from ports.
As a side-effect, we can also drop the ATF pkgconfig and aclocal files from the base system. Nothing in the base system needs these, and it was quite ugly to have to get them installed only so that a few ports could build. The offending ports have been fixed to depend on devel/atf explicitly.
Reviewed by: bapt
|
266158 |
15-May-2014 |
brooks |
Remove documention of WITHOUT_NCURSES removed in r266157.
Remove a bit of whitespace from WITHOUT_BINUTILS.
Catch up with a bunch of other commits to tools/build/options that weren't merged to src.conf.5.
|
265933 |
12-May-2014 |
jmmv |
Fix delete-old when WITH_TESTS is set.
r265423 removed the WITHOUT_BMAKE option, which in turn broke a conditional in OptionalObsoleteFiles.inc that inspected MK_BMAKE.
|
265925 |
12-May-2014 |
dim |
Upgrade our copy of llvm/clang to 3.4.1 release. This release contains mostly fixes, for the following upstream bugs:
http://llvm.org/PR16365 http://llvm.org/PR17473 http://llvm.org/PR18000 http://llvm.org/PR18068 http://llvm.org/PR18102 http://llvm.org/PR18165 http://llvm.org/PR18260 http://llvm.org/PR18290 http://llvm.org/PR18316 http://llvm.org/PR18460 http://llvm.org/PR18473 http://llvm.org/PR18515 http://llvm.org/PR18526 http://llvm.org/PR18600 http://llvm.org/PR18762 http://llvm.org/PR18773 http://llvm.org/PR18860 http://llvm.org/PR18994 http://llvm.org/PR19007 http://llvm.org/PR19010 http://llvm.org/PR19033 http://llvm.org/PR19059 http://llvm.org/PR19144 http://llvm.org/PR19326
MFC after: 2 weeks
|
265838 |
10-May-2014 |
imp |
Move DOCCOMPRESS to MK variable.
|
265830 |
10-May-2014 |
imp |
Migrate NO_WARN to MK_WARN. Support legacy NO_WARN usage. Remove a check for EARLY_BUILD because it isn't necessary (MK_WARN=no will always be defined for that).
|
265828 |
10-May-2014 |
imp |
Optionally allow building the historical FreeBSD make program and install it as fmake. This defaults to no. This should be viewed as the first step towards evental migration of this historic code to ports and removal from the tree.
|
265826 |
10-May-2014 |
imp |
Document WITHOUT_SYSCALL_COMPAT and WITHOUT_GNU_GREP_COMPAT.
|
264903 |
24-Apr-2014 |
imp |
Add option WITHOUT_VI to not build/install vi. vi was the largest binary without a knob to turn it off.
|
264902 |
24-Apr-2014 |
imp |
Use MK_OPENLDAP in preference to WITH_OPENLDAP and make it a default NO option to match the opt-in nature of the historical nature of this option.
|
264660 |
18-Apr-2014 |
imp |
Separate out enabling building clang and/or gcc for the system and 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.
|
264654 |
18-Apr-2014 |
imp |
Don't build EISA by default anymore. Remove from i386 GENERIC and create an option that defaults to "no" on all platforms to not build the EISA bits.
Discussed on: arch@
|
264515 |
15-Apr-2014 |
imp |
Document WITHOUT_GPL_DTC too.
|
264408 |
13-Apr-2014 |
jmmv |
Fix test suite name in src.conf(5).
There is no such thing as the "Kyua test suite"; it is the "FreeBSD Test Suite".
While doing this, point readers to tests(7).
|
264398 |
13-Apr-2014 |
imp |
Check the right file for pwcache_groupdb.
|
264396 |
13-Apr-2014 |
imp |
Up the minimum system to build FreeBSD current to 8.0-RELEASE. The 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@
|
264158 |
05-Apr-2014 |
imp |
Document upcoming build option WITH_SORT_THREADS
|
263346 |
19-Mar-2014 |
jmmv |
Migrate tools/regression/usr.bin/make/ to the new tests layout.
Note that these tests are for fmake, not bmake, and thus they are not installed nor run when bmake is selected (the default). Yes, I have wasted a *ton* of time on moving tests for no real reason other than ensuring they are not left behind.
But maybe, just maybe, it was not work in vain: the majority of these tests also work with bmake and the few that don't may point at broken stuff. For example, the tests for the "archive" feature do not work with bmake, but bmake's manpage and source tree seem to imply that they should. So... to be investigated later; need to poke sjg@.
|
263140 |
14-Mar-2014 |
glebius |
Remove IPX support.
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.
|
263089 |
12-Mar-2014 |
jmmv |
Fix description of WITHOUT_BMAKE's purpose.
This variable exists to select fmake, not bmake. (I suspect the comment might have come from a time when this was named WITH_BMAKE.)
|
262976 |
10-Mar-2014 |
bapt |
Add a mailer.conf example to use dma
|
262335 |
22-Feb-2014 |
bapt |
Rename WITHOUT_DMA into WITHOUT_DMAGENT to avoid confusion
Requested by: ian
|
262282 |
21-Feb-2014 |
bapt |
Import Dragonfly Mail Agent into base system
It is a small and lightweight Mail Transport Agent. It accepts mails from locally installed Mail User Agents (MUA) and delivers the mails either locally or to a remote destination. Remote delivery includes several features like TLS/SSL support, SMTP authentication and NULLCLIENT.
Make dma conditional to new WITHOUT_DMA option and make it respect WITHOUT_MAIL
Reviewed by: peter Discussed with: emaste, bz, peter
|
261991 |
16-Feb-2014 |
dim |
Upgrade our copy of llvm/clang to 3.4 release. This version supports all of the features in the current working draft of the upcoming C++ standard, provisionally named C++1y.
The code generator's performance is greatly increased, and the loop auto-vectorizer is now enabled at -Os and -O2 in addition to -O3. The PowerPC backend has made several major improvements to code generation quality and compile time, and the X86, SPARC, ARM32, Aarch64 and SystemZ backends have all seen major feature work.
Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.4/docs/ReleaseNotes.html> <http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html>
MFC after: 1 month
|
261897 |
14-Feb-2014 |
jmmv |
MFV: Import atf-0.20.
|
261521 |
05-Feb-2014 |
antoine |
Add files to remove WITHOUT_NIS
PR: 186412
|
261300 |
30-Jan-2014 |
brooks |
Add file missed in r261296.
MFC after: 4 weeks Sponsored by: DARPA, AFRL
|
261299 |
30-Jan-2014 |
brooks |
Merge from CheriBSD: commit 2d581e8caf79d7a0f5a24590eccd06da90cccb74 Author: Brooks Davis <brooks@one-eyed-alien.net> Date: Mon Jan 27 22:57:51 2014 +0000
Add WITHOUT_FMTREE to disable building fmtree.
MFC after: 4 weeks Sponsored by: DARPA, AFRL
|
261297 |
30-Jan-2014 |
brooks |
Merge from CheriBSD: commit 6b569451b92c48ccf1768da32e7e89189e1aa253 Author: Brooks Davis <brooks@one-eyed-alien.net> Date: Mon Jan 27 22:50:46 2014 +0000
Always install nmtree as mtree. For compability, link mtree to nmtree.
X-MFC after: never Sponsored by: DARPA, AFRL
|
261283 |
30-Jan-2014 |
dim |
Import libc++ 3.4 release. This contains a lot of bugfixes, and some preliminary support for C++1y.
MFC after: 3 weeks
|
261072 |
23-Jan-2014 |
skreuzer |
Remove WITHOUT_ATF as it has been replaced by WITH_TESTS
PR: conf/185326 Reported by: Igor Mozolevsky <igor@hybrid-lab.co.uk> Approved by: hrs (mentor)
|
260525 |
10-Jan-2014 |
jmmv |
Respect the original layout of the atf-{c,c++} tests.
Put test programs for internal modules into a 'detail' subdirectory of the libatf-c and libatf-c++ test directories, just as the upstream distribution does. This is necessary because the tests assume such layout to find the process_helper program, and currently fail because of this divergence.
MFC after: 1 week
|
259683 |
21-Dec-2013 |
gjb |
Honor WITHOUT_CASPER.
Sponsored by: The FreeBSD Foundation
|
258924 |
04-Dec-2013 |
bdrewery |
Add missing period for WITHOUT_PKGBOOTSTRAP so that it matches all other entries.
Approved by: bapt MFC after: 3 days
|
258838 |
02-Dec-2013 |
pjd |
Please welcome casperd daemon. It (and its services) will be responsible for 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
|
258289 |
17-Nov-2013 |
jmmv |
MFV: Import atf-0.18.
Approved by: rpaulo (mentor)
|
258025 |
12-Nov-2013 |
gjb |
Silence more 'make {check,delete-old{,libs}}' output if $DESTDIR/usr/tests does not exist.
Sponsored by: The FreeBSD Foundation
|
258014 |
11-Nov-2013 |
gjb |
Document WITH_TESTS src.conf(5) option.
Sponsored by: The FreeBSD Foundation
|
258012 |
11-Nov-2013 |
gjb |
Remove WITH_LIBICONV_COMPAT file to chase after r257583.
|
257940 |
11-Nov-2013 |
gjb |
Silence bmake(1) errors if TEST_DIRS evaluation is empty.
|
257851 |
08-Nov-2013 |
jmmv |
Handle the removal of the test suite when WITHOUT_TESTS=yes.
Add all files from /usr/tests to the obsoleted files list when the build of the tests is disabled via the WITHOUT_TESTS knob. Do this automatically so that we do not have to suffer the pain of maintaining such list by hand.
Reviewed by: freebsd-testing Approved by: rpaulo (mentor)
|
257850 |
08-Nov-2013 |
jmmv |
Subsume the functionality of MK_ATF into MK_TESTS.
There is no reason to keep the two knobs separate: if tests are enabled, the ATF libraries are required; and if tests are disabled, the ATF libraries are not necessary. Keeping the two just serves to complicate the build.
Reviewed by: freebsd-testing Approved by: rpaulo (mentor)
|
257583 |
03-Nov-2013 |
peter |
Remove the WITH_LIBICONV_COMPAT hack that seems to do more harm than good. This caused libc to spoof the ports libiconv namespace and provide a colliding libiconv.so.3 to fool rtld. This should have been removed some time ago.
|
257579 |
03-Nov-2013 |
ed |
Remove utxrm(8). This command has been superseded by 'utx rm'.
|
257444 |
31-Oct-2013 |
bapt |
After around 20 years of duty it is time for pkg_install to retire
|
257440 |
31-Oct-2013 |
bapt |
Adjust the manpage category for the pkg bootstrap
|
257402 |
30-Oct-2013 |
bdrewery |
Add forgotten pkg.7
Approved by: bapt MFC after: 2 days X-MFC-with: r257378
|
257138 |
25-Oct-2013 |
brooks |
Switch the default mtree to nmtree our new NetBSD derived mtree.
Exp-run by: bdrewery MFC after: 3 days Sponsored by: DARPA/AFRL
|
257098 |
25-Oct-2013 |
rpaulo |
Add missing WITHOUT_TESTS file.
Submitted by: Julio Merio jmmv google.com Reviewed by: sjg MFC after: 2 weeks
|
256710 |
17-Oct-2013 |
zont |
Add lot of missed files and dirs
|
256703 |
17-Oct-2013 |
zont |
Remove atf headers which never existed
Reviewed by: marcel
|
256669 |
17-Oct-2013 |
zont |
Cleanup clang section
|
256663 |
17-Oct-2013 |
zont |
wlconfig exists only on i386
|
256662 |
17-Oct-2013 |
zont |
Remove files which are in ObsoleteFiles.inc
|
256660 |
17-Oct-2013 |
zont |
Remove duplicates in ipfilter and kerberos sections
|
256365 |
12-Oct-2013 |
rpaulo |
Remove most of the ATF tools and the _atf user.
This is necessary because ATF is deprecated and it will be replaced by Kyua.
Submitted by: jmmv@netbsd.org Reviewed by: Garrett Cooper Approved by: re
|
256198 |
09-Oct-2013 |
gjb |
Revert r256095, r256120 (partial), r256121:
r256095: - Add gnu/usr.bin/rcs back to the base system.
r256120: - Add WITHOUT_RCS back to src.conf.5.
r256121: - Remove UPDATING entry regarding gnu/usr.bin/rcs removal.
Requested by: many Approved by: re (marius) Discussed with: core
|
256095 |
07-Oct-2013 |
eadler |
Good bye RCS. You will be missed.
(devel/rcs and devel/rcs57 are available as alternatives)
Approved by: core Approved by: re (hrs)
|
255974 |
01-Oct-2013 |
emaste |
Remove long-unused GNU ar and ranlib
The libarchive-based replacements have been used since 2009; the GNU ones were kept to support source upgrades from FreeBSD 6.
Approved by: re@ (delphij)
|
255964 |
01-Oct-2013 |
des |
Have makeman always use the mk files from the source tree it's operating on rather than those from the installed system.
Approved by: re (delphij)
|
255949 |
30-Sep-2013 |
des |
Remove BIND.
Approved by: re (gjb)
|
255938 |
29-Sep-2013 |
des |
Yet more BIND files that weren't listed in OptionalObsoleteFiles.
Approved by: re (blanket)
|
255914 |
27-Sep-2013 |
des |
Remove duplicate entry for the host(1) man page.
Approved by: re (blanket)
|
255872 |
25-Sep-2013 |
des |
Additional BIND files.
Submitted by: bdrewery Approved by: re (blanket)
|
255850 |
24-Sep-2013 |
des |
Flip the switch: disable BIND and enable LDNS_UTILS.
Approved by: re (blanket)
|
255809 |
23-Sep-2013 |
des |
Add a setup script for unbound(8) called local-unbound-setup. It generates a configuration suitable for running unbound as a caching forwarding resolver, and configures resolvconf(8) to update unbound's list of forwarders in addition to /etc/resolv.conf. The initial list is taken from the existing resolv.conf, which is rewritten to point to localhost. Alternatively, a list of forwarders can be provided on the command line.
To assist this script, add an rc.subr command called "enabled" which does nothing except return 0 if the service is enabled and 1 if it is not, without going through the usual checks. We should consider doing the same for "status", which is currently pointless.
Add an rc script for unbound, called local_unbound. If there is no configuration file, the rc script runs local-unbound-setup to generate one.
Note that these scripts place the unbound configuration files in /var/unbound rather than /etc/unbound. This is necessary so that unbound can reload its configuration while chrooted. We should probably provide symlinks in /etc.
Approved by: re (blanket)
|
255802 |
22-Sep-2013 |
des |
Remove drill(1) if MK_LDNS_UTILS is false. Remove host(1) if both MK_BIND and MK_LDNS_UTILS are false.
Approved by: re (blanket)
|
255722 |
20-Sep-2013 |
emaste |
Add LLDB bmake infrastructure
This connects LLDB to the build, but it is disabled by default. Add WITH_LLDB= to src.conf to build it.
Note that LLDB requires a C++11 compiler so is disabled on platforms using GCC.
Approved by: re (gjb) Sponsored by: DARPA, AFRL
|
255597 |
15-Sep-2013 |
des |
Build and install the Unbound caching DNS resolver daemon.
Approved by: re (blanket)
|
255591 |
15-Sep-2013 |
des |
Tweak wording.
Approved by: re (blanket)
|
255590 |
15-Sep-2013 |
des |
Complete the OPENSSH and LDNS sections.
Approved by: re (blanket)
|
255576 |
14-Sep-2013 |
ed |
Properly remove c++filt.
The c++filt binary is only installed if ${MK_GCC} == yes && ${MK_CXX} == yes. This means that it should be removed if ${MK_GCC} == no || ${MK_CXX} == no. In its current form, it actually uses a conjunction instead of a disjunction.
As there is already a separate block for ${MK_CXX} == no listing c++filt, simply remove the conditional entirely.
Approved by: re (gjb)
|
255455 |
10-Sep-2013 |
des |
Clean up the Kerberos build by turning libheimipcc and libheimipcs into private shared libraries, instead of hacked-together archives of PIC objects. This makes it possible to build a static libkrb5 that works.
Reviewed by: stas Approved by: re (gjb)
|
255373 |
07-Sep-2013 |
antoine |
Adjust optional obsolete files with new MK_GNUCXX
|
255357 |
07-Sep-2013 |
antoine |
Do not try to remove directories that are part of BSD.include.dist
|
255354 |
07-Sep-2013 |
glebius |
Add more leftovers from gcc.
|
255326 |
06-Sep-2013 |
zeising |
Add WITH_GCC alongside WITHOUT_GCC. Remove the comment from WITHOUT_GCC about this not working without an alternate toolchain, we have clang now.
|
255325 |
06-Sep-2013 |
theraven |
Don't delete c++filt when doing a make delete-old if GCC is not built but C++ is.
|
255321 |
06-Sep-2013 |
theraven |
On platforms where clang is the default compiler, don't build gcc or libstdc++. To enable them, set WITH_GCC and WITH_GNUCXX in src.conf. Make clang default to using libc++ on FreeBSD 10. Bumped __FreeBSD_version for the change.
GCC is still enabled on PC98, because the PC98 bootloader requires GCC to build (or, at least, hard-codes the use of gcc into its build).
Thanks to everyone who helped make the ports tree ready for this (and bapt for coordinating them all). Also to imp for reviewing this and working on the forward-porting of the changes in our gcc so that we're getting to a much better place with regard to external toolchains.
Sorry to all of the people who helped who I forgot to mention by name.
Reviewed by: bapt, imp, dim, ...
|
255018 |
29-Aug-2013 |
andreast |
Remove GNU_PATCH leftover.
|
255014 |
29-Aug-2013 |
pfg |
Drop build option switch for the older GNU patch.
As promised, drop the option to make the older GNU patch the default.
GNU patch is still being built but something drastic may happen to it to it before Release.
|
254962 |
27-Aug-2013 |
dteske |
Formally remove WITH_BSDCONFIG build option and re-generate src.conf.5 NOTE: Should have been inline with revisions 252862 and 254958.
|
254921 |
26-Aug-2013 |
antoine |
Add more obsolete files.
|
254919 |
26-Aug-2013 |
antoine |
Document WITHOUT_ICONV, WITH_LIBICONV_COMPAT and WITH_USB_GADGET_EXAMPLES
|
254273 |
13-Aug-2013 |
peter |
The iconv in libc did two things - implement the standard APIs, the GNU extensions and also tried to be link time compatible with ports libiconv. This splits that functionality and enables the parts that shouldn't interfere with the port by default.
WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc. WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker symbols and even a stub libiconv.so.3 that are good enough to be able to 'pkg delete -f libiconv' on a running system and reasonably expect it to work.
I have tortured many machines over the last few days to try and reduce the possibilities of foot-shooting as much as I can. I've successfully recompiled to enable and disable the libiconv_compat modes, ports that use libiconv alongside system iconv etc. If you don't enable the WITH_LIBICONV_COMPAT switch, they don't share symbol space.
This is an extension of behavior on other system. iconv(3) is a standard libc interface and libiconv port expects to be able to run alongside it on systems that have it.
Bumped osreldate.
|
254010 |
06-Aug-2013 |
sbruno |
Adjust make knobs to know that WITH_ICONV installs a /usr/bin/iconv
Remove it if the knob isn't tweaked. Certain ports seem to think that if /usr/bin/iconv exists, then libc has built in libiconv things and will blow up pretty nicely when built.
Reviewed by: gjb@ MFC after: 2 weeks
|
253689 |
26-Jul-2013 |
pfg |
Make the BSD-licensed patch the default.
The BSD-licensed patch(1) command has matured and it's behaviour can be considered equivalent to the older version of GNU patch in the tree.
The switch has been extensively tested [1] and only two ports presented regressions, which have since been fixed.
For convenience a new WITH_GNU_PATCH option is available, but it will likely be removed in the near future.
PR: 176313 Approved by: portmgr
|
253396 |
16-Jul-2013 |
andrew |
2 years, 10 months, 22 days after the projects/arm_eabi branch was created make the ARM EABI the default ABI on arm, armeb, armv6 and armv6eb.
This is intended to be the default ABI from now on with the old ABI to be retired. Because of this all users are strongly suggested to upgrade to the ARM EABI.
As the two ABIs are incompatible it is unlikely upgrading in place will work. Users should perform a full backup and either use an external machine to upgrade, or install to an alternative location on their media. They should also reinstall all ports or packages when these are available.
The only known issues are: - pkg incorrectly detects the ABI. This is fixed upstream, and will a patch will be made to the port. - GDB can have issues with executables built with clang.
__FreeBSD_version has been bumped.
|
253305 |
12-Jul-2013 |
bapt |
Disable building of pkg_install by default If people still want to have pkg_install they can specify WITH_PKGTOOLS when building world
|
253304 |
12-Jul-2013 |
bapt |
Ensure the locale is LC_ALL=C when regenerating src.conf.5
MFC after: 3 days
|
253258 |
12-Jul-2013 |
des |
Remove authpf-noip along with authpf.
Reminded by: delphij@
|
252561 |
03-Jul-2013 |
zeising |
Document WITHOUT_SVNLITE and WITH_SVN.
PR: docs/180025 Submitted by: Garrett Cooper <yaneurabeya@gmail.com>
|
252175 |
24-Jun-2013 |
eadler |
Add missing Obsolete Files
Submitted by: Kurt Lidl <lidl@pi-coral.com>
|
251966 |
18-Jun-2013 |
peter |
Teach delete-old how to clean up after WITH/WITHOUT_SVN{LITE} permutations.
|
251794 |
15-Jun-2013 |
eadler |
Remove CVS from the base system.
Discussed with: many Reviewed by: peter, zi Approved by: core
|
251685 |
13-Jun-2013 |
emaste |
Use portable string comparison
We support == in /bin/sh now, but it ought to be avoided, and my use of it was accidental.
|
251601 |
10-Jun-2013 |
emaste |
Handle options that override other options
This is a workaround for WITH_LDNS_UTILS forcing BIND_UTILS off. It can be reverted when we no longer have these conflicting options, or made more general if we grow more cases like this.
|
251563 |
09-Jun-2013 |
gjb |
Add freebsd-update.conf(5) to OptionalObsoleteFiles.inc
PR: 179437 Approved by: kib (mentor) MFC after: 1 week
|
251512 |
07-Jun-2013 |
emaste |
Add a new knob WITH_DEBUG_FILES to control the building of standalone debug files for userland programs and libraries. The "-g" debug flag is automatically applied when WITH_DEBUG_FILES is set.
The debug files are now named ${prog}.debug and ${shlib}.debug for consistency with other systems and documentation. In addition they are installed under /usr/lib/debug, to simplify the process of installing them if needed after a crash. Users of bsd.{prog,lib}.mk outside of the base system place the standalone debug files in a .debug subdirectory. GDB automatically searches both of these directories for standalone debug files.
Thanks to everyone who contributed changes, review, and testing during development.
|
250839 |
21-May-2013 |
delphij |
BMAKE is now being built by default.
|
250659 |
15-May-2013 |
brooks |
Add support for an external cross compiler. The cross compiler is specified by passing the XCC, XCXX, and XCPP variables (corresponding to CC, CXX, and CPP) to buildworld/buildkernel. The compiler must be clang or be configured to target the appropriate architecture.
To speed build times, if XCC is an absolute path or WITHOUT_CROSS_COMPILER is defined then no cross compiler will be built during the cross-tools stage.
Limited documentation of this feature can currently be found at:
https://wiki.freebsd.org/ExternalToolchain
This functionality should be considered experimental and is subject to change without notice.
Sponsored by: DARPA, AFRL Discussed with: imp, sjg
|
250658 |
15-May-2013 |
brooks |
Add a new option WITHOUT_FORMAT_EXTENSIONS to disable flags related to checking our kernel printf extensions. This is useful to allow compilers without these extensions to build kernels.
Sponsored by: DARPA, AFRL
|
250533 |
12-May-2013 |
eadler |
Unconditionally install 210.backup-aliases as many MTAs other than sendmail support the use of /etc/aliases.
PR: conf/176098 Submitted by: ak MFC after: 2 weeks
|
250024 |
28-Apr-2013 |
eadler |
When the world is built WITHOUT_OPENSSH also don't install ssh-copy-id.
PR: misc/177590 Submitted by: Oleg Ginzburg <olevole@olevole.ru> Reviewed by: imp
|
249966 |
27-Apr-2013 |
eadler |
Add a comma to satisfy Igor.
|
249960 |
27-Apr-2013 |
eadler |
Remove IDEA from OptionalObsoleteFiles.inc
Also add an UPDATING entry (requsted by gjb)
|
249959 |
26-Apr-2013 |
eadler |
Remove the WITH_IDEA option and build it unconditionally. The European version of the patent expired in 2011. The US version of the patent expired in 2012 or prior.
Reviewed by: des No objection from: cperciva, ehaupt
|
249423 |
12-Apr-2013 |
dim |
Upgrade our copy of llvm/clang to trunk r178860, in preparation of the upcoming 3.3 release (branching and freezing expected in a few weeks).
Preliminary release notes can be found at the usual location: <http://llvm.org/docs/ReleaseNotes.html>
An MFC is planned once the actual 3.3 release is finished.
|
246830 |
15-Feb-2013 |
des |
Oops, I flipped LDNS_UTILS but forgot to update the description.
|
246827 |
15-Feb-2013 |
des |
Import LDNS and build it as an internal library.
|
246262 |
02-Feb-2013 |
dim |
Add missing src.conf(5) fragments for WITHOUT_LIBCPLUSPLUS and WITH_GPL_DTC.
|
246259 |
02-Feb-2013 |
dim |
Pull in r170135 from upstream clang trunk:
Dont use/link ARCMT, StaticAnalyzer and Rewriter to clang when the user specifies not to. Dont build ASTMatchers with Rewriter disabled and StaticAnalyzer when it's disabled.
Without all those three, the clang binary shrinks (x86_64) from ~36MB to ~32MB (unstripped).
To disable these clang components, and get a smaller clang binary built and installed, set WITHOUT_CLANG_FULL in src.conf(5). During the initial stages of buildworld, those extra components are already disabled automatically, to save some build time.
MFC after: 1 week
|
246074 |
29-Jan-2013 |
gabor |
- Add a BSD-licensed patch, ported by Pedro F. Giffuni (pfg) from DragonflyBSD and install it as bsdpatch. WITH_BSD_PATCH makes it default and installs GNU patch as gnupatch.
Submitted by: pfg Obtained from: The DragonflyBSD Project
|
245606 |
18-Jan-2013 |
eadler |
Add option to make pc-sysinstall optional
Approved by: cperciva
|
245539 |
17-Jan-2013 |
andrew |
Add compiler support for the ARM EABI.
ARM EABI support is disabled by default and can be enabled by setting WITH_ARM_EABI when building, however only the kernel-toolchain target will work with this flag until the rest of the support is added.
|
245527 |
17-Jan-2013 |
bz |
Add a src.conf(5) option to allow users to compile in the "NONE cipher", which, only after authentication, disables crypto, and only for sessions without a terminal.
Submitted by: Jeremy Chadwick (freebsd jdc.parodius.com) PR: bin/163095 MFC after: 10 days
|
245435 |
14-Jan-2013 |
brooks |
Remember the . in .\" in the WITH_NMTREE file and regenerate the output.
Reported by: joeld
|
245311 |
11-Jan-2013 |
brooks |
Add pwcache(3) and vis(3) to libegacy as install(1) is about to grow a dependency on them.
Sponsored by: DARPA, AFRL
|
245241 |
09-Jan-2013 |
brooks |
Always install our mtree as /usr/sbin/fmtree and link it as /usr/sbin/mtree by default.
Add a src.conf option WITH_NMTREE that causes NetBSD's mtree to be linked as /usr/sbin/mtree as well as /usr/sbin/nmtree.
|
245171 |
08-Jan-2013 |
obrien |
Following r226271, allow disabling lzma support with "WITHOUT_LZMA_SUPPORT". Correct r226271 which should have used WITHOUT_BZIP2_SUPPORT per r166255.
Obtained from: Juniper Networks
|
244512 |
20-Dec-2012 |
bapt |
Add etc/periodic/daily/220.backup-pkgdb to OptionalObsoleteFiles.inc
|
243830 |
03-Dec-2012 |
dim |
Upgrade our copy of llvm/clang to r168974, from upstream's release_32 branch. This is effectively llvm/clang 3.2 RC2; the 3.2 release is coming soon.
|
243053 |
15-Nov-2012 |
marcel |
Don't install atf.test.mk if MK_ATF == no.
Submitted by: Garrett Cooper <yanegomi@gmail.com>
|
242629 |
05-Nov-2012 |
brooks |
Add a description of WITHOUT_CLANG_IS_CC.
|
241823 |
22-Oct-2012 |
marcel |
Add ATF to the build. This is may be a bit rought around the egdes, but committing it helps to get everyone on the same page and makes sure we make progress.
Tinderbox breakages that are the result of this commit are entirely the committer's fault -- in other words: buildworld testing on amd64 only.
Credits follow:
Submitted by: Garrett Cooper <yanegomi@gmail.com> Sponsored by: Isilon Systems Based on work by: keramida@ Thanks to: gnn@, mdf@, mlaier@, sjg@ Special thanks to: keramida@
|
241645 |
17-Oct-2012 |
andreast |
Remove the netncp and nwfs files from here. They will be moved to the ObsoleteFiles.inc file later.
Discussed with: attilio
|
241511 |
13-Oct-2012 |
gabor |
- Remove GNU sort and the WITH_GNU_SORT knob
|
241298 |
06-Oct-2012 |
marcel |
Add support for bmake. This includes: 1. Don't do upgrade_checks when using bmake. As long as we have WITH_BMAKE, there's a bootstrap complication in ths respect. Avoid it. Make the necessary changes to have upgrade_checks work wth bmake anyway. 2. Remove the use of -E. It's not needed in our build because we use ?= for the respective variables, which means that we'll take the environment value (if any) anyway. 3. Properly declare phony targets as phony as bmake is a lot smarter (and thus agressive) about build avoidance. 4. Make sure CLEANFILES is complete and use it on .NOPATH. bmake is a lot smarter about build avoidance and should not find files we generate in the source tree. We should not have files in the repository we want to generate, but this is an easier way to cross this hurdle. 5. Have behavior under bmake the same as it is under make with respect to halting when sub-commands fail. Add "set -e" to compound commands so that bmake is informed when sub-commands fail. 6. Make sure crunchgen uses the same make as the rest of the build. This is important when the make utility isn't called make (but bmake for example). 7. While here, add support for using MAKEOBJDIR to set the object tree location. It's the second alternative bmake looks for when determining the actual object directory (= .OBJDIR).
Submitted by: Simon Gerraty <sjg@juniper.net> Submitted by: John Van Horne <jvanhorne@juniper.net>
|
241279 |
06-Oct-2012 |
marcel |
Add bmake to the build and allow it to be installed as make(1) instead of FreeBSD's make by setting WITH_BMAKE. The WITH_BMAKE build makes it easy for people to switch while working out the kinks -- think ports tree here. The option will be removed in due time.
Submitted by: Simon Gerraty (sjg@juniper.net)
|
240690 |
19-Sep-2012 |
zeising |
Add documentation for the WITHOUT_KDUMP switch. This swtich was introduced in r240404
Approved by: joel (mentor)
|
240377 |
11-Sep-2012 |
obrien |
r235638 is not the clean way to add support for building on ancient FreeBSD versions. Instead use Imp's good work on "legacy" and follow the outcome of the previous TRB discussions on this topic.
Now use the libc getline() if it exists, and only where it doesn't create a bootstraping version.
|
239715 |
26-Aug-2012 |
dim |
Add libc++ and libcxxrt related files to OptionalObsoleteFiles.inc.
MFC after: 1 week
|
239469 |
20-Aug-2012 |
dim |
Add three additional clang intrinsics headers, which I missed in the previous import.
|
239462 |
20-Aug-2012 |
dim |
Upgrade our copy of llvm/clang to trunk r162107. With thanks to Benjamin Kramer and Joerg Sonnenberger for their input and fixes.
|
238721 |
23-Jul-2012 |
dim |
When WITHOUT_CLANG is being used, also clean out the clang 3.1 headers in OptionalObsoleteFiles.inc.
PR: misc/169902 Submitted by: Thomas Eberhardt <sneakywumpus@googlemail.com> MFC after: 3 days
|
238448 |
14-Jul-2012 |
zeising |
Change language in WITH_BSDCONFIG to match other options, and regen src.conf(5), which was missed in r238438.
Approved by: joel (mentor)
|
238438 |
14-Jul-2012 |
dteske |
Import bsdconfig(8) as a replacement for the post-install abilities of deprecated sysinstall(8). NOTE: WITH_BSDCONFIG is currently required.
Submitted by: Devin Teske (dteske), Ron McDowell <rcm@fuzzwad.org> Reviewed by: Ron McDowell <rcm@fuzzwad.org> Approved by: Ed Maste (emaste)
|
238143 |
05-Jul-2012 |
obrien |
Remove the "funny targets" make check. We no longer need embedded :: targets to build FreeBSD (they are used in Perl man pages). We never needed embedded "!" in targets that I can find.
We got this from OpenBSD and I cannot find any other make that supports such things -- contrary to their commit message claim: "This behaviour is also consistent with other versions of make.".
|
238023 |
02-Jul-2012 |
marcel |
A cross-reference takes a man page section as well. Assume pkg(1), based on pkg_add(1).
|
238021 |
02-Jul-2012 |
marcel |
Add description for INSTALL_AS_USER
|
238018 |
02-Jul-2012 |
marcel |
Fix typo in option description file (using svn move).
|
237997 |
02-Jul-2012 |
bapt |
New build KNOB: WITHOUT_PKGBOOTSTRAP to condition building of usr.sbin/pkg Do not condition usr.sbin/pkg building on WITHOUT_PKGTOOLS anymore, so that users can remove the old pkg_* tools without removing the pkgng boostrap
Approved by: des (mentor) MFC after: 1 month
|
237629 |
27-Jun-2012 |
gabor |
- Switch to BSD sort as default sort. GNU sort will still be installed as "gnusort". Most of the BSD sort development work was done by Oleg Moskalenko <oleg.moskalenko@citrix.com>. - GNU grep can be set to default by setting WITH_GNU_GREP. It will cause BSD sort to be installed as "bsdsort".
Portbuild tested by: linimon
|
236340 |
30-May-2012 |
obrien |
make it easier to check newly-built make
|
236279 |
30-May-2012 |
gjb |
Add '-width Pa' to src.conf.5 for mdoc(7) style consistency.
MFC after: 3 days
|
235660 |
19-May-2012 |
marcel |
Document the ED_CRYPTO and LS_COLORS options.
Obtained from: Juniper Networks, Inc.
|
235537 |
17-May-2012 |
gber |
Import work done under project/nand (@235533) into head.
The NAND Flash environment consists of several distinct components: - NAND framework (drivers harness for NAND controllers and NAND chips) - NAND simulator (NANDsim) - NAND file system (NAND FS) - Companion tools and utilities - Documentation (manual pages)
This work is still experimental. Please use with caution.
Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks
|
235342 |
12-May-2012 |
gjb |
Regenerate src.conf(5) for mdoc(7) and typo corrections.
PR: 167804 Submitted by: Nobuyuki Koganemaru (kogane!jp.freebsd.org) MFC after: 3 days
|
235268 |
11-May-2012 |
gabor |
- Hook up BSD sort to the build. By default, it will be installed as "bsdsort" and GNU sort will be the default "sort". When WITH_BSD_SORT is set, BSD sort will be the default "sort" and GNU sort will be installed as "gnusort".
|
235204 |
09-May-2012 |
eadler |
Add some missing files to OLD_FILES
PR: conf/166460 Submitted by: Jeremy Chadwick <freebsd@jdc.parodius.com> Reviewed by: stable@ Approved by: cperciva MFC after: 2 weeks
|
234782 |
29-Apr-2012 |
kib |
Add src.conf option WITH_SHARED_TOOLCHAIN to enable building the toolchain binaries as dynamically linked. Option is disabled by default.
Reviewed by: ru (previous version) MFC after: 2 weeks
|
234289 |
14-Apr-2012 |
dim |
Add files and directories to be cleaned up if WITHOUT_GCC is in effect to OptionalObsoleteFiles.inc.
MFC after: 1 week
|
233338 |
23-Mar-2012 |
stas |
- Add new kerberos libraries to the list of optional obsolete files.
|
233337 |
23-Mar-2012 |
stas |
- Do not build libcom_err and compile_et when kerberos is disabled. They depends on several heimdal libraries and not used by anything but kerberos tools.
|
233294 |
22-Mar-2012 |
stas |
- Update FreeBSD Heimdal distribution to version 1.5.1. This also brings several new kerberos related libraries and applications to FreeBSD: o kgetcred(1) allows one to manually get a ticket for a particular service. o kf(1) securily forwards ticket to another host through an authenticated and encrypted stream. o kcc(1) is an umbrella program around klist(1), kswitch(1), kgetcred(1) and other user kerberos operations. klist and kswitch are just symlinks to kcc(1) now. o kswitch(1) allows you to easily switch between kerberos credentials if you're running KCM. o hxtool(1) is a certificate management tool to use with PKINIT. o string2key(1) maps a password into key. o kdigest(8) is a userland tool to access the KDC's digest interface. o kimpersonate(8) creates a "fake" ticket for a service.
We also now install manpages for some lirbaries that were not installed before, libheimntlm and libhx509.
- The new HEIMDAL version no longer supports Kerberos 4. All users are recommended to switch to Kerberos 5.
- Weak ciphers are now disabled by default. To enable DES support (used by telnet(8)), use "allow_weak_crypto" option in krb5.conf.
- libtelnet, pam_ksu and pam_krb5 are now compiled with error on warnings disabled due to the function they use (krb5_get_err_text(3)) being deprecated. I plan to work on this next.
- Heimdal's KDC now require sqlite to operate. We use the bundled version and install it as libheimsqlite. If some other FreeBSD components will require it in the future we can rename it to libbsdsqlite and use for these components as well.
- This is not a latest Heimdal version, the new one was released while I was working on the update. I will update it to 1.5.2 soon, as it fixes some important bugs and security issues.
|
232322 |
29-Feb-2012 |
dim |
Add a WITH_CLANG_IS_CC option for src.conf(5), disabled by default, that installs clang as /usr/bin/cc, /usr/bin/c++ and /usr/bin/cpp.
Note this does *not* disable building and installing gcc, which will still be available as /usr/bin/gcc, /usr/bin/g++ and /usr/bin/gcpp. If you want to disable gcc completely, you must use WITHOUT_GCC.
MFC after: 2 weeks
|
231530 |
11-Feb-2012 |
ed |
Replace utxrm(8) by utx(8).
At first, I added a utility called utxrm(8) to remove stale entries from the user accounting database. It seems there are cases in which we need to perform different operations on the database as well. Simply rename utxrm(8) to utx(8) and place the old code under the "rm" command.
In addition to "rm", this tool supports "boot" and "shutdown", which are going to be used by an rc-script which I am going to commit separately.
|
231057 |
06-Feb-2012 |
dim |
Add a WITH_CLANG_EXTRAS option for src.conf(5), disabled by default, that builds the following additional llvm/clang tools:
- bugpoint - llc - lli - llvm-ar - llvm-as - llvm-bcanalyzer - llvm-diff - llvm-dis - llvm-extract - llvm-ld - llvm-link - llvm-mc - llvm-nm - llvm-objdump - llvm-prof - llvm-ranlib - llvm-rtdyld - llvm-stub - macho-dump - opt
These tools are mainly useful for people that want to manipulate llvm bitcode (.bc) and llvm assembly language (.ll) files, or want to tinker with llvm and clang themselves.
MFC after: 2 weeks
|
230972 |
04-Feb-2012 |
rmh |
Add MK_SOURCELESS build option. Setting MK_SOURCELESS to "no" will disable kernel modules that include binary-only code.
More fine-grained control is provided via MK_SOURCELESS_HOST (for native code that runs on host CPU) and MK_SOURCELESS_UCODE (for microcode).
Reviewed by: julian, delphij, freebsd-arch Approved by: kib (mentor) MFC after: 2 weeks
|
230060 |
13-Jan-2012 |
ed |
Remove wtmpcvt(1).
The wtmpcvt(1) utility converts wtmp files to the new format used by utmpx(3). Now that HEAD has been branched to stable/9 and 9.0 is released, there is no need for it in HEAD.
MFC after: never
|
229319 |
02-Jan-2012 |
rwatson |
Add WITHOUT_CAPSICUM src.conf(5) define, which can be used to compile out use of Capsicum by userspace applications.
MFC after: 3 weeks Sponsored by: Google, Inc.
|
228409 |
11-Dec-2011 |
dim |
Add more files to cleanup with 'make delete-old' when WITHOUT_CLANG is in effect.
MFC after: 1 week
|
228196 |
02-Dec-2011 |
fjoe |
Revert to conservative defaults. WITH_PROFILE is a default now.
NO_PROFILE overrides in Makefile.inc1 and bsd.own.m are left intact so that the reversal to the WITHOUT_PROFILE will be easier in future.
|
228159 |
30-Nov-2011 |
fjoe |
Add WITH_CTF description.
|
228143 |
29-Nov-2011 |
fjoe |
Turn off profiled libs build by default. Can be enabled back using WITH_PROFILE=yes in /etc/src.conf
|
228082 |
28-Nov-2011 |
dim |
Add WITH_LIBCPLUSPLUS under tools/build/options; the knob itself was already added in a previous revision.
|
228081 |
28-Nov-2011 |
dim |
Under tools/build/options, add missing svn:keywords properties to WITH_OFED and WITHOUT_GPIO.
|
227636 |
17-Nov-2011 |
dim |
Revert r227538, since it doesn't compile with clang at all (it doesn't allow the built-in operations to be redefined, at least not without excessive force).
Instead, just disable LLVM's support for atomic operations for now. Nothing in either clang or the tablegen tools currently depends on it.
This still allows users of head built before r198344 to upgrade to top-of-head seamlessly.
|
227538 |
15-Nov-2011 |
dim |
LLVM uses atomic operations, which are not supported on i386 and GCC emits calls for them, rather than expanding them inline. Older FreeBSD versions compile for i386 by default and as such we end up with unresolved symbols when we build LLVM's TableGen utility as a build tool on them. Add the functions that GCC emits here, but don't bother to make them atomic. Such is not needed.
Submitted by: marcel MFC after: 1 week
|
223209 |
17-Jun-2011 |
ed |
Add WITHOUT_UTMPX switch to the build system.
This knob removes the tools that are exclusively used to view and maintain the databases maintained by utmpx, namely last, users, who, wtmpcvt, ac, lastlogin and utxrm.
The tool w is not in this list, because it has some other functionality which is unrelated to utmpx; it is hardlinked to the uptime tool.
|
223208 |
17-Jun-2011 |
ed |
Don't remove the periodic script for ac(8) when setting WITHOUT_ACCT.
|
223201 |
17-Jun-2011 |
ed |
Don't omit ac(8) as part of WITHOUT_ACCT.
The WITHOUT_ACCT switch is supposed to omit tools related to process accounting, namely accton and sa. ac(8) is just a simple tool that prints statistics based on data in the utx.log database. It has nothing to do with the former.
|
222813 |
07-Jun-2011 |
attilio |
etire the cpumask_t type and replace it with cpuset_t usage.
This is intended to fix the bug where cpu mask objects are capped to 32. MAXCPU, then, can now arbitrarely bumped to whatever value. Anyway, as long as several structures in the kernel are statically allocated and sized as MAXCPU, it is suggested to keep it as low as possible for the time being.
Technical notes on this commit itself: - More functions to handle with cpuset_t objects are introduced. The most notable are cpusetobj_ffs() (which calculates a ffs(3) for a cpuset_t object), cpusetobj_strprint() (which prepares a string representing a cpuset_t object) and cpusetobj_strscan() (which creates a valid cpuset_t starting from a string representation). - pc_cpumask and pc_other_cpus are target to be removed soon. With the moving from cpumask_t to cpuset_t they are now inefficient and not really useful. Anyway, for the time being, please note that access to pcpu datas is protected by sched_pin() in order to avoid migrating the CPU while reading more than one (possible) word - Please note that size of cpuset_t objects may differ between kernel and userland. While this is not directly related to the patch itself, it is good to understand that concept and possibly use the patch as a reference on how to deal with cpuset_t objects in userland, when accessing kernland members. - KTR_CPUMASK is changed and now is represented through a string, to be set as the example reported in NOTES.
Please additively note that no MAXCPU is bumped in this patch, but private testing has been done until to MAXCPU=128 on a real 8x8x2(htt) machine (amd64).
Please note that the FreeBSD version is not yet bumped because of the upcoming pcpu changes. However, note that this patch is not targeted for MFC.
People to thank for the time spent on this patch: - sbruno, pluknet and Nicholas Esborn (nick AT desert DOT net) tested several revision of the patches and really helped in improving stability of this work. - marius fixed several bugs in the sparc64 implementation and reviewed patches related to ktr. - jeff and jhb discussed the basic approach followed. - kib and marcel made targeted review on some specific part of the patch. - marius, art, nwhitehorn and andreast reviewed MD specific part of the patch. - marius, andreast, gonzo, nwhitehorn and jceel tested MD specific implementations of the patch. - Other people have made contributions on other patches that have been already committed and have been listed separately.
Companies that should be mentioned for having participated at several degrees: - Yahoo! for having offered the machines used for testing on big count of CPUs. - The FreeBSD Foundation for having sponsored my devsummit attendance, which has been instrumental. - Sandvine for having offered offices and infrastructure during development.
(I really hope I didn't forget anyone, if it happened I apologize in advance).
|
222295 |
25-May-2011 |
obrien |
+ Tighten up (and simplify) the pass_cmd_vars_1 "variable definition arrived from the calling make" test. + Be more tolerant of newlines in the plus_flag "supports the '+' flag" test.
|
222273 |
25-May-2011 |
obrien |
Build and install a BSD licensed grep. If WITH_BSD_GREP is not set, it will be 'bsdgrep' and GNUgrep will be '[ef]grep'. Otherwise, BSD-grep will be the grep family, and GNUgrep will be 'gnugrep'.
Discussed with: brooks
|
222189 |
22-May-2011 |
imp |
Add the description properly...
|
222188 |
22-May-2011 |
imp |
Add documentation for WITHOUT_KERNEL_SYMBOLS
|
222090 |
19-May-2011 |
imp |
Implement WITH{,OUT}_{GCC,BINUTILS} to provide finer-grained control over building gcc and binutils. They default to true, unless MK_TOOLCHAIN is no.
Reviewed by: ru@
|
222016 |
17-May-2011 |
ru |
Added description for WITH_OFED.
|
221733 |
10-May-2011 |
ru |
Reassurance for impatient.
|
221732 |
10-May-2011 |
ru |
Style.
|
221730 |
10-May-2011 |
ru |
- There now exist options that have different defaults depending on the architecture, reflect this in documentation. For such options, both WITH_FOO and WITHOUT_FOO description files should be provided.
Prodded by: des
- Setting a build option may enforce other build options, try harder to detect this case.
- Setting a build option may change other option's default value, try harder to detect this case.
|
221729 |
10-May-2011 |
ru |
The Objective C support was removed in r220755.
Submitted by: des
|
221541 |
06-May-2011 |
ru |
MK_GPIO changed its default; reflect.
|
221540 |
06-May-2011 |
ru |
Removed trailing whitespace.
|
221539 |
06-May-2011 |
ru |
Tidy up formatting.
|
221266 |
30-Apr-2011 |
bz |
Introduce two new options MK_INET and MK_INET_SUPPORT analogically with INET6 equivalents. Patch reather than re-genenerating src.conf (given the current problem with the script that does the re-gen).
Reviewed by: gnn Sponsored by: The FreeBSD Foundation Sponsored by: iXsystems MFC after: 2 weeks
|
221161 |
28-Apr-2011 |
des |
executable
|
220402 |
06-Apr-2011 |
uqs |
Regenerate after r220401. It turns out makeman is clever about implied flags, so remove that part from WITHOUT_CXX again.
This is only partially regenerated, as the entries for FDT and GPIO seem to have switched their default state, too.
|
220401 |
06-Apr-2011 |
uqs |
Complete WITHOUT_CXX support. It implies WITHOUT_GROFF and WITHOUT_CLANG.
Don't build clang bootstrap/build-tools depending on this flag. We also keep gperf, devd and libstdc++ around to prevent foot-shooting and to make this a two-way street.
|
219020 |
25-Feb-2011 |
gabor |
- Add two more iconv-related files, which were left out from previous commit
Approved by: delphij (mentor)
|
218942 |
22-Feb-2011 |
uqs |
The default for FDT has changed, rename the flag/options file.
|
218941 |
22-Feb-2011 |
uqs |
Flesh out WITHOUT_GROFF support to DTRT.
A full featured groff is required during buildworld, so build it always and don't rely on it being present on the host system.
vgrind(1) is tightly coupled to a roff processor and will not be built/installed when groff is disabled. Also much of the roff'ed documentation under share/doc will not be built/installed when WITHOUT_GROFF is defined.
Reviewed by: ru (partial)
|
216179 |
04-Dec-2010 |
uqs |
Document two more ways to find duplicates in the obsolete file list.
Remove the only duplicate found by the optional files check. Fix typos, while here.
Suggested by: netchild
|
215323 |
14-Nov-2010 |
gonzo |
Add optional files controlled by WITH_GPIO knob
Submitted by: Alexander Best <arundel@freebsd.org>
|
215312 |
14-Nov-2010 |
brucec |
lib32 is installed on powerpc64 too.
|
215306 |
14-Nov-2010 |
brucec |
libatm_p.a, libkeycap_p.a and libmytinfo_p.a are already in ObsoleteFiles.inc. liblwres.so.10 has been replaced by liblwres.so.50.
Reported by: arundel
|
215045 |
09-Nov-2010 |
delphij |
Hide 460.chkportsum in MK_PKGTOOLS != no case.
Submitted by: Alex Kozlov <spam rm-rf kiev ua> MFC after: 2 weeks
|
213585 |
08-Oct-2010 |
markm |
Don't blow away /bin/rmail symlink if we are keeping mailwrapper. Mailwrapper can provide a perfectly good rmail with other mailers.
|
213472 |
06-Oct-2010 |
netchild |
Add some missing files to optionally delete.
Submitted by: Paul B Mahol <onemda@gmail.com>
|
213463 |
05-Oct-2010 |
gonzo |
- Add WITH_GPIO entry to src.conf(5) man page
|
211701 |
23-Aug-2010 |
gabor |
- Change default grep back to GNU version. BSD grep can be built with the WITH_BSD_GREP knob. - Bump __FreeBSD_version
Requested by: dougb Approved by: delphij (mentor)
|
210389 |
22-Jul-2010 |
gabor |
Add BSD grep to the base system and make it our default grep.
Deliverables: Small and clean code (1,4 KSLOC vs GNU's 8,5 KSLOC), lower memory usage than GNU grep, GNU compatibility, BSD license.
TODO: Performance is somewhat behind GNU grep but it is only significant for bigger searches. The reason is complex, the most important factor is that GNU grep uses lots of optimizations to improve the speed of the regex library. First, we need a modern regex library (practically by adopting TRE), add support for GNU-style non-standard regexes and then reevalute the performance issues and look for bottlenecks. In the meantime, for those, who need better performance, it is possible to build GNU grep by setting WITH_GNU_GREP.
Approved by: delphij (mentor) Obtained from: OpenBSD (http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/grep/), freegrep (http://github.com/howardjp/freegrep) Sponsored by: Google SoC 2008 Portbuild tests run by: kris, pav, erwin Acknowledgements to: fjoe (as SoC 2008 mentor), everyone who helped in reviewing and testing
|
210320 |
21-Jul-2010 |
ed |
Chase LLVM version bump to 2.8.
|
209253 |
17-Jun-2010 |
netchild |
Add the ZFS periodic daily scripts to the ZFS part.
|
209171 |
14-Jun-2010 |
ed |
Add Clang to OptionalObsoleteFiles.inc.
This means you can now deinstall Clang by running make delete-old with WITHOUT_CLANG set.
|
208971 |
10-Jun-2010 |
ed |
Fix typo.
Spotted by: Garrett Cooper
|
208967 |
09-Jun-2010 |
ed |
This should be commented out.
|
208965 |
09-Jun-2010 |
rdivacky |
Add WITHOUT_CLANG file with a description.
Approved by: ed (mentor)
|
208537 |
25-May-2010 |
raj |
Introduce a new build knob for Flattened Device Tree support.
Reviewed by: imp Sponsored by: The FreeBSD Foundation
|
208322 |
20-May-2010 |
jkim |
Add an option file for WITHOUT_MAN_UTILS to regenerate src.conf(5).
|
205702 |
26-Mar-2010 |
delphij |
Remove GNU cpio after fix of CVE-2010-0624.
Note that this is actually a no-op for most users, as this GNU cpio was broken on -HEAD and 8-STABLE since last March until the recent fix.
FreeBSD 8.0+ uses BSD cpio by default and the code is being actively maintained.
Blessed by: kientzle With hat: secteam MFC after: 3 days
|
204461 |
28-Feb-2010 |
antoine |
Add files to remove when MK_PPP=no.
|
204460 |
28-Feb-2010 |
antoine |
Add files to remove when MK_PORTSNAP=no.
|
204459 |
28-Feb-2010 |
antoine |
Add files to remove when MK_PKGTOOLS=no.
|
204458 |
28-Feb-2010 |
antoine |
Add files to remove when MK_PF=no.
|
204457 |
28-Feb-2010 |
antoine |
Add files to remove when MK_NTP=no.
|
204456 |
28-Feb-2010 |
antoine |
Update files to remove when MK_RCMDS=no.
|
204455 |
28-Feb-2010 |
antoine |
Add files to remove when MK_RCS=no.
|
204454 |
28-Feb-2010 |
antoine |
Add files to remove when MK_ROUTED=no.
|
204453 |
28-Feb-2010 |
antoine |
Add files to remove when MK_TELNET=no.
|
204452 |
28-Feb-2010 |
antoine |
Add files to remove when MK_NDIS=no.
|
204451 |
28-Feb-2010 |
antoine |
Update files to remove when MK_NCP=no.
|
204450 |
28-Feb-2010 |
antoine |
Update files to remove when MK_LPR=no.
|
204449 |
28-Feb-2010 |
antoine |
Add files to remove when MK_WIRELESS=no.
|
204379 |
26-Feb-2010 |
antoine |
Do not remove fmt.1 when MK_MAIL=no.
X-MFC-With: r203584
|
203733 |
10-Feb-2010 |
delphij |
Symbolic link to mailwrapper should only be removed if both MK_MAILWRAPPER and MK_SENDMAIL is "no".
Reported by: Rob Farmer <rfarmer at predatorlabs.net>
|
203711 |
09-Feb-2010 |
delphij |
As it turns out, fmt(1) is being used by the base system as well as the ports tree extensively and it is probably a good idea to keep it regardless of NO_MAIL setting.
Reported by: Alexander Best Reviewed by: antoine X-MFC-With: r203584
|
203584 |
07-Feb-2010 |
delphij |
Add files for NO_MAIL, NO_SENDMAIL and NO_MAILWRAPPER.
MFC after: 2 weeks
|
203567 |
06-Feb-2010 |
antoine |
Update files to remove when MK_KERBEROS=no.
|
203566 |
06-Feb-2010 |
antoine |
Add files to remove when MK_JAIL=no.
|
203565 |
06-Feb-2010 |
antoine |
Update files to remove when MK_IPX=no.
|
203564 |
06-Feb-2010 |
antoine |
Add files to remove when MK_IPFW=no.
|
203563 |
06-Feb-2010 |
antoine |
Move rescue/ping6 from files to remove when MK_INET6=no to file to remove when MK_INET6_SUPPORT=no. (MK_INET6=no implies MK_INET6_SUPPORT=no)
|
203562 |
06-Feb-2010 |
antoine |
Add file to remove when MK_IDEA=no.
|
203561 |
06-Feb-2010 |
antoine |
Add files to remove when MK_GSSAPI=no.
|
203231 |
30-Jan-2010 |
antoine |
Add files to remove when MK_GPIB=no.
|
203228 |
30-Jan-2010 |
antoine |
Add files to remove when MK_GDB=no.
|
203226 |
30-Jan-2010 |
antoine |
Add files to remove when MK_GAMES=no.
|
203224 |
30-Jan-2010 |
antoine |
Add files to remove when MK_FREEBSD_UPDATE=no.
|
203221 |
30-Jan-2010 |
antoine |
Add files to remove when MK_FLOPPY=no.
|
202927 |
24-Jan-2010 |
antoine |
Add files to remove when MK_DICT=no.
|
202926 |
24-Jan-2010 |
antoine |
Add files to remove when MK_CVS=no.
|
202925 |
24-Jan-2010 |
antoine |
Add files to remove when MK_CTM=no.
|
202923 |
24-Jan-2010 |
antoine |
Add files to remove when MK_CPP=no.
|
202452 |
16-Jan-2010 |
antoine |
Update files to remove when MK_ZFS=no.
|
202451 |
16-Jan-2010 |
antoine |
Update files to remove when MK_CDDL=no.
|
202450 |
16-Jan-2010 |
antoine |
Add files to remove when MK_CALENDAR=no.
|
201931 |
09-Jan-2010 |
antoine |
Update files to remove when MK_BLUETOOTH=no.
|
201929 |
09-Jan-2010 |
antoine |
Add files to remove when MK_AUTHPF=no.
|
201928 |
09-Jan-2010 |
antoine |
Add files to remove when MK_ATM=no.
|
201927 |
09-Jan-2010 |
antoine |
Add files to remove when MK_AT=no.
|
201926 |
09-Jan-2010 |
antoine |
Add files to remove when MK_APM=no.
|
201925 |
09-Jan-2010 |
antoine |
Add files to remove when MK_AMD=no.
|
201923 |
09-Jan-2010 |
antoine |
Add files to remove when MK_ACCT=no.
|
194870 |
24-Jun-2009 |
jamie |
Add libjail, a (somewhat) simpler interface to the jail_set and jail_get system calls and the security.jail.param sysctls.
Approved by: bz (mentor)
|
193280 |
01-Jun-2009 |
dougb |
Add support for the build options that are currently in the port: WITH_BIND_IDN WITH_BIND_LARGE_FILE WITH_BIND_SIGCHASE WITH_BIND_XML
|
190751 |
05-Apr-2009 |
ed |
Remove if_ppp(4) and if_sl(4).
Not only did these two drivers depend on IFF_NEEDSGIANT, they were broken 7 months ago during the MPSAFE TTY import. if_ppp(4) has been replaced by ppp(8). There is no replacement for if_sl(4).
If we see regressions in for example the ports tree, we should just use __FreeBSD_version 800045 to check whether if_ppp(4) and if_sl(4) are present. Version 800045 is used to denote the import of MPSAFE TTY.
Discussed with: rwatson, but also rwatson's IFF_NEEDSGIANT emails on the lists.
|
188848 |
20-Feb-2009 |
mtm |
Doh! r188813 modified an auto-generated file. Fix it for real: o grammar fix o remove mention of libkse
Submitted by: Niclas Zeising <niclas.zeising@gmail.com>
|
183306 |
23-Sep-2008 |
sam |
add missing options
|
183305 |
23-Sep-2008 |
sam |
add missing options
|
183242 |
21-Sep-2008 |
sam |
add new build knobs and jigger some existing controls to improve control over the result of buildworld and installworld; this especially helps packaging systems such as nanobsd
Reviewed by: various (posted to arch) MFC after: 1 month
|
183002 |
13-Sep-2008 |
antoine |
Add files to remove when WITHOUT_HESIOD is set. This fixes "make check-old" when WITH_HESIOD is set.
PR: 122406 MFC after: 1 month
|
180926 |
28-Jul-2008 |
antoine |
Add files to remove when MK_GNU_CPIO = no
|
180208 |
03-Jul-2008 |
peter |
Set magic fbsd:nokeywords property that allows files to bypass keyword expansion. (file-specific replacement for CVSROOT/exclude)
|
180012 |
25-Jun-2008 |
ru |
Enable GCC stack protection (aka Propolice) for userland: - It is opt-out for now so as to give it maximum testing, but it may be turned opt-in for stable branches depending on the consensus. You can turn it off with WITHOUT_SSP. - WITHOUT_SSP was previously used to disable the build of GNU libssp. It is harmless to steal the knob as SSP symbols have been provided by libc for a long time, GNU libssp should not have been much used. - SSP is disabled in a few corners such as system bootstrap programs (sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves. - It should be safe to use -fstack-protector-all to build world, however libc will be automatically downgraded to -fstack-protector because it breaks rtld otherwise. - This option is unavailable on ia64.
Enable GCC stack protection (aka Propolice) for kernel: - It is opt-out for now so as to give it maximum testing. - Do not compile your kernel with -fstack-protector-all, it won't work.
Submitted by: Jeremie Le Hen <jeremie@le-hen.org>
|
179813 |
16-Jun-2008 |
dougb |
1. Make the BSD version of cpio the default [1] a. The BSD version will be built and installed unless WITHOUT_BSD_CPIO is defined. b. The GNU version will not be built or installed unless WITH_GNU_CPIO is defined. If this is defined, the symlink in /usr/bin will be to the GNU version whether the BSD version is present or not.
When these changes are MFCed the defaults should be flipped.
2. Add a knob to disable the building of GNU grep. This will make it easier for those that want to test the BSD version in the ports.
Approved by: kientzle [1]
|
179315 |
26-May-2008 |
bz |
Remove ISDN4BSD (I4B) from HEAD as it is not MPSAFE and parts relied on the now removed NET_NEEDS_GIANT. Most of I4B has been disconnected from the build since July 2007 in HEAD/RELENG_7.
This is what was removed: - configuration in /etc/isdn - examples - man pages - kernel configuration - sys/i4b (drivers, layers, include files) - user space tools - i4b support from ppp - further documentation
Discussed with: rwatson, re
|
177714 |
29-Mar-2008 |
ru |
Remove options MK_LIBKSE and DEFAULT_THREAD_LIB now that we no longer build libkse. This should fix WITHOUT_LIBTHR builds as a side effect.
|
177552 |
24-Mar-2008 |
antoine |
Don't remove usr/include/fs/nwfs and usr/include/netncp, as they are always recreated during installworld (they are in BSD.include.dist).
Reported by: Pawel Worach Approved by: rwatson (mentor) X-MFC: with revision 1.13
|
176955 |
08-Mar-2008 |
antoine |
Add some checks for amd64 target around usr/lib32 libraries, missed in previous commit.
Approved by: rwatson (mentor) X-MFC: with revision 1.13
|
176662 |
29-Feb-2008 |
antoine |
Add files to remove when MK_GCOV, MK_IPX or MK_NCP are defined.
Note: it may be a good idea to deduce obsolete usr/lib32/ files from obsolete lib/ and usr/lib/ files.
PR: 120492 PR: 121118 PR: 121121 Submitted by: KAMIYA Satosi, Richard Tector Approved by: rwatson (mentor) MFC after: 1 month
|
175539 |
21-Jan-2008 |
obrien |
Remove 5.x and 6.x cruft - source upgrades to RELENG_8 from versions prior to RELENG_7 are not supported.
|
175469 |
18-Jan-2008 |
brueffer |
Remove files conditional on the obsolete MK_FORTRAN knob. They are already listed in ObsoleteFiles.inc anyway.
Reported by: David Wolfskill Approved by: rwatson (mentor) MFC after: 3 days
|
175364 |
15-Jan-2008 |
brueffer |
WITHOUT_FORTRAN was removed some time ago. Regen src.conf.5.
PR: 119562 Submitted by: Daniel Rucci <dan@rucci.org> MFC after: 3 days
|
174550 |
12-Dec-2007 |
ru |
Fix markup nits.
|
174549 |
12-Dec-2007 |
ru |
Option depencies are (again) tracked automatically.
|
174548 |
12-Dec-2007 |
ru |
- Fix setting of MK_GSSAPI option by bsd.own.mk; its value should default to the value of MK_KERBEROS unless set explicitly by WITH_GSSAPI/WITHOUT_GSSAPI. (This introduces another type of MK_* variables which itself is questionable.)
- Teach tools/build/options/makeman script that generates the src.conf(5) manpage about the new type of MK_* variables.
- Fix broken logic in lib/Makefile.
|
174519 |
10-Dec-2007 |
dougb |
Hide the building and installation of libgssapi behind the WITHOUT_KERBEROS knob. While GSS can be used for other things some third party software (most notably ports/x11/kdelibs3) takes the presence of libgssapi as an indication that kerberos is available, and attempts to link with the kerberos libs. If they are not available, the build will fail.
Because you might want to use GSS but not kerberos, add a knob to re-enable it if WITHOUT_KERBEROS is present.
Document the new knob, and the new behavior of WITHOUT_KERBEROS.
Not objected and/or generally agreed to by: freebsd-arch
Problem discussed/analyzed in: PR: ports/116484
|
174497 |
09-Dec-2007 |
dougb |
Add a reasonable-sounding description of the WITHOUT_INSTALLLIB knob.
|
173400 |
06-Nov-2007 |
danger |
s/maybe/may be/
MFC after: 3 days
|
172803 |
19-Oct-2007 |
ru |
cached -> nscd
|
172498 |
09-Oct-2007 |
obrien |
Mdoc fix.
Submitted by: ru Approved by: re(implicit)
|
172495 |
09-Oct-2007 |
obrien |
Correct lib name.
Submitted by: ru Approved by: re(kensmith)
|
172491 |
09-Oct-2007 |
obrien |
Repo copy libpthreads to libkse. This introduces the WITHOUT_LIBKSE nob, and changes WITHOUT_LIBPTHREADS to mean with neither threading libs. Approved by: re(kensmith)
|
172399 |
01-Oct-2007 |
ru |
The shell_1_sh test was failing with "make -jX".
Approved by: re (kensmith)
|
172398 |
01-Oct-2007 |
ru |
MK_LIBTHR was misspelled.
Approved by: re (kensmith)
|
171994 |
27-Aug-2007 |
remko |
Add WITHOUT_ZONEINFO to the build options and regenerate src.conf.5
Reminded by: ceri Approved by: re (bmah) Approved by: imp (mentor)
|
171493 |
19-Jul-2007 |
bz |
Make clear that WITHOUT_TOOLCHAIN cannot be applied to build targets.
PR: 114220 Reviewed by: simon Approved by: re (hrs)
|
170644 |
13-Jun-2007 |
sepotvin |
Options spring cleanup: - Add and document the KVM and KVM_SUPPORT options that are needed for the ifmcstats(3) makefile - Garbage collect unused variables - Add missing inclusion of bsd.own.mk where needed
Approved by: kan (mentor) Reviewed by: ru
|
169724 |
19-May-2007 |
kan |
Introduce WITHOUT_SSP option that allows users to exclude LGPLed libssp from the build.
|
169649 |
17-May-2007 |
deischen |
Add a description for the WITHOUT_SYMVER option.
|
168409 |
06-Apr-2007 |
pjd |
Connect ZFS to the build.
|
167452 |
11-Mar-2007 |
rafan |
Add ncursesw, libelf, and libalias profiling libraries
Approved by: delphij (mentor)
|
166389 |
01-Feb-2007 |
rafan |
Remove old libmytinfo link.
Approved by: delphij (mentor) Requested by: ache
|
166255 |
26-Jan-2007 |
delphij |
Replace the GNU gzip with a slightly modified NetBSD gzip. The NetBSD version is a feature-to-feature re-implementation of GNU gzip using the freely-redistributable zlib and this version is expected to be mostly bug-to-bug compatible with the GNU implementation.
- Because this is a piece of mature code and we want to make changes so it is added directly rather than importing to src/contrib. - Connect newly added code to src/usr.bin/ and rescue/rescue build. - Disconnect the GNU gzip code from build for now, they will be eventually removed completely. - Provide two new src.conf(5) knobs, WITHOUT_BZIP2_SUPPORT and WITHOUT_BZIP2.
Tested by: kris (full exp-7 pointyhat build) Approved by: core (importing a 4-clause BSD licensed file) Approved by: re (adding new utility during -HEAD code slush)
|
164662 |
27-Nov-2006 |
yar |
/usr/sbin/faithd is an INET6-specific tool, and now it won't be built if MK_INET6 is "no", so add it to the MK_INET6 block.
PR: bin/100805 (audit-trail)
|
163861 |
01-Nov-2006 |
jb |
Add a build option to support WITH_CDDL and WITHOUT_CDDL, defaulting to WITH_CDDL.
This option enables building code that is licensed under Sun's CDDL. The DTrace code is licensed that way, so by default it will get built unless the WITHOUT_CDDL option is used.
There is another build toggle, NO_CTF, which turns off execution of ctfconvert and ctfmerge in sys.mk, but this can't be implemented as WITH_/WITHOUT because bsd.own.mk isn't included in all Makefiles and sys.mk is included automatically by make.
|
162846 |
30-Sep-2006 |
ru |
Removed libc_r build support.
|
162215 |
11-Sep-2006 |
ru |
Document the new know, WITHOUT_ASSERT_DEBUG.
|
162214 |
11-Sep-2006 |
ru |
- Utilize the "showconfig" top-level target. - Pass __MAKE_CONF=/dev/null to get a pristine output.
|
160855 |
31-Jul-2006 |
yar |
Tell the bitter truth that WITHOUT_GNU and WITHOUT_PAM don't have any effect now.
|
160851 |
31-Jul-2006 |
yar |
Document some more src.conf(5) options: WITHOUT_GNU, WITHOUT_NS_CACHING, WITHOUT_PAM.
Noticed by: src/tools/build/options/makeman
|
160850 |
31-Jul-2006 |
yar |
Actually skip over undocumented options with "continue" to avoid artifacts in the manpage generated. Previously an orphaned paragraph on dependencies of such an option would appear.
|
160808 |
29-Jul-2006 |
yar |
Extend the MK_INET6 section by rescue/ping6 and the manpages.
|
160777 |
28-Jul-2006 |
yar |
Populate the MK_INET6 block.
|
158758 |
20-May-2006 |
trhodes |
Switch value back to values.
Requested by: ru
|
158687 |
17-May-2006 |
phk |
Send the pcvt(4) driver off to retirement.
|
158660 |
16-May-2006 |
trhodes |
Some minor wording/description changes.
Reviewed by: ru (two months ago)
|
158212 |
01-May-2006 |
netchild |
Add profile libs.
Submitted by: Pawel Worach <pawel.worach@gmail.com>
|
157717 |
13-Apr-2006 |
ru |
Implications are auto-generated.
|
157439 |
03-Apr-2006 |
netchild |
Milosz (sorry for not using the right 'l', it will not display corretly in the commit log) submitted support for some NO_* knobs for delete-old* and check-old. I converted it to the new WITHOUT_* knobs (more correctly: MK_*) and added some dummy ones so that people can see what's missing.
Volunteers can have a look at http://phk.freebsd.dk/misc/build_options/ for a list of files.
The location looks a little bit odd to me, but I don't care about the color of this bikeshed and follow the suggestion of our build infrastructure guru to place it "somewhere under src/tools/ please". [1] The build/mk/ directory looks more sane to me than the other ones there.
Submitted by: milosz.galazka@gmail.com Suggested by: ru [1]
|
157379 |
01-Apr-2006 |
phk |
Overlooked that src.conf was built from here.
|
156939 |
21-Mar-2006 |
ru |
Fix generation of '$FreeBSD$'.
|
156938 |
21-Mar-2006 |
ru |
Slightly better description.
|
156937 |
21-Mar-2006 |
ru |
A tool to generate the src.conf(5) manpage.
|
156932 |
21-Mar-2006 |
ru |
Prepare to autogenerate the src.conf(5) manpage.
|
146261 |
16-May-2005 |
ru |
Make <runefile.h> internal to libc.
Suggested by: phantom
|
143044 |
02-Mar-2005 |
ru |
Add hacks that I use to test cross-builds (by building on native and foreign architectures and comparing products). They eliminate most of the differences caused by different object directory paths, timestamping, and identification.
(Note WORLDTMP was renamed to ${OBJTREE}${.CURDIR}/tmp.)
|
142683 |
27-Feb-2005 |
ru |
Bootstrap gencat(1).
OK'ed by: phantom
|
142640 |
27-Feb-2005 |
ru |
As threatened, drop support for source upgrades from pre-5.3.
Inspired by: obrien
|
142582 |
26-Feb-2005 |
ru |
Make the format of LC_CTYPE files architecture independent by introducing the disk formats for _RuneLocale and friends.
The disk formats do not have (useless) pointers and have 32-bit quantities instead of rune_t and long. (htonl(3) only works with 32-bit quantities, so there's no loss).
Bootstrap mklocale(1) when necessary. (Bootstrapping from 4.x would be trivial (verified), but we no longer provide pre-5.3 source upgrades and this is the first commit to actually break it.)
|
138515 |
07-Dec-2004 |
harti |
Fix builds with a read-only directory and a make upgrade. This is done by forcing the creation of an object directory for the make regression tests. Let make handle the tracking of the dependency and installation of test_shell script.
Submitted by: ru
|
138432 |
06-Dec-2004 |
ru |
Make this work under debugging, e.g., "make -dl".
|
138317 |
02-Dec-2004 |
harti |
Make the tests runnable on a read-only src. To do this you must make sure that you create one of the object directories make knows (see make(1)). This uses the -C flag, so add a test that checks that make actually accepts -C. Also fix the test that selects csh via the .SHELL target to work for tcsh users too.
This commit renames shell_test to shell_test.sh. There is no history to preserve so go without a repo-copy.
Reviewed by: ru
|
138227 |
30-Nov-2004 |
harti |
Chmod the shell testscript to be executable if it isn't already. According to the CVS-Meisters x-mode just happens to work, but is not guaranteed to do so. Try to be on the safe side.
|
138080 |
25-Nov-2004 |
harti |
Add some regression tests for the .SHELL target. I'm not sure that the output of shell_2j is actually correct - it just tests what make currently does. Make should switch on echoing for the second line, shouldn't it?
|
137587 |
11-Nov-2004 |
nik |
Switch over to a different, more flexible test output protocol that's understood by Perl's Test::Harness module and prove(1) commands.
Update README to describe the new protocol. The work's broken down into two main sets of changes.
First, update the existing test programs (shell scripts and C programs) to produce output in the ok/not ok format, and to, where possible, also produce a header describing the number of tests that are expected to be run.
Second, provide the .t files that actually run the tests. In some cases these are copies of, or very similar too, scripts that already existed. I've kept the old scripts around so that it's possible to verify that behaviour under this new system (in terms of whether or not a test fails) is identical to the behaviour under the old system.
Add a TODO file.
|
136842 |
23-Oct-2004 |
ru |
Add a regression test for the alternate shell specification.
|
133593 |
12-Aug-2004 |
harti |
Now that make more correctly handles variable assignments in .MAKEFLAGS targets enable the regression test for this.
|
133165 |
05-Aug-2004 |
harti |
Back out something I'm working on that crept in with the last commit.
Spotted by: ru
|
133164 |
05-Aug-2004 |
harti |
Remove extra spaces. Remove double quotes around error messages - they are not needed and will actually be printed.
Submitted by: ru
|
133161 |
05-Aug-2004 |
harti |
Add another test that checks for a working '+' command flag.
|
133109 |
04-Aug-2004 |
harti |
Add a regression test for the passing of command line variable assignments via the MAKEFLAGS environment variable.
|
126451 |
01-Mar-2004 |
ru |
Removed extraneous parentheses.
|
126344 |
28-Feb-2004 |
ache |
Add getopt_long.c if ${BOOTSTRAPPING} < 502104
|
126039 |
20-Feb-2004 |
ru |
Unbreak the upgrade path from 4.9 after removal of GNU getopt and <gnuregex.h>.
|
125227 |
30-Jan-2004 |
ru |
Add a test for what was broken in rev. 1.28 and fixed in rev. 1.29 of make/str.c.
|
125219 |
29-Jan-2004 |
ru |
Add a test for what was fixed in revs. 1.28 and 1.29 of make/str.c.
|
120676 |
02-Oct-2003 |
ru |
Fix a bug that prevented exists() from finding "foo/", "foo/." and "foo/.." when ".PATH: foo" was also given.
PR: bin/34062
|
117226 |
04-Jul-2003 |
ru |
Fixed broken arithmetic expression parser.
Reminded by: bde In memory of: alane
|
113508 |
15-Apr-2003 |
ru |
A version of <sys/endian.h> in RELENG_4 doesn't have 64-bit functions.
Spotted by: simokawa
|
113400 |
12-Apr-2003 |
ru |
Make sure legacy stuff comes last. Some tools that use legacy stuff (binutils) depend on this order.
For this to work, provide (and use) specialized versions of bsd.prog.mk and bsd.lib.mk that include the standard versions first, then augment CFLAGS, DPADD, LDADD, and LDFLAGS as necessary, with the legacy stuff.
Tested on: 4.0-RELEASE
|
113368 |
11-Apr-2003 |
ru |
libc_gen/basename.c depends on include/libgen.h.
|
113185 |
06-Apr-2003 |
imp |
-legacy and /.../legacy/... looks better than build or bootstrap in the logs, so use that instead.
Submitted by: obrien.
|
113157 |
06-Apr-2003 |
imp |
We can't use ${WORLDTMP}/usr/{include,lib} for the compat layer. This is because we populate these directories later, and a subsequent -DNOCLEAN build may fail. So, we put them in ${WORLDTMP}/build/usr/{include,lib} instead and adjust Makefile.boot.
Again, this works on -stable and -current, but might break older versions.
Submitted by: ru@
|
113156 |
06-Apr-2003 |
imp |
Don't need the gccism include_next since we won't create this file when a real sys/endian.h exists.
Submitted by: ru@
|
113136 |
05-Apr-2003 |
imp |
Migrate to a new way of dealing with building from old revisions of FreeBSD. This method attempts to centralize all the necessary hacks or work arounds in one of two places in the tree (src/Makefile.inc1 and src/tools/build). We build a small compatibility library (libbuild.a) as well as selectively installing necessary include files. We then include this directory when building host binaries.
This removes all the past release compatibilty hacks from various places in the tree. We still build on tip of stable and current. I will work with those that want to support more, although I anticipate it will just work.
Many thanks to ru@, obrien@ and jhb@ for providing valuable input at various stage of implementation, as well as for working together to positively effect a change for the better.
|
110654 |
10-Feb-2003 |
gad |
The regression-tests for 'make' *expect* to trigger make's warning: warning: duplicate script for target "double" ignored The regression-tests do try to hide that message, but the message does still appear when using -j (eg: 'make -j5 buildworld'). This changes the regression-test so the expected warning message will not be seen even when -j is specified.
Reviewed by: jmallett ru
|
107375 |
28-Nov-2002 |
ru |
Add a test for what was fixed in revisions 1.39 and 1.50 of make/parse.c (allow embedded `:' and `!' in target names).
Approved by: re
|
107374 |
28-Nov-2002 |
ru |
Moved make(1) regression tests from src/Makefile to where they belong (src/tools/regression/usr.bin/make), and use the latter to test if make(1) is adequate for building the world.
Approved by: re
|
105907 |
25-Oct-2002 |
jmallett |
Hide the test in <target> under '.if make(<target>)' so as to not get any errors/warnings related to crud in said test block.
|
100794 |
28-Jul-2002 |
jmallett |
As of revision 1.38 of make/parse.c, our make(1) will warn too. Note that this isn't just for the sake of testing behaviour, and that things really do break if this regression occurs.
|
98461 |
20-Jun-2002 |
jmallett |
Grrr, make the test for embedded variables in the left-hand-side actually do the right thing in every case. Yuck.
|
98442 |
19-Jun-2002 |
jmallett |
Add a test for what was fixed in revision 1.27 and 1.28 of make(1)'s var.c, expansion of embedded variables in the left-hand-side of an assignment expression, using the simplest case - hiding recursion using nil-expanded variables.
|
96070 |
05-May-2002 |
jmallett |
Add a regression test for bin/5297, regarding sysv substitution with a nil left-hand-side.
|
95538 |
27-Apr-2002 |
jmallett |
Prefix tests with PASS and FAIL, to make grepping easier, and note this in the README.
This affects only the base-system regression tests, of course.
|
95167 |
21-Apr-2002 |
jmallett |
Check to see if make(1)'s handling of doubly-defined targets is busted or not. A lot relies on this.
|
95158 |
20-Apr-2002 |
jmallett |
Add a test of variable evaluation and substitution for make(1), as a start of tests for it.
|