Simon Schubert [Tue, 8 Mar 2005 13:38:57 +0000 (13:38 +0000)]
Merge from vendor branch CVS:
In preparation of switching to CVS 1.11.12, repair its import:
o add needed compatibility files, not using them would demand
a fair amount of hacking in the cvs source itself
o remove bison getdate.y, it's not compatible with our yacc,
and we're anyways better off using the included getdate.c.
Simon Schubert [Tue, 8 Mar 2005 13:38:57 +0000 (13:38 +0000)]
In preparation of switching to CVS 1.11.12, repair its import:
o add needed compatibility files, not using them would demand
a fair amount of hacking in the cvs source itself
o remove bison getdate.y, it's not compatible with our yacc,
and we're anyways better off using the included getdate.c.
Simon Schubert [Tue, 8 Mar 2005 13:38:57 +0000 (13:38 +0000)]
In preparation of switching to CVS 1.11.12, repair its import:
o add needed compatibility files, not using them would demand
a fair amount of hacking in the cvs source itself
o remove bison getdate.y, it's not compatible with our yacc,
and we're anyways better off using the included getdate.c.
David Xu [Tue, 8 Mar 2005 13:35:38 +0000 (13:35 +0000)]
Compile tls.c
David Xu [Tue, 8 Mar 2005 13:32:08 +0000 (13:32 +0000)]
Compile tls support code.
David Xu [Tue, 8 Mar 2005 13:17:03 +0000 (13:17 +0000)]
Oops, fix license format(copy and paste problem).
David Xu [Tue, 8 Mar 2005 13:15:08 +0000 (13:15 +0000)]
Implement _set_tp which is used to set TLS pointer into
machine depended register. Thanks high level syscall
sys_set_tls_area, so I don't have to fiddle LDT or GDT
kludge data structure.
David Xu [Tue, 8 Mar 2005 13:09:40 +0000 (13:09 +0000)]
Add tls functions prototype.
David Xu [Tue, 8 Mar 2005 13:04:38 +0000 (13:04 +0000)]
Import tls support code for static binary from FreeBSD.
David Xu [Tue, 8 Mar 2005 13:02:05 +0000 (13:02 +0000)]
Add more relocation types.
David Xu [Tue, 8 Mar 2005 12:30:32 +0000 (12:30 +0000)]
Merge from FreeBSD:
Make sure that AT_PHDR has a useful value even for static programs.
This header will be accessed via environ variable in libc, as crt0
stores the address into the variable. We use this header to phase
TLS info in libc for static programs.
Hiten Pandya [Tue, 8 Mar 2005 07:08:29 +0000 (07:08 +0000)]
Update manual page with FreeBSD's r1.7.
Hiten Pandya [Tue, 8 Mar 2005 01:57:23 +0000 (01:57 +0000)]
Update manual page with the version in FreeBSD, r1.8.
Hiten Pandya [Tue, 8 Mar 2005 01:54:59 +0000 (01:54 +0000)]
Bring in the ktrdump(8) utility from FreeBSD.
The utility is very useful because it dumps the kernel's current ktr
event buffer.
Add it to the build.
Hiten Pandya [Tue, 8 Mar 2005 01:19:10 +0000 (01:19 +0000)]
Fix display of code in the EXAMPLE section; do not enter vertical space
to the code block because it is not suitable for 80 column display.
Hiten Pandya [Tue, 8 Mar 2005 01:08:40 +0000 (01:08 +0000)]
Conditionalise include of "opt_ktr.h" under _KERNEL.
Liam J. Foy [Mon, 7 Mar 2005 21:30:57 +0000 (21:30 +0000)]
- Correct use of the err() family (err() -> errx())
Max Okumoto [Mon, 7 Mar 2005 20:04:34 +0000 (20:04 +0000)]
Whitespace cleanup. Noted by harti
Max Okumoto [Mon, 7 Mar 2005 19:59:42 +0000 (19:59 +0000)]
Corrected spelling of colon.
Caught by harti.
Liam J. Foy [Mon, 7 Mar 2005 18:30:39 +0000 (18:30 +0000)]
- Validate the -i option (Idea from FreeBSD)
- Style(9) (FreeBSD)
Chris Pressey [Mon, 7 Mar 2005 18:02:07 +0000 (18:02 +0000)]
If a get_authorized_hosts file exists on the pfi media, copy it into
root's .ssh directory.
Work-done-by: geekgod
Sascha Wildner [Mon, 7 Mar 2005 17:48:34 +0000 (17:48 +0000)]
When building the release ISO, add an initial /var/db/locate.database
after everything is laid out.
Note: Its contents might be slightly different from the state of
affairs after the system is installed, but only until next
Saturday when weekly runs 310.locate.
Chris Pressey [Mon, 7 Mar 2005 17:44:40 +0000 (17:44 +0000)]
- Tack pfi.conf onto the end of rc.conf later (only after pfi.conf
has been copied to /etc, not when it is being looked for.) This
allows a pfi.conf file already in /etc (e.g. placed there as part
of a custom release) to DTRT in pfi_rc_actions.
- Use a much more straightforward method of restoring the original
rc.conf file when done.
Chris Pressey [Mon, 7 Mar 2005 17:30:09 +0000 (17:30 +0000)]
Unbreak the pfi_autologin option by fixing a broken invokation of sed
and some broken assumptions about the contents of /etc/gettytab.
Joerg Sonnenberger [Mon, 7 Mar 2005 17:16:01 +0000 (17:16 +0000)]
ALTQ support.
Joerg Sonnenberger [Mon, 7 Mar 2005 10:13:22 +0000 (10:13 +0000)]
Don't try to prepend to an ALTQ queue.
Joerg Sonnenberger [Mon, 7 Mar 2005 10:11:05 +0000 (10:11 +0000)]
Really use ALTQ.
Jeroen Ruigrok/asmodai [Mon, 7 Mar 2005 06:29:01 +0000 (06:29 +0000)]
Replace Turtle references.
Submitted by; E. Girkantas
Jeroen Ruigrok/asmodai [Mon, 7 Mar 2005 06:26:47 +0000 (06:26 +0000)]
Add va_copy() implementation (thanks to Chris Torek's comp.lang.c post).
Properly wrap all other definitions so that it catches all GCC 2.95.x and
upwards compilers.
Provide complete free-standing implementation for compilers that do not
implement the GCC built-ins.
Matthew Dillon [Mon, 7 Mar 2005 05:05:04 +0000 (05:05 +0000)]
Cleanup the debug output, fix a few data conversion issues.
Hiten Pandya [Mon, 7 Mar 2005 04:34:11 +0000 (04:34 +0000)]
Fix mistakes from previous commit, cleanup _NCH_ENT macro.
Hiten Pandya [Mon, 7 Mar 2005 04:19:22 +0000 (04:19 +0000)]
Fix GCC3 related pre-processor issues.
Matthew Dillon [Mon, 7 Mar 2005 02:38:28 +0000 (02:38 +0000)]
First cut of the jscan utility. This will become the core utility for
scanning journaling files (e.g. as created by mountctl). The utility is
currently able to dump a journaling file in human readable format forwards
or backwards. It will eventually be capable of tracking and mirroring,
undo, security audits, partial restores, sanity checks, and other operations.
Most of the scanning infrastructure is in as of this commit, but the code
currently tries to cache the entire transaction into memory which will
fail for large (e.g. multi gigabyte) transactions. The API's are abstracted
with the intent of being able to page out or do on-the-fly mmaping of the
underlying data in the future rather then copying it into memory.
Matthew Dillon [Sun, 6 Mar 2005 18:30:36 +0000 (18:30 +0000)]
Change NOWAITs into WAITOKs. In FreeBSD NOWAIT allocations seem to be
expected to succeed. In DragonFly a NOWAIT allocation can in fact fail.
Matthew Dillon [Sun, 6 Mar 2005 18:25:14 +0000 (18:25 +0000)]
Bring in Damien's IPW driver.
Submitted-by: Johannes Hofmann <Johannes.Hofmann@gmx.de>
Original-Author: Damien Bergamini <damien.bergamini@free.fr>
YONETANI Tomokazu [Sun, 6 Mar 2005 05:39:26 +0000 (05:39 +0000)]
Do not use tsleep when the system is not booted. This fixes acpi_ec
occasionally failing to attach. Additionally bring in the relavant
change from revision 1.56 of acpi_ec.c from FreeBSD code, which
inspired the patch submitter.
Submitted-by: Brock Johnson <wildefire [at] isentry.homelinux.org>
Inspired-by-and-Taken-from: FreeBSD src/sys/dev/acpica/acpi_ec.c,1.56
Matthew Dillon [Sun, 6 Mar 2005 05:23:01 +0000 (05:23 +0000)]
Bring in the IWI driver from FreeBSD and merge in ALTQ support.
Bring in a number of ifconfig updates from FreeBSD.
Submitted-by: Andrew Atrens <atrens@nortel.com>
Original-Author: Damien Bergamini <damien.bergamini@free.fr> (IWI)
Jeffrey Hsu [Sun, 6 Mar 2005 05:12:42 +0000 (05:12 +0000)]
Give some guidelines on when to turn on Path MTU Discovery.
Jeffrey Hsu [Sun, 6 Mar 2005 05:09:25 +0000 (05:09 +0000)]
Minimal patch that allows Path MTU discovery to be turned back on, but
leave it off by default.
Tested by: Hiroki Sato, Dave Rhodus, Yonetani Tomokazu, Matt Dillon,
Andrew Atrens,
Matthew Dillon [Sun, 6 Mar 2005 05:05:52 +0000 (05:05 +0000)]
Do some WARNS 6 cleanups. Add __unused, add a few type casts, and
rename the 'hz' argument in systimer.h to 'syshz' to avoid a global
declaration conflict.
Submitted-by: Andrew Atrens <atrens@nortel.com>
Matthew Dillon [Sun, 6 Mar 2005 05:02:03 +0000 (05:02 +0000)]
Bring in the IWI driver from FreeBSD and merge in ALTQ support.
Bring in a number of ifconfig updates from FreeBSD.
Submitted-by: Andrew Atrens <atrens@nortel.com>
Original-Author: Damien Bergamini <damien.bergamini@free.fr> (IWI)
Matthew Dillon [Sun, 6 Mar 2005 02:06:49 +0000 (02:06 +0000)]
Replace references to TurtleBSD with DragonFlyBSD. Turtle was one of the
original name ideas for DragonFly. This code module was written before
the project was named.
Noticed-by: Hiten Pandya
Chris Pressey [Sat, 5 Mar 2005 22:27:08 +0000 (22:27 +0000)]
Raise WARNS to 6:
- Cast sizeof()'s to int where appropriate.
- Initialize locals where needed.
- Mark unused function arguments as __unused.
- Rename some locals to avoid conflicts with globals.
- Constify some char *'s.
- Only define get_pathmtu() and set_pathmtu() if IPV6_RECVPATHMTU or
IPV6_USE_MTU are #defined, respectively. Otherwise, #define them
as do-nothing macros.
And style(9):
- Remove `register' keywords.
- Remove #if defined(__OperatingSystem__) conditional compilation.
Submitted-by: Pawel Biernacki <kaktus_at_dragonflybsd_dot_pl>
Some-tweaks-by: cpressey
Liam J. Foy [Sat, 5 Mar 2005 21:58:20 +0000 (21:58 +0000)]
Minor patch:
- Static
- Style(9)
Liam J. Foy [Sat, 5 Mar 2005 19:41:38 +0000 (19:41 +0000)]
- Remove unnecessary header
- Remove unnecessary cast
- Style(9)
- Do not implicitly treat NUL characters, NULL pointers, or 0-valued
integers as false-valued booleans; use explicit tests instead. (Missed from previous commit)
Sascha Wildner [Sat, 5 Mar 2005 18:31:52 +0000 (18:31 +0000)]
Remove PC98 support.
Sascha Wildner [Sat, 5 Mar 2005 18:08:50 +0000 (18:08 +0000)]
Remove PC98 support.
Hiten Pandya [Sat, 5 Mar 2005 16:10:39 +0000 (16:10 +0000)]
Remove contents of include files from their associated manual pages thus
reducing stale information.
Noticed-by: Sascha Wildner <saw@online.de>
Sascha Wildner [Sat, 5 Mar 2005 16:01:56 +0000 (16:01 +0000)]
Remove PC98 support.
Hiten Pandya [Sat, 5 Mar 2005 15:52:25 +0000 (15:52 +0000)]
Remove stale inclusion of struct disklabel and other bits from
<sys/disklabel.h>.
Noticed-by: Sascha Wildner <saw@online.de>
Hiten Pandya [Sat, 5 Mar 2005 13:37:58 +0000 (13:37 +0000)]
Remove 'rttrash', it has been long removed from the routing code; former
was only for the purpose of debugging.
Hiten Pandya [Sat, 5 Mar 2005 13:23:15 +0000 (13:23 +0000)]
Cleanup build warnings, cast and type modifications.
Matthew Dillon [Sat, 5 Mar 2005 05:08:30 +0000 (05:08 +0000)]
Fix a number of alignment and offset bugs that were corrupting the
journaling output stream. In particular, the stream record expansion
code (journal_extend()) was not returning the correct payload pointer.
Add PUTPAGES support.
Further improve the code documentation.
Matthew Dillon [Sat, 5 Mar 2005 05:04:32 +0000 (05:04 +0000)]
Add a simple msf_buf_bytes() inline which returns the number of bytes
of data the msfbuf represents.
Liam J. Foy [Sat, 5 Mar 2005 00:08:46 +0000 (00:08 +0000)]
- Update mesg(1) to confirm to SUSv3 changes previously committed.
- Add an example to mesg(1)
Taken from: FreeBSD (rev: 1.9 and rev: 1.10)
Max Okumoto [Fri, 4 Mar 2005 23:51:28 +0000 (23:51 +0000)]
patch-7.110 var.c
constify Var_Parse() Yea!
Max Okumoto [Fri, 4 Mar 2005 23:50:28 +0000 (23:50 +0000)]
patch-7.108
VarModify(), VarSortWords()
Constify functions that used brk_string()
Max Okumoto [Fri, 4 Mar 2005 23:50:10 +0000 (23:50 +0000)]
patch-7.107
VarModify()
reindent
Max Okumoto [Fri, 4 Mar 2005 23:49:42 +0000 (23:49 +0000)]
patch-7.106
brk_string()
- constify brk_string(), input param str is never modified.
Max Okumoto [Fri, 4 Mar 2005 23:49:20 +0000 (23:49 +0000)]
patch-7.105a
modifier_S()
use better variable names
Max Okumoto [Fri, 4 Mar 2005 23:48:53 +0000 (23:48 +0000)]
patch-7.105
ParseModifier() and modifier_S()
- move 'S' modifier code into its own function.
Max Okumoto [Fri, 4 Mar 2005 23:48:35 +0000 (23:48 +0000)]
patch-7.104
ParseModifier()
- Move end of string test into loop.
- Clean up init section of 'S' modifier
- Restructure oldstring and newstring so they have the
same structure.
Max Okumoto [Fri, 4 Mar 2005 23:48:12 +0000 (23:48 +0000)]
ParseModifier()
- Renamed variable 'del' to 'delim'
- Used cp[0] instead of *cp to make it match other cp[n]
references.
Max Okumoto [Fri, 4 Mar 2005 23:44:37 +0000 (23:44 +0000)]
ParseModifier()
Reindent with 'S' modifier
Max Okumoto [Fri, 4 Mar 2005 23:43:33 +0000 (23:43 +0000)]
ParseModifier() and modifier_M()
- move 'M' and 'N' modifier code into it's own function.
- use better variable names.
patch-7.101
patch-7.101a
Matthew Dillon [Fri, 4 Mar 2005 21:37:27 +0000 (21:37 +0000)]
Fix an incorrect pointer in a journal_build_pad() that led to a panic.
Add additional assertions and code comments.
Hiten Pandya [Fri, 4 Mar 2005 17:21:14 +0000 (17:21 +0000)]
Add a typedef msf_t for struct msf_buf *.
Liam J. Foy [Fri, 4 Mar 2005 16:54:37 +0000 (16:54 +0000)]
- perror() -> warn()
Joerg Sonnenberger [Fri, 4 Mar 2005 13:49:02 +0000 (13:49 +0000)]
Don't use stdint.h on FreeBSD.
Submitted-by: Chuck Tuffli <chuck_tuffli@agilent.com>
Liam J. Foy [Fri, 4 Mar 2005 10:34:39 +0000 (10:34 +0000)]
- Write status information to stdout instead of stderr.
- Affect the first of stdin, stdout and stderr that is attached to a terminal.
This brings mesg(1) up to SUSv3 conformance.
Taken from: FreeBSD rev: 1.6
Matthew Dillon [Fri, 4 Mar 2005 06:10:09 +0000 (06:10 +0000)]
msf_buf_alloc() can be called with a NULL vm_page_t when e.g. the first
page cannot be easily located, typically due to a user buffer which is
not faulted in. Fix a NULL pointer dereference panic that occurs in that
case.
Chris Pressey [Fri, 4 Mar 2005 06:06:57 +0000 (06:06 +0000)]
Small step towards WARNS=6:
- Rename function parameters to avoid conflict with globals.
- Constify a local char *.
Matthew Dillon [Fri, 4 Mar 2005 05:58:46 +0000 (05:58 +0000)]
Remove some of the nastier debugging printfs.
Jeffrey Hsu [Fri, 4 Mar 2005 05:57:50 +0000 (05:57 +0000)]
The route in a syncache entry is cleared if the connection was successfully
completed, so there's no need to keep a separate SCF_KEEPROUTE flag.
Chris Pressey [Fri, 4 Mar 2005 05:47:03 +0000 (05:47 +0000)]
Style(9):
- Remove parameter names from userland-visible prototypes.
- No space between function name and parenthesis in prototypes.
Matthew Dillon [Fri, 4 Mar 2005 05:25:26 +0000 (05:25 +0000)]
Journaling layer work. Write the actual data associated with a VOP_WRITE
to the journal. Fix a number of bugs in the journal memory FIFO code.
This commit has a slight UIO hack. Because UIOs are currently destroyed by
I/O operations on them (the iovec's get cleared), we had to make a copy of
the uio for the journaling scan.
Note that the UIO scan currently maps the data into KVA via msf_uio_iterate().
This will be made more optimal when the I/O path is fixed at some future
date to support direct page lists.
Chris Pressey [Fri, 4 Mar 2005 05:22:57 +0000 (05:22 +0000)]
Style(9):
- ANSIfy function definitions.
Matthew Dillon [Fri, 4 Mar 2005 05:21:17 +0000 (05:21 +0000)]
msf_buf_kva() now returns a char * rather then a vm_offset_t.
Matthew Dillon [Fri, 4 Mar 2005 05:20:29 +0000 (05:20 +0000)]
Make msf_buf_kva() return the correct base address. It was not including
the base offset relative to the start of the page for MSFBUFs mapped from
user or kernel buffers.
Implement msf_uio_iterate(). This function iterates through a UIO, maps
the data into the kernel as required, and calls the specified callback
routine. It is used by kernel procedures which need to scan the data
represented by a UIO.
Matthew Dillon [Fri, 4 Mar 2005 05:17:37 +0000 (05:17 +0000)]
Pass the memfifo option to the kernel.
Jeffrey Hsu [Fri, 4 Mar 2005 04:38:47 +0000 (04:38 +0000)]
Prefer rtlookup() to rtalloc() when not saving the result of the look up.
Chris Pressey [Fri, 4 Mar 2005 04:31:11 +0000 (04:31 +0000)]
Style(9):
- Sort, format, and trim #include's.
- libutil.h and login_cap.h are located in this directory, so don't
treat them as system-wide headers. (<libutil.h> -> "libutil.h")
Tested-by: make quickworld && make installworld && reboot
Jeffrey Hsu [Fri, 4 Mar 2005 03:48:25 +0000 (03:48 +0000)]
Cosmetic changes only.
Jeffrey Hsu [Fri, 4 Mar 2005 03:37:43 +0000 (03:37 +0000)]
Change a 'char *' to a 'void *' because that field is not accessed
as characters.
Add a comment clarifying that fillrtmsg() is not an external API function.
Jeffrey Hsu [Fri, 4 Mar 2005 03:34:47 +0000 (03:34 +0000)]
Readability changes.
Jeffrey Hsu [Fri, 4 Mar 2005 03:05:59 +0000 (03:05 +0000)]
Remove (void) cast before a function call with an unused return value.
Jeffrey Hsu [Fri, 4 Mar 2005 02:54:31 +0000 (02:54 +0000)]
None of the callers of rtredirect() want to know the route that was modified,
so remove the last argument to rtredirect() in order to simplify reasoning
about route reference counts.
Chris Pressey [Fri, 4 Mar 2005 02:53:55 +0000 (02:53 +0000)]
Style(9):
- Sort options in usage statement correctly, and synch man page
SYNOPSIS.
- Comment describing what the program does, goes just before main().
- Minor adjustments to other comments.
Chris Pressey [Fri, 4 Mar 2005 02:37:44 +0000 (02:37 +0000)]
Style(9):
- Remove `register' keywords.
Chris Pressey [Fri, 4 Mar 2005 02:29:19 +0000 (02:29 +0000)]
WARNS=6 cleaning, stage 6/6:
- Add WARNS?=6 to Makefile and remove manually-passed -W flags.
Submitted-by: Sepherosa Ziehau <sepherosa_at_softhome_dot_net>
Chris Pressey [Fri, 4 Mar 2005 02:22:38 +0000 (02:22 +0000)]
Reduce warnings as part of WARNS=6 cleaning, stage 5/6:
- Use size_t instead of int, as appropriate, to avoid comparisons
between signed and unsigned values.
Jeffrey Hsu [Fri, 4 Mar 2005 02:21:49 +0000 (02:21 +0000)]
Convert the struct domain next pointer to an SLIST.
Chris Pressey [Fri, 4 Mar 2005 01:47:54 +0000 (01:47 +0000)]
Reduce warnings as part of WARNS=6 cleaning, stage 4/6 (or so):
- in6_fillscopeid() is a NOP unless __KAME__ and KAME_SCOPEID are
defined, so only define and call it if they are both defined.
Chris Pressey [Fri, 4 Mar 2005 01:22:37 +0000 (01:22 +0000)]
Reduce warnings as part of WARNS=6 cleaning, stage 3/6 (or so):
- Rename local variables to avoid conflict with library functions,
globals, and other (less deeply-nested) locals.
Submitted-by: Sepherosa Ziehau <sepherosa_at_softhome_dot_net>
Matthew Dillon [Fri, 4 Mar 2005 00:44:49 +0000 (00:44 +0000)]
This is a major revamping of our MSFBUF API. MSFBUFs are used to map
things into kernel memory so the kernel and device drivers which require
such mappings can easily get them. MSFBUFs will soon replace the buffer
cache's KVA mapping code, be used in the journaling code, get and put pages,
reverse-map local kernel buffers, as well as other things.
The eventual goal is to make KVA mappings completely optional and pass
XIOs down the I/O chain, and if a device driver needs a mapping it would
then be able to use an MSFBUF to get it. This in turn will allow the
buffer cache to manage much larger data sets and remove the absurdly low
dirty data buffer limitations we currently have.
* Replace the hash table with a simple hint in the vm_page structure.
Currently we do not avoid the overhead of populating an XIO structure or
regenerating the page list, but the use of qenter2 does avoid the invltlb
overhead. The API and internal structure is designed to allow far better
optimizations of XIO mappings in the future.
* Remove MSFBUF sharing. Sharing does not occur very often and not doing
it allows an msfbuf to inherit certain context-sensitive information
such as a supplied XIO pointer, cpu affinity (for NUMA), easier SMP
operation, etc.
* Take advantage of the recent XIO changes.
* Add API routines to generate MSFBUFs from various sources, including
page lists, XIO's, user bufs, kernel bufs, and soon UIO's.
Submitted-by: Collaboration between Hiten Pandya and Matt Dillon
Chris Pressey [Fri, 4 Mar 2005 00:11:11 +0000 (00:11 +0000)]
Reduce warnings as part of WARNS=6 cleaning, stage 2/6 (or so):
- Mark many callback function arguments as __unused.
Submitted-by: Sepherosa Ziehau <sepherosa_at_softhome_dot_net>
Matthew Dillon [Fri, 4 Mar 2005 00:01:30 +0000 (00:01 +0000)]
Also, do not use M_NOWAIT for an allocation that must succeed.
Chris Pressey [Thu, 3 Mar 2005 23:52:00 +0000 (23:52 +0000)]
Reduce warnings as part of WARNS=6 cleaning, stage 1/6:
- Fully specify all elements in static initializers.
Submitted-by: Sepherosa Ziehau <sepherosa_at_softhome_dot_net>
Max Okumoto [Thu, 3 Mar 2005 23:39:06 +0000 (23:39 +0000)]
Reduce diffs between FreeBSD
Max Okumoto [Thu, 3 Mar 2005 23:33:34 +0000 (23:33 +0000)]
Reduce diff between FreeBSD.