aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ow_temp: better scopes for the lockAndriy Gapon2019-10-251-3/+3
| | | | | | | | | | | | | | The lock is used only for start / stop signaling. It is used only for 'flags' field and the related condition variable. This change is a follow-up to r354067, it was suggested by Warner in D22107. Suggested by: imp MFC after: 1 week Notes: svn path=/head/; revision=354068
* ow_temp: drop the lock around a call that can sleepAndriy Gapon2019-10-251-0/+2
| | | | | | | | | | | | This is similar to what is done around other calls that lead to own_command_wait() that can sleep. Reviewed by: imp MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D22107 Notes: svn path=/head/; revision=354067
* gpioiic: set output after switching to output mode if presetting it failedAndriy Gapon2019-10-251-25/+33
| | | | | | | | | | | | | | | | | | | | | Some controllers cannot preset future output value while the pin is in input mode. This adds a fallback for those controllers. The new code assumes that a controller reports an error in that case. For example, all hardware supported by nctgpio behaves in that way. This is a temporary measure. In the future we will use GPIO_PIN_PRESET_LOW / GPIO_PIN_PRESET_HIGH to preset the output either in hardware, if supported, or in software (e.g., in gpiobus_pin_setflags). While here, I extracted common functionality of gpioiic_set{sda,scl} and gpioiic_get{sda,scl} to gpioiic_setpin and gpioiic_getpin respectively. MFC after: 2 weeks Notes: svn path=/head/; revision=354065
* zfs.8: fix a typo in the dateAndriy Gapon2019-10-251-1/+1
| | | | | | | | Reported by: Trond Endrestøl <trond.endrestol@ximalas.info> MFC after: 3 days Notes: svn path=/head/; revision=354062
* binutils: Fix bugs found by -Wpointer-compareBrooks Davis2019-10-242-2/+2
| | | | | | | | | | | | | | | The MIPS bug was introduced by upstream commit 7403cb630, which failed to account for the additional indirection introduced and also dropped one of the checks; change it to the standard "NULL-or-empty" check as used elsewhere in BFD, which is also what upstream now has. Submitted by: James Clarke <jrtc27@jrtc27.com> Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21911 Notes: svn path=/head/; revision=354057
* Catch up with ACPICA 20191018.Jung-uk Kim2019-10-242-8/+7
| | | | | | | | PR: 241467 XMFC with: r353764 Notes: svn path=/head/; revision=354056
* Guard reference to x86_hypervisorSimon J. Gerraty2019-10-241-0/+2
| | | | | | | | | | Obviously we only want x86_hypervisor on x86 Guard reference to x86_hypervisor Obviously we only want x86_hypervisor on x86 Notes: svn path=/head/; revision=354055
* nda(4): Remove unnecessary union and avoid Clang -Wsizeof-array-divwarningBrooks Davis2019-10-241-9/+7
| | | | | | | | | | | | | | | | | | Clang trunk recently gained this new warning, and complains about the sizeof(trim->data) / sizeof(struct nvme_dsm_range) expression, since the left hand side's element type (char) does not match the right hand side's type. The byte buffer is unnecessary so we can remove it to clean up the code and fix the warning at the same time. No functional change. Submitted by: James Clarke <jrtc27@jrtc27.com> Reviewed by: imp Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21912 Notes: svn path=/head/; revision=354054
* frag6: prevent overwriting initial fragoff=0 packet meta-data.Bjoern A. Zeeb2019-10-244-2/+378
| | | | | | | | | | | | | | | | | | | | | | | | When we receive the packet with the first fragmented part (fragoff=0) we remember the length of the unfragmentable part and the next header (and should probably also remember ECN) as meta-data on the reassembly queue. Someone replying this packet so far could change these 2 (3) values. While changing the next header seems more severe, for a full size fragmented UDP packet, for example, adding an extension header to the unfragmentable part would go unnoticed (as the framented part would be considered an exact duplicate) but make reassembly fail. So do not allow updating the meta-data after we have seen the first fragmented part anymore. The frag6_20 test case is added which failed before triggering an ICMPv6 "param prob" due to the check for each queued fragment for a max-size violation if a fragoff=0 packet was received. MFC after: 3 weeks Sponsored by: Netflix Notes: svn path=/head/; revision=354053
* Use THREAD_CAN_SLEEP() macro to check if thread can sleep. There is noGleb Smirnoff2019-10-242-2/+2
| | | | | | | | | functional change. Discussed with: kib Notes: svn path=/head/; revision=354052
* After the unlink() of one name of a file with multiple links, aKirk McKusick2019-10-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | stat() of one of the remaining names of the file does not show an updated ctime (inode modification time) until several seconds after the unlink() completes. The problem only occurs when the filesystem is running with soft updates enabled. When running with soft updates, the ctime is not updated until the soft updates background process has settled all the needed I/O operations. This commit causes the ctime to be updated immediately during the unlink(). A side effect of this change is that the ctime is updated again when soft updates has finished its processing because that is the time that is correct from the perspective of programs that look at the disk (like dump). This change does not cause any extra I/O to be done, it just ensures that stat() updates the ctime before handing it back. PR: 241373 Reported by: Alan Somers Tested by: Alan Somers MFC after: 3 days Sponsored by: Netflix Notes: svn path=/head/; revision=354050
* frag6: handling of overlapping fragments to conform to RFC 8200Bjoern A. Zeeb2019-10-241-0/+6
| | | | | | | | | | | | | | | | While the comment was updated in r350746, the code was not. RFC8200 says that unless fragment overlaps are exact (same fragment twice) not only the current fragment but the entire reassembly queue for this packet must be silently discarded, which we now do if fragment offset and fragment length do not match. Obtained from: jtl MFC after: 3 weeks Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D16850 Notes: svn path=/head/; revision=354046
* frag6 test cases: check more counters, wait for expiryBjoern A. Zeeb2019-10-2423-32/+275
| | | | | | | | | | | | | | | | | | | | | | | | When done with tests check that both the per-VNET and the global-fragmented- packets-in-system counters are zero to make sure we do not leak counters or queue entries. This implies that for all test cases we either have to check for the ICMPv6 packet sent in case of TLL=0 expiry (if it is sent) or sleep at least long enough for the TTL to expire for all packets (e.g., fragments where we do not have the off=0 packet). This also means that statistics are now updated to include all the expired packets. There are cases when we do not check for counters to be zero and this is when testing VNET teardown to behave properly and not panic, when we are intentionally leaving fragments in the system. MFC after: 3 weeks Sponsored by: Netflix Notes: svn path=/head/; revision=354045
* Ensure that the flags indicating IPv4/IPv6 are not changed by failingMichael Tuexen2019-10-243-11/+95
| | | | | | | | | | | | | | | bind() calls. This would lead to inconsistent state resulting in a panic. A fix for stable/11 was committed in https://svnweb.freebsd.org/base?view=revision&revision=338986 An accelerated MFC is planned as discussed with emaste@. Reported by: syzbot+2609a378d89264ff5a42@syzkaller.appspotmail.com Obtained from: jtl@ MFC after: 1 day Sponsored by: Netflix, Inc. Notes: svn path=/head/; revision=354044
* Add support for hypervisor check on x86Simon J. Gerraty2019-10-249-59/+157
| | | | | | | | | | | | | | Add ficl words for isvirtualized and move ficl inb and outb words to ficl/x86/sysdep.c so can be shared by i386 and amd64 Reviewed by: imp bdrewery MFC after: 1 week Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org/D22069 Notes: svn path=/head/; revision=354043
* frag6: export another counter read-only by sysctlBjoern A. Zeeb2019-10-241-0/+4
| | | | | | | | | | | | | | Similar to the system global counter also export the per-VNET counter "frag6_nfragpackets" detailing the current number of fragment packets in this VNET's reassembly queues. The read-only counter is helpful for in-VNET statistical monitoring and for test-cases. MFC after: 3 weeks Sponsored by: Netflix Notes: svn path=/head/; revision=354042
* frag6: fix counter leak in error case and optimise codeBjoern A. Zeeb2019-10-241-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | In case the first fragmented part (off=0) arrives we check for the maximum packet size for each fragmented part we already queued with the addition of the unfragmentable part from the first one. For one we do not have to enter the loop at all if this is the first fragmented part to arrive, and we can skip the check. Should we encounter an error case we send an ICMPv6 message for any fragment exceeding the maximum length limit. While dequeueing the original packet and freeing it, statistics were not updated and leaked both the reassembly queue count for the fragment and the global fragment count. Found by code inspection and confirmed by tightening test cases checking more statistical and system counters. While here properly wrap a line. MFC after: 3 weeks Sponsored by: Netflix Notes: svn path=/head/; revision=354040
* Allow loader.efi to identify non-standard boot setupSimon J. Gerraty2019-10-241-0/+1
| | | | | | | | | | | PATH_BOOTABLE_TOKEN can be set to a non-standard path that identifies a device as bootable. Reviewed by: kevans, bcran Differential Revision: https://reviews.freebsd.org/D22062 Notes: svn path=/head/; revision=354039
* Initialize verbosity and debug level from envSimon J. Gerraty2019-10-242-4/+25
| | | | | | | | | | | | | For EFI at least, we can seed the environment with VE_VERBOSE etc. Reviewed by: stevek imp Sponsored by: Juniper Networks MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D22135 Notes: svn path=/head/; revision=354038
* frag6.c: do not leak packet queue entry in error caseBjoern A. Zeeb2019-10-241-2/+20
| | | | | | | | | | | | | | | When we are checking for the maximum reassembled packet size of the fragmentable part and run into the error case (packet too big), we are leaking the packet queue enntry if this was a first fragment to arrive. Properly cleanup, removing the queue entry from the bucket, decrementing counters, and freeing the memory. MFC after: 3 weeks Sponsored by: Netflix Notes: svn path=/head/; revision=354037
* Soft updates needs to keep an on-disk linked list of inodes thatKirk McKusick2019-10-241-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | have been unlinked, but are still referenced by open file descriptors. These inodes cannot be freed until the final file descriptor reference has been closed. If the system crashes while they are still being referenced, these inodes and their referenced blocks need to be freed by fsck. By having them on a linked list with the head pointer in the superblock, fsck can quickly find and process them rather than having to check every inode in the filesystem to see if it is unreferenced. When updating the head pointer of this list of unlinked inodes in the superblock, the superblock check-hash was not getting updated. If the system crashed with the incorrect superblock check-hash, the superblock would appear to be corrupted. This patch ensures that the superblock check-hash is updated when updating the head pointer of the unlinked inodes list. There is no need to MFC as superblock check hashes first appeared in 13.0. Tested by: Peter Holm Sponsored by: Netflix Notes: svn path=/head/; revision=354036
* Add a tunable to set the pgcache zone's maxcacheAndrew Gallatin2019-10-241-2/+4
| | | | | | | | | | | | | | | | | | When it is set to 0 (the default), a heavy Netflix-style web workload suffers from heavy lock contention on the vm page free queue called from vm_page_zone_{import,release}() as the buckets are frequently drained. When setting the maxcache, this contention goes away. We should eventually try to autotune this, as well as make this zone eligable for uma_reclaim(). Reviewed by: alc, markj Not Objected to by: jeff Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D22112 Notes: svn path=/head/; revision=354029
* Use a counter with a random base for explicit IVs in GCM.John Baldwin2019-10-241-19/+28
| | | | | | | | | | | | | | This permits constructing the entire TLS header in ktls_frame() rather than ktls_seq(). This also matches the approach used by OpenSSL which uses an incrementing nonce as the explicit IV rather than the sequence number. Reviewed by: gallatin Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D22117 Notes: svn path=/head/; revision=354028
* frag6: leave a note about upper layer header checks TBDBjoern A. Zeeb2019-10-241-1/+12
| | | | | | | | | | | | | | Per sepcification the upper layer header needs to be within the first fragment. The check was not done so far and there is an open review for related work, so just leave a note as to where to put it. Move the extraction of frag offset up to this as it is needed to determine whether this is a first fragment or not. MFC after: 3 weeks Sponsored by: Netflix Notes: svn path=/head/; revision=354020
* frag6: check global limits before hash and lockBjoern A. Zeeb2019-10-241-10/+11
| | | | | | | | | | | | | | | Check whether we are accepting more fragments (based on global limits) before doing expensive operations of calculating the hash and taking the bucket lock. This slightly increases a "race" between check time and incrementing counters (which is already there) possibly allowing a few more fragments than the maximum limits. However, when under attack, we rather save this CPU time for other packets/work. MFC after: 3 weeks Sponsored by: Netflix Notes: svn path=/head/; revision=354019
* Store a handle for the event handler. This will be used when unloading theMichael Tuexen2019-10-242-2/+3
| | | | | | | | | SCTP as a module. Obtained from: markj@ Notes: svn path=/head/; revision=354018
* frag6: small improvementsBjoern A. Zeeb2019-10-241-6/+5
| | | | | | | | | | | | | | | Rather than walking the mbuf chain manually use m_last() which doing exactly that for us. Defer initializing srcifp for longer as there are multiple exit paths out of the function which do not need it set. Initialize before taking the lock though. Rename the mtx lock to match the type better. MFC after: 3 weeks Sponsored by: Netflix Notes: svn path=/head/; revision=354017
* frag6: remove IP6_REASS_MBUF macroBjoern A. Zeeb2019-10-241-16/+11
| | | | | | | | | | | | | The IP6_REASS_MBUF() macro did some pointer gynmastics to end up with the same type as it gets in [*(cast **)&]. Spelling it out instead saves all this and makes the code more readable and less obfuscated directly using the structure field. MFC after: 3 weeks Sponsored by: Netflix Notes: svn path=/head/; revision=354016
* userboot/test should use PRIx64 as one would expect from prefix 0xToomas Soome2019-10-241-1/+1
| | | | | | | Test is printing decimal value after prefix 0x. Notes: svn path=/head/; revision=354015
* Fix a small bug in bbr when running under a VM. Basically whatRandall Stewart2019-10-241-3/+9
| | | | | | | | | | | | | | | happens is we are more delayed in the pacer calling in so we remove the stack from the pacer and recalculate how much time is left after all data has been acknowledged. However the comparision was backwards so we end up with a negative value in the last_pacing_delay time which causes us to add in a huge value to the next pacing time thus stalling the connection. Reported by: vm2.finance@gmail.com Notes: svn path=/head/; revision=354013
* powerpc/booke: Simplify the MPC85XX PCIe root complex driverJustin Hibbits2019-10-242-140/+15
| | | | | | | | | | | | | | | | | | | | Summary: Due to bugs in the enumeration code, fsl_pcib_init() was not configuring sub-bridges properly, so devices hanging off a separate bridge would not be found. Since the generic PCI code already supports probing child buses, just delete this code and initialize only the device itself, letting the generic code handle all the additional probing and initializing. This also deletes setup for some PCI peripherals found on some MPC85XX evaluation boards. The code can be resurrected if needed, but overly complicated this code in the first place. Reviewed by: bdragon Differential Revision: https://reviews.freebsd.org/D22050 Notes: svn path=/head/; revision=354005
* iflib: call ether_ifdetach and netmap_detach before stopEric Joyner2019-10-231-8/+24
| | | | | | | | | | | | | | | | | | | | | From Jake: Calling ether_ifdetach after iflib_stop leads to a potential race where a stale ifp pointer can remain in the route entry list for IPv6 traffic. This will potentially cause a page fault or other system instability if the ifp pointer is accessed. Move both iflib_netmap_detach and ether_ifdetach to be called prior to iflib_stop. This avoids the race above, and helps ensure that other ifp references are removed before stopping the interface. Submitted by: Jacob Keller <jacob.e.keller@intel.com> Reviewed by: erj@, gallatin@, jhb@ MFC after: 3 days Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D22071 Notes: svn path=/head/; revision=353967
* frag6: add "big picture"Bjoern A. Zeeb2019-10-231-5/+22
| | | | | | | | | | | | | | Add some ASCII relation of how the bits plug together. The terminology difference of "fragmented packets" and "fragment packets" is subtle. While here clear up more whitespace and comments. No functional change. MFC after: 3 weeks Sponsored by: Netflix Notes: svn path=/head/; revision=353966
* frag6: replace KAME hand-rolled queues with queue(9) TAILQsBjoern A. Zeeb2019-10-232-170/+94
| | | | | | | | | | | | | | | | | | | | | Remove the KAME custom circular queue for fragments and fragmented packets and replace them with a standard TAILQ. This make the code a lot more understandable and maintainable and removes further hand-rolled code from the the tree using a standard interface instead. Hide the still public structures under #ifdef _KERNEL as there is no use for them in user space. The naming is a bit confusing now as struct ip6q and the ip6q[] buckets array are not the same anymore; sadly struct ip6q is also used by the MAC framework and we cannot rename it. Submitted by: jtl (initally) MFC after: 3 weeks Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D16847 (jtl's original) Notes: svn path=/head/; revision=353965
* Modify release_page() to handle a missing fault page.Mark Johnston2019-10-231-5/+7
| | | | | | | | | | | | | | | r353890 introduced a case where we may call release_page() with fs.m == NULL, since the fault handler may now lock the vnode prior to allocating a page for a page-in. Reported by: jhb Reviewed by: kib MFC with: r353890 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22120 Notes: svn path=/head/; revision=353964
* frag6: whitespace changesBjoern A. Zeeb2019-10-231-6/+5
| | | | | | | | | | | Remove trailing white space, add a blank line, and compress a comment. No functional changes. MFC after: 10 days Sponsored by: Netflix Notes: svn path=/head/; revision=353963
* arm64: enable options NUMA in GENERICEd Maste2019-10-231-0/+1
| | | | | | | | | | | | | | | | | | As with amd64 NUMA is required for reasonable operation on big-iron arm64 systems and is expected to have no significant impact on small systems. Enable it now for wider testing in advance of FreeBSD 13.0. You can use the 'vm.ndomains' sysctl to see if multiple domains are in use - for example (from Cavium/Marvell ThunderX2): # sysctl vm.ndomains vm.ndomains: 2 No objection: manu Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=353962
* exit requires stdlib.h to be included to use.Warner Losh2019-10-231-0/+1
| | | | | | | | FreeBSD 10.3 requires this, and dtc is a bootstrap tool so it needs to compile there. Notes: svn path=/head/; revision=353961
* amd64 pmap: per-domain pv chunk listMateusz Guzik2019-10-231-57/+121
| | | | | | | | | | | | This significantly reduces contention since chunks get created and removed all the time. See the review for sample results. Reviewed by: kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21976 Notes: svn path=/head/; revision=353960
* amd64: Add CFI directives for libc syscall stubsConrad Meyer2019-10-231-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No functional change (in program code). Additional DWARF metadata is generated in the .eh_frame section. Also, it is now a compile-time requirement that machine/asm.h ENTRY() and END() macros are paired. (This is subject to ongoing discussion and may change.) This DWARF metadata allows llvm-libunwind to unwind program stacks when the program is executing the function. The goal is to collect accurate userspace stacktraces when programs have entered syscalls. (The motivation for "Call Frame Information," or CFI for short -- not to be confused with Control Flow Integrity -- is to sufficiently annotate assembly functions such that stack unwinders can unwind out of the local frame without the requirement of a dedicated framepointer register; i.e., -fomit-frame-pointer. This is necessary for C++ exception handling or collecting backtraces.) For the curious, a more thorough description of the metadata and some examples may be found at [1] and documentation at [2]. You can also look at 'cc -S -o - foo.c | less' and search for '.cfi_' to see the CFI directives generated by your C compiler. [1]: https://www.imperialviolet.org/2017/01/18/cfi.html [2]: https://sourceware.org/binutils/docs/as/CFI-directives.html Reviewed by: emaste, kib (with reservations) Differential Revision: https://reviews.freebsd.org/D22122 Notes: svn path=/head/; revision=353959
* libthr: Add missing END() directive for umtx_op_err (amd64)Conrad Meyer2019-10-231-2/+5
| | | | | | | | | Like r353929, related to D22122. No functional change. Reviewed by: emaste, kib (earlier version both) Notes: svn path=/head/; revision=353958
* Check for bogus_page in vnode_pager_generic_getpages_done().Mark Johnston2019-10-231-0/+2
| | | | | | | | | | | | | | | We now assert that a page is busy when updating its validity-tracking state, but bogus_page is not busied during a getpages operation. Reported by: syzkaller Reviewed by: alc, kib Discussed with: jeff MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22124 Notes: svn path=/head/; revision=353957
* Verify identity after checking for WAITFAIL in vm_page_busy_acquire().Mark Johnston2019-10-231-1/+3
| | | | | | | | | | | | | | A caller that does not guarantee that a page's identity won't change while sleeping for a busy lock must specify either NOWAIT or WAITFAIL. Reported by: syzkaller Reviewed by: alc, kib Discussed with: jeff Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22124 Notes: svn path=/head/; revision=353956
* Add missing M_NOWAIT flagRyan Stone2019-10-231-2/+5
| | | | | | | | | | | | | | | | | | | | | | The LinuxKPI linux_dma code calls PCTRIE_INSERT with a mutex held, but does not set M_NOWAIT when allocating nodes, leading to a potential panic. All of this code can handle an allocation failure here, so prefer an allocation failure to sleeping on memory. Also fix a related case where NOWAIT/WAITOK was not specified. In this case it's not clear whether sleeping is allowed so be conservative and assume not. There are a lot of other paths in this code that can fail due to a lack of memory anyway. Differential Revision: https://reviews.freebsd.org/D22127 Reviewed by: imp Sponsored by: Dell EMC Isilon MFC After: 1 week Notes: svn path=/head/; revision=353938
* Build toolchain components as dynamically linked executables by defaultDimitry Andric2019-10-232-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Summary: Historically, we have built toolchain components such as cc, ld, etc as statically linked executables. One of the reasons being that you could sometimes save yourself from botched upgrades, by e.g. recompiling a "known good" libc and reinstalling it. In this day and age, we have boot environments, virtual machine snapshots, cloud backups, and other much more reliable methods to restore systems to working order. So I think the time is ripe to flip this default, and link the toolchain components dynamically, just like almost all other executables on FreeBSD. Maybe at some point they can even become PIE executables by default! :) Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D22061 Notes: svn path=/head/; revision=353937
* Bump clang's default target CPU for the i386 architecture (aka "x86") toDimitry Andric2019-10-231-2/+3
| | | | | | | | | | | 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 Notes: svn path=/head/; revision=353936
* Set OBJ_NOSPLIT on the ksyms(4) VM object.Mark Johnston2019-10-231-1/+4
| | | | | | | | | | | | | The object does not provide anonymous memory. Reported by: kib Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22123 Notes: svn path=/head/; revision=353935
* Prevent a panic when a driver provides bogus debugnet parametersConrad Meyer2019-10-231-0/+9
| | | | | | | | | | | | This is just a bandaid; we should fix the driver(s) too. Introduced in r353685. PR: 241403 X-MFC-With: r353685 Reported by: np and others Notes: svn path=/head/; revision=353934
* Slightly expand description of WITH_SHARED_TOOLCHAIN, add aDimitry Andric2019-10-233-55/+76
| | | | | | | | | | corresponding WITHOUT_SHARED_TOOLCHAIN description, and regenerate src.conf(5). MFC after: 3 days Notes: svn path=/head/; revision=353933
* Strip "sf" suffix when generating a target triple.John Baldwin2019-10-231-2/+2
| | | | | | | | | | | This fixes the target triple used when compiling riscv64sf with clang. Discussed with: mhorne MFC after: 2 weeks Sponsored by: DARPA Notes: svn path=/head/; revision=353932