Tomohiro Kusumi [Thu, 5 Nov 2015 16:24:27 +0000 (01:24 +0900)]
sys/kern/vfs: Fix wrong function name in panic()
Tomohiro Kusumi [Thu, 5 Nov 2015 13:35:03 +0000 (22:35 +0900)]
sys/kern/vfs: Fix wrong function name in kprintf/panic
ae8e83e6e in 2009 renamed biodone() to bpdone(), and made
bpdone() to be called by the new biodone() implementation
as well as other callers, but the function names used in
kprintf() and panic() were not updated to "bpdone:".
bpdone() isn't exclusively used by biodone(), so it should
use a proper function name.
Tomohiro Kusumi [Wed, 4 Nov 2015 14:10:48 +0000 (23:10 +0900)]
sys/dev/disk/dm: Cleanups
minor fix and typos.
Tomohiro Kusumi [Wed, 4 Nov 2015 13:41:09 +0000 (22:41 +0900)]
sys/dev/disk/dm: Remove redundant kprintf in dm strategy
Having two kprintf("------...\n"); before and after debug
messages is redundant since they mostly end up printing
two consecutive lines. One of them could be removed.
Tomohiro Kusumi [Tue, 3 Nov 2015 14:25:40 +0000 (23:25 +0900)]
sys/vfs/hammer: Add HAMMER_ITOB() macro
to hide explicit cast from C code so the impact will be small
on possible data structure change. No change in binary.
Sepherosa Ziehau [Fri, 6 Nov 2015 08:04:16 +0000 (16:04 +0800)]
uipc: Use token for rights counting
This is mainly used to avoid races stemming from f_msgcount accessing
w/o unp_spin.
Sepherosa Ziehau [Fri, 6 Nov 2015 01:56:26 +0000 (09:56 +0800)]
uipc: Factor out unp_{add,del}_right()
John Marino [Thu, 5 Nov 2015 11:22:17 +0000 (12:22 +0100)]
compilers.conf: nextclang => clangnext
After thinking about it, we want to keep the clang compilers starting
with "clang" so that make can filter for it, e.g. ".if ${CC:Mclang*}".
John Marino [Thu, 5 Nov 2015 10:59:19 +0000 (11:59 +0100)]
compilers.conf: Add the two latest clangs to options
This adds "clang37" and "nextclang" defaults to compilers.conf.
Note that nextclang has a new port: devel/llvm-devel. In fact
lang/clang37 is just a metaport that builds devel/llvm37.
"nextclang" will change over time. Currently it's the precursor to
clang38, but once llvm3.8 is released, it will become the precursor
to clang 3.9 (or whatever comes after 3.8)
Sepherosa Ziehau [Thu, 5 Nov 2015 01:43:28 +0000 (09:43 +0800)]
uipc: Consolidate unp_drop()
And unlink unp from the global unp list in unp_drop(); this is intended
to address following problems:
- Detached unps are listed by netstat/sockstat.
- Unp can not be referenced during unp global list iteration.
Sascha Wildner [Wed, 4 Nov 2015 18:58:25 +0000 (19:58 +0100)]
Put finishing touches on libexecinfo import.
* Bump date to when it was imported.
* Fix a typo in a function name.
* Since libelf is an internal library in DragonFly, comment out
references to its manual page.
* Fix the .Lb libexecinfo.
* Make libexecinfo usable in DPADD=... in Makefiles.
Sascha Wildner [Wed, 4 Nov 2015 18:19:06 +0000 (19:19 +0100)]
hammer.8: Use full month name in .Dd
John Marino [Wed, 4 Nov 2015 17:58:21 +0000 (18:58 +0100)]
ftp(1): Complete upgrade from 7 JUN 2014 to 10 OCT 2015
The source for ntftp has changed from cvs of NetBSD's repository to the
tarballs that NetBSD formally releases. These releases also form the
basis of the ftp/tnftp dport.
John Marino [Wed, 4 Nov 2015 17:54:12 +0000 (18:54 +0100)]
contrib/tnftp: Add back what's left of local modifications
Most of the big modification to fetch.c added by dillon is already
present in the source. The only thing that remained was pre-processing
out the use of popen in all cases.
The other two small patches have been carried for years.
John Marino [Wed, 4 Nov 2015 18:16:44 +0000 (19:16 +0100)]
Merge branch 'vendor/TNFTP'
John Marino [Wed, 4 Nov 2015 17:22:36 +0000 (18:22 +0100)]
contrib/tnftp: Delete entire contents prior to merge
Due to a file hierarchy change, merging with the vendor branch will
very difficult. It's easier to wipe everything and resync to the
vendor branch manually (auto-merge will fail everywhere). I've
the local modifications although half of them are cruft from various
upgrades.
John Marino [Wed, 4 Nov 2015 16:54:26 +0000 (17:54 +0100)]
Vendor branch: Upgrade from CVS (7 JUN 2014) to release (
20151004)
Since 2006, DragonFly has synced with NetBSD's TNFTP program using CVS.
This isn't necessary; NetBSD actually publishes releases. Let's move
over to the release tarballs from this point forward.
The file hierarchy changes as a result; the sources files in the tarball
are located in the "src" subdirectory.
John Marino [Wed, 4 Nov 2015 16:08:01 +0000 (17:08 +0100)]
locales: Remove two more aliases (ja_JP.eucjp and en_US.ISO-8859-1)
There was an earlier effort to define common locales (arising from
Linux's case-and-hyphen insensitivity) and they were going to be
removed when our locale handling followed Linux behavior, but it was
decided that we would and should not follow Linux's example.
Since then and through collaborative discussions with FreeBSD, it
was decided these common-but-incorrect-for-BSD aliases should not
continue. FreeBSD will never get them and I'm removing ours.
John Marino [Wed, 4 Nov 2015 15:50:49 +0000 (16:50 +0100)]
libdialog: Complete upgrade v1.2-
20121230 => v1.2-
20150920
John Marino [Wed, 4 Nov 2015 15:56:22 +0000 (16:56 +0100)]
Merge branch 'vendor/DIALOG'
John Marino [Wed, 4 Nov 2015 15:31:33 +0000 (16:31 +0100)]
contrib/dialog: Delete entire contents
There is a vendor/DIALOG branch which is supposed to feed in the
contents of the contrib/dialog directory via a vendor branch merge.
It was never merged though. The contents of vendor/DIALOG are just
a copy of the vendor/branch so it's impossible to update via the
normal update-vendor-branch-merge-again process.
To fix, we delete everything and merge for the first time. The
next commit will merge the dialog source updates.
John Marino [Wed, 4 Nov 2015 15:19:03 +0000 (16:19 +0100)]
Vendor branch: Update dialog 1.2-
20121230 => 1.2-
20150920
The README.DELETED file is getting moved to trunk.
Justin C. Sherrill [Wed, 4 Nov 2015 15:21:34 +0000 (10:21 -0500)]
Add local path for sendmail libexec.
Since DragonFly ships with DMA, but there's still a dragonfly.mc, any
install of sendmail from ports will still use /etc/mail to generate a config.
This will generally work, but EBINDIR defaults to /usr/libexec. That means
the .cf files will be built to find mail.local in /usr/libexec, instead of
in /usr/local/libexec, where the port locates them. This will cause problems
for anything that delivers mail locally, like fetchmail.
John Marino [Wed, 4 Nov 2015 13:55:12 +0000 (14:55 +0100)]
Complete upgrade of tcsh 6.18.01 => 6.19.00
John Marino [Wed, 4 Nov 2015 13:23:20 +0000 (14:23 +0100)]
Reapply local modifications to tcsh source after merge
There are no longer modifications to:
ed.screen.c
gethost.c
The previous changes were made upstream.
John Marino [Wed, 4 Nov 2015 14:37:50 +0000 (15:37 +0100)]
Merge branch 'vendor/TCSH'
John Marino [Wed, 4 Nov 2015 13:17:40 +0000 (14:17 +0100)]
Revert tcsh local modifications to ensure clean merge
John Marino [Wed, 4 Nov 2015 13:14:22 +0000 (14:14 +0100)]
Vendor branch: upgrade tcsh from 6.18.01 to 6.19.00
Sepherosa Ziehau [Wed, 4 Nov 2015 14:12:28 +0000 (22:12 +0800)]
uipc: Use fdrop instead of closef
John Marino [Wed, 4 Nov 2015 11:55:13 +0000 (12:55 +0100)]
grep(1): Upgrade version 2.20 => 2.22
release 2.21 (2014-11-23) [stable]
** Improvements
Performance has been greatly improved for searching files containing
holes, on platforms where lseek's SEEK_DATA flag works efficiently.
Performance has improved for rejecting data that cannot match even
the first part of a nontrivial pattern.
Performance has improved for very long strings in patterns.
If a file contains data improperly encoded for the current locale,
and this is discovered before any of the file's contents are output,
grep now treats the file as binary.
grep -P no longer reports an error and exits when given invalid UTF-8
data. Instead, it considers the data to be non-matching.
** Bug fixes
grep no longer mishandles patterns that contain \w or \W in multibyte
locales.
grep would fail to count newlines internally when operating in non-UTF8
multibyte locales, leading it to print potentially many lines that did
not match. E.g., the command, "seq 10 | env LC_ALL=zh_CN src/grep -n
.." would print this:
1:1
2
3
4
5
6
7
8
9
10
implying that the match, "10" was on line 1.
[bug introduced in grep-2.19]
grep -F -x -o no longer prints an extra newline for each match.
[bug introduced in grep-2.19]
grep in a non-UTF8 multibyte locale could mistakenly match in the middle
of a multibyte character when using a '^'-anchored alternate in a
pattern, leading it to print non-matching lines. [bug present since
"the beginning"]
grep -F Y no longer fails to match in non-UTF8 multibyte locales like
Shift-JIS, when the input contains a 2-byte character, XY, followed by
the single-byte search pattern, Y. grep would find the first, middle-
of-multibyte matching "Y", and then mistakenly advance an internal
pointer one byte too far, skipping over the target "Y" just after
that. [bug introduced in grep-2.19]
grep -E rejected unmatched ')', instead of treating it like '\)'.
[bug present since "the beginning"]
On NetBSD, grep -r no longer reports "Inappropriate file type or format"
when refusing to follow a symbolic link.
[bug introduced in grep-2.12]
** Changes in behavior
The GREP_OPTIONS environment variable is now obsolescent, and grep
now warns if it is used. Please use an alias or script instead.
In locales with multibyte character encodings other than UTF-8,
grep -P now reports an error and exits instead of misbehaving.
When searching binary data, grep now may treat non-text bytes as
line terminators. This can boost performance significantly.
grep -z no longer automatically treats the byte '\200' as binary data.
release 2.22 (2015-11-01) [stable]
** Improvements
Performance has improved for patterns containing very long strings,
reducing preprocessing time for an N-byte regexp from O(N^2) to
only slightly superlinear for most patterns. Before, a command like
the following would take over a minute, but now, it takes less than
a second:
: | grep -f <(seq -s '' 99999)
When building grep, 'configure' now uses PCRE's pkg-config module for
configuration information, rather than attempting to guess it by hand.
** Bug fixes
A DFA matcher bug made this command mistakenly print its input line:
echo axb | grep -E '^x|x$'
Likewise for this equivalent command:
echo axb | grep -e '^x' -e 'x$'
[bug introduced in grep-2.19 ]
grep no longer reads from uninitialized memory or from beyond the end
of the heap-allocated input buffer. This fix addressed CVE-2015-1345.
[bug introduced in grep-2.19 ]
With -z, '.' and '[^x]' in a pattern now consistently match newline.
Previously, they sometimes matched newline, and sometimes did not.
[bug introduced in grep-2.4]
When the JIT stack is exhausted, grep -P now grows the stack rather
than reporting an internal PCRE error.
'grep -D skip PATTERN FILE' no longer hangs if FILE is a fifo.
[bug introduced in grep-2.12]
--exclude and related options are now matched against entire
command-line arguments, not against command-line components.
[bug introduced in grep-2.6]
Fix performance degradation of grep -Fw in unibyte locales.
[bug introduced in grep-2.19]
John Marino [Wed, 4 Nov 2015 12:38:11 +0000 (13:38 +0100)]
Merge branch 'vendor/GREP'
John Marino [Wed, 4 Nov 2015 11:06:31 +0000 (12:06 +0100)]
Vendor branch: upgrade grep from 2.20 => 2.22
Sascha Wildner [Wed, 4 Nov 2015 11:01:40 +0000 (12:01 +0100)]
Remove old lzma.h file via 'make upgrade'.
It is installed in /usr/include directly.
John Marino [Wed, 4 Nov 2015 09:23:15 +0000 (10:23 +0100)]
binutils225: Update to 2.25.1 (bug-fix release)
John Marino [Wed, 4 Nov 2015 09:36:11 +0000 (10:36 +0100)]
Merge branch 'vendor/BINUTILS225'
John Marino [Wed, 4 Nov 2015 09:11:25 +0000 (10:11 +0100)]
Vendor branch: Upgrade binutils 2.25 => 2.25.1
Sepherosa Ziehau [Wed, 4 Nov 2015 08:44:17 +0000 (16:44 +0800)]
Sepherosa Ziehau [Wed, 4 Nov 2015 03:31:32 +0000 (11:31 +0800)]
uipc: Use CTASSERT to simplify the externalize/internalize code
Sepherosa Ziehau [Wed, 4 Nov 2015 03:09:05 +0000 (11:09 +0800)]
uipc: Remove unnecessary unp_token in unp_dispose()
Sepherosa Ziehau [Wed, 4 Nov 2015 02:38:13 +0000 (10:38 +0800)]
socket: Dispose rights directly in soreceive(), if them are not wanted
Instead of leaving them to unp_gc(). This paves the way to simplify
unp_gc() and to remove filehead.
While I'm here, minor style changes.
John Marino [Tue, 3 Nov 2015 23:46:37 +0000 (00:46 +0100)]
Complete upgrade of libedit from 2014-06-20 to 2015-03-25
John Marino [Tue, 3 Nov 2015 23:58:27 +0000 (00:58 +0100)]
Merge branch 'vendor/LIBEDIT'
Conflicts:
contrib/libedit/src/chartype.h
contrib/libedit/src/eln.c
John Marino [Tue, 3 Nov 2015 23:27:04 +0000 (00:27 +0100)]
libedit: Revert locale modification that modifies locale
The intent was just to query the current locale, not change it.
Original modificatoin came from FreeBSD which also reverted it.
John Marino [Tue, 3 Nov 2015 23:23:15 +0000 (00:23 +0100)]
Update libedit from version 2014-06-20 to 2015-03-25 on vendor branch
John Marino [Tue, 3 Nov 2015 22:48:42 +0000 (23:48 +0100)]
lib/: Fix library build dependencies
Several libraries were not listed in the SUBDIR_ORDERED definition,
but should have been. Many of these were accounted for in the
_prebuild_libs functionality of Makefile.inc1. The rest were far
down on the alphabetical list and probably satisfied their dependency
requirements by luck (implying a machine with a sufficiently high
-j number would fail so lib/ wasn't jobs safe).
I've listed all the libraries that link to other libraries or have
other libraries (within lib/) link to them in SUBDIR_ORDERED. I've
completed the requirement annotations and separated them
requirements that are handled by Makefile.inc1 so it's clear. This
results with seven libraries moving from the alphabetical list to
the ordered list.
This makes the "serial" part of the lib/ building pretty long and
unnecessarily long, but it's not possible to get to a lower granularity
with the current framework without creating a new level (having the
subdirectories with their own library subdirectories, similar to
how gcc50 was implemented).
John Marino [Tue, 3 Nov 2015 20:03:18 +0000 (21:03 +0100)]
unbreak full buildworld (liblzma order again)
The lzma library is part of the "prebuild libraries" group in
the buildworld makefile. Once the pthread library was required
for the latest verson of xz, the order of lzma building had to
move after the pthread library. This unbreaks the build after
the XZ upgrade.
John Marino [Tue, 3 Nov 2015 13:34:49 +0000 (14:34 +0100)]
lib: Add liblzma to the build order
The latest liblzma now requires libpthread and thus it must be
guaranteed to be built before liblzma is built. Move liblzma into
the library ordering accordingly.
John Marino [Tue, 3 Nov 2015 11:06:24 +0000 (12:06 +0100)]
xz: Upgrade from version 5.0.7 to 5.2.2
See vendor branch commit for the many changes, including parallel
compression with multiple threads.
John Marino [Tue, 3 Nov 2015 12:13:43 +0000 (13:13 +0100)]
Merge branch 'vendor/XZ'
John Marino [Tue, 3 Nov 2015 10:21:55 +0000 (11:21 +0100)]
Upgrade xz from 5.0.7 to 5.2.2 on the vendor branch
5.2.2 (2015-09-29)
* Fixed bugs in QNX-specific code.
* Omitted the use of pipe2() even if it is available to avoid
portability issues with some old Linux and glibc combinations.
* Updated German translation.
* Added project files to build static and shared liblzma (not the
whole XZ Utils) with Visual Studio 2013 update 2 or later.
* Documented that threaded decompression hasn't been implemented
yet. A 5.2.0 NEWS entry describing multi-threading support had
incorrectly said "decompression" when it should have said
"compression".
5.2.1 (2015-02-26)
* Fixed a compression-ratio regression in fast mode of LZMA1 and
LZMA2. The bug is present in 5.1.4beta and 5.2.0 releases.
* Fixed a portability problem in xz that affected at least OpenBSD.
* Fixed xzdiff to be compatible with FreeBSD's mktemp which differs
from most other mktemp implementations.
* Changed CPU core count detection to use cpuset_getaffinity() on
FreeBSD.
5.2.0 (2014-12-21)
Since 5.1.4beta:
* All fixes from 5.0.8
* liblzma: Fixed lzma_stream_encoder_mt_memusage() when a preset
was used.
* xzdiff: If mktemp isn't installed, mkdir will be used as
a fallback to create a temporary directory. Installing mktemp
is still recommended.
* Updated French, German, Italian, Polish, and Vietnamese
translations.
Summary of fixes and new features added in the 5.1.x development
releases:
* liblzma:
- Added support for multi-threaded compression. See the
lzma_mt structure, lzma_stream_encoder_mt(), and
lzma_stream_encoder_mt_memusage() in <lzma/container.h>,
lzma_get_progress() in <lzma/base.h>, and lzma_cputhreads()
in <lzma/hardware.h> for details.
- Made the uses of lzma_allocator const correct.
- Added lzma_block_uncomp_encode() to create uncompressed
.xz Blocks using LZMA2 uncompressed chunks.
- Added support for LZMA_IGNORE_CHECK.
- A few speed optimizations were made.
- Added support for symbol versioning. It is enabled by default
on GNU/Linux, other GNU-based systems, and FreeBSD.
- liblzma (not the whole XZ Utils) should now be buildable
with MSVC 2013 update 2 or later using windows/config.h.
* xz:
- Fixed a race condition in the signal handling. It was
possible that e.g. the first SIGINT didn't make xz exit
if reading or writing blocked and one had bad luck. The fix
is non-trivial, so as of writing it is unknown if it will be
backported to the v5.0 branch.
- Multi-threaded compression can be enabled with the
--threads (-T) option.
[Fixed: This originally said "decompression".]
- New command line options in xz: --single-stream,
--block-size=SIZE, --block-list=SIZES,
--flush-timeout=TIMEOUT, and --ignore-check.
- xz -lvv now shows the minimum xz version that is required to
decompress the file. Currently it is 5.0.0 for all supported
.xz files except files with empty LZMA2 streams require 5.0.2.
* xzdiff and xzgrep now support .lzo files if lzop is installed.
The .tzo suffix is also recognized as a shorthand for .tar.lzo.
5.1.4beta (2014-09-14)
* All fixes from 5.0.6
* liblzma: Fixed the use of presets in threaded encoder
initialization.
* xz --block-list and --block-size can now be used together
in single-threaded mode. Previously the combination only
worked in multi-threaded mode.
* Added support for LZMA_IGNORE_CHECK to liblzma and made it
available in xz as --ignore-check.
* liblzma speed optimizations:
- Initialization of a new LZMA1 or LZMA2 encoder has been
optimized. (The speed of reinitializing an already-allocated
encoder isn't affected.) This helps when compressing many
small buffers with lzma_stream_buffer_encode() and other
similar situations where an already-allocated encoder state
isn't reused. This speed-up is visible in xz too if one
compresses many small files one at a time instead running xz
once and giving all files as command-line arguments.
- Buffer comparisons are now much faster when unaligned access
is allowed (configured with --enable-unaligned-access). This
speeds up encoding significantly. There is arch-specific code
for 32-bit and 64-bit x86 (32-bit needs SSE2 for the best
results and there's no run-time CPU detection for now).
For other archs there is only generic code which probably
isn't as optimal as arch-specific solutions could be.
- A few speed optimizations were made to the SHA-256 code.
(Note that the builtin SHA-256 code isn't used on all
operating systems.)
* liblzma can now be built with MSVC 2013 update 2 or later
using windows/config.h.
* Vietnamese translation was added.
5.1.3alpha (2013-10-26)
* All fixes from 5.0.5
* liblzma:
- Fixed a deadlock in the threaded encoder.
- Made the uses of lzma_allocator const correct.
- Added lzma_block_uncomp_encode() to create uncompressed
.xz Blocks using LZMA2 uncompressed chunks.
- Added support for native threads on Windows and the ability
to detect the number of CPU cores.
* xz:
- Fixed a race condition in the signal handling. It was
possible that e.g. the first SIGINT didn't make xz exit
if reading or writing blocked and one had bad luck. The fix
is non-trivial, so as of writing it is unknown if it will be
backported to the v5.0 branch.
- Made the progress indicator work correctly in threaded mode.
- Threaded encoder now works together with --block-list=SIZES.
- Added preliminary support for --flush-timeout=TIMEOUT.
It can be useful for (somewhat) real-time streaming. For
now the decompression side has to be done with something
else than the xz tool due to how xz does buffering, but this
should be fixed.
5.1.2alpha (2012-07-04)
* All fixes from 5.0.3 and 5.0.4
* liblzma:
- Fixed a deadlock and an invalid free() in the threaded encoder.
- Added support for symbol versioning. It is enabled by default
on GNU/Linux, other GNU-based systems, and FreeBSD.
- Use SHA-256 implementation from the operating system if one is
available in libc, libmd, or libutil. liblzma won't use e.g.
OpenSSL or libgcrypt to avoid introducing new dependencies.
- Fixed liblzma.pc for static linking.
- Fixed a few portability bugs.
* xz --decompress --single-stream now fixes the input position after
successful decompression. Now the following works:
echo foo | xz > foo.xz
echo bar | xz >> foo.xz
( xz -dc --single-stream ; xz -dc --single-stream ) < foo.xz
Note that it doesn't work if the input is not seekable
or if there is Stream Padding between the concatenated
.xz Streams.
* xz -lvv now shows the minimum xz version that is required to
decompress the file. Currently it is 5.0.0 for all supported .xz
files except files with empty LZMA2 streams require 5.0.2.
* Added an *incomplete* implementation of --block-list=SIZES to xz.
It only works correctly in single-threaded mode and when
--block-size isn't used at the same time. --block-list allows
specifying the sizes of Blocks which can be useful e.g. when
creating files for random-access reading.
5.1.1alpha (2011-04-12)
* All fixes from 5.0.2
* liblzma fixes that will also be included in 5.0.3:
- A memory leak was fixed.
- lzma_stream_buffer_encode() no longer creates an empty .xz
Block if encoding an empty buffer. Such an empty Block with
LZMA2 data would trigger a bug in 5.0.1 and older (see the
first bullet point in 5.0.2 notes). When releasing 5.0.2,
I thought that no encoder creates this kind of files but
I was wrong.
- Validate function arguments better in a few functions. Most
importantly, specifying an unsupported integrity check to
lzma_stream_buffer_encode() no longer creates a corrupt .xz
file. Probably no application tries to do that, so this
shouldn't be a big problem in practice.
- Document that lzma_block_buffer_encode(),
lzma_easy_buffer_encode(), lzma_stream_encoder(), and
lzma_stream_buffer_encode() may return LZMA_UNSUPPORTED_CHECK.
- The return values of the _memusage() functions are now
documented better.
* Support for multithreaded compression was added using the simplest
method, which splits the input data into blocks and compresses
them independently. Other methods will be added in the future.
The current method has room for improvement, e.g. it is possible
to reduce the memory usage.
* Added the options --single-stream and --block-size=SIZE to xz.
* xzdiff and xzgrep now support .lzo files if lzop is installed.
The .tzo suffix is also recognized as a shorthand for .tar.lzo.
* Support for short 8.3 filenames under DOS was added to xz. It is
experimental and may change before it gets into a stable release.
5.0.8 (2014-12-21)
* Fixed an old bug in xzgrep that affected OpenBSD and probably
a few other operating systems too.
* Updated French and German translations.
* Added support for detecting the amount of RAM on AmigaOS/AROS.
* Minor build system updates.
Sascha Wildner [Tue, 3 Nov 2015 12:09:59 +0000 (13:09 +0100)]
Fix various typos in manual pages.
Sepherosa Ziehau [Tue, 3 Nov 2015 03:42:28 +0000 (11:42 +0800)]
uipc: Reduce token coverage on detach path
Sepherosa Ziehau [Tue, 3 Nov 2015 03:38:28 +0000 (11:38 +0800)]
uipc: Remove unnecessary socket ref/unref on detach path
Sepherosa Ziehau [Tue, 3 Nov 2015 03:32:22 +0000 (11:32 +0800)]
uipc: Hold unp_token before calling unp_find_lockref()
Mainly to avoid name resolution and v_socket accessing races.
Add comment about it.
Sepherosa Ziehau [Tue, 3 Nov 2015 03:07:12 +0000 (11:07 +0800)]
gdb: Unbreak building
John Marino [Mon, 2 Nov 2015 23:18:13 +0000 (00:18 +0100)]
lib: hook libelf and libexecinfo (in order) into the build
The ELF library must be built before the execinfo library that uses it.
Bump the DragonFly version because ports will alter its behavior from this
point forward.
John Marino [Tue, 3 Nov 2015 00:07:57 +0000 (01:07 +0100)]
Add libexecinfo to lib directory, but leave it unhooked
The execinfo library is used to fill in the backtrace of the currently
executing thread. It originated in Linux and has found its way into a
lot of vendor software. NetBSD created a BSD-licensed implementation
which FreeBSD imported a while back.
The execinfo library has been in FreeBSD since Release 10. FreeBSD 9
is the only release that needs libexecinfo from ports and when that
release hits EOL, DragonFly could be left unsupported if ports
maintainers assumes libexecinfo is always available and removes USES
support for it.
To avoid this situation, bring libexecinfo into DragonFly's base for
the purpose of supporting ports. It requires libelf which has also
been brought in as an internal library.
John Marino [Mon, 2 Nov 2015 23:53:41 +0000 (00:53 +0100)]
libelf: Add libelf to lib directory, but leave it unhooked
The ELF library is part of FreeBSD's ELF Tool Chain project that has the
goal to be a drop-in replacement for binutils. It isn't quite there yet
but the toolchain project has replaced most of the tools. There may be
interest to bring the entire toolchain into DragonFly once the project is
production ready, but for now we are only interested in libelf.
This library is a required component for the incoming execinfo library.
The ELF library is for internal use only. It will not be installed, but
instead only statically linked to the execinfo library. The
contrib/elftoolchain directory has been arranged in a "placeholder"
fashion so the source for more of the tools can be added there later.
John Marino [Mon, 2 Nov 2015 23:46:21 +0000 (00:46 +0100)]
Add READMEs for ELF Tool Chain contrib directory
John Marino [Mon, 2 Nov 2015 23:44:27 +0000 (00:44 +0100)]
Merge branch 'vendor/ELFTOOLCHAIN'
John Marino [Mon, 2 Nov 2015 23:43:51 +0000 (00:43 +0100)]
Import ELF Tool Chain r3255 into vendor branch
Sascha Wildner [Mon, 2 Nov 2015 22:56:43 +0000 (23:56 +0100)]
gdb: Reduce the recent changes to only the necessary bits in amd64dfly-nat.c.
This makes maintenance of base and dports gdb easier.
Suggested-by: marino
Discussed-with: tuxillo
John Marino [Mon, 2 Nov 2015 23:04:24 +0000 (00:04 +0100)]
euc encoding: Emit EILSEQ on illegal euc conversions
Omission caught by NetBSD testsuite, run by bapt@FreeBSD.org
François Tigeot [Mon, 2 Nov 2015 19:18:32 +0000 (20:18 +0100)]
drm: Add ACCESS_ONCE()
Antonio Huete Jimenez [Mon, 2 Nov 2015 16:35:26 +0000 (17:35 +0100)]
gdb - Workaround to enable debugging in vkernels.
- Currently vkernel(7) does not have support for PT_GETDBREGS/PT_SETDBREGS
via ptrace(2) so conditionalize gdb initialization code to make a special
case for vkernels.
Antonio Huete Jimenez [Mon, 2 Nov 2015 15:31:18 +0000 (16:31 +0100)]
gdb - Remove FreeBSD specific code.
Antonio Huete Jimenez [Mon, 2 Nov 2015 15:18:26 +0000 (16:18 +0100)]
gdb - Fix indentantion in DragonFly specific files.
- No functional changes
Sascha Wildner [Mon, 2 Nov 2015 17:59:15 +0000 (18:59 +0100)]
drm.4: Document new sysctls.
Submitted-by: Rimvydas Jasinskas <rimvydas.jasinskas@gmail.com>
Sascha Wildner [Mon, 2 Nov 2015 17:56:39 +0000 (18:56 +0100)]
drm.4: Move the sysctl section to using .Bl/.El
John Marino [Mon, 2 Nov 2015 11:48:22 +0000 (12:48 +0100)]
locales: Remove symlinks UTF8 => UTF-8
In retrospect, having an alias for UTF-8 does not bring any real benefits
and it can cause confusion. Let's remove this *.UTF8 locale symlinks
which is closer to the convention of the other BSDs.
GCC testsuite is also removing utf8 and UTF8 locales for portability
with BSD.
zrj [Sat, 31 Oct 2015 15:34:58 +0000 (17:34 +0200)]
socket/recvfrom: Add MSG_CMSG_CLOEXEC support
While there, add test case and update manpages.
Obtained-from: FreeBSD
Imre Vadász [Sun, 1 Nov 2015 21:03:43 +0000 (22:03 +0100)]
drm: Simplify the initialization of the hw.dri sysctl tree.
* Just use SYSCTL_NODE and SYSCTL_INT declarations, for initializing and
and destroying the hw.dri subtree atomagically (including the debug,
notyet, vblank_offdelay and timestamp_precision integer nodes) on
module load/unload.
John Marino [Sun, 1 Nov 2015 21:29:52 +0000 (22:29 +0100)]
locale type makefiles: respect ${SHAREDIR}
The cldr2def tool was modified to generate makefiles that respect
the SHAREDIR definition rather than hardcoding it.
Taken-from: FreeBSD (collation branch)
John Marino [Sun, 1 Nov 2015 20:47:23 +0000 (21:47 +0100)]
locales: Fix eucJP sorting (broken upstream?)
Sorting eucJP text with "sort" resulted in an illegal sequence while
"gsort" worked. This was traced back to mbrtowc handling which was
broken for eucJP (probably eucCN, eucKR, and eucTW as well). This
small fix took hours to figure out. The OR operation to build the
wide character requires an unsigned character to work correctly. The
euc wcrtowc conversion is probably broken upstream in Illumos as well.
Reported by: bapt@FreeBSD.org
Triggered by: misc/freebsd-doc-ja in ports (encoded in eucJP)
Imre Vadász [Sat, 31 Oct 2015 15:49:31 +0000 (16:49 +0100)]
if_vtnet: Add support for indirect buffers. Activate LRO by default again.
Taken-From: FreeBSD
Imre Vadász [Fri, 30 Oct 2015 22:15:40 +0000 (23:15 +0100)]
virtio: Add indirect buffers support to common virtio code.
* Uses contigmalloc instead of kmalloc for allocating the indirect
descriptors, because DragonFly's kmalloc doesn't return sufficiently
aligned or physically contiguous memory.
Taken-From: FreeBSD
François Tigeot [Sun, 1 Nov 2015 18:16:28 +0000 (19:16 +0100)]
drm/radeon: Export PCI ID
Submitted-by: Rimvydas Jasinskas
Tomohiro Kusumi [Sun, 1 Nov 2015 15:02:59 +0000 (00:02 +0900)]
sys/dev/disk/dm: Add error count for stripe device
This is for compatibility with Linux, but currently not used.
In order to use it, dm target needs to be able to implement
bio's completion handler which is currently unaccessible from
outside of sys/kern/vfs_bio.c.
Tomohiro Kusumi [Sun, 1 Nov 2015 14:42:25 +0000 (23:42 +0900)]
sys/dev/disk/dm: Don't statically allocate MAX_STRIPES devices
struct target_stripe_config should have 0 sized array for
struct target_stripe_dev instead of MAX_STRIPES sized one,
and kmalloc() whatever size necessary depending on # of
stripe devices.
Antonio Huete Jimenez [Sun, 1 Nov 2015 12:48:25 +0000 (13:48 +0100)]
vkernel - Override max-page-size for ld.*
- Move max-page-size setting to the vkernel-specific SYSTEM_LD as it
was probably intended in ed9f17e. This overrides whatever the default
is in ld.bfd or ld.gold.
Antonio Huete Jimenez [Sun, 1 Nov 2015 12:40:54 +0000 (13:40 +0100)]
vkernel - Bring back .hash section
As of the switch to GCC 5 the default hash style to ld has changed from both
(sysv,gnu) to gnu alone. This results in binaries without a .hash section
which is fine for userland binaries but not for kernel ones since our kernel
linker uses .hash section to resolve its own symbols.
With the missing .hash section the vkernel kernel linker was not able do
symbol lookups and that rendered kvm(3) useless and all its consumers stopped
working.
During the vkernel build, SYSTEM_LD is changed so that the normal buildkernel
settings are overridden so by changing the parameters passed to ld we bring
back the .hash section.
John Marino [Sun, 1 Nov 2015 10:42:10 +0000 (11:42 +0100)]
libc: Fix (and improve) nl_langinfo (CODESET)
The output of "locale charmap" is identical to the result of
nl_langinfo (CODESET) for any given locale. The logic for returning the
codeset was very simplistic. It just returned portion of the locale name
after the period (e.g. en_FR.ISO8859-1 returned "ISO8859-1").
When softlinks were added to locales, this broke. e.g.:
en_US returned ""
en_FR.UTF8 returned "UTF8"
en_FR.UTF-8 returned "UTF-8"
zh_Hant_HK.Big5HKSCS returned "Big5HKSCS"
zh_Hant_TW.Big5 returned "Big5"
es_ES@euro returned ""
In order to fix this properly, the named locale cannot be used to
determine the encoding. This information was almost available in the
rune data. Unfortunately, all the single byte encodings were listed
as "NONE" encoding.
So I adjusted localedef tool to provide more information about the
encoding. For example, instead of "NONE", the LC_CTYPE used by
fr_FR.ISO8859-15 is now encoded as "NONE:ISO8859-15". The locale
handlers now check if the first four characters of the encoding is
"NONE" and if so, treats it as a single-byte encoding.
The nl_langinfo handling of CODESET was adjusting accordingly. Now the
following is returned:
en_US returns "ISO8859-1"
fr_FR.UTF8 returns "UTF-8"
fr_FR.UTF-8 returns "UTF-8"
zh_Hant_HK.Big5HKSCS returns "Big5"
zh_Hant_TW.Big5 returns "Big5"
es_ES@euro returns "ISO8859-15"
as before, "C" and "POSIX" locales return "US-ASCII". This is a big
improvement. The result of nl_langinfo can never be a zero-length
string and it will always exclusively one of the values of the
character maps of /usr/src/tools/tools/locale/etc/final-maps.
Sascha Wildner [Sat, 31 Oct 2015 21:50:02 +0000 (22:50 +0100)]
kernel/drm: In linux/types.h, remove the duplicate definition of gfp_t.
Sascha Wildner [Sat, 31 Oct 2015 21:13:34 +0000 (22:13 +0100)]
kernel/drm: In linux/kernel.h add missing parentheses/casts to min_t/max_t.
Tomohiro Kusumi [Sat, 31 Oct 2015 11:55:26 +0000 (20:55 +0900)]
sys/dev/disk/dm: Remove misleading comment
It takes offset and size parameters in sectors.
This comment seems to be specifying them in bytes, which is wrong.
Tomohiro Kusumi [Sat, 31 Oct 2015 09:07:54 +0000 (18:07 +0900)]
sys/dev/disk/dm: Fix sanity checks for striped target [4/4]
Add sanity checks on relation among
number of stripes, device size, and chunk size.
This is one of the requirements in Linux dm-striped, but
disable it for now as it may break systems that currently
use this target (which I doubt there is any because lvm2
and dm raid seem to be unusable on DragonFly).
Tomohiro Kusumi [Fri, 30 Oct 2015 15:16:12 +0000 (00:16 +0900)]
sys/dev/disk/dm: Fix sanity checks for striped target [3/4]
0 stripe is apparently invalid, but it's currently allowed
and generates unusable device.
# kldload dm
# dmsetup create stripe1 --table '0 1000 striped 0 10 /dev/da3 0 /dev/da4 0'
# dmsetup ls --tree
stripe1 (255:
504430599)
# dmsetup deps /dev/mapper/stripe1
0 dependencies :
# dmsetup status /dev/mapper/stripe1
# dmsetup table /dev/mapper/stripe1
#
Tomohiro Kusumi [Sat, 31 Oct 2015 10:57:29 +0000 (19:57 +0900)]
sys/dev/disk/dm: Fix sanity checks for striped target [2/4]
Target specific args for striped is redundant in the sense
that it has an arg for # of stripes other than the args for
actual stripe devices. These two must meet below.
((argc - 2) / 2) == # of stripe devices.
e.g.
--table '0 100 stripe1 3 10 /dev/da3 0 /dev/da4 0 /dev/da5 0'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 8 target args
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 6 device args
^ # of stripe devices
((8 - 2) / 2) = 6/2 = 3
-> 3 stripe devices (/dev/da[345])
Tomohiro Kusumi [Sat, 31 Oct 2015 10:46:22 +0000 (19:46 +0900)]
sys/dev/disk/dm: Fix sanity checks for striped target [1/4]
Bring sanity checks before kmalloc().
Tomohiro Kusumi [Fri, 30 Oct 2015 12:51:44 +0000 (21:51 +0900)]
sbin/hammer: Fix improper perror(3) usage
2550036f and
fff0110a should have used err(3) instead of perror(3).
Spotted-by: swildner
Tomohiro Kusumi [Fri, 30 Oct 2015 12:34:10 +0000 (21:34 +0900)]
sys/dev/disk/dm: Return EINVAL on invalid argc
but not ENOMEM.
Other targets return EINVAL for this and there shouldn't be
any reason not to do so for dm-crypt.
Tomohiro Kusumi [Wed, 28 Oct 2015 17:57:10 +0000 (02:57 +0900)]
sys/dev/disk/dm: Make target's init() take argc and argv
dm core shouldn't be passing char *params to targets' init()
because all targets are basically going to copy-paste a code
snippet (that strseps params) from the existing targets code
which is inefficient and should be avoided.
This commit adds dm_table_init() which converts char *params
to int argc and char **argv, and passes them to init().
Tomohiro Kusumi [Wed, 28 Oct 2015 13:14:14 +0000 (22:14 +0900)]
sys/dev/disk/dm: Use correct module name for dm_target_striped
The name of this target is striped, but not stripe.
This target is called stripe in NetBSD, but striped in Linux.
Since DragonFly seems to have renamed it to striped when
porting from NetBSD, strings used within this module should
be striped.
# kldload dm
# kldload dm_target_striped
# kldstat | grep stripe
6 1 0xffffffff832a7000 11000 dm_target_striped.ko
Tomohiro Kusumi [Wed, 28 Oct 2015 12:43:40 +0000 (21:43 +0900)]
sys/dev/disk/dm: Refactor dm_target_stripe_table()
Use return value of ksnprintf() instead of strlen().
Tomohiro Kusumi [Tue, 27 Oct 2015 15:33:09 +0000 (00:33 +0900)]
sys/dev/disk/dm: Fix indentation
Tomohiro Kusumi [Tue, 27 Oct 2015 15:17:46 +0000 (00:17 +0900)]
sys/dev/disk/dm: Add info() handler for striped target for compatibility
f134a703 mentioned output of dmsetup(8) "status" and "table"
were compatible with that of Linux till dm-delay was added,
but striped target was not compatible. The stripe target in
Linux has different implementation for these two like delay
target has.
This commit adds info() handler for striped target similar
to what
f134a703 did to delay target.
Tomohiro Kusumi [Tue, 27 Oct 2015 13:28:35 +0000 (22:28 +0900)]
sys/dev/disk/dm: Make dm-linear table show major:minor for compatibility
It should be "major:minor" rather than "/dev/xxx"
for compatibility with Linux.
Use pdev->udev_name added by ^^^.
Also see
abe62df9.
Tomohiro Kusumi [Mon, 26 Oct 2015 16:27:13 +0000 (01:27 +0900)]
sys/dev/disk/dm: Make dm-stripe table show major:minor for compatibility
It should be "major:minor" rather than "/dev/xxx"
for compatibility with Linux.
Use pdev->udev_name added by ^^.
Also see
abe62df9.
Tomohiro Kusumi [Mon, 26 Oct 2015 16:10:32 +0000 (01:10 +0900)]
sys/dev/disk/dm: Add udev_t field to dm_pdev_t
Tomohiro Kusumi [Mon, 26 Oct 2015 16:01:48 +0000 (01:01 +0900)]
sys/dev/disk/dm: Add "major:minor" name to dm_pdev_t