John Marino [Sun, 2 Aug 2015 11:19:16 +0000 (13:19 +0200)]
strcoll(1): Fix named locale case where conversion fails
When strcoll is used with a locale other than C/POSIX, it uses the
mbsrtowcs_l(1) function which can alter the src pointer upon failure.
If that happens in the current implementation of strcoll, a null pointer
is send to strcmp (resulting in wrong answer) and it will change the s
or s2 argument of strcoll(1), which is not behavior expected by the POSIX
standard.
Using a copy of the s and s2 arguments prevents this situation. Note that
Illumos, which which the source came, still has this vulnerability.
Reported by: Romick (YRabbit) on IRC
John Marino [Sun, 2 Aug 2015 09:32:43 +0000 (11:32 +0200)]
locales: create short names for the 9 new base locales
John Marino [Sun, 2 Aug 2015 09:02:21 +0000 (11:02 +0200)]
locales: Fix pt_BR.ISO8859-15, remove UTF-8
The pt_BR.ISO8859-15 locale was not properly defined because it's
directory was not pre-created (fixed now). The UTF-8 CTYPE is no longer
used (every locale explicitly is accounted for) so let's remove it.
The Brazilian locale won't always be fixed under quickworld, it will
require a full build in some cases.
Tomohiro Kusumi [Sun, 2 Aug 2015 06:41:27 +0000 (15:41 +0900)]
sys/vfs/hammer: Fix potential wrong error message
It's not always because of volume not empty.
Tomohiro Kusumi [Fri, 31 Jul 2015 21:03:27 +0000 (06:03 +0900)]
sys/vfs/hammer: Minor optimization on layer1/2 iteration
Layer1 and layer2 metadata are clustered in each big-block,
so use different buffers for layer1 and layer2 to prevent
unnecessary buffer release/get. This is what newfs_hammer
does on bootstrap in userspace and this function basically
does the same thing via ioctl.
Tomohiro Kusumi [Wed, 29 Jul 2015 17:09:34 +0000 (02:09 +0900)]
sys/vfs/hammer: Add test_free_callback()
Add test_free_callback() and remove dry run code from
free_callback() which has been used for both testing
and actual ondisk modification. It makes free_callback()
more simple and clearer with no flag and null-checks
that were necessary to make it work for both purposes.
Tomohiro Kusumi [Sun, 2 Aug 2015 05:38:37 +0000 (14:38 +0900)]
sbin/mount_hammer: Fix error messages
It's possible that open(2) and signature check do not fail
but mount(2) still fails possibly because of fs's bug.
When that happens (it actually did happen right now) fdevs
remains with no valid string strcatted. Add an error message
for such case.
Also change printf(); to fprintf(stderr);.
Tomohiro Kusumi [Sun, 2 Aug 2015 05:32:15 +0000 (14:32 +0900)]
sbin/mount_hammer: Fix upper limit of volume num
(ac - 1) is for the command arg which is in blkdevs format.
info.nvolumes is the number of volumes after dissecting blkdevs format.
Tomohiro Kusumi [Wed, 29 Jul 2015 19:13:56 +0000 (04:13 +0900)]
sys/vfs/hammer: Fix wrong function name in kprintf
Tomohiro Kusumi [Wed, 29 Jul 2015 17:54:36 +0000 (02:54 +0900)]
sys/vfs/hammer: Add cond to kprintf("\n"); on volume-del
Should print \n only when count>=5 otherwise it generates
a blank line in dmesg.
Tomohiro Kusumi [Thu, 30 Jul 2015 11:16:12 +0000 (20:16 +0900)]
sys/vfs/hammer: Fix comment on localization
Add missing tid.
zrj [Fri, 31 Jul 2015 09:47:01 +0000 (12:47 +0300)]
drm/i915: experimental adapter->name to sc->name patch
zrj [Fri, 31 Jul 2015 09:09:49 +0000 (12:09 +0300)]
drm/i915: use drm_asprintf() in ivybridge_parity_work
Useless kmalloc/kfree but useful to test drm_asprintf() itself
zrj [Fri, 31 Jul 2015 09:00:57 +0000 (12:00 +0300)]
drm: add connector/encoder name creation
This implements name creation using drm_asprintf() helper function.
For now skip "adapter->name".
zrj [Tue, 28 Jul 2015 14:24:50 +0000 (17:24 +0300)]
drm: init unused_nodes list for drm/ttm from FreeBSD times
zrj [Fri, 24 Jul 2015 09:26:04 +0000 (12:26 +0300)]
drm/i915: Avoid releasing non acquired lock for eDP systems
Matthew Dillon [Sat, 25 Jul 2015 06:23:05 +0000 (08:23 +0200)]
drm/i915: Fix i915_gem_fault()
The retry loop in i915_gem_fault() was very seriously broken for EINTR
or ERETRYSYS (which is also basically EINTR)
It loops with gem mostly left locked, doesn't sleep, so it live locks a
cpu if it ever gets hit
The best solution is to disallow EINTR / ERESTARTSYS entirely.
The implementation is crazy... normal drm locks are allowed to PCATCH
and fail with EINTR. That's just insane
Stability is better with some hacks added. I'm unwinding all the locks,
sleeping for one tick, and then retrying.
Horrible hack but so far it works
François Tigeot [Fri, 24 Jul 2015 08:44:53 +0000 (10:44 +0200)]
drm/i915: Update to Linux 3.16
* Much improved support for Broadwell GPUs. Acceleration should now be fully
operational and the giant L4 eDRAM cache is now enabled when present.
* Baytrail/Valleyview support improvements
* prelimary support for Cherryview (14nm Atom SOCs)
* Various fixes and performance improvements on most other GPU generations
* Improved runtime power management
* 5.4GHz DisplayPort support
* Large cursor support (up to 256x256 pixels), useful for high-dpi displays.
* Mapping of user pages into video memory (userptr)
This allows zero-copy downloads and efficient readback to/from the GPU,
allowing faster rendering of client-side software rasterisers, mitigation
of stalls due to read back and faster pipelining of texture data (such as
pixel buffer objects in GL or data blobs in CL). Mixed CPU/GPU operations
become more efficient in general.
Matthew Dillon [Sun, 2 Aug 2015 03:43:31 +0000 (20:43 -0700)]
hammer - Allow PVFSROOT to have more refs when upgrading
* When upgrading a PFS from slave to master, allow the PVFSROOT
to have refs and a vnode because the hammer pfs-upgrade command
itself might have it open.
Matthew Dillon [Sun, 2 Aug 2015 02:39:15 +0000 (19:39 -0700)]
kernel - Disable swapcache once paniced or if dumping
* Make sure we do not attempt to read or write via the swapcache if the
machine is paniced or has been dumped via the debugger. This avoids
corrupting the dump and avoids corrupting reads shortcut through the
swapcache under these conditions.
Matthew Dillon [Sun, 2 Aug 2015 00:39:12 +0000 (17:39 -0700)]
boot - Fix gzipped initrd.img loading
* Fix tests in libstand filesystems against f_flags. Previous tests
were f_flags != F_READ, which does not work properly when other flags
are present. Change to ((f_flags & (F_READ|F_WRITE)) != F_READ).
* Skip whiteout entries in UFS. These could lead to false positives.
John Marino [Sat, 1 Aug 2015 23:13:15 +0000 (01:13 +0200)]
Add 17 new locales and really remove Latin
Now that locale defintions are generates, it's easy to add more.
I've added the following new locale defintions:
* en_HK ISO-8859-1 (Hong Kong/English)
* en_HK UTF-8
* en_PH ISO-8859-1 (Phillipines/English)
* en_PH UTF-8
* en_SG ISO-8859-1 (Singapore/English)
* en_SG UTF-8
* es_AR ISO-8859-1 (Argentina/Spanish)
* es_AR UTF-8
* es_CR ISO-8859-1 (Costa Rica/Spanish)
* es_CR UTF-8
* es_MX ISO-8859-1 (Mexico/Spanish)
* es_MX UTF-8
* se_FI UTF-8 (Finland/Northern Sami)
* se_NO UTF-8 (Norway/Northern Sami)
* sv_FI ISO-8859-1 (Finland/Swedish)
* sv_FI ISO-8859-15
* sv_FI UTF-8
There were a few places la_LN (Latin) was hidden so I've really
removed it now.
John Marino [Sat, 1 Aug 2015 22:00:20 +0000 (00:00 +0200)]
Remove kk_KZ.PT154 and all latin locales
Latin, strangely enough, is not covered by CLDR POSIX files. Thus,
it is impossible to completely load the locales. Both LC_CTYPE and
LC_COLLATE need updated files. Thus, all version of the Latin
locales needs to go.
The kk_KZ locale just came back with the UTF-8 codeset, but there are
character maps for PT154, so it's impossible to continue to have this
locale.
John Marino [Sat, 1 Aug 2015 21:46:16 +0000 (23:46 +0200)]
locales: also update lv_LV, pt_BR and kk_KZ
These were stuck with old definitions due to the cldr2def's configure
file missing these three locales.
John Marino [Sat, 1 Aug 2015 21:40:45 +0000 (23:40 +0200)]
Activate kk_KZ, lv_LV, and pt_BR locales
These three locales already existed, but they weren't being updated.
I've adjusted the xml configuration to get them building (minus the
kk_KZ.PT154 locale which will be removed).
While here, update the tools/tools/locale Makefile to replace all
six LC categories in /usr/src/share with the "make install" target,
and then install them on a live system with "make post-install" target.
John Marino [Sat, 1 Aug 2015 18:45:59 +0000 (20:45 +0200)]
Remove obsolete mklocale directory and its old src files
John Marino [Sat, 1 Aug 2015 18:43:29 +0000 (20:43 +0200)]
Use localedef(1) to generate LC_CTYPE, switch off mklocale
Active the new share/ctypedef directory and deactivate share/mklocale.
This means the LC_CTYPE files will be generated by localedef(1) now.
As a result, remove mklocale from bootstrap tools and remove it via
"make upgrade"
John Marino [Sat, 1 Aug 2015 18:36:42 +0000 (20:36 +0200)]
libc/locale: Revamp CTYPE support (from Illumos)
The LC_CTYPE format didn't change, but libc stills needs a revamp
to properly use the new LC_CTYPE files that localedef(2) generates.
John Marino [Sat, 1 Aug 2015 19:37:53 +0000 (21:37 +0200)]
Fix cldr2def tool and regenerate 2 makefiles as a result
I accidently changed the wrong makefile so both colldef and ctype makefiles
wrong wrong. I adjusted the tool and regenerated the makefiles.
While here, remove the unused map.UTF-8 that should have been removed
earlier but wasn't due to a git misuse.
John Marino [Sat, 1 Aug 2015 19:24:08 +0000 (21:24 +0200)]
Unbreak world
I didn't mean to update the share/colldef Makefile yet, and an
incorrect version got committed. This should fix world.
Matthew Dillon [Sat, 1 Aug 2015 18:51:39 +0000 (11:51 -0700)]
buildworld - Fix bootstrapping from older worlds
* __returns_twice doesn't exist in older sys/cdefs.h, fix bootstrapping by
shoehorning a default if it does not exist.
John Marino [Sat, 1 Aug 2015 18:12:12 +0000 (20:12 +0200)]
libc/locale: Replace ascii.c, it was removed too soon
I am not sure what happened, I limited the commit commit but somehow
this deleted file got included in a recent commit. It will be removed
again shortly.
John Marino [Sat, 1 Aug 2015 17:49:02 +0000 (19:49 +0200)]
Add share/ctypedef directory (it will replace mklocale)
This directory will generate new LC_CTYPE files. They require a
significant update to libc/locale so it is not hooked into the
build yet. This the the produce of the clr2def tool upgrade
and the generated codeset maps at tools/tools/locale/etc/final-maps.
John Marino [Sat, 1 Aug 2015 17:41:45 +0000 (19:41 +0200)]
Pregenerate maps for LC_CTYPE generation
These are the products of the new convert_map.pl which localedef
will use to generate LC_CTYPE. To avoid duplication, these maps
will be used where they are (in tools/tools/locale/etc/final-maps)
It turns out that the widths.txt file is only used for LC_CTYPE,
so it's being moved as well as being removed from share/colldef.
John Marino [Sat, 1 Aug 2015 17:37:45 +0000 (19:37 +0200)]
Fix three clr2def2 character maps
The localedef(1) tool does not allow two symbols to be mapped to
the same unicode character. I actually don't know if this is really
"wrong", but I had to adjust a couple of character sets that
violated this rule: ARMSCII-8 and Big5HKSCS. Neither are present
on Illumos so that may explain why localedef(1) wasn't prepared
to do anything except throw an error.
The CP866 charset had a trailing garbage at the end of the file that
localedef didn't like, so I removed it.
John Marino [Sat, 1 Aug 2015 17:27:04 +0000 (19:27 +0200)]
clr2def: Add LC_CTYPE source file generation support
I added the capability to generate LC_CTYPE source files (really this is
basically extracting a section from the POSIX files) but there was some
logic to figure out how to use the least amount of files because some of
them are large.
I compromised on a scheme that makes two reductions. The first eliminates
true duplicates and uses the SAME+= mechanism to create symlinks. However,
this leaves still some duplicates because while the output is distinct,
the source files are the same (e.g. en_US.ISO8859* uses the same input file
as en_US.UTF-8 locale, but the LC_CTYPE products differ. The script
identifies those are replaces them with symlinks. So it looks like a lot
of files but really it's only about 12 or so.
During the actual LC_CTYPE generating, character maps are needed. I added
a Illumos tool to do this, which I had to modify. Unlike Illumos, we will
pregenerate the maps that the tool (convert_map.pl) produces. I had to
spend hours troubleshooting various "invalid" inputs so this is definitely
something that should not be repeated in the build.
John Marino [Sat, 1 Aug 2015 17:12:21 +0000 (19:12 +0200)]
Fix zh_Hans_CN.GB2312 locale
It turns out that using a commented source file for LC_* file generation
really isn't a good idea. In the cldr2def tool's charmap.xls, the
low ASCII is transformed to the "Full width" versions, but the first
byte just happens to be "#". Yes, that's right, the comment character.
Since all comments are either "#" or or followed by a space, I can fix
the resulting broken zh_Hans_CN.GB2312 by alterning the grep instruction.
However, if we ever have a legitimate single "#" character as input, then
this won't work anymore.
The Armenian changes are a result to a tool correction that will be
commited shortly.
Sascha Wildner [Sat, 1 Aug 2015 17:54:41 +0000 (19:54 +0200)]
kernel/dsched: Use <machine/inttypes.h>, not <inttypes.h>.
Sascha Wildner [Sat, 1 Aug 2015 17:53:41 +0000 (19:53 +0200)]
kernel/vfs_quota: Remove unneeded <inttypes.h> inclusion.
Sascha Wildner [Sat, 1 Aug 2015 17:39:20 +0000 (19:39 +0200)]
kernel: Use <sys/stdbool.h> in kernel code, not <stdbool.h>.
Sascha Wildner [Sat, 1 Aug 2015 17:17:02 +0000 (19:17 +0200)]
kernel/iscsi: Remove unneeded <signal.h> inclusion.
Sascha Wildner [Sat, 1 Aug 2015 17:02:46 +0000 (19:02 +0200)]
kernel: Use <sys/bitstring.h> instead of <bitstring.h>.
Sascha Wildner [Sat, 1 Aug 2015 17:01:14 +0000 (19:01 +0200)]
<bitstring.h>: Move it to /usr/src/sys/sys so kernel files can use it too.
To avoid using userspace headers in the kernel.
François Tigeot [Sat, 1 Aug 2015 07:56:38 +0000 (09:56 +0200)]
agp: Remove some debugging printfs
François Tigeot [Sat, 1 Aug 2015 07:16:24 +0000 (09:16 +0200)]
drm: Add linux/hashtable.h
Sascha Wildner [Sat, 1 Aug 2015 06:23:24 +0000 (08:23 +0200)]
kernel/usb4bsd: Install gadget example drivers and fix usbtest.
Taken-from: FreeBSD
Sascha Wildner [Sat, 1 Aug 2015 05:16:50 +0000 (07:16 +0200)]
kernel/usb4bsd: Set USB_HAVE_MSCTEST_DETACH and adjust include guard.
Sepherosa Ziehau [Fri, 31 Jul 2015 14:08:21 +0000 (22:08 +0800)]
inet6: Simplify nd6_dad_ns_output() interface
Sepherosa Ziehau [Fri, 31 Jul 2015 14:08:04 +0000 (22:08 +0800)]
inet6: Make DAD lockless MPSAFE
Sepherosa Ziehau [Fri, 31 Jul 2015 14:07:41 +0000 (22:07 +0800)]
net: Factor out ASSERT_IN_NETISR and ASSERT_IS_NETISR
Sascha Wildner [Fri, 31 Jul 2015 19:31:41 +0000 (21:31 +0200)]
i386 removal, part 27/x: Remove i386 specific stuff from the RAID drivers.
pst(4) goes completely.
Sascha Wildner [Fri, 31 Jul 2015 19:08:43 +0000 (21:08 +0200)]
kernel: Uncomment VINUMDEBUG in LINT64. It compiles now.
Sascha Wildner [Fri, 31 Jul 2015 19:08:00 +0000 (21:08 +0200)]
kernel: Add prototypes for setjmp()/longjmp() to <sys/systm.h>.
Used by ddb and vinum. Remove the inclusion of the <setjmp.h> userspace
header.
John Marino [Fri, 31 Jul 2015 13:00:23 +0000 (15:00 +0200)]
regcomp: limit comparison to C locale only
The regex code does not work with multibyte codesets like UTF-8. In fact,
it doesn't even work with single-byte codesets like ISO-8859-1. The
comparison blows up at index 128 (the range is 0 to UCHAR_MAX (255).
As a temporary workaround, all comparisons will be done in C locale
regardless of the environment setting. The regex library needs to be
updated to handle all codesets.
John Marino [Fri, 31 Jul 2015 11:23:18 +0000 (13:23 +0200)]
libc/collcmp: Fix initialization of s2
John Marino [Fri, 31 Jul 2015 10:00:55 +0000 (12:00 +0200)]
libc/regex: Sync with FreeBSD
Sascha Wildner [Thu, 30 Jul 2015 22:21:20 +0000 (00:21 +0200)]
libc/xdr: Sync xdr_sizeof.c with FreeBSD and add it to the build.
FreeBSD did so too after our last upgrade. Shouldn't hurt.
John Marino [Thu, 30 Jul 2015 21:30:40 +0000 (23:30 +0200)]
gcc50: Adjust makefiles for new file locations
John Marino [Thu, 30 Jul 2015 20:22:02 +0000 (22:22 +0200)]
gcc50: Remove generic versions of added files
These files can probably stay in place with .PATH and -I order giving
preference to "dragonfly" over "generic", but let's go ahead and just
remove them from contrib to avoid any possible confusion.
John Marino [Thu, 30 Jul 2015 20:03:21 +0000 (22:03 +0200)]
gcc50: Add proper locale support to libstdc++ (local mod)
These patches will be sent upstream soon. DragonFly is the only BSD
with c++ local support. The exception is "messages". The glibc has
gettext functions incorporated to support it, but we can't used libintl
because that would require linking it to every c++ executable.
Sascha Wildner [Thu, 30 Jul 2015 19:44:36 +0000 (21:44 +0200)]
libc/calloc: Remove calloc.c, which has been unbuilt since
82949828d.
calloc() is part of nmalloc.c as well as of dmalloc.c
John Marino [Thu, 30 Jul 2015 19:38:19 +0000 (21:38 +0200)]
make upgrade: Stop removing hi_IN.UTF-8 and la_LN.UTF-8
These old upgrade entries were removing newly installed locales.
Reported-by: swildner
Sascha Wildner [Thu, 30 Jul 2015 17:35:45 +0000 (19:35 +0200)]
i386 removal, part 26/x: Remove i386 specific lib/libc/quad.
None of the platforms which lead to it being compiled into FreeBSD's
libc look too interesting, so remove it.
Also remove copies of a number of those functions residing in libkern
and stop compiling one of these files into libstand. Libstand also
has a quad.h header. Shrink it together to what is actually needed
(not much), while here.
Sepherosa Ziehau [Thu, 30 Jul 2015 15:24:37 +0000 (23:24 +0800)]
socket: Close the soreference() race against socket owner netisr sofree()
The race is kinda like this:
Other thread/netisrN netisrM (so->so_pcb owner)
: :
getpooltoken(head); :
so->so_head = NULL; :
: sofree(so); (*)
soreference(so); :
relpooltoken(head); :
(*)
sofree(so) frees the socket, since so->so_head is NULL and
getpooltoken(head) is not called.
Reported-by: dillon@
Sepherosa Ziehau [Thu, 30 Jul 2015 15:16:33 +0000 (23:16 +0800)]
socket: Group accept queue operations together
Sepherosa Ziehau [Thu, 30 Jul 2015 15:02:58 +0000 (23:02 +0800)]
socket: Nuke unused so_pru_abort()
Sepherosa Ziehau [Thu, 30 Jul 2015 14:56:38 +0000 (22:56 +0800)]
socket: Remove unused soabort()
Sepherosa Ziehau [Wed, 29 Jul 2015 14:53:04 +0000 (22:53 +0800)]
inet6: Use M_INTWAIT for DAD record
Sepherosa Ziehau [Wed, 29 Jul 2015 14:38:29 +0000 (22:38 +0800)]
inet6: Use static initializer to initialize DAD queue
John Marino [Thu, 30 Jul 2015 14:24:18 +0000 (16:24 +0200)]
Create 3 new locales by softlink
This creates aliases to en_US.ISO8859-1, en_US.ISO8859-15 and
ja_JP.eucJP. These locales are valid on linux and significantly
tested by gcc's libstdc++.
While here, correct an obsolete comment.
Sascha Wildner [Wed, 29 Jul 2015 17:06:58 +0000 (19:06 +0200)]
i386 removal, part 25/x: Remove i386 parts from kgdb, libkvm, crunchide.
John Marino [Wed, 29 Jul 2015 15:25:08 +0000 (17:25 +0200)]
Add README to localedef directory (credits, licensing)
John Marino [Wed, 29 Jul 2015 13:51:47 +0000 (15:51 +0200)]
locales: Change defaults for territory-only locales
From research, it appears that the default for territory-only locales
(e.g. en_US, de_DE) is to use ISO-8859-X (where X is not 15). The
@euro modifier is the alias for ISO-8859-15.
Since there is no apparent standard, I am going to switch the defaults
from aliasing to UTF-8 to ISO-8859 where available. For the non-latin
character sets, I left these at UTF-8 rather than try to decide on a
different default.
Incidentally, this enables a number of gcc libstdc++ tests to pass as
well.
John Marino [Wed, 29 Jul 2015 10:31:55 +0000 (12:31 +0200)]
localedef(1): Update license of 12 source files (CDDL => BSD2)
The localdef sources were relicensed to 2-clause BSD by Illumos project
on 4 July 2014:
https://github.com/Nexenta/illumos-nexenta/commit/
cf17542a37fc83d0ae093777e30d480423858c29
It was done for the benefit of the BSD community. It is a nice gesture,
but I don't see this being much of a change.
1) The bundled avl files are still CDDL licensed, so that may spread to
the entire program.
2) Even as CDDL, I didn't see this being an issue since localedef is
self-contained so CDDL is limited to it. (IANAL)
John Marino [Wed, 29 Jul 2015 09:30:16 +0000 (11:30 +0200)]
localedef(1): Better bootstrap fix
We don't need to build localedef in ctools as well as bootstrap tools.
Moreover, when I removed from bootstrap tools, it built but segfaulted
on use. The COLL_WEIGHTS_MAX file needs to be in the header because
it affects the structure definition. When it's moved there, the build
on older platforms will succeed.
Sascha Wildner [Wed, 29 Jul 2015 08:11:45 +0000 (10:11 +0200)]
mmap.2: Remove (now) useless BUGS section.
Sascha Wildner [Wed, 29 Jul 2015 08:10:58 +0000 (10:10 +0200)]
<sys/systm.h>: Small indent fix.
Sascha Wildner [Wed, 29 Jul 2015 08:08:55 +0000 (10:08 +0200)]
i386 removal, part 24/x: Remove i386 specific parts from NDIS.
Matthew Dillon [Wed, 29 Jul 2015 03:28:05 +0000 (20:28 -0700)]
localedef - Fix buildworld bootstrapping issue
* When running buildworld on an older system the localedef built in
BTOOLS using /usr/include/limits.h will fail building the locales.
* Fix the problem by adding localedef to CTOOLS.
* Also fix a problem where the old limits.h defines COLL_WEIGHTS_MAX as 0
and breaks the building of localedef itself. Check for the case in
collate.c.
Sepherosa Ziehau [Tue, 28 Jul 2015 15:29:04 +0000 (23:29 +0800)]
mcast: Use M_INTWAIT for multicast addresses allocation
Sepherosa Ziehau [Tue, 28 Jul 2015 14:48:36 +0000 (22:48 +0800)]
inet6: Use M_INTWAIT for prefix and prefix's router allocation
Suggested-by: dillon@
Sepherosa Ziehau [Tue, 28 Jul 2015 14:46:18 +0000 (22:46 +0800)]
ifaddr: Use M_INTWAIT for ifaddr allocation
Suggested-by: dillon@
Matthew Dillon [Wed, 29 Jul 2015 02:55:32 +0000 (19:55 -0700)]
manpages - Remove obsolete info
* Remove the BUGS section describing a 2GB limit to individual mmap()
calls. This was a limitation on 32-bit systems but no such limit exists
on 64-bit systems.
Reported-by: Alex Merritt
John Marino [Tue, 28 Jul 2015 19:51:54 +0000 (21:51 +0200)]
collate 4/4: Remove colldef(1) tool from base (swap bootstrap)
It cannot read the new input files and it generates v1.2 LC_COLLATE which
libc can no longer read. There is no use left for colldef(1).
Colldef was tool required for bootstrap, so replace it with localedef.
The share/colldef makefile must be what requires this built.
John Marino [Tue, 28 Jul 2015 19:47:10 +0000 (21:47 +0200)]
collate 3/4: Bring in input files for new LC_COLLATE format
These input files use localedef(1) instead of colldef(1) to generate and
install new LC_COLLATE files.
Only UTF-8 collation will be installed. All other codesets will symlink to
their UTF-8 counterparts. UTF-8 is the default codeset for every territory.
John Marino [Tue, 28 Jul 2015 19:36:27 +0000 (21:36 +0200)]
collate 2/4: Hook localedef to build, unhook colldef
John Marino [Tue, 28 Jul 2015 19:25:23 +0000 (21:25 +0200)]
collate 1/4: Add support for LC_COLLATE format "DragonFly 4.4" in libc
The collate functions within libc have been using version 1 and 1.2 of the
packed LC_COLLATE binary formats. These were generated with the colldef
tool, but the new LC_COLLATE files are going to be generated by the new
localedef tool using CLDR POSIX files as input. The DragonFly-flavored
version of localedef identifies the format as "DragonFly 4.4". Any
LC_COLLATE file with a different version will simply not be loaded, and
all LC* categories will get set to "C" (aka "POSIX") locale.
This work is based off of Nexenta's contribution to Illumos (successor
to OpenSolaris). The integration with xlocale is my work though.
The following commits will enable localedef tool, disable the colldef
tool, add generated colldef directory, and finally remove colldef from
base.
John Marino [Tue, 28 Jul 2015 22:17:30 +0000 (00:17 +0200)]
cldr2def: Fix colldef makefile for full buildworld
The LC_COLLATE file generation will fail with relative paths, so
use ${.CURDIR} in the makefile to fix buildworld. Also the output
file has to include the object directory, otherwise the files are
all build in /usr/src.
Matthew Dillon [Tue, 28 Jul 2015 21:39:48 +0000 (14:39 -0700)]
buildworld - Fix stage-1 build breakage
* Conditionalize sort to not use the new isnan() function in the
bootstrap stage where it might not exist.
John Marino [Tue, 28 Jul 2015 21:29:05 +0000 (23:29 +0200)]
libc.a: Add __isnan and __isnanf
These symbols are not present in libm (the deleted message isn't
correct). Remove the PIC check to put __isnan and __isnanf in the
static c library. Incidentally, __isnanl is already in static
library because the PIC check was forgotten.
Tomohiro Kusumi [Tue, 28 Jul 2015 19:58:50 +0000 (04:58 +0900)]
sbin/hammer: Use HAMMER_BUFSIZE
- Use HAMMER_BUFSIZE insteaf of 16KiB.
Antonio Huete Jimenez [Tue, 28 Jul 2015 19:47:12 +0000 (12:47 -0700)]
dirfs - Add kqueue(2) support
- Based on tmpfs work on
80ae59d743
- FIFO ops not added
John Marino [Tue, 28 Jul 2015 18:41:56 +0000 (20:41 +0200)]
sort(1): Replace NetBSD version with Free/Open version
With my ongoing collation work, I discovered our sort was not locale
sensitive, but GNU sort was. I replaced our ancient GNU sort with
NetBSD's version about 4 years ago. NetBSD hasn't updated that version
since. However, FreeBSD got rid of their GNU sort fairly recently and
replaced it with another BSD-licensed version. Four months ago, it was
imported into OpenBSD, they made some corrections which were incorporated
back in FreeBSD in the April timeframe.
This version is locale sensitive and gives the same answers as GNU sort in
my (admittedly) very limited testing.
I fixed some minor issues that GCC5 was squawking about (mainly unused
variables) and I changed the --parallel option PTHREAD_MUTEX_ADAPTIVE_NP
behavior to PTHREAD_MUTEX_ERRORCHECK (the default POSIX behavior). DF
does not have the former flag implemented.
John Marino [Tue, 28 Jul 2015 15:55:34 +0000 (17:55 +0200)]
cldr2def: Update to generate colldef replacement directory
The new localedef tool needs extracts for CLDR POSIX localization
definition files, and it needs the UTF-8 character map along with
the width definitions (mainly for Asian monitor support).
Since the LC_COLLATE handling is fundamentally different from the
first four groups, new sections to the cldr2def tool had to be
written, thus requiring me to brush up on my perl skills.
The finalize script (which I had previously written) was modified
to copy the widths and charmap files over to the regenerated
colldef directory (a drop-in replacement for share/colldef).
John Marino [Tue, 28 Jul 2015 16:31:53 +0000 (18:31 +0200)]
Add localedef(1), a locale definition generator tool
The localedef tool can read entire (and unmodified) CLDR posix definition
files, and generate all 6 LC categories: LC_COLLATE, LC_CTYPE, LC_TIME,
LC_NUMERIC, LC_MONETARY and LC_MESSAGES.
The last 4 of those aren't needed. We already have a tool that generates
msgdef, timedef, moneydef and numericdef. In the immediate future,
localedef will only be used generate LC_COLLATE files in a new format.
This will render colldef files unreadable, thus colldef will be removed
when this happens.
In the future, localedef will be tasked to generate LC_CTYPE files as
well. When that happens, the mklocale tool will be retired.
While localedef *can* read pristine POSIX files (which causes 6 files
to be generated), it will given files with only the LC_COLLATE part,
which will also have all the white space removed as well. Remove just
the spaces can save megabytes.
This tool has a long history with Solaris [1]. The Nexenta developers
modified it to read CLDR files and created the much richer collation
formats. The libc collation functions have to be modified to read the
new format (called "DragonFly-4.4") and to handle the new data structures.
The result will be that locale-sensitive tools and functions will now
properly sort multibyte and unicode strings. Our "BSD" sort is not locale
sensitive, so it will probably have to be replaced with GNU sort in order
to leverage our new collation capabilities.
This can't be hooked into the build yet. It needs the new header for
collate.c to define the data structures. Until that happens, this is
actually unbuildable.
[1] Linux also has a tool called localdef, but I do know know if it shares
a common history or if it uses CLDR POSIX files. It seems to have the
same purpose though.
Sepherosa Ziehau [Mon, 27 Jul 2015 14:47:58 +0000 (22:47 +0800)]
inet6: No need to explicitly avoid calling ioctl(SIOCSADDR)
Rearrange the code a little bit.
Sepherosa Ziehau [Mon, 27 Jul 2015 14:27:03 +0000 (22:27 +0800)]
inet6: Use M_WAITOK on SIOCAIFADDR_IN6 path.
Addition:
- Use M_ZERO, instead of calling bzero().
- Avoid M_ZERO, if the allocated memory is to be completely over-
written.
- Remove unapplied comment.
Sepherosa Ziehau [Mon, 27 Jul 2015 14:03:30 +0000 (22:03 +0800)]
route: Enhance panic message
Tomohiro Kusumi [Mon, 27 Jul 2015 16:17:31 +0000 (01:17 +0900)]
sys/vfs/hammer: Add HAMMER_BTREE_TYPE_NONE
- No functional changes, but just makes things clearer.
- root_btree_{beg|end} has 0 (not used) for btype.
Defining a macro for it makes code clearer than
implicitly taking care of btype by 0 or non-0.
Tomohiro Kusumi [Sun, 26 Jul 2015 18:43:10 +0000 (03:43 +0900)]
sys/vfs/hammer: Keep root node signature on root split
- newfs_hammer sets a signature value for the root btree node
so keep that signature on root node split along with other
fields being copied to the new root node. This doesn't affect
the existing fs as it's used for nothing.
- (The former root node signature is not cleared on root split,
so every node that has once been the root has the signature.
The one at the lowest zone offset is the original one unless
moved by reblock)