dragonfly.git
6 years agoman: fix suffix parsing for good
Franco Fichtner [Thu, 10 Oct 2013 19:27:48 +0000 (21:27 +0200)]
man: fix suffix parsing for good

Instead of guessing the suffix in the code, use the suffix list previously
loaded via man.conf(5).  While there, zap unused interation code.

6 years agonetgraph.4: manlint and style nitpicking
Franco Fichtner [Thu, 10 Oct 2013 16:59:21 +0000 (18:59 +0200)]
netgraph.4: manlint and style nitpicking

6 years agoman: mop up a couple of manlint issues
Franco Fichtner [Thu, 10 Oct 2013 16:39:25 +0000 (18:39 +0200)]
man: mop up a couple of manlint issues

6 years agodirfs - Rework how host file permissions are checked.
Antonio Huete Jimenez [Thu, 10 Oct 2013 11:24:31 +0000 (04:24 -0700)]
dirfs - Rework how host file permissions are checked.

* Retrieve uid/gid of the user running the vkernel on mount time
  instead of on every open(2).

6 years agokernel - Attempt to fix tty race
Matthew Dillon [Thu, 10 Oct 2013 06:34:13 +0000 (23:34 -0700)]
kernel - Attempt to fix tty race

* Opening /dev/tty is special cased to open the session ttyvp.  The
  VCTTYISOPEN flag is used on the session ttyvp to indicate this.

* There is a bug where the VCTTYISOPEN flag is set prior to calling
  VOP_OPEN() on ttyvp.  Because devfs's devfs_spec_open() (and
  also devfs_spec_close()) temporarily release the vnode lock
  on the vp (ttyvp in this case), setting the flag prior to
  the VOP_OPEN() can lead to a race where another process opens
  AND closes /dev/tty before our VOP_OPEN() executes.

  The racing open will see that the VCTTYISOPEN flag is already
  set and not issue a VOP_OPEN().  It's close will then VOP_CLOSE()
  ttyvp (which so far has not been opened by either process),
  which can kill the last open on ttyvp and cause the tty to
  disconnect.

  This race is very difficult to reproduce.  We were only able to
  reproduce it on monster (48-core opteron) which happened to
  access "/dev/tty" during a poudriere bulk build in a manner
  that was able to trigger the race.

* Fix this particular bug by not setting the VCTTYISOPEN flag
  until after VOP_OPEN() returns, then re-checking the flag to
  detect the race and clean-up/retry if a race is detected.

* TODO - This is not the only bug.  Unfortunately it is also quite possible
  for multiple threads/processes to open("/dev/tty", ...) simultaniously.
  There is only one VCTTYISOPEN flag so when this occurs and one process
  then close()s its descriptor, the VCTTYISOPEN flag is cleared.

  The other process or processes may then proceed to access ttyvp without
  an opencount guard.  When they close() the count is handled properly
  because the close() code detects that the VCTTYISOPEN flag was cleared.
  The problem is the unguarded read, write, and ioctl calls that might
  occur in the mean time.

6 years agodmesg - Add -f option for continuous monitoring
Matthew Dillon [Wed, 9 Oct 2013 17:15:56 +0000 (10:15 -0700)]
dmesg - Add -f option for continuous monitoring

* Add the -f option to dmesg.  After the initial message buffer dump
  dmesg monitors the kernel for additional data and displays it as it
  arrives.  dmesg will not terminate until killed in this mode.

* The sysctl() is deficient so libkvm is forced when this option is
  specified.

6 years agobsd-family-tree: Sync with FreeBSD.
Sascha Wildner [Wed, 9 Oct 2013 17:09:00 +0000 (19:09 +0200)]
bsd-family-tree: Sync with FreeBSD.

6 years agokernel: Fix the LINT kernels.
Sascha Wildner [Wed, 9 Oct 2013 17:07:47 +0000 (19:07 +0200)]
kernel: Fix the LINT kernels.

6 years agokernel - Fix pgrp and session ref-count races
Matthew Dillon [Wed, 9 Oct 2013 15:58:35 +0000 (08:58 -0700)]
kernel - Fix pgrp and session ref-count races

* Fix some tight timing windows where the ref count on these structures
  could race.

* Protect the pgrp hash table with a spinlock instead of using proc_token.

* Improve pgfind() performance by using the spinlock in shared mode.

* Do not transition p_pgrp through NULL when changing a process's pgrp.
  Atomically transition the process (protected p->p_token and
  pg->pg_token).

6 years agodrm/radeon: Import firmwares
François Tigeot [Wed, 9 Oct 2013 13:52:53 +0000 (15:52 +0200)]
drm/radeon: Import firmwares

These files come from FreeBSD but were originally obtained from
https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/

6 years agodrm/radeon: Remove useless .PATH directive
François Tigeot [Wed, 9 Oct 2013 12:15:04 +0000 (14:15 +0200)]
drm/radeon: Remove useless .PATH directive

6 years agodrm/radeon: Fix locking issues
François Tigeot [Wed, 9 Oct 2013 11:26:57 +0000 (13:26 +0200)]
drm/radeon: Fix locking issues

6 years agodrm: Some drm_addmap() fixes
François Tigeot [Wed, 9 Oct 2013 09:46:16 +0000 (11:46 +0200)]
drm: Some drm_addmap() fixes

* Fix two warnings, moving some of the code to make the function more
  similar to drm_addmap_core() in Linux 3.8

* Remove some weirdly placed locking directives not present in Linux

6 years agoMakefile.usr - Remove pkgsrc targets
Matthew Dillon [Wed, 9 Oct 2013 05:49:46 +0000 (22:49 -0700)]
Makefile.usr - Remove pkgsrc targets

* DragonFly will be pure dports as of the next release so remove the
  pkgsrc helper targets from /usr/Makefile.

6 years agodrm/radeon: Import the Radeon KMS driver from FreeBSD
François Tigeot [Tue, 8 Oct 2013 19:15:54 +0000 (21:15 +0200)]
drm/radeon: Import the Radeon KMS driver from FreeBSD

* Credits for porting an updated version of this driver from Linux
  mainly go to Jean-Sébastien Pédron <jean-sebastien.pedron@dumbbell.fr>

* Compatibility layer for running 32-bit applications on 64-bit systems
  left out

Additional credits from the FreeBSD import message:

This driver is based on Linux 3.8 and a previous effort by kan@.

More informations about this project can be found on the FreeBSD wiki:
    https://wiki.freebsd.org/AMD_GPU

Help from: kib@, kan@
Tested by: avg@, kwm@, ray@,
Alexander Yerenkow <yerenkow@gmail.com>,
Anders Bolt-Evensen <andersbo87@me.com>,
Denis Djubajlo <stdedjub@googlemail.com>,
J.R. Oldroyd <fbsd@opal.com>,
Mikaël Urankar <mikael.urankar@gmail.com>,
Pierre-Emmanuel Pédron <pepcitron@gmail.com>,
Sam Fourman Jr. <sfourman@gmail.com>,
Wade <wade-is-great@live.com>,
(probably other I forgot...)
HW donations: kyzh, Yakaz

6 years agokernel/drm: Fix the LINT build.
Sascha Wildner [Tue, 8 Oct 2013 20:47:51 +0000 (22:47 +0200)]
kernel/drm: Fix the LINT build.

6 years agoa couple more Mt macros for author emails
Franco Fichtner [Tue, 8 Oct 2013 20:14:58 +0000 (22:14 +0200)]
a couple more Mt macros for author emails

6 years agolibc: proper FreeBSD version and some Mt macros for mails
Franco Fichtner [Tue, 8 Oct 2013 19:30:40 +0000 (21:30 +0200)]
libc: proper FreeBSD version and some Mt macros for mails

6 years agoworld: remove spurious Pp macros
Franco Fichtner [Tue, 8 Oct 2013 19:19:24 +0000 (21:19 +0200)]
world: remove spurious Pp macros

6 years agomdocml: sync std strings with groff
Franco Fichtner [Tue, 8 Oct 2013 19:17:47 +0000 (21:17 +0200)]
mdocml: sync std strings with groff

6 years agogroff: add recent FreeBSD releases
Franco Fichtner [Tue, 8 Oct 2013 19:16:47 +0000 (21:16 +0200)]
groff: add recent FreeBSD releases

(reduces `manlint' noise)

6 years agohammer - Fix exit path for newly added ioctl
Antonio Huete Jimenez [Tue, 8 Oct 2013 09:09:48 +0000 (02:09 -0700)]
hammer - Fix exit path for newly added ioctl

* Release cursor/inode on exit.
* Take in account the case where hammer_get_inode() returns a NULL ip.

6 years agomdocml: sync a few upstream commits
Franco Fichtner [Mon, 7 Oct 2013 21:29:16 +0000 (23:29 +0200)]
mdocml: sync a few upstream commits

Most of our local changes have found its way to upstream.
Let's return the favour and bring in fixes that we have
requested.  Hunk count for mandiff output reduced from
3321 to 3311 (not much, but it's a start).

     # make mandiff | grep "^@@" | wc -l

6 years agobsd.man.mk: add temporary ``mandiff'' target
Franco Fichtner [Mon, 7 Oct 2013 20:16:43 +0000 (22:16 +0200)]
bsd.man.mk: add temporary ``mandiff'' target

Show differences in ASCII output between groff(1) and mandoc(1).  This
will help generate uptream bug reports.  Also useful for spotting local
configuration quirks of both programs.

6 years agoidr: Remove duplicated code
François Tigeot [Mon, 7 Oct 2013 20:04:24 +0000 (22:04 +0200)]
idr: Remove duplicated code

* idr_get_new() and idr_get_new_above() mostly do the same thing

* Have idr_get_new() call idr_get_new_above() and only keep a single
  implementation

6 years agoUpdate pkg bootstraps
John Marino [Mon, 7 Oct 2013 16:40:05 +0000 (18:40 +0200)]
Update pkg bootstraps

The naming scheme for pkg bootstraps is inadequate.  Even if it were to
include the release, library updates could necessitate the generation
of a new bootstrap more than once per release.  Therefore, I've added
a serial in the name.  The name is now:

  bootstrap_pkg_${SERIAL}_x86-${32,64}.tar.xz

Bootstrap 01 has been created and put on mirror master.  The original
bootstraps stopped working after the locales update.

6 years agolibhammer - Make use of the HAMMERIOC_PFS_ITERATE ioctl.
Antonio Huete Jimenez [Sun, 6 Oct 2013 12:09:28 +0000 (05:09 -0700)]
libhammer - Make use of the HAMMERIOC_PFS_ITERATE ioctl.

* With this change 'info' directive no longer issues 65535 ioctl
  calls to retrieve the information of all PFSes.

6 years agohammer - Add HAMMER_PFS_ITERATE ioctl
Antonio Huete Jimenez [Sun, 6 Oct 2013 12:01:41 +0000 (05:01 -0700)]
hammer - Add HAMMER_PFS_ITERATE ioctl

* It allows iterating through all created PFSes and
  retrieving the information from them.

6 years agoFix i386 world build.
Antonio Huete Jimenez [Mon, 7 Oct 2013 13:12:09 +0000 (15:12 +0200)]
Fix i386 world build.

* Patch will be sent upstream to mdocml.

6 years agotools/netperf: Use pipe to pass result back instead of tmp file
Sepherosa Ziehau [Mon, 7 Oct 2013 13:20:37 +0000 (21:20 +0800)]
tools/netperf: Use pipe to pass result back instead of tmp file

6 years agodrm: Remove the drm_gem_names subsystem
François Tigeot [Sat, 5 Oct 2013 19:59:04 +0000 (21:59 +0200)]
drm: Remove the drm_gem_names subsystem

And use the original idr code from Linux 3.8 instead

6 years agoidr: Simplify idr_grow()
François Tigeot [Mon, 7 Oct 2013 05:33:21 +0000 (07:33 +0200)]
idr: Simplify idr_grow()

Make sure to only allocate powers of two descriptor numbers
and not weird values such as 1027

6 years agokernel - Add shared active virtual memory, i386
Matthew Dillon [Mon, 7 Oct 2013 05:06:01 +0000 (22:06 -0700)]
kernel - Add shared active virtual memory, i386

* Add shared active virtual memory.

  Shared active real memory represents the amount of memory shared across
  two or more pmap instances.  The memory is counted just once.

  Shared active virtual memory multiplies that value out by the number
  of pmap instances the memory is being shared across, giving the sysop
  some idea of the amount of ram being saved by e.g. shared libraries or
  shared mmap()s, etc.

* Collect statistics on 32-bit systems too.

6 years agokernel - Allow NULL softc in ulptclose()
Matthew Dillon [Mon, 7 Oct 2013 04:37:25 +0000 (21:37 -0700)]
kernel - Allow NULL softc in ulptclose()

* Try to fix an unplug / null-pointer-indirection

6 years agokernel - Rewrite do_vmtotal and change the way VM statistics are collected
Matthew Dillon [Mon, 7 Oct 2013 01:50:36 +0000 (18:50 -0700)]
kernel - Rewrite do_vmtotal and change the way VM statistics are collected

* The vmtotal sysctl was iterating through all VM objects.  This is a
  problem on machines with huge amounts of memory which might have millions
  of VM objects.

* Collect running VM statistics in the swap pager and vm_page modules,
  on a per-cpu basis.  Add a struct vmtotal structure to globaldata.

  Active real memory use is how many VM pages are mapped to processes.

  Total real memory use is how many VM pages are allocated whether they
  are mapped to processes or not.

  Shared real memory use represents VM pages mapped to more than one process.

  Total virtual memory use uses total real memory plus allocated swap space.

  Remaining fields are left 0 and not currently supported.

* Represents a more realistic view of memmory and VM.  In particular,
  totalling up the file sizes for all mmap()'d files is no longer a
  collected statistic because the system really has no way of knowing
  how little or how much of the file is 'active', or even ever accessed.

* The vmtotal sysctl (e.g. used by systat -vm 1) now just iterates
  cpus to aggregate gd_vmtotal for VM statistics.  This is basically
  O(1) for VM statistics.  It still iterates processes (which we will
  want to fix too, eventually), but the main scaling issue was with VM
  objects and that has been fixed.

6 years agokernel - Report zalloc statistics more accurately
Matthew Dillon [Sun, 6 Oct 2013 23:40:59 +0000 (16:40 -0700)]
kernel - Report zalloc statistics more accurately

* The sysctl proc now subtracts out zalloc objects cached in per-cpu lists.
  A substantial number of objects can be cached on per-cpu lists (up to 1/16
  the zone's maximum in aggregate).

* Thus vmstat -z now reports more accurate numbers.

6 years agokernel - pc64 - Fix pv_free() race and add assertions
Matthew Dillon [Sun, 6 Oct 2013 23:34:53 +0000 (16:34 -0700)]
kernel - pc64 - Fix pv_free() race and add assertions

* Continued work trying to fix the bad *ptep ... panics.  Previous commits
  did not do the job.  It is still unknown whether this one completely fixes
  the panic.

* The pmap pv_entry API was allowing pv_entry's to be retained with 0 refs
  and then doing a separate check for pv_pmap == NULL to determine if the
  pv_entry could be freed or not.  This resulted in a SMP race where multiple
  threads could pv_free() the same pv_entry.

* Change the code to supply an addition ref for pv_pmap != NULL and use the
  1->0 transition to deterministically conditionalize the pv_free().

* Change the shortcuts in pv_hold_try() and pv_drop() to use the new
  assumptions.

* Add some additional assertions and a generation count to try to check bugs.

6 years agokernel - pc64 - Print errata fixup only for cpu 0
Matthew Dillon [Sun, 6 Oct 2013 23:32:22 +0000 (16:32 -0700)]
kernel - pc64 - Print errata fixup only for cpu 0

* Print errata fixup only for cpu 0

6 years agoidr: Fix idr_find
François Tigeot [Sun, 6 Oct 2013 21:27:07 +0000 (23:27 +0200)]
idr: Fix idr_find

* A NULL return value is perfectly valid

6 years agomdocml: sync library definitions
Franco Fichtner [Sun, 6 Oct 2013 21:05:34 +0000 (23:05 +0200)]
mdocml: sync library definitions

6 years agoidr: idr_pre_get() takes two arguments
François Tigeot [Sun, 6 Oct 2013 18:44:47 +0000 (20:44 +0200)]
idr: idr_pre_get() takes two arguments

Don't diverge from the well-known Linux API

6 years agoman: fix literal file suffix parsing regression
Franco Fichtner [Sun, 6 Oct 2013 17:07:27 +0000 (19:07 +0200)]
man: fix literal file suffix parsing regression

Some man pages have dots in their names, apparently.  Fixes
the following invoke:

    # man ./man.conf.5

This, however, doesn't fix parsing of e.g. "./man..conf.4.5".
Instead the suffix list should be searched for a real match
while also preserving their matching order.  In the meantime,
please don't do this (ever).

Noticed-by: Thomas Klausner via NetBSD
6 years agomdocml: teach libmandoc(3) about ``libmandoc''
Franco Fichtner [Sun, 6 Oct 2013 14:31:32 +0000 (16:31 +0200)]
mdocml: teach libmandoc(3) about ``libmandoc''

6 years agomdocml: refresh config.h and README.DRAGONFLY
Franco Fichtner [Sun, 6 Oct 2013 13:45:22 +0000 (15:45 +0200)]
mdocml: refresh config.h and README.DRAGONFLY

6 years agoMerge branch 'vendor/MDOCML'
Franco Fichtner [Sun, 6 Oct 2013 13:42:02 +0000 (15:42 +0200)]
Merge branch 'vendor/MDOCML'

Conflicts:
contrib/mdocml/mandoc.3
contrib/mdocml/mdoc_macro.c

6 years agoidr: Grow descriptor table as needed in idr_get_new_above()
François Tigeot [Sun, 6 Oct 2013 13:20:23 +0000 (15:20 +0200)]
idr: Grow descriptor table as needed in idr_get_new_above()

6 years agoidr: Protect data structures with a lwkt_token
François Tigeot [Sun, 6 Oct 2013 13:04:57 +0000 (15:04 +0200)]
idr: Protect data structures with a lwkt_token

Using spinlocks is not a good idea when you have to allocate memory

6 years agoman(1): fixup literal file suffix parsing
Franco Fichtner [Sat, 5 Oct 2013 16:45:33 +0000 (18:45 +0200)]
man(1): fixup literal file suffix parsing

Look for last slash and assume next dot is the suffix start.  Fixes
display of compressed pages as configured via man.conf(5), e.g.

    # man ./man.1.gz

6 years agoman(1): tweak literal file interpretation
Franco Fichtner [Sat, 5 Oct 2013 16:01:07 +0000 (18:01 +0200)]
man(1): tweak literal file interpretation

The previous behaviour would not catch the following invoke:

    # man usr.bin/man/man.1

Now, as a generalised rule, the literal interpretation is triggered by
any '/' character in the requested page(s).

6 years agoman(1): fix build and adapt for DragonFly
Franco Fichtner [Sat, 5 Oct 2013 01:27:24 +0000 (03:27 +0200)]
man(1): fix build and adapt for DragonFly

swildner suggested to get rid of the cat* magic, so let's try this out
for mandoc(1).  Still not hooked up to the build, but ready for testing.
Don't forget to manually install etc/man.conf to your system.

6 years agoman(1): import man(1) replacement
Franco Fichtner [Sat, 5 Oct 2013 01:04:20 +0000 (03:04 +0200)]
man(1): import man(1) replacement

Vanilla sources; not yet hooked up to the build.

Taken-from: NetBSD

6 years agoidr: Mark non-public functions as static
François Tigeot [Sun, 6 Oct 2013 09:11:42 +0000 (11:11 +0200)]
idr: Mark non-public functions as static

Remove idr_alloc()'s prototype, there was no function body

6 years agoidr: Remove non-standard function idr_init1()
François Tigeot [Sun, 6 Oct 2013 07:55:10 +0000 (09:55 +0200)]
idr: Remove non-standard function idr_init1()

It never was part of the Linux idr API.

6 years agoImport mdocml-1.12.2
Franco Fichtner [Sun, 6 Oct 2013 07:47:07 +0000 (09:47 +0200)]
Import mdocml-1.12.2

6 years agogdb(1), kgdb(1): Makefile framework updates for version 7.6.1
John Marino [Sat, 5 Oct 2013 17:41:17 +0000 (19:41 +0200)]
gdb(1), kgdb(1): Makefile framework updates for version 7.6.1

The updates for gdb(1) were straight-forwards and mainly consisted of
header updates although the gnu internal library is new, as well as
a new function for libiberty.  The main work was getting kgdb(1) to
work with libgdb.  As is typically, a lot of internal changes occurred
withing gdb that rendered kgdb broken (and unbuildable).  After much
angst, kgdb works with gdb 7.6.1.

6 years agogdb: Add modifications required for version 7.6.1
John Marino [Sat, 5 Oct 2013 17:29:29 +0000 (19:29 +0200)]
gdb: Add modifications required for version 7.6.1

THe majority of these modifications (the 4 "dfly" files and osabi.c)
are needed just to get the stock gdb to build.  The modification to
inferior.c was reintroduced so kgdb can handle the 0 PID swapper
process, but the modication is much less than with version 7.4.1.
The change to the ptid_t structure (ptid.h) was necessary because
kgdb uses the thread address as the thread id, so the type has to
cover the entire address space.

The DragonFly README files were also updated.

6 years agoMerge branch 'vendor/GDB'
John Marino [Sat, 5 Oct 2013 22:52:30 +0000 (00:52 +0200)]
Merge branch 'vendor/GDB'

6 years agogdb: Revert FAKE_PROCESS id code to prepare for gdb 7.6.1
John Marino [Thu, 3 Oct 2013 19:18:26 +0000 (21:18 +0200)]
gdb: Revert FAKE_PROCESS id code to prepare for gdb 7.6.1

This set of local modifications to support the swapper as an inferior
for kgdb is being reverted to ease the merge of the new gdb 7.6.1 code.
However, it appears that gdb 7.6.1 has implemented the concept of a
"fake" process ID independently, so it may not be necessary to add
these modifications back later.

6 years agoUpgrade GDB from 7.4.1 to 7.6.1 on the vendor branch
John Marino [Sat, 5 Oct 2013 17:18:38 +0000 (19:18 +0200)]
Upgrade GDB from 7.4.1 to 7.6.1 on the vendor branch

6 years agomdocml: mandoc(1) now imitates groff(1)'s header and footer
Franco Fichtner [Thu, 3 Oct 2013 19:09:00 +0000 (21:09 +0200)]
mdocml: mandoc(1) now imitates groff(1)'s header and footer

While there, commit the autogenerated config.h as well as
version and OS name string to make maintenance of the
libmandoc(3) and mandoc(1) Makefile easier when the next
upstream version hits the repo.

6 years agotest: first commit
Franco Fichtner [Sat, 5 Oct 2013 20:43:04 +0000 (22:43 +0200)]
test: first commit

6 years agodrm: Use Linux idr functions in drm_crtc code
François Tigeot [Sat, 5 Oct 2013 14:25:20 +0000 (16:25 +0200)]
drm: Use Linux idr functions in drm_crtc code

Reducing differences with Linux 3.8

6 years agodrm: Add a linux/idr.h compatibility file
François Tigeot [Sat, 5 Oct 2013 14:14:10 +0000 (16:14 +0200)]
drm: Add a linux/idr.h compatibility file

6 years agoidr: Increase default size to 256 elements
François Tigeot [Sat, 5 Oct 2013 14:08:03 +0000 (16:08 +0200)]
idr: Increase default size to 256 elements

The old value of 32 was way too small for the drm subsystem.

6 years agokernel - Add if_iwn to the default build
Matthew Dillon [Sat, 5 Oct 2013 00:59:42 +0000 (17:59 -0700)]
kernel - Add if_iwn to the default build

* Add the IWN wifi driver to the default build

6 years agokernel - Fix minor ipv6 mbuf memory leak
Matthew Dillon [Sat, 5 Oct 2013 00:53:51 +0000 (17:53 -0700)]
kernel - Fix minor ipv6 mbuf memory leak

* Fix a minor ipv6 mbuf memory leak.

Reported-by: logan bug 2593
6 years agodrm: Manage reference counts with Linux kref functions
François Tigeot [Fri, 4 Oct 2013 17:35:35 +0000 (19:35 +0200)]
drm: Manage reference counts with Linux kref functions

Reduce differences with Linux 3.8

6 years agodrm: Import linux/kref.h from the FreeBSD OFED stack
François Tigeot [Fri, 4 Oct 2013 16:44:37 +0000 (18:44 +0200)]
drm: Import linux/kref.h from the FreeBSD OFED stack

6 years agodate(1): Fix the default format.
Sascha Wildner [Fri, 4 Oct 2013 06:44:06 +0000 (08:44 +0200)]
date(1): Fix the default format.

The correct format string for national representation of date(1)'s default
output is "date_fmt" (see /usr/src/share/timedef/*), which is not returned
by any standard nl_langinfo() constant. Previously, we defined our own
_DATE_FMT constant and handled it as an extension of nl_langinfo().

The locale upgrade removed nl_langinfo()'s _DATE_FMT handling and at the
same time brought in a change that causes "date_fmt" to be returned when
using "%+" as strftime()'s format.

That means, a nl_langinfo() call in date(1) is no longer needed, even
wrong (there is no constant returning the representation date(1) needs),
since strftime() can handle it all by itself directly and we can just use
"%+", like FreeBSD does, too.

6 years agolibc: Raise WARNS to 2.
Sascha Wildner [Tue, 1 Oct 2013 03:30:08 +0000 (05:30 +0200)]
libc: Raise WARNS to 2.

6 years agotic.1: mdoc(7) conversion
Franco Fichtner [Sat, 14 Sep 2013 09:53:15 +0000 (11:53 +0200)]
tic.1: mdoc(7) conversion

6 years agogdb: revert local modification to handle wchar_t
John Marino [Thu, 3 Oct 2013 18:20:20 +0000 (20:20 +0200)]
gdb: revert local modification to handle wchar_t

This local modification has been a real pain to maintain as each version
of gdb modifies charset.c to the point it doesn't merge cleanly.  Now
that the base iconv has been updated, the original gdb code should work
fine.  The config header has also been updated to reflect the new iconv
capabilities.

6 years agodrm: Manage drm_local_map structures with linux list functions
François Tigeot [Thu, 3 Oct 2013 18:22:43 +0000 (20:22 +0200)]
drm: Manage drm_local_map structures with linux list functions

Keep things as close to Linux 3.5 as possible

6 years agokernel - Fix a SMP race in the 64-bit pmap code (2)
Matthew Dillon [Wed, 2 Oct 2013 17:42:48 +0000 (10:42 -0700)]
kernel - Fix a SMP race in the 64-bit pmap code (2)

* Last commit had an extra vm_page_spin_unlock() call, removing.

* Fix an improper spin_unlock() which was supposed to be a
  spin_unlock_shared().  This appears to be an old bug.

Reported-by: profmakx, ftigeot
6 years agohammer2 - Move write thread from hmp to pmp
Matthew Dillon [Wed, 2 Oct 2013 04:43:34 +0000 (21:43 -0700)]
hammer2 - Move write thread from hmp to pmp

* Move the write thread from struct hammer2_mount to struct hammer2_pfsmount.
  Logical buffers for files are associated with the PFS, not the HMP.  A PFS
  can be backed by multiple HMPs.

6 years agokernel - Fix a SMP race in the 64-bit pmap code
Matthew Dillon [Tue, 1 Oct 2013 23:53:38 +0000 (16:53 -0700)]
kernel - Fix a SMP race in the 64-bit pmap code

* Some of the pmap code was assuming that pv_entry's would remain stable
  under circumstance where they might not actually remain stable.

  Specifically, when the vm_page spinlock is held while issuing a
  pv_hold_try() call on the pv, the pv is not necessarily stable
  and its pmap and pindex must be double-checked after a successful
  lock is acquired.  This case occurs in two places in the code.

* Do this check in all cases (when the pmap spinlock OR the vm_page spin
  lock is used to access a pv_entry), just to be sure that we have covered
  all the bases.

* This SMP race is virtually impossible to reproduce on 8-thread boxes
  but appears to be easy to reproduce on monster (48-way opteron).

* As of this commit it is not 100% clear if the patch fixes the assertion
  seen, but it probably fixes some things.

  panic: bad *ptep 000000078592b425 sva 00007ffffffff000 pte_pv NULL

Reported-by: ftigeot
6 years agohammer2 - cleanup, write path work
Matthew Dillon [Tue, 1 Oct 2013 05:48:20 +0000 (22:48 -0700)]
hammer2 - cleanup, write path work

* Code synchronous and asynchronous b*write() in the write path based on
  request flags, instead of just using bdwrite().

* Document a bunch of stuff.

* Remove dead code.

6 years agostdlib/libc : don't bring back DragonFly cvs ids
Joris Giovannangeli [Tue, 1 Oct 2013 22:49:06 +0000 (00:49 +0200)]
stdlib/libc : don't bring back DragonFly cvs ids

6 years agolibc/stdlib : revert to dragonfly implementation
Joris Giovannangeli [Tue, 1 Oct 2013 22:31:50 +0000 (00:31 +0200)]
libc/stdlib : revert to dragonfly implementation

 * Revert to 2d5c7e410ffcb72d10994a0d1d324b7265e29647. The dragonfly
   version shares code for the various functions of the strtol familly,
   using macros.

 * add locale aware version for the functions the strtol familly. Only
   isspace calls are concerned.

6 years agokernel: don't allow proplib to redefine bool
François Tigeot [Tue, 1 Oct 2013 19:35:15 +0000 (21:35 +0200)]
kernel: don't allow proplib to redefine bool

6 years agostdbool.h: Move to sys/sys
François Tigeot [Tue, 1 Oct 2013 19:01:20 +0000 (21:01 +0200)]
stdbool.h: Move to sys/sys

It's bad style for the kernel to use the same headers as userland
programs.

Requested-by: dillon
6 years agodrm/i915: Make intel_gtt_get() return type the same as on Linux 3.5
François Tigeot [Tue, 1 Oct 2013 13:33:18 +0000 (15:33 +0200)]
drm/i915: Make intel_gtt_get() return type the same as on Linux 3.5

6 years agohammer2 - Revamp snapshot code
Matthew Dillon [Tue, 1 Oct 2013 00:40:40 +0000 (17:40 -0700)]
hammer2 - Revamp snapshot code

* Change the snapshot code to not use chain_duplicate().  Instead
  get the thing working by flushing the original sub-tree, creating
  a new directory under the super-root, and then simply copying the
  blockset.

  The previous code called chain_duplicate() to create the snapshot
  but the coding still required a flush.  Doing it without a flush
  is possible for a read-only snapshot but very difficult otherwise.

* This will simplify coding down the line.

6 years agohammer2 - Revamp hammer2_cluster structure part 1
Matthew Dillon [Mon, 30 Sep 2013 22:31:14 +0000 (15:31 -0700)]
hammer2 - Revamp hammer2_cluster structure part 1

* Adjust the hammer2_cluster structure to track multiple chains (and thus
  multiple mount points).  Use cases still just pull out one chain.

* Remove schain from hammer2_mount, leaving just sroot.  The cached chain
  structure isn't useful because it doesn't track delete-duplicate
  operations.  Use sroot for basing functions.

* Mark pfs-mount chains with the PFSROOT flag and propagate through
  duplications to detect when a snapshot should inherit the PFS
  cluster id or not.

6 years agoSet ICONV_CONST to "const" for various GNU software
John Marino [Mon, 30 Sep 2013 21:59:27 +0000 (23:59 +0200)]
Set ICONV_CONST to "const" for various GNU software

The prototype of iconv changed to match FreeBSD and NetBSD with the
recent locales update.

6 years agolibarchive: Disable iconv the statically-built version
John Marino [Mon, 30 Sep 2013 21:14:14 +0000 (23:14 +0200)]
libarchive: Disable iconv the statically-built version

The iconv in base uses dlopen(3) which only works on dynamically-built
binaries.  Use the new SHARED_CFLAGS variable to set ICONV conditionally
for dynamic libraries only.  This fixes the "Service Unavailable"
message that pkg started emitting after the locales/iconv update.

6 years agobsd.lib.mk: Recognize {SHARED,STATIC}_{C,CXX}FLAGS variables
John Marino [Mon, 30 Sep 2013 20:48:45 +0000 (22:48 +0200)]
bsd.lib.mk: Recognize {SHARED,STATIC}_{C,CXX}FLAGS variables

Four new variables are recognized by bsd.lib.mk:
  STATIC_CFLAGS
  STATIC_CXXFLAGS
  SHARED_CFLAGS
  SHARED_CXXFLAGS

This allows for the possibility to compile the objects with unique flags
depending if the library is shared or not, and/or c versus c++.

6 years agodate(1): Choose a better format constant
John Marino [Mon, 30 Sep 2013 19:58:56 +0000 (21:58 +0200)]
date(1): Choose a better format constant

After the locales patch, date(1) would return something like "09/30/13"
depending on your locale.  This is a different format that omits the
time component that was there before.  Changing the D_FMT constant for
D_T_FMT will return something like "Mon Sep 30 21:55:26 2013" which is
much closer to how it was before the locales patch was committed.

6 years agolibc: Ansify again, de-register again.
Sascha Wildner [Mon, 30 Sep 2013 04:22:18 +0000 (06:22 +0200)]
libc: Ansify again, de-register again.

* Remove all the K&R crap that was carelessly copied over our ansified
  source in the so called locale "sync" (0d5acd7467c4e95).

* Also remove a lot of old unused gunk in stdtime/ again that had already
  been removed. We really don't want it back.

* De-register again (while here, do that in resolv/ too).

6 years agolibm: Update erf, add imprecise versions of missing c++11 functions
John Marino [Sun, 29 Sep 2013 23:29:20 +0000 (01:29 +0200)]
libm: Update erf, add imprecise versions of missing c++11 functions

Provide updates to erf and erff functions.

Also add weak versions of the missing c++11 long double functions by
using taking arguments of type double.  Use of these versions will
result in a linker warning to discourage program that really need
extra precision from using them.

Note that since the c/c++ specs only guarantee that long double has
precision equal to double, code that relies on these functions having
greater precision is unportable at best and broken at worst.

Taken-from: FreeBSD

6 years agoActivate Native Language Support (NLS) for error messages
John Marino [Sun, 29 Sep 2013 19:18:52 +0000 (21:18 +0200)]
Activate Native Language Support (NLS) for error messages

Error messages have been in English regardless of the locale selected by
the user.  NLS support has always been possible, but it's never been
activated.  A simple CFLAG (-DNLS) does that now.  At the same time, NLS
support was added for network messages.

6 years agonvi: Upgrade from version 1.79 to 2.1.1 (multibyte support)
John Marino [Sun, 29 Sep 2013 17:33:57 +0000 (19:33 +0200)]
nvi: Upgrade from version 1.79 to 2.1.1 (multibyte support)

The DragonFly NVI ("new" vi and ex) has been at version 1.79 which,
according to the FreeBSD repository, was imported nearly 18 years
ago in October 1996.

A 2011 Summer of Code project of FreeBSD added multibyte encoding
support with iconv.  With the recent update to the base iconv
support, DragonFly users can enjoy multibyte support. Language
catalogs are still based on English, French, German, Dutch,
Spanish, Chinese, Russian, Polish, and Swedish.  FreeBSD brought
this NVI update into their HEAD in August 2013.  Local
modifications to nvi 1.79 were incorporated directly on top of
this sync.

Repository: <https://github.com/lichray/nvi2>

6 years agodirfs - Lower debug level to 0
Antonio Huete Jimenez [Sun, 29 Sep 2013 15:25:26 +0000 (08:25 -0700)]
dirfs - Lower debug level to 0

6 years agodirfs - Fix a panic on shutdown.
Antonio Huete Jimenez [Sun, 29 Sep 2013 15:14:25 +0000 (08:14 -0700)]
dirfs - Fix a panic on shutdown.

* Do not attempt to release root inode if there was no call
  to VFS_ROOT()

6 years agolocales, libconv: Sync with FreeBSD (extensive reach)
John Marino [Sat, 21 Sep 2013 10:45:03 +0000 (12:45 +0200)]
locales, libconv: Sync with FreeBSD (extensive reach)

What started out as a relatively simply upgrade to libiconv finally
resulted in a simultaneous overhaul to locales, strings, and stdio.
All of these are interdependent and there is no way to upgrade them
individually or in steps.

These cases are similar to what happened with libm where significant
syncing came from NetBSD previously, rendering contributions from
FreeBSD difficult.  Libiconv and locales (both ancient) are now in
sync with FreeBSD HEAD.

As several headers were signficantly updated and the mtree was updated
to accommodate the new include/xlocale directory, this commit will
require a full world build.  It also may cause some dports to no longer
build due to prototype differences, but the dports will be adjusted.

The regexp library was not being used.  It was removed from FreeBSD four
years ago.  Since it required collate updates, I took the opportunity to
remove it completely by adding re_comp functionality to 4.3 compat
library like FreeBSD did.

__DragonFly_version has been bumped to 500300.

6 years agokeylogin(1): Fix a warning and raise WARNS to 6.
Sascha Wildner [Sun, 29 Sep 2013 11:14:03 +0000 (13:14 +0200)]
keylogin(1): Fix a warning and raise WARNS to 6.

6 years agoagp/intel: Add ValleyView and Haswell devices
François Tigeot [Sun, 29 Sep 2013 09:36:28 +0000 (11:36 +0200)]
agp/intel: Add ValleyView and Haswell devices

6 years agoagp/intel: Fix pci_get_subdevice() / pci_get_device() confusion
François Tigeot [Sun, 29 Sep 2013 08:43:49 +0000 (10:43 +0200)]
agp/intel: Fix pci_get_subdevice() / pci_get_device() confusion

The IDs are the sames with Intel chipsets but it's best to check
for the right thing anyway.

Spotted-by: swildner
6 years agoagp/intel: Minor cleanups
François Tigeot [Sun, 29 Sep 2013 07:23:39 +0000 (09:23 +0200)]
agp/intel: Minor cleanups

* Do not limit the device probe check to "display" devices

* Stop storing the vendor ID in the match list, all the devices we care
  about are Intel ones.

6 years agohammer2 - Redo refactor code, fix races, add assertions
Matthew Dillon [Sun, 29 Sep 2013 06:30:11 +0000 (23:30 -0700)]
hammer2 - Redo refactor code, fix races, add assertions

* Redo the refactor code which is used to detect when a chain
  has been delete-duplicated so the caller can translate a stale
  chain pointer into an up-to-date chain pointer.

  The new code uses a simple chain flag, HAMMER2_CHAIN_DUPLICATED,
  to flag that the original chain is now stale.  The old code was
  unnecessarily complex.

* Close several holes in the hardlink code where stale chains
  were improperly being used as starting points for modifications,
  resulting in filesystem corruption.

* Assert the a delete-duplicate is not performed on a stale chain.