[Pkg-virtualbox-commits] [kbuild] 01/03: New upstream version 0.1.9998svn3126+dfsg

Gianfranco Costamagna locutusofborg at moszumanska.debian.org
Wed Nov 22 08:56:25 UTC 2017


This is an automated email from the git hooks/post-receive script.

locutusofborg pushed a commit to branch master
in repository kbuild.

commit 35d82fe28c77dc532502e85f5cfd4fff829f497d
Author: Gianfranco Costamagna <locutusofborg at debian.org>
Date:   Wed Nov 22 09:54:00 2017 +0100

    New upstream version 0.1.9998svn3126+dfsg
---
 Config.kmk                                |   5 +-
 kBuild/env.sh                             |   8 +-
 kBuild/envwin.cmd                         |   4 +-
 kBuild/footer-inherit-uses-tools.kmk      |   4 +-
 kBuild/footer-misc.kmk                    |   4 +-
 kBuild/footer-pass1.kmk                   |   4 +-
 kBuild/footer-pass2-compiling-targets.kmk |   4 +-
 kBuild/footer-pass2-fetches.kmk           |   4 +-
 kBuild/footer-pass2-installs.kmk          |  44 +++-
 kBuild/footer-pass2-patches.kmk           |   4 +-
 kBuild/footer-passes.kmk                  |   4 +-
 kBuild/footer.kmk                         |   4 +-
 kBuild/header.kmk                         |  10 +-
 kBuild/msgstyles/brief.kmk                |   4 +-
 kBuild/msgstyles/brief2.kmk               |   4 +-
 kBuild/rules.kmk                          |   4 +-
 kBuild/sdks/DXSDK.kmk                     |   4 +-
 kBuild/sdks/DXSDKAMD64.kmk                |   4 +-
 kBuild/sdks/DXSDKX86.kmk                  |   4 +-
 kBuild/sdks/LIBSDL.kmk                    |   4 +-
 kBuild/sdks/MACOSX104.kmk                 |   4 +-
 kBuild/sdks/MACOSX104INCS.kmk             |   4 +-
 kBuild/sdks/MACOSX105.kmk                 |   4 +-
 kBuild/sdks/MACOSX105INCS.kmk             |   4 +-
 kBuild/sdks/NT4DDK.kmk                    |   4 +-
 kBuild/sdks/OS2DDKBASE32.kmk              |   4 +-
 kBuild/sdks/ReorderCompilerIncs.kmk       |   4 +-
 kBuild/sdks/W2K3DDK.kmk                   |   4 +-
 kBuild/sdks/W2K3DDKAMD64.kmk              |   4 +-
 kBuild/sdks/W2K3DDKX86.kmk                |   4 +-
 kBuild/sdks/W32API.kmk                    |   4 +-
 kBuild/sdks/WIN32SDK.kmk                  |   4 +-
 kBuild/sdks/WIN32SDK2002.kmk              |   4 +-
 kBuild/sdks/WIN64SDK.kmk                  |   4 +-
 kBuild/sdks/WINDDK.kmk                    |   4 +-
 kBuild/sdks/WINDDK71.kmk                  |   4 +-
 kBuild/sdks/WINDDK71WLH.kmk               |   4 +-
 kBuild/sdks/WINDDK71WNET.kmk              |   4 +-
 kBuild/sdks/WINDDK71WXP.kmk               |   4 +-
 kBuild/sdks/WINDDK80.kmk                  |   4 +-
 kBuild/sdks/WINDDK80W8.kmk                |   4 +-
 kBuild/sdks/WINDDKW2K.kmk                 |   4 +-
 kBuild/sdks/WINDDKWLH.kmk                 |   4 +-
 kBuild/sdks/WINDDKWNET.kmk                |   4 +-
 kBuild/sdks/WINDDKWXP.kmk                 |   4 +-
 kBuild/sdks/WINPSDK.kmk                   |   4 +-
 kBuild/sdks/WINPSDK71.kmk                 |   4 +-
 kBuild/sdks/WINPSDK71INCS.kmk             |   4 +-
 kBuild/sdks/WINPSDKINCS.kmk               |   4 +-
 kBuild/subfooter.kmk                      |   4 +-
 kBuild/subheader.kmk                      |   4 +-
 kBuild/templates/DUMMY.kmk                |   4 +-
 kBuild/tools/ALP.kmk                      |   4 +-
 kBuild/tools/BISON.kmk                    |   4 +-
 kBuild/tools/FLEX.kmk                     |   4 +-
 kBuild/tools/GCC.kmk                      |   4 +-
 kBuild/tools/GCC3.kmk                     |   4 +-
 kBuild/tools/GCC32.kmk                    |   4 +-
 kBuild/tools/GCC3OMF.kmk                  |   4 +-
 kBuild/tools/GCC3PLAIN.kmk                |   4 +-
 kBuild/tools/GCC42MACHO.kmk               |   4 +-
 kBuild/tools/GCC4MACHO.kmk                |   4 +-
 kBuild/tools/GCC64.kmk                    |   4 +-
 kBuild/tools/GXX.kmk                      |   4 +-
 kBuild/tools/GXX3.kmk                     |   4 +-
 kBuild/tools/GXX32.kmk                    |   4 +-
 kBuild/tools/GXX3OMF.kmk                  |   4 +-
 kBuild/tools/GXX3PLAIN.kmk                |   4 +-
 kBuild/tools/GXX42MACHO.kmk               |   4 +-
 kBuild/tools/GXX4MACHO.kmk                |   4 +-
 kBuild/tools/GXX64.kmk                    |   4 +-
 kBuild/tools/JWASM.kmk                    |   4 +-
 kBuild/tools/LLVMGCC42MACHO.kmk           |   4 +-
 kBuild/tools/LLVMGXX42MACHO.kmk           |   4 +-
 kBuild/tools/MASM510.kmk                  |   4 +-
 kBuild/tools/MASM600.kmk                  |   4 +-
 kBuild/tools/MASM610.kmk                  |   4 +-
 kBuild/tools/MASM6PLUS.kmk                |   4 +-
 kBuild/tools/MASM710.kmk                  |   4 +-
 kBuild/tools/MINGW32.kmk                  |   4 +-
 kBuild/tools/MINGWW64.kmk                 |   4 +-
 kBuild/tools/MSLINK510.kmk                |   4 +-
 kBuild/tools/NASM.kmk                     |   4 +-
 kBuild/tools/OPENWATCOM-16.kmk            |   4 +-
 kBuild/tools/OPENWATCOM-WL.kmk            |   4 +-
 kBuild/tools/OPENWATCOM.kmk               |   4 +-
 kBuild/tools/StandardDTrace.kmk           |   4 +-
 kBuild/tools/TAR.kmk                      |   4 +-
 kBuild/tools/TARBZ2.kmk                   |   4 +-
 kBuild/tools/TARGZ.kmk                    |   4 +-
 kBuild/tools/VAC308.kmk                   |   4 +-
 kBuild/tools/VCC100.kmk                   |   4 +-
 kBuild/tools/VCC100AMD64.kmk              |   4 +-
 kBuild/tools/VCC100X86.kmk                |   4 +-
 kBuild/tools/VCC120.kmk                   |   4 +-
 kBuild/tools/VCC120AMD64.kmk              |   4 +-
 kBuild/tools/VCC120X86.kmk                |   4 +-
 kBuild/tools/VCC70.kmk                    |   4 +-
 kBuild/tools/VCC80.kmk                    |   4 +-
 kBuild/tools/VCC80AMD64.kmk               |   4 +-
 kBuild/tools/VCC80X86.kmk                 |   4 +-
 kBuild/tools/WATCOMC11C-16.kmk            |   4 +-
 kBuild/tools/WATCOMC11C-WL.kmk            |   4 +-
 kBuild/tools/WATCOMC11C.kmk               |   4 +-
 kBuild/tools/WGET.kmk                     |   4 +-
 kBuild/tools/XGCCAMD64LINUX.kmk           |   4 +-
 kBuild/tools/YACC.kmk                     |   4 +-
 kBuild/tools/YASM.kmk                     |   4 +-
 kBuild/tools/ZIP.kmk                      |   4 +-
 kBuild/units/dtrace.kmk                   |   4 +-
 kBuild/units/lex.kmk                      |   4 +-
 kBuild/units/qt3.kmk                      |   4 +-
 kBuild/units/qt4.kmk                      |   4 +-
 kBuild/units/qt5.kmk                      |   4 +-
 kBuild/units/vccprecomp.kmk               |   4 +-
 kBuild/units/yacc.kmk                     |   4 +-
 kBuild/up.kmk                             |   4 +-
 src/kmk/Makefile.am                       |   1 +
 src/kmk/kmkbuiltin/cat.c                  |   8 -
 src/kmk/kmkbuiltin/install.c              | 338 ++++++++++++++++--------------
 src/kmk/kmkbuiltin/mscfakes.c             |  28 ++-
 src/kmk/main.c                            |  12 +-
 src/lib/Makefile.kmk                      |   3 +-
 src/lib/dos2unix.c                        | 302 ++++++++++++++++++++++++++
 src/lib/dos2unix.h                        |  50 +++++
 src/lib/kDep.c                            |   4 +-
 src/lib/kStuff/include/k/kDefs.h          |  22 +-
 src/lib/nt/ntunlink.c                     |   4 +-
 src/lib/testcase/dos-text.txt             |  35 ++++
 src/lib/testcase/dos2unix-test.cmd        |  46 ++++
 src/lib/testcase/mixed-text.txt           |  35 ++++
 src/lib/testcase/unix-text.txt            |  35 ++++
 132 files changed, 1017 insertions(+), 425 deletions(-)

diff --git a/Config.kmk b/Config.kmk
index 3c226ff..7b22d71 100644
--- a/Config.kmk
+++ b/Config.kmk
@@ -1,4 +1,4 @@
-# $Id: Config.kmk 3110 2017-10-20 19:14:56Z bird $
+# $Id: Config.kmk 3111 2017-10-22 11:38:15Z bird $
 ## @file
 # Build Configuration.
 #
@@ -346,14 +346,17 @@ else # !os2, !win, !nt
 
  # Make sure we get the right bit count in the output.
  TEMPLATE_BIN_CFLAGS.x86       += -m32
+ TEMPLATE_BIN_CFLAGS.x32       += -mx32
  TEMPLATE_BIN_CFLAGS.sparc32   += -m32
  TEMPLATE_BIN_CFLAGS.amd64     += -m64
  TEMPLATE_BIN_CFLAGS.sparc64   += -m64
  TEMPLATE_BIN_CXXFLAGS.x86     += -m32
+ TEMPLATE_BIN_CXXFLAGS.x32     += -mx32
  TEMPLATE_BIN_CXXFLAGS.sparc32 += -m32
  TEMPLATE_BIN_CXXFLAGS.amd64   += -m64
  TEMPLATE_BIN_CXXFLAGS.sparc64 += -m64
  TEMPLATE_BIN_LDFLAGS.x86      += -m32
+ TEMPLATE_BIN_LDFLAGS.x32      += -mx32
  TEMPLATE_BIN_LDFLAGS.sparc32  += -m32
  TEMPLATE_BIN_LDFLAGS.amd64    += -m64
  TEMPLATE_BIN_LDFLAGS.sparc64  += -m64
diff --git a/kBuild/env.sh b/kBuild/env.sh
index 79d8f33..d4a7583 100755
--- a/kBuild/env.sh
+++ b/kBuild/env.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-# $Id: env.sh 3104 2017-10-20 16:23:06Z bird $
+# $Id: env.sh 3111 2017-10-22 11:38:15Z bird $
 ## @file
 # Environment setup script.
 #
@@ -337,6 +337,12 @@ if test -z "$KBUILD_HOST_ARCH"; then
     case "$KBUILD_HOST_ARCH" in
         x86_64|AMD64|amd64|k8|k8l|k9|k10)
             KBUILD_HOST_ARCH='amd64'
+            # Try detect debian x32.
+            if test "$KBUILD_HOST" = "linux"; then 
+                case "`uname -v`" in 
+                    *Debian*+x32+*) KBUILD_HOST_ARCH=x32 ;;
+                esac
+            fi
             ;;
         x86|i86pc|ia32|i[3456789]86|BePC|i[3456789]86-AT[3456789]86)
             KBUILD_HOST_ARCH='x86'
diff --git a/kBuild/envwin.cmd b/kBuild/envwin.cmd
index 26c769c..b66b6b6 100644
--- a/kBuild/envwin.cmd
+++ b/kBuild/envwin.cmd
@@ -1,5 +1,5 @@
 @echo off
-REM $Id: envwin.cmd 2413 2010-09-11 17:43:04Z bird $
+REM $Id: envwin.cmd 3113 2017-10-29 17:16:03Z bird $
 REM REM @file
 REM Environment setup script.
 REM
@@ -47,7 +47,7 @@ set _KBUILD_OVERRIDE_TARGET_ARCH=0
 REM
 REM Parse the arguments.
 REM
-REM Note: The 0 argument must be safed as it is also shifted.
+REM Note: The 0 argument must be saved as it is also shifted.
 REM
 set _KBUILD_SELF=%0
 set _KBUILD_OPT_FULL=0
diff --git a/kBuild/footer-inherit-uses-tools.kmk b/kBuild/footer-inherit-uses-tools.kmk
index 9bc5ad5..85d2512 100644
--- a/kBuild/footer-inherit-uses-tools.kmk
+++ b/kBuild/footer-inherit-uses-tools.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-inherit-uses-tools.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer-inherit-uses-tools.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - Footer - Target lists - Pass 2 - Template & Target Inheritance, Uses and Tools.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/footer-misc.kmk b/kBuild/footer-misc.kmk
index 7e4cda3..1bf8db6 100644
--- a/kBuild/footer-misc.kmk
+++ b/kBuild/footer-misc.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-misc.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer-misc.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - Footer - Target lists - Pass 2 - Misc.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/footer-pass1.kmk b/kBuild/footer-pass1.kmk
index 141e618..36d382a 100644
--- a/kBuild/footer-pass1.kmk
+++ b/kBuild/footer-pass1.kmk
@@ -1,4 +1,4 @@
-# $Id: footer-pass1.kmk 2764 2015-01-28 18:51:46Z bird $
+# $Id: footer-pass1.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - Footer - Target lists - Pass 1.
 #
@@ -7,7 +7,7 @@
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/footer-pass2-compiling-targets.kmk b/kBuild/footer-pass2-compiling-targets.kmk
index 5e3c6a8..c0adc8a 100644
--- a/kBuild/footer-pass2-compiling-targets.kmk
+++ b/kBuild/footer-pass2-compiling-targets.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-pass2-compiling-targets.kmk 2952 2016-09-21 18:52:08Z bird $
+# $Id: footer-pass2-compiling-targets.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - Footer - Target lists - Pass 2 - Compiling Targets.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/footer-pass2-fetches.kmk b/kBuild/footer-pass2-fetches.kmk
index 48f333e..ffa75b7 100644
--- a/kBuild/footer-pass2-fetches.kmk
+++ b/kBuild/footer-pass2-fetches.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-pass2-fetches.kmk 2912 2016-09-14 13:36:15Z bird $
+# $Id: footer-pass2-fetches.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - Footer - Target lists - Pass 2 - Fetches.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/footer-pass2-installs.kmk b/kBuild/footer-pass2-installs.kmk
index f6a31b4..cbbcdbb 100644
--- a/kBuild/footer-pass2-installs.kmk
+++ b/kBuild/footer-pass2-installs.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-pass2-installs.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer-pass2-installs.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - Footer - Target lists - Pass 2 - Installs.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
@@ -42,7 +42,7 @@
 define def_install_src_rule_staging
 $$(call KB_FN_ASSERT_ABSPATH, stagedst)
 $$(call KB_FN_ASSERT_ABSPATH, srcsrc)
-$(stagedst) : $(srcsrc) | $(dir $(stagedst))
+$(stagedst) : $(srcsrc) $(top_deps) | $(dir $(stagedst)) $(top_orderdeps)
 	%$$(call MSG_INST_FILE,$(srcsrc),$(stagedst))
 	$(top_pre_file_cmds)
 	$$(QUIET)$(stagecmd)
@@ -53,7 +53,7 @@ $(eval-opt-var def_install_src_rule_staging)
 define def_install_src_rule_installing
 $$(call KB_FN_ASSERT_ABSPATH, instdst)
 $$(call KB_FN_ASSERT_ABSPATH, srcsrc)
-$(instdst) : $(srcsrc) | $(dir $(instdst))
+$(instdst) : $(srcsrc) $(top_deps) | $(dir $(instdst)) $(top_orderdeps)
 	%$$(call MSG_INST_FILE,$(srcsrc),$(instdst))
 	$(top_pre_file_cmds)
 	$$(QUIET)$(instcmd)
@@ -245,7 +245,7 @@ $(eval-opt-var def_install_src)
 #
 define def_install_symlink_rule_staging
 $$(call KB_FN_ASSERT_ABSPATH, stagedst)
-$(stagedst) : | $(dir $(stagedst))
+$(stagedst) : $(top_deps) | $(dir $(stagedst)) $(top_orderdeps)
 	%$$(call MSG_INST_SYM,$(stagedst),$(symdst))
 	$$(QUIET)$$(RM) -f -- $$@
 	$(top_pre_sym_cmds)
@@ -256,7 +256,7 @@ $(eval-opt-var def_install_symlink_rule_staging)
 
 define def_install_symlink_rule_installing
 $$(call KB_FN_ASSERT_ABSPATH, instdst)
-$(instdst) : | $(dir $(instdst))
+$(instdst) : $(top_deps) | $(dir $(instdst)) $(top_orderdeps)
 	%$$(call MSG_INST_SYM,$(instdst),$(symdst))
 	$$(QUIET)$$(RM) -f -- $$@
 	$(top_pre_sym_cmds)
@@ -336,7 +336,7 @@ $(optmize def_install_symlink)
 #
 define def_install_directory_rule
 $$(call KB_FN_ASSERT_ABSPATH, insdst)
-$(insdst):
+$(insdst): $(top_deps) | $(top_orderdeps)
 	%$$(call MSG_INST_DIR,$(insdst))
 	$(top_pre_dir_cmds)
 	$$(QUIET)$$(INSTALL) -d \
@@ -491,6 +491,36 @@ ifneq ($(insttype),none)
  else
    local top_instfun := _INSTALL_FILE
  endif
+ local top_deps := \
+	$($(target)_DEPS.$(bld_trg_cpu)) \
+	$($(target)_DEPS.$(bld_trg).$(bld_trg_arch).$(bld_type)) \
+	$($(target)_DEPS.$(bld_trg).$(bld_trg_arch)) \
+	$($(target)_DEPS.$(bld_trg).$(bld_type)) \
+	$($(target)_DEPS.$(bld_trg_arch)) \
+	$($(target)_DEPS.$(bld_trg)) \
+	$($(target)_DEPS.$(bld_type)) \
+	$($(target)_DEPS)
+ local top_orderdeps := \
+	$($(target)_ORDERDEPS.$(bld_trg_cpu)) \
+	$($(target)_ORDERDEPS.$(bld_trg).$(bld_trg_arch).$(bld_type)) \
+	$($(target)_ORDERDEPS.$(bld_trg).$(bld_trg_arch)) \
+	$($(target)_ORDERDEPS.$(bld_trg).$(bld_type)) \
+	$($(target)_ORDERDEPS.$(bld_trg_arch)) \
+	$($(target)_ORDERDEPS.$(bld_trg)) \
+	$($(target)_ORDERDEPS.$(bld_type)) \
+	$($(target)_ORDERDEPS)
+ ifdef $(target)_DEFPATH
+  local top_defpath := $($(target)_DEFPATH)
+ else ifdef $(target)_PATH
+  local top_defpath := $($(target)_PATH)
+ else
+  local top_defpath :=
+ endif
+ ifneq ($(top_defpath),)
+  local top_deps      := $(abspathex $(top_deps),$(top_defpath))
+  local top_orderdeps := $(abspathex $(top_orderdeps),$(top_defpath))
+ endif
+
  # The user have to use double expansion and can only use the above locals. Not 100% optimal...
  local top_pre_file_cmds  := $(evalcall def_fn_prop_get_first_defined,PRE_XFILE_CMDS)
  local top_post_file_cmds := $(evalcall def_fn_prop_get_first_defined,POST_XFILE_CMDS)
diff --git a/kBuild/footer-pass2-patches.kmk b/kBuild/footer-pass2-patches.kmk
index af98751..af07b6c 100644
--- a/kBuild/footer-pass2-patches.kmk
+++ b/kBuild/footer-pass2-patches.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-pass2-patches.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer-pass2-patches.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - Footer - Target lists - Pass 2 - Patches.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/footer-passes.kmk b/kBuild/footer-passes.kmk
index fe2dbf1..40fd397 100644
--- a/kBuild/footer-passes.kmk
+++ b/kBuild/footer-passes.kmk
@@ -1,10 +1,10 @@
-# $Id: footer-passes.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer-passes.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - Footer - Target lists - Pass 2 - Passes.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/footer.kmk b/kBuild/footer.kmk
index ca732ad..baba97b 100644
--- a/kBuild/footer.kmk
+++ b/kBuild/footer.kmk
@@ -1,10 +1,10 @@
-# $Id: footer.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: footer.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - File included at bottom of a makefile.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/header.kmk b/kBuild/header.kmk
index 8681f05..90ce24c 100644
--- a/kBuild/header.kmk
+++ b/kBuild/header.kmk
@@ -1,10 +1,10 @@
-# $Id: header.kmk 3103 2017-10-20 13:13:54Z bird $
+# $Id: header.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - File included at top of a makefile.
 #
 
 #
-# Copyright (c) 2004-2015 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
@@ -79,7 +79,7 @@ endif
 # The revision in which this file was last modified.
 # This can be useful when using development versions of kBuild.
 #
-KMK_REVISION := $(patsubst %:,,  $Rev: 3103 $  )
+KMK_REVISION := $(patsubst %:,,  $Rev: 3121 $  )
 
 
 #
@@ -197,8 +197,8 @@ KBUILD_BLD_TYPES := release profile debug
 # build types. (PORTME)
 #
 KBUILD_OSES      := darwin dos dragonfly freebsd gnuhurd gnukfbsd gnuknbsd haiku l4 linux netbsd nt openbsd os2 solaris win os-agnostic
-KBUILD_ARCHES    := x86 amd64 noarch alpha arm32 arm64 hppa32 hppa64 ia64 m68k mips32 mips64 ppc32 ppc64 s390 s390x sh32 sh64 sparc32 sparc64
-KBUILD_ARCHES_64 := amd64 alpha arm64 hppa64 ia64 mips64 ppc64 s390x sh64 sparc64
+KBUILD_ARCHES    := x86 amd64 noarch alpha arm32 arm64 hppa32 hppa64 ia64 m68k mips32 mips64 ppc32 ppc64 s390 s390x sh32 sh64 sparc32 sparc64 x32
+KBUILD_ARCHES_64 := amd64 alpha arm64 hppa64 ia64 mips64 ppc64 s390x sh64 sparc64 x32
 KBUILD_ARCHES_32 := x86 arm32 hppa32 m68k mips32 ppc32 s390 sh32 sparc32
 
 
diff --git a/kBuild/msgstyles/brief.kmk b/kBuild/msgstyles/brief.kmk
index 0a17df6..51cb11c 100644
--- a/kBuild/msgstyles/brief.kmk
+++ b/kBuild/msgstyles/brief.kmk
@@ -1,10 +1,10 @@
-# $Id: brief.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: brief.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Message Style - 'brief'
 #
 
 #
-# Copyright (c) 2007-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2007-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/msgstyles/brief2.kmk b/kBuild/msgstyles/brief2.kmk
index 9651256..4d61ad8 100644
--- a/kBuild/msgstyles/brief2.kmk
+++ b/kBuild/msgstyles/brief2.kmk
@@ -1,10 +1,10 @@
-# $Id: brief2.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: brief2.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Message Style - 'brief'
 #
 
 #
-# Copyright (c) 2007-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2007-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/rules.kmk b/kBuild/rules.kmk
index e07f733..686d82b 100644
--- a/kBuild/rules.kmk
+++ b/kBuild/rules.kmk
@@ -1,10 +1,10 @@
-# $Id: rules.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: rules.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - File included at top of makefile.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/DXSDK.kmk b/kBuild/sdks/DXSDK.kmk
index a1f044c..de0c51e 100644
--- a/kBuild/sdks/DXSDK.kmk
+++ b/kBuild/sdks/DXSDK.kmk
@@ -1,10 +1,10 @@
-# $Id: DXSDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: DXSDK.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Direct X SDK, targeting $(KBUILD_TARGET).
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/DXSDKAMD64.kmk b/kBuild/sdks/DXSDKAMD64.kmk
index 6e08650..cd4614a 100644
--- a/kBuild/sdks/DXSDKAMD64.kmk
+++ b/kBuild/sdks/DXSDKAMD64.kmk
@@ -1,10 +1,10 @@
-# $Id: DXSDKAMD64.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: DXSDKAMD64.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Direct X SDK, targeting AMD64.
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/DXSDKX86.kmk b/kBuild/sdks/DXSDKX86.kmk
index 6dbb648..6995e01 100644
--- a/kBuild/sdks/DXSDKX86.kmk
+++ b/kBuild/sdks/DXSDKX86.kmk
@@ -1,10 +1,10 @@
-# $Id: DXSDKX86.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: DXSDKX86.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Direct X SDK, targeting X86.
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/LIBSDL.kmk b/kBuild/sdks/LIBSDL.kmk
index dbec4c2..3e73cb3 100644
--- a/kBuild/sdks/LIBSDL.kmk
+++ b/kBuild/sdks/LIBSDL.kmk
@@ -1,10 +1,10 @@
-# $Id: LIBSDL.kmk 2566 2012-03-02 12:58:25Z bird $
+# $Id: LIBSDL.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - Simple DirectMedia Layer, targeting $(KBUILD_TARGET).
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/MACOSX104.kmk b/kBuild/sdks/MACOSX104.kmk
index bb9e029..47da592 100644
--- a/kBuild/sdks/MACOSX104.kmk
+++ b/kBuild/sdks/MACOSX104.kmk
@@ -1,10 +1,10 @@
-# $Id: MACOSX104.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: MACOSX104.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - Mac OS X v10.4 SDK.
 #
 
 #
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/MACOSX104INCS.kmk b/kBuild/sdks/MACOSX104INCS.kmk
index 32de67a..e8f656b 100644
--- a/kBuild/sdks/MACOSX104INCS.kmk
+++ b/kBuild/sdks/MACOSX104INCS.kmk
@@ -1,10 +1,10 @@
-# $Id: MACOSX104INCS.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: MACOSX104INCS.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - Mac OS X v10.4 SDK, includes only.
 #
 
 #
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/MACOSX105.kmk b/kBuild/sdks/MACOSX105.kmk
index 5d30d80..89d6f33 100644
--- a/kBuild/sdks/MACOSX105.kmk
+++ b/kBuild/sdks/MACOSX105.kmk
@@ -1,10 +1,10 @@
-# $Id: MACOSX105.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: MACOSX105.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - Mac OS X v10.5 SDK.
 #
 
 #
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/MACOSX105INCS.kmk b/kBuild/sdks/MACOSX105INCS.kmk
index ab8a2e5..7965c9d 100644
--- a/kBuild/sdks/MACOSX105INCS.kmk
+++ b/kBuild/sdks/MACOSX105INCS.kmk
@@ -1,10 +1,10 @@
-# $Id: MACOSX105INCS.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: MACOSX105INCS.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - Mac OS X v10.5 SDK, includes only.
 #
 
 #
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/NT4DDK.kmk b/kBuild/sdks/NT4DDK.kmk
index 0f76d03..29e60f0 100644
--- a/kBuild/sdks/NT4DDK.kmk
+++ b/kBuild/sdks/NT4DDK.kmk
@@ -1,10 +1,10 @@
-# $Id: NT4DDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: NT4DDK.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Windows NT 4 DDK, targeting X86.
 #
 
 #
-# Copyright (c) 2005-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2005-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/OS2DDKBASE32.kmk b/kBuild/sdks/OS2DDKBASE32.kmk
index 0e039c1..7e8f38d 100644
--- a/kBuild/sdks/OS2DDKBASE32.kmk
+++ b/kBuild/sdks/OS2DDKBASE32.kmk
@@ -1,10 +1,10 @@
-# $Id: OS2DDKBASE32.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: OS2DDKBASE32.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 #
 # kBuild SDK - The OS/2 DDK, 32-bit base headers and libraries.
 
 #
-# Copyright (c) 2007-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2007-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/ReorderCompilerIncs.kmk b/kBuild/sdks/ReorderCompilerIncs.kmk
index bf7aca5..64fa115 100644
--- a/kBuild/sdks/ReorderCompilerIncs.kmk
+++ b/kBuild/sdks/ReorderCompilerIncs.kmk
@@ -1,4 +1,4 @@
-# $Id: ReorderCompilerIncs.kmk 2603 2012-07-12 20:26:28Z bird $
+# $Id: ReorderCompilerIncs.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - Pseudo SDK that inserts the compiler includes a bit earlier.
 #
@@ -8,7 +8,7 @@
 #
 
 #
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/W2K3DDK.kmk b/kBuild/sdks/W2K3DDK.kmk
index e2025d0..739bfaf 100644
--- a/kBuild/sdks/W2K3DDK.kmk
+++ b/kBuild/sdks/W2K3DDK.kmk
@@ -1,10 +1,10 @@
-# $Id: W2K3DDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: W2K3DDK.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows 2003 DDK, targeting $(KBUILD_TARGET).
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/W2K3DDKAMD64.kmk b/kBuild/sdks/W2K3DDKAMD64.kmk
index a4769a7..cdafbf9 100644
--- a/kBuild/sdks/W2K3DDKAMD64.kmk
+++ b/kBuild/sdks/W2K3DDKAMD64.kmk
@@ -1,10 +1,10 @@
-# $Id: W2K3DDKAMD64.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: W2K3DDKAMD64.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows 2003 DDK, targeting amd64.
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/W2K3DDKX86.kmk b/kBuild/sdks/W2K3DDKX86.kmk
index 1e4c23a..594cb97 100644
--- a/kBuild/sdks/W2K3DDKX86.kmk
+++ b/kBuild/sdks/W2K3DDKX86.kmk
@@ -1,10 +1,10 @@
-# $Id: W2K3DDKX86.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: W2K3DDKX86.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows 2003 DDK, targeting x86.
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/W32API.kmk b/kBuild/sdks/W32API.kmk
index f341719..a05df9e 100644
--- a/kBuild/sdks/W32API.kmk
+++ b/kBuild/sdks/W32API.kmk
@@ -1,10 +1,10 @@
-# $Id: W32API.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: W32API.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - w32api (MinGW), targeting x86.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WIN32SDK.kmk b/kBuild/sdks/WIN32SDK.kmk
index 37d165e..2eab407 100644
--- a/kBuild/sdks/WIN32SDK.kmk
+++ b/kBuild/sdks/WIN32SDK.kmk
@@ -1,10 +1,10 @@
-# $Id: WIN32SDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WIN32SDK.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Windows Platform SDK, targeting x86.
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WIN32SDK2002.kmk b/kBuild/sdks/WIN32SDK2002.kmk
index 5120d26..1984e96 100644
--- a/kBuild/sdks/WIN32SDK2002.kmk
+++ b/kBuild/sdks/WIN32SDK2002.kmk
@@ -1,11 +1,11 @@
-# $Id: WIN32SDK2002.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WIN32SDK2002.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - Windows Platform SDK (from ~2002), targeting x86.
 #              Differs in that it has ddraw.lib and dxguid.lib.
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WIN64SDK.kmk b/kBuild/sdks/WIN64SDK.kmk
index ba464a5..da068c3 100644
--- a/kBuild/sdks/WIN64SDK.kmk
+++ b/kBuild/sdks/WIN64SDK.kmk
@@ -1,10 +1,10 @@
-# $Id: WIN64SDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WIN64SDK.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Windows Platform SDK, targeting AMD64.
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDK.kmk b/kBuild/sdks/WINDDK.kmk
index 2736a04..2c662a7 100644
--- a/kBuild/sdks/WINDDK.kmk
+++ b/kBuild/sdks/WINDDK.kmk
@@ -1,11 +1,11 @@
-# $Id: WINDDK.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WINDDK.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs.
 #              Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDK71.kmk b/kBuild/sdks/WINDDK71.kmk
index 92f0f6c..4c54fb0 100644
--- a/kBuild/sdks/WINDDK71.kmk
+++ b/kBuild/sdks/WINDDK71.kmk
@@ -1,11 +1,11 @@
-# $Id: WINDDK71.kmk 2602 2012-07-12 20:21:45Z bird $
+# $Id: WINDDK71.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows 7 DDK, v7.1.
 #              Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
 #
 
 #
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDK71WLH.kmk b/kBuild/sdks/WINDDK71WLH.kmk
index 3b7e452..7b29885 100644
--- a/kBuild/sdks/WINDDK71WLH.kmk
+++ b/kBuild/sdks/WINDDK71WLH.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDK71WLH.kmk 2602 2012-07-12 20:21:45Z bird $
+# $Id: WINDDK71WLH.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows 7 DDKs, v7.1, Targeting Vista and 2008 (KBUILD_TARGET_ARCH).
 #
 
 #
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDK71WNET.kmk b/kBuild/sdks/WINDDK71WNET.kmk
index df02cab..2dbde56 100644
--- a/kBuild/sdks/WINDDK71WNET.kmk
+++ b/kBuild/sdks/WINDDK71WNET.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDK71WNET.kmk 2602 2012-07-12 20:21:45Z bird $
+# $Id: WINDDK71WNET.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows 7 DDKs, v7.1, Targeting Windows Server 2003 (KBUILD_TARGET_ARCH).
 #
 
 #
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDK71WXP.kmk b/kBuild/sdks/WINDDK71WXP.kmk
index 42a4f73..61814a2 100644
--- a/kBuild/sdks/WINDDK71WXP.kmk
+++ b/kBuild/sdks/WINDDK71WXP.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDK71WXP.kmk 2602 2012-07-12 20:21:45Z bird $
+# $Id: WINDDK71WXP.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows 7 DDK, v7.1, Targeting Windows XP (x86).
 #
 
 #
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDK80.kmk b/kBuild/sdks/WINDDK80.kmk
index 69acd16..21dcaa5 100644
--- a/kBuild/sdks/WINDDK80.kmk
+++ b/kBuild/sdks/WINDDK80.kmk
@@ -1,11 +1,11 @@
-# $Id: WINDDK80.kmk 2607 2012-07-20 12:12:58Z bird $
+# $Id: WINDDK80.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows 8 DDK.
 #              Defaults to $(KBUILD_TARGET_ARCH). Base SDK.
 #
 
 #
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDK80W8.kmk b/kBuild/sdks/WINDDK80W8.kmk
index 24e48f8..08b571c 100644
--- a/kBuild/sdks/WINDDK80W8.kmk
+++ b/kBuild/sdks/WINDDK80W8.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDK80W8.kmk 2607 2012-07-20 12:12:58Z bird $
+# $Id: WINDDK80W8.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows 8 DDKs, Targeting Windows 8 (KBUILD_TARGET_ARCH).
 #
 
 #
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDKW2K.kmk b/kBuild/sdks/WINDDKW2K.kmk
index 6f5ef1f..318f9a6 100644
--- a/kBuild/sdks/WINDDKW2K.kmk
+++ b/kBuild/sdks/WINDDKW2K.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDKW2K.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WINDDKW2K.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs, Targeting Windows 2000 (x86).
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDKWLH.kmk b/kBuild/sdks/WINDDKWLH.kmk
index fe7479e..63952a0 100644
--- a/kBuild/sdks/WINDDKWLH.kmk
+++ b/kBuild/sdks/WINDDKWLH.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDKWLH.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WINDDKWLH.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs, Targeting Vista and 2008 (KBUILD_TARGET_ARCH).
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDKWNET.kmk b/kBuild/sdks/WINDDKWNET.kmk
index d0fdfb7..f4b092e 100644
--- a/kBuild/sdks/WINDDKWNET.kmk
+++ b/kBuild/sdks/WINDDKWNET.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDKWNET.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WINDDKWNET.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs, Targeting Windows Server 2003 (KBUILD_TARGET_ARCH).
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINDDKWXP.kmk b/kBuild/sdks/WINDDKWXP.kmk
index 69a3a1b..8df29d5 100644
--- a/kBuild/sdks/WINDDKWXP.kmk
+++ b/kBuild/sdks/WINDDKWXP.kmk
@@ -1,10 +1,10 @@
-# $Id: WINDDKWXP.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WINDDKWXP.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Microsoft Windows Vista and Server 2008 DDKs, Targeting Windows XP (x86).
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINPSDK.kmk b/kBuild/sdks/WINPSDK.kmk
index e4fa690..30e6a31 100644
--- a/kBuild/sdks/WINPSDK.kmk
+++ b/kBuild/sdks/WINPSDK.kmk
@@ -1,10 +1,10 @@
-# $Id: WINPSDK.kmk 2735 2014-12-09 15:35:45Z bird $
+# $Id: WINPSDK.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Windows Platform SDK, targeting (KBUILD_TARGET).
 #
 
 #
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINPSDK71.kmk b/kBuild/sdks/WINPSDK71.kmk
index adcabe5..504597d 100644
--- a/kBuild/sdks/WINPSDK71.kmk
+++ b/kBuild/sdks/WINPSDK71.kmk
@@ -1,10 +1,10 @@
-# $Id: WINPSDK71.kmk 2735 2014-12-09 15:35:45Z bird $
+# $Id: WINPSDK71.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Windows Platform SDK v7.1, targeting (KBUILD_TARGET).
 #
 
 #
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINPSDK71INCS.kmk b/kBuild/sdks/WINPSDK71INCS.kmk
index 4edf170..d237c54 100644
--- a/kBuild/sdks/WINPSDK71INCS.kmk
+++ b/kBuild/sdks/WINPSDK71INCS.kmk
@@ -1,4 +1,4 @@
-# $Id: WINPSDK71INCS.kmk 2602 2012-07-12 20:21:45Z bird $
+# $Id: WINPSDK71INCS.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Windows Platform SDK v7.1, targeting (KBUILD_TARGET) but
 #              without any libraries or LIBPATH properties.
@@ -6,7 +6,7 @@
 #
 
 #
-# Copyright (c) 2006-2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/sdks/WINPSDKINCS.kmk b/kBuild/sdks/WINPSDKINCS.kmk
index fee7a21..78a00bd 100644
--- a/kBuild/sdks/WINPSDKINCS.kmk
+++ b/kBuild/sdks/WINPSDKINCS.kmk
@@ -1,4 +1,4 @@
-# $Id: WINPSDKINCS.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: WINPSDKINCS.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild SDK - The Windows Platform SDK, targeting (KBUILD_TARGET) but
 #              without any libraries or LIBPATH properties.
@@ -6,7 +6,7 @@
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/subfooter.kmk b/kBuild/subfooter.kmk
index baf1a03..5a0f91a 100644
--- a/kBuild/subfooter.kmk
+++ b/kBuild/subfooter.kmk
@@ -1,10 +1,10 @@
-# $Id: subfooter.kmk 2763 2015-01-28 18:25:31Z bird $
+# $Id: subfooter.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - File included at bottom of a makefile or sub-makefile.
 #
 
 #
-# Copyright (c) 2006-2015 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/subheader.kmk b/kBuild/subheader.kmk
index 91d1059..f8df35c 100644
--- a/kBuild/subheader.kmk
+++ b/kBuild/subheader.kmk
@@ -1,10 +1,10 @@
-# $Id: subheader.kmk 2763 2015-01-28 18:25:31Z bird $
+# $Id: subheader.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - File included at top of a makefile or sub-makefile.
 #
 
 #
-# Copyright (c) 2006-2015 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/templates/DUMMY.kmk b/kBuild/templates/DUMMY.kmk
index 48e2ca8..fe54ad9 100644
--- a/kBuild/templates/DUMMY.kmk
+++ b/kBuild/templates/DUMMY.kmk
@@ -1,10 +1,10 @@
-# $Id: DUMMY.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: DUMMY.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Template Config - Empty dummy template.
 #
 
 #
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/ALP.kmk b/kBuild/tools/ALP.kmk
index 42ef67d..18c13b6 100644
--- a/kBuild/tools/ALP.kmk
+++ b/kBuild/tools/ALP.kmk
@@ -1,10 +1,10 @@
-# $Id: ALP.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: ALP.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - ALP or later.
 #
 
 #
-# Copyright (c) 2005-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2005-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/BISON.kmk b/kBuild/tools/BISON.kmk
index b2aed47..435e4bf 100644
--- a/kBuild/tools/BISON.kmk
+++ b/kBuild/tools/BISON.kmk
@@ -1,10 +1,10 @@
-# $Id: BISON.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: BISON.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # GNU bison tool
 #
 
 #
-# Copyright (c) 2009-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2009-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/FLEX.kmk b/kBuild/tools/FLEX.kmk
index 7f004cb..8f1dc20 100644
--- a/kBuild/tools/FLEX.kmk
+++ b/kBuild/tools/FLEX.kmk
@@ -1,10 +1,10 @@
-# $Id: FLEX.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: FLEX.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # flex tool
 #
 
 #
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GCC.kmk b/kBuild/tools/GCC.kmk
index 482e421..823f5a4 100644
--- a/kBuild/tools/GCC.kmk
+++ b/kBuild/tools/GCC.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC.kmk 2545 2011-09-13 19:09:05Z bird $
+# $Id: GCC.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Generic GCC Using The System GCC.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GCC3.kmk b/kBuild/tools/GCC3.kmk
index fd6c6b8..e8d3148 100644
--- a/kBuild/tools/GCC3.kmk
+++ b/kBuild/tools/GCC3.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC3.kmk 2775 2015-02-03 20:00:15Z bird $
+# $Id: GCC3.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Generic GCC v3.2.x or later Using The System GCC and Binutils.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GCC32.kmk b/kBuild/tools/GCC32.kmk
index 88fb941..d307d70 100644
--- a/kBuild/tools/GCC32.kmk
+++ b/kBuild/tools/GCC32.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC32.kmk 3062 2017-09-30 11:26:21Z bird $
+# $Id: GCC32.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Generic 32-bit GCC v3.2.x or later Using The System GCC.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GCC3OMF.kmk b/kBuild/tools/GCC3OMF.kmk
index e7a97e8..748512a 100644
--- a/kBuild/tools/GCC3OMF.kmk
+++ b/kBuild/tools/GCC3OMF.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC3OMF.kmk 2776 2015-02-03 20:38:12Z bird $
+# $Id: GCC3OMF.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - GCC v3 targeting OS/2 OMF.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GCC3PLAIN.kmk b/kBuild/tools/GCC3PLAIN.kmk
index 0793f83..6846133 100644
--- a/kBuild/tools/GCC3PLAIN.kmk
+++ b/kBuild/tools/GCC3PLAIN.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC3PLAIN.kmk 2545 2011-09-13 19:09:05Z bird $
+# $Id: GCC3PLAIN.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Generic GCC v3.2.x or later Using The System GCC, any Unix Linker and Unix Archiver.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GCC42MACHO.kmk b/kBuild/tools/GCC42MACHO.kmk
index d0f0a31..c367a0d 100644
--- a/kBuild/tools/GCC42MACHO.kmk
+++ b/kBuild/tools/GCC42MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC42MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: GCC42MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - GCC v4.2.x targeting Darwin (Mac OS X) Mach-O.
 #
 
 #
-# Copyright (c) 2004-2011 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GCC4MACHO.kmk b/kBuild/tools/GCC4MACHO.kmk
index 307e2b1..9060d50 100644
--- a/kBuild/tools/GCC4MACHO.kmk
+++ b/kBuild/tools/GCC4MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC4MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: GCC4MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - GCC v4 targeting Darwin (Mac OS X) Mach-O.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GCC64.kmk b/kBuild/tools/GCC64.kmk
index 154f7d8..52a17fb 100644
--- a/kBuild/tools/GCC64.kmk
+++ b/kBuild/tools/GCC64.kmk
@@ -1,10 +1,10 @@
-# $Id: GCC64.kmk 3062 2017-09-30 11:26:21Z bird $
+# $Id: GCC64.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Generic 64-bit GCC v3.2.x or later Using The System GCC.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GXX.kmk b/kBuild/tools/GXX.kmk
index c543238..43ae6f9 100644
--- a/kBuild/tools/GXX.kmk
+++ b/kBuild/tools/GXX.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX.kmk 2545 2011-09-13 19:09:05Z bird $
+# $Id: GXX.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Generic GCC using the system GCC, for building C++ code.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GXX3.kmk b/kBuild/tools/GXX3.kmk
index 64cbd1d..4676c30 100644
--- a/kBuild/tools/GXX3.kmk
+++ b/kBuild/tools/GXX3.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX3.kmk 2775 2015-02-03 20:00:15Z bird $
+# $Id: GXX3.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Generic GCC v3.2.x using the system GCC and Binutils, for building C++ code.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GXX32.kmk b/kBuild/tools/GXX32.kmk
index cda007f..c25bb81 100644
--- a/kBuild/tools/GXX32.kmk
+++ b/kBuild/tools/GXX32.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX32.kmk 3062 2017-09-30 11:26:21Z bird $
+# $Id: GXX32.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Generic 32-bit GCC v3.2.x or later using the system GCC, for building C++ code.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GXX3OMF.kmk b/kBuild/tools/GXX3OMF.kmk
index f54b775..f899e39 100644
--- a/kBuild/tools/GXX3OMF.kmk
+++ b/kBuild/tools/GXX3OMF.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX3OMF.kmk 2776 2015-02-03 20:38:12Z bird $
+# $Id: GXX3OMF.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - GCC v3 targeting OS/2 OMF, for building C++ code.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GXX3PLAIN.kmk b/kBuild/tools/GXX3PLAIN.kmk
index 92ab12b..6a69058 100644
--- a/kBuild/tools/GXX3PLAIN.kmk
+++ b/kBuild/tools/GXX3PLAIN.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX3PLAIN.kmk 2545 2011-09-13 19:09:05Z bird $
+# $Id: GXX3PLAIN.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Generic GCC v3.2.x or later using the system GCC, any Unix linker and Unix archiver to build C++ code.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GXX42MACHO.kmk b/kBuild/tools/GXX42MACHO.kmk
index df2077b..26149c4 100644
--- a/kBuild/tools/GXX42MACHO.kmk
+++ b/kBuild/tools/GXX42MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX42MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: GXX42MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - GCC v4.2.x targeting Darwin (Mac OS X) Mach-O, for building C++ code.
 #
 
 #
-# Copyright (c) 2004-2011 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GXX4MACHO.kmk b/kBuild/tools/GXX4MACHO.kmk
index a3df1d5..914df2f 100644
--- a/kBuild/tools/GXX4MACHO.kmk
+++ b/kBuild/tools/GXX4MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX4MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: GXX4MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - GCC v4 targeting Darwin (Mac OS X) Mach-O, for building C++ code.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/GXX64.kmk b/kBuild/tools/GXX64.kmk
index 0c319ea..56b112d 100644
--- a/kBuild/tools/GXX64.kmk
+++ b/kBuild/tools/GXX64.kmk
@@ -1,10 +1,10 @@
-# $Id: GXX64.kmk 3062 2017-09-30 11:26:21Z bird $
+# $Id: GXX64.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Generic 64-bit GCC v3.2.x or later using the system GCC, for building C++ code.
 #
 
 #
-# Copyright (c) 2004-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/JWASM.kmk b/kBuild/tools/JWASM.kmk
index fb8ab22..39393eb 100644
--- a/kBuild/tools/JWASM.kmk
+++ b/kBuild/tools/JWASM.kmk
@@ -1,10 +1,10 @@
-# $Id: JWASM.kmk 2774 2015-02-03 19:56:24Z bird $
+# $Id: JWASM.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - JWasm
 #
 
 #
-# Copyright (c) 2012-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2012-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/LLVMGCC42MACHO.kmk b/kBuild/tools/LLVMGCC42MACHO.kmk
index 4511ca5..d7c7841 100644
--- a/kBuild/tools/LLVMGCC42MACHO.kmk
+++ b/kBuild/tools/LLVMGCC42MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: LLVMGCC42MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: LLVMGCC42MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - LLVM GCC v4.2.x targeting Darwin (Mac OS X) Mach-O.
 #
 
 #
-# Copyright (c) 2004-2011 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/LLVMGXX42MACHO.kmk b/kBuild/tools/LLVMGXX42MACHO.kmk
index 9fab606..e700533 100644
--- a/kBuild/tools/LLVMGXX42MACHO.kmk
+++ b/kBuild/tools/LLVMGXX42MACHO.kmk
@@ -1,10 +1,10 @@
-# $Id: LLVMGXX42MACHO.kmk 2547 2011-11-04 21:58:53Z bird $
+# $Id: LLVMGXX42MACHO.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - LLVM GCC v4.2.x targeting Darwin (Mac OS X) Mach-O, for building C++ code.
 #
 
 #
-# Copyright (c) 2004-2011 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/MASM510.kmk b/kBuild/tools/MASM510.kmk
index bd00786..3726b36 100644
--- a/kBuild/tools/MASM510.kmk
+++ b/kBuild/tools/MASM510.kmk
@@ -1,10 +1,10 @@
-# $Id: MASM510.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MASM510.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - MASM v5.10
 #
 
 #
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/MASM600.kmk b/kBuild/tools/MASM600.kmk
index e1a300c..502ffc9 100644
--- a/kBuild/tools/MASM600.kmk
+++ b/kBuild/tools/MASM600.kmk
@@ -1,10 +1,10 @@
-# $Id: MASM600.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MASM600.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - MASM v6.00
 #
 
 #
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/MASM610.kmk b/kBuild/tools/MASM610.kmk
index e920bda..2c780a2 100644
--- a/kBuild/tools/MASM610.kmk
+++ b/kBuild/tools/MASM610.kmk
@@ -1,10 +1,10 @@
-# $Id: MASM610.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MASM610.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - MASM v6.10
 #
 
 #
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/MASM6PLUS.kmk b/kBuild/tools/MASM6PLUS.kmk
index b6023f2..d0226d1 100644
--- a/kBuild/tools/MASM6PLUS.kmk
+++ b/kBuild/tools/MASM6PLUS.kmk
@@ -1,10 +1,10 @@
-# $Id: MASM6PLUS.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MASM6PLUS.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - MASM v6 and later.
 #
 
 #
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/MASM710.kmk b/kBuild/tools/MASM710.kmk
index 812a8ae..b44d1c8 100644
--- a/kBuild/tools/MASM710.kmk
+++ b/kBuild/tools/MASM710.kmk
@@ -1,10 +1,10 @@
-# $Id: MASM710.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MASM710.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - MASM v7.10
 #
 
 #
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/MINGW32.kmk b/kBuild/tools/MINGW32.kmk
index e9b32a3..0421a81 100644
--- a/kBuild/tools/MINGW32.kmk
+++ b/kBuild/tools/MINGW32.kmk
@@ -1,10 +1,10 @@
-# $Id: MINGW32.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MINGW32.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - MinGW32 GCC v3.3+.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/MINGWW64.kmk b/kBuild/tools/MINGWW64.kmk
index b14f673..5195f22 100644
--- a/kBuild/tools/MINGWW64.kmk
+++ b/kBuild/tools/MINGWW64.kmk
@@ -1,10 +1,10 @@
-# $Id: MINGWW64.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: MINGWW64.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - MinGW-W64.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/MSLINK510.kmk b/kBuild/tools/MSLINK510.kmk
index eeed5a7..ccf6eb2 100644
--- a/kBuild/tools/MSLINK510.kmk
+++ b/kBuild/tools/MSLINK510.kmk
@@ -1,10 +1,10 @@
-# $Id: MSLINK510.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: MSLINK510.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Microsoft Link v5.10
 #
 
 #
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/NASM.kmk b/kBuild/tools/NASM.kmk
index b3ab243..fabf3e6 100644
--- a/kBuild/tools/NASM.kmk
+++ b/kBuild/tools/NASM.kmk
@@ -1,10 +1,10 @@
-# $Id: NASM.kmk 2929 2016-09-16 21:19:14Z bird $
+# $Id: NASM.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Netwide Assembler v0.98+.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/OPENWATCOM-16.kmk b/kBuild/tools/OPENWATCOM-16.kmk
index ee02835..a48ff91 100644
--- a/kBuild/tools/OPENWATCOM-16.kmk
+++ b/kBuild/tools/OPENWATCOM-16.kmk
@@ -1,11 +1,11 @@
-# $Id: OPENWATCOM-16.kmk 2897 2016-09-08 15:38:43Z bird $
+# $Id: OPENWATCOM-16.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Open Watcom v1.4 and later, 16-bit targets.
 #
 # @remarks wrc is untested, so are DLLs, and programs.
 
 #
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/OPENWATCOM-WL.kmk b/kBuild/tools/OPENWATCOM-WL.kmk
index 22fa44f..bc6324b 100644
--- a/kBuild/tools/OPENWATCOM-WL.kmk
+++ b/kBuild/tools/OPENWATCOM-WL.kmk
@@ -1,11 +1,11 @@
-# $Id: OPENWATCOM-WL.kmk 2749 2015-01-23 01:01:02Z bird $
+# $Id: OPENWATCOM-WL.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Open Watcom v1.4 and later, using wlink.
 #
 # @remarks wrc is untested, so are DLLs, and programs.
 
 #
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/OPENWATCOM.kmk b/kBuild/tools/OPENWATCOM.kmk
index b7bae08..a9ffded 100644
--- a/kBuild/tools/OPENWATCOM.kmk
+++ b/kBuild/tools/OPENWATCOM.kmk
@@ -1,10 +1,10 @@
-# $Id: OPENWATCOM.kmk 2897 2016-09-08 15:38:43Z bird $
+# $Id: OPENWATCOM.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Open Watcom v1.4 and later.
 #
 
 #
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/StandardDTrace.kmk b/kBuild/tools/StandardDTrace.kmk
index 8b32781..e4076e3 100644
--- a/kBuild/tools/StandardDTrace.kmk
+++ b/kBuild/tools/StandardDTrace.kmk
@@ -1,10 +1,10 @@
-# $Id: StandardDTrace.kmk 2567 2012-03-17 19:27:32Z bird $
+# $Id: StandardDTrace.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # Standard DTrace tool.
 #
 
 #
-# Copyright (c) 2012 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2012-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/TAR.kmk b/kBuild/tools/TAR.kmk
index cde01cf..f23a302 100644
--- a/kBuild/tools/TAR.kmk
+++ b/kBuild/tools/TAR.kmk
@@ -1,10 +1,10 @@
-# $Id: TAR.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: TAR.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - tar unpacker.
 #
 
 #
-# Copyright (c) 2006-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/TARBZ2.kmk b/kBuild/tools/TARBZ2.kmk
index 987321d..7542f01 100644
--- a/kBuild/tools/TARBZ2.kmk
+++ b/kBuild/tools/TARBZ2.kmk
@@ -1,10 +1,10 @@
-# $Id: TARBZ2.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: TARBZ2.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - tar.bz2 unpacker.
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/TARGZ.kmk b/kBuild/tools/TARGZ.kmk
index a52ac57..2277ca0 100644
--- a/kBuild/tools/TARGZ.kmk
+++ b/kBuild/tools/TARGZ.kmk
@@ -1,10 +1,10 @@
-# $Id: TARGZ.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: TARGZ.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - tar.gz unpacker.
 #
 
 #
-# Copyright (c) 2006-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VAC308.kmk b/kBuild/tools/VAC308.kmk
index 7b9e78f..d2ba849 100644
--- a/kBuild/tools/VAC308.kmk
+++ b/kBuild/tools/VAC308.kmk
@@ -1,10 +1,10 @@
-# $Id: VAC308.kmk 3055 2017-08-31 15:34:33Z bird $
+# $Id: VAC308.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - VisualAge for C++ v3.08.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VCC100.kmk b/kBuild/tools/VCC100.kmk
index 34ed55a..3667324 100644
--- a/kBuild/tools/VCC100.kmk
+++ b/kBuild/tools/VCC100.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC100.kmk 2964 2016-09-23 11:08:04Z bird $
+# $Id: VCC100.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting $(KBUILD_TARGET).
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VCC100AMD64.kmk b/kBuild/tools/VCC100AMD64.kmk
index 316882f..6107ccd 100644
--- a/kBuild/tools/VCC100AMD64.kmk
+++ b/kBuild/tools/VCC100AMD64.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC100AMD64.kmk 2964 2016-09-23 11:08:04Z bird $
+# $Id: VCC100AMD64.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting AMD64.
 #
 
 #
-# Copyright (c) 2004-2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VCC100X86.kmk b/kBuild/tools/VCC100X86.kmk
index fb81816..06b0696 100644
--- a/kBuild/tools/VCC100X86.kmk
+++ b/kBuild/tools/VCC100X86.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC100X86.kmk 2964 2016-09-23 11:08:04Z bird $
+# $Id: VCC100X86.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Visual C++ 10.0 (aka Visual 2010 and MSC v16), targeting x86.
 #
 
 #
-# Copyright (c) 2004-2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VCC120.kmk b/kBuild/tools/VCC120.kmk
index eb67a1b..cfccd18 100644
--- a/kBuild/tools/VCC120.kmk
+++ b/kBuild/tools/VCC120.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC120.kmk 3037 2017-05-10 09:24:06Z bird $
+# $Id: VCC120.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting $(KBUILD_TARGET).
 #
 
 #
-# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VCC120AMD64.kmk b/kBuild/tools/VCC120AMD64.kmk
index 225b358..739f945 100644
--- a/kBuild/tools/VCC120AMD64.kmk
+++ b/kBuild/tools/VCC120AMD64.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC120AMD64.kmk 3044 2017-05-11 13:29:49Z bird $
+# $Id: VCC120AMD64.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting AMD64.
 #
 
 #
-# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VCC120X86.kmk b/kBuild/tools/VCC120X86.kmk
index 7092f5c..e192f0c 100644
--- a/kBuild/tools/VCC120X86.kmk
+++ b/kBuild/tools/VCC120X86.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC120X86.kmk 3048 2017-05-19 11:55:36Z bird $
+# $Id: VCC120X86.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Visual C++ 12.0 (aka Visual 2013 and MSC v18), targeting x86.
 #
 
 #
-# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VCC70.kmk b/kBuild/tools/VCC70.kmk
index de04bf7..e502ce9 100644
--- a/kBuild/tools/VCC70.kmk
+++ b/kBuild/tools/VCC70.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC70.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: VCC70.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Visual C++ 7.0 (aka Visual Studio .NET), targeting x86.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VCC80.kmk b/kBuild/tools/VCC80.kmk
index 437b17e..6d204f0 100644
--- a/kBuild/tools/VCC80.kmk
+++ b/kBuild/tools/VCC80.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC80.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: VCC80.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14), targeting $(KBUILD_TARGET).
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VCC80AMD64.kmk b/kBuild/tools/VCC80AMD64.kmk
index f97d494..5817954 100644
--- a/kBuild/tools/VCC80AMD64.kmk
+++ b/kBuild/tools/VCC80AMD64.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC80AMD64.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: VCC80AMD64.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14), targeting AMD64.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/VCC80X86.kmk b/kBuild/tools/VCC80X86.kmk
index 1df549f..db6c0ab 100644
--- a/kBuild/tools/VCC80X86.kmk
+++ b/kBuild/tools/VCC80X86.kmk
@@ -1,10 +1,10 @@
-# $Id: VCC80X86.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: VCC80X86.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Visual C++ 8.0 (aka Visual .NET 2005, or MSC v14), targeting x86.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/WATCOMC11C-16.kmk b/kBuild/tools/WATCOMC11C-16.kmk
index a024628..2c588c6 100644
--- a/kBuild/tools/WATCOMC11C-16.kmk
+++ b/kBuild/tools/WATCOMC11C-16.kmk
@@ -1,11 +1,11 @@
-# $Id: WATCOMC11C-16.kmk 2749 2015-01-23 01:01:02Z bird $
+# $Id: WATCOMC11C-16.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Watcom C v11.0c, 16-bit targets.
 #
 # @remarks wrc is untested, so are DLLs, and programs.
 
 #
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/WATCOMC11C-WL.kmk b/kBuild/tools/WATCOMC11C-WL.kmk
index 34919e3..a48a562 100644
--- a/kBuild/tools/WATCOMC11C-WL.kmk
+++ b/kBuild/tools/WATCOMC11C-WL.kmk
@@ -1,11 +1,11 @@
-# $Id: WATCOMC11C-WL.kmk 2749 2015-01-23 01:01:02Z bird $
+# $Id: WATCOMC11C-WL.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Watcom C/C++ v11.0c, using wlink.
 #
 # @remarks wrc is untested, so are DLLs, and programs.
 
 #
-# Copyright (c) 2008-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/WATCOMC11C.kmk b/kBuild/tools/WATCOMC11C.kmk
index f33dd6b..a0cd745 100644
--- a/kBuild/tools/WATCOMC11C.kmk
+++ b/kBuild/tools/WATCOMC11C.kmk
@@ -1,10 +1,10 @@
-# $Id: WATCOMC11C.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: WATCOMC11C.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - Watcom C v11.0c
 #
 
 #
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/WGET.kmk b/kBuild/tools/WGET.kmk
index c644c36..de159af 100644
--- a/kBuild/tools/WGET.kmk
+++ b/kBuild/tools/WGET.kmk
@@ -1,10 +1,10 @@
-# $Id: WGET.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: WGET.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - wget fetchers.
 #
 
 #
-# Copyright (c) 2006-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/XGCCAMD64LINUX.kmk b/kBuild/tools/XGCCAMD64LINUX.kmk
index 4b81f42..f0edee2 100644
--- a/kBuild/tools/XGCCAMD64LINUX.kmk
+++ b/kBuild/tools/XGCCAMD64LINUX.kmk
@@ -1,10 +1,10 @@
-# $Id: XGCCAMD64LINUX.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: XGCCAMD64LINUX.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - GCC Cross compiler for AMD64+Linux.
 #
 
 #
-# Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/YACC.kmk b/kBuild/tools/YACC.kmk
index 06a84d6..919dfbf 100644
--- a/kBuild/tools/YACC.kmk
+++ b/kBuild/tools/YACC.kmk
@@ -1,10 +1,10 @@
-# $Id: YACC.kmk 2413 2010-09-11 17:43:04Z bird $
+# $Id: YACC.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # yacc tool
 #
 
 #
-# Copyright (c) 2009-2010 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+# Copyright (c) 2009-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/YASM.kmk b/kBuild/tools/YASM.kmk
index 8942978..4ca08bb 100644
--- a/kBuild/tools/YASM.kmk
+++ b/kBuild/tools/YASM.kmk
@@ -1,10 +1,10 @@
-# $Id: YASM.kmk 2891 2016-09-08 03:02:58Z bird $
+# $Id: YASM.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - YASM 0.4.0 or later.
 #
 
 #
-# Copyright (c) 2006-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/tools/ZIP.kmk b/kBuild/tools/ZIP.kmk
index d5a0217..5dcc82d 100644
--- a/kBuild/tools/ZIP.kmk
+++ b/kBuild/tools/ZIP.kmk
@@ -1,10 +1,10 @@
-# $Id: ZIP.kmk 2750 2015-01-23 12:24:02Z bird $
+# $Id: ZIP.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Tool Config - The zip/unzip packer/unpacker.
 #
 
 #
-# Copyright (c) 2006-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2006-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/units/dtrace.kmk b/kBuild/units/dtrace.kmk
index 5d79744..9598fa2 100644
--- a/kBuild/units/dtrace.kmk
+++ b/kBuild/units/dtrace.kmk
@@ -1,10 +1,10 @@
-# $Id: dtrace.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: dtrace.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # DTrace unit.
 #
 
 #
-# Copyright (c) 2012-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2012-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/units/lex.kmk b/kBuild/units/lex.kmk
index c69cb05..75d6b12 100644
--- a/kBuild/units/lex.kmk
+++ b/kBuild/units/lex.kmk
@@ -1,10 +1,10 @@
-# $Id: lex.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: lex.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # lex unit.
 #
 
 #
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/units/qt3.kmk b/kBuild/units/qt3.kmk
index df70205..62cf855 100644
--- a/kBuild/units/qt3.kmk
+++ b/kBuild/units/qt3.kmk
@@ -1,10 +1,10 @@
-# $Id: qt3.kmk 2805 2016-01-28 11:08:44Z bird $
+# $Id: qt3.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # Qt 3.3.x unit.
 #
 
 #
-# Copyright (c) 2008-2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/units/qt4.kmk b/kBuild/units/qt4.kmk
index 553fb89..d03e198 100644
--- a/kBuild/units/qt4.kmk
+++ b/kBuild/units/qt4.kmk
@@ -1,10 +1,10 @@
-# $Id: qt4.kmk 2979 2016-09-27 14:36:32Z bird $
+# $Id: qt4.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # Qt 4 unit.
 #
 
 #
-# Copyright (c) 2008-2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/units/qt5.kmk b/kBuild/units/qt5.kmk
index e7e7af9..5bb841e 100644
--- a/kBuild/units/qt5.kmk
+++ b/kBuild/units/qt5.kmk
@@ -1,10 +1,10 @@
-# $Id: qt5.kmk 3016 2017-01-04 12:51:53Z bird $
+# $Id: qt5.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # Qt 5 unit.
 #
 
 #
-# Copyright (c) 2008-2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/units/vccprecomp.kmk b/kBuild/units/vccprecomp.kmk
index 290dcad..435d522 100644
--- a/kBuild/units/vccprecomp.kmk
+++ b/kBuild/units/vccprecomp.kmk
@@ -1,10 +1,10 @@
-# $Id: vccprecomp.kmk 2956 2016-09-21 19:37:20Z bird $
+# $Id: vccprecomp.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild Unit - Target Level Precompiled Headers for Visual C++.
 #
 
 #
-# Copyright (c) 2016 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2016-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/units/yacc.kmk b/kBuild/units/yacc.kmk
index 7f96431..202aff1 100644
--- a/kBuild/units/yacc.kmk
+++ b/kBuild/units/yacc.kmk
@@ -1,10 +1,10 @@
-# $Id: yacc.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: yacc.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # yacc/bison unit.
 #
 
 #
-# Copyright (c) 2008-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2008-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/kBuild/up.kmk b/kBuild/up.kmk
index 83d5dc2..30844f6 100644
--- a/kBuild/up.kmk
+++ b/kBuild/up.kmk
@@ -1,11 +1,11 @@
-# $Id: up.kmk 2726 2014-02-26 23:23:54Z bird $
+# $Id: up.kmk 3121 2017-10-31 10:58:59Z bird $
 ## @file
 # kBuild - File included at top of a up forwarder makefile.
 #          This method is DEPRECATED. Use Makefile.kup files instead.
 #
 
 #
-# Copyright (c) 2005-2014 knut st. osmundsen <bird-kBuild-spam-xiv at anduin.net>
+# Copyright (c) 2005-2017 knut st. osmundsen <bird-kBuild-spam-xviiv at anduin.net>
 #
 # This file is part of kBuild.
 #
diff --git a/src/kmk/Makefile.am b/src/kmk/Makefile.am
index bad8c4a..70c4151 100644
--- a/src/kmk/Makefile.am
+++ b/src/kmk/Makefile.am
@@ -57,6 +57,7 @@ kmk_SOURCES =	ar.c arscan.c commands.c default.c dir.c expand.c file.c \
 		../lib/md5.c \
 		../lib/kDep.c \
 		../lib/kbuild_version.c \
+		../lib/dos2unix.c \
 		../lib/maybe_con_fwrite.c \
 		\
 		kmkbuiltin.c \
diff --git a/src/kmk/kmkbuiltin/cat.c b/src/kmk/kmkbuiltin/cat.c
index d9fc0a2..a647dea 100644
--- a/src/kmk/kmkbuiltin/cat.c
+++ b/src/kmk/kmkbuiltin/cat.c
@@ -80,14 +80,6 @@ __FBSDID("$FreeBSD: src/bin/cat/cat.c,v 1.32 2005/01/10 08:39:20 imp Exp $");
 #include "kmkbuiltin.h"
 
 
-#ifdef KBUILD_OS_WINDOWS
-/* This is a trick to seriuosly speed up console output windows. */
-# undef write
-# define write maybe_con_write
-extern ssize_t maybe_con_write(int, void const *, size_t);
-#endif
-
-
 int bflag, eflag, nflag, sflag, tflag, vflag;
 /*int rval;*/
 const char *filename;
diff --git a/src/kmk/kmkbuiltin/install.c b/src/kmk/kmkbuiltin/install.c
index c0fced1..962f206 100644
--- a/src/kmk/kmkbuiltin/install.c
+++ b/src/kmk/kmkbuiltin/install.c
@@ -49,9 +49,6 @@ __FBSDID("$FreeBSD: src/usr.bin/xinstall/xinstall.c,v 1.66 2005/01/25 14:34:57 s
 #include "config.h"
 #ifndef _MSC_VER
 # include <sys/param.h>
-# ifdef USE_MMAP
-#  include <sys/mman.h>
-# endif
 # if !defined(__HAIKU__) && !defined(__gnu_hurd__)
 #  include <sys/mount.h>
 # endif
@@ -93,24 +90,16 @@ __FBSDID("$FreeBSD: src/usr.bin/xinstall/xinstall.c,v 1.66 2005/01/25 14:34:57 s
 #endif
 #include "kmkbuiltin.h"
 #include "k/kDefs.h"	/* for K_OS */
+#include "dos2unix.h"
 
 
 extern void * bsd_setmode(const char *p);
 extern mode_t bsd_getmode(const void *bbox, mode_t omode);
 
-#ifndef __unused
-# define __unused
-#endif
-
 #ifndef MAXBSIZE
 # define MAXBSIZE 0x20000
 #endif
 
-/* Bootstrap aid - this doesn't exist in most older releases */
-#ifndef MAP_FAILED
-#define MAP_FAILED ((void *)-1)	/* from <sys/mman.h> */
-#endif
-
 #define MAX_CMP_SIZE	(16 * 1024 * 1024)
 
 #define	DIRECTORY	0x01		/* Tell install it's a directory. */
@@ -139,6 +128,7 @@ static mode_t mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
 static const char *suffix = BACKUP_SUFFIX;
 static int ignore_perm_errors;
 static int hard_link_files_when_possible;
+static int dos2unix;
 
 static struct option long_options[] =
 {
@@ -148,23 +138,24 @@ static struct option long_options[] =
     { "no-ignore-perm-errors",				no_argument, 0, 264 },
     { "hard-link-files-when-possible",			no_argument, 0, 265 },
     { "no-hard-link-files-when-possible",		no_argument, 0, 266 },
+    { "dos2unix",					no_argument, 0, 267 },
+    { "unix2dos",					no_argument, 0, 268 },
     { 0, 0,	0, 0 },
 };
 
 
-static int	copy(int, const char *, int, const char *, off_t);
-static int	compare(int, const char *, size_t, int, const char *, size_t);
+static int	copy(int, const char *, int *, const char *);
+static int	compare(int, size_t, int, size_t);
 static int	create_newfile(const char *, int, struct stat *);
 static int	create_tempfile(const char *, char *, size_t);
 static int	install(const char *, const char *, u_long, u_int);
 static int	install_dir(char *);
 static u_long	numeric_id(const char *, const char *);
 static int	strip(const char *);
-#ifdef USE_MMAP
-static int	trymmap(int);
-#endif
 static int	usage(FILE *);
 static char    *last_slash(const char *);
+static KBOOL	needs_dos2unix_conversion(const char *pszFilename);
+static KBOOL	needs_unix2dos_conversion(const char *pszFilename);
 
 int
 kmk_builtin_install(int argc, char *argv[], char ** envp)
@@ -178,21 +169,22 @@ kmk_builtin_install(int argc, char *argv[], char ** envp)
 	const char *group, *owner, *to_name;
 	(void)envp;
 
-        /* reinitialize globals */
-        mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
-        suffix = BACKUP_SUFFIX;
-        gid = 0;
-        uid = 0;
-        dobackup = docompare = dodir = dopreserve = dostrip = nommap = safecopy = verbose = mode_given = 0;
+	/* reinitialize globals */
+	mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
+	suffix = BACKUP_SUFFIX;
+	gid = 0;
+	uid = 0;
+	dobackup = docompare = dodir = dopreserve = dostrip = nommap = safecopy = verbose = mode_given = 0;
 	ignore_perm_errors = geteuid() != 0;
-        hard_link_files_when_possible = 0;
+	hard_link_files_when_possible = 0;
+	dos2unix = 0;
 
-        /* reset getopt and set progname. */
-        g_progname = argv[0];
-        opterr = 1;
-        optarg = NULL;
-        optopt = 0;
-        optind = 0; /* init */
+	/* reset getopt and set progname. */
+	g_progname = argv[0];
+	opterr = 1;
+	optarg = NULL;
+	optopt = 0;
+	optind = 0; /* init */
 
 	iflags = 0;
 	group = owner = NULL;
@@ -269,6 +261,12 @@ kmk_builtin_install(int argc, char *argv[], char ** envp)
                 case 266:
                         hard_link_files_when_possible = 0;
                         break;
+		case 267:
+			dos2unix = 1;
+			break;
+		case 268:
+			dos2unix = -1;
+			break;
 		case '?':
 		default:
 			return usage(stderr);
@@ -286,6 +284,18 @@ kmk_builtin_install(int argc, char *argv[], char ** envp)
 	if (argc == 0 || (argc == 1 && !dodir))
 		return usage(stderr);
 
+	/*   and unix2dos doesn't combine well with a couple of other options. */
+	if (dos2unix != 0) {
+		if (docompare) {
+			warnx("-C/-p and --dos2unix/unix2dos may not be specified together");
+			return usage(stderr);
+		}
+		if (dostrip) {
+			warnx("-s and --dos2unix/unix2dos may not be specified together");
+			return usage(stderr);
+		}
+	}
+
 	/* need to make a temp copy so we can compare stripped version */
 	if (docompare && dostrip)
 		safecopy = 1;
@@ -483,6 +493,10 @@ install(const char *from_name, const char *to_name, u_long fset, u_int flags)
 			why_not = "uid mismatch";
 		} else if (gid != (gid_t)-1 && gid != from_sb.st_gid) {
 			why_not = "gid mismatch";
+		} else if (dos2unix > 0 && needs_dos2unix_conversion(from_name)) {
+			why_not = "dos2unix";
+		} else if (dos2unix < 0 && needs_unix2dos_conversion(from_name)) {
+			why_not = "unix2dos";
 		} else {
 			int rcLink = link(from_name, to_name);
 			if (rcLink != 0 && errno == EEXIST) {
@@ -519,9 +533,8 @@ install(const char *from_name, const char *to_name, u_long fset, u_int flags)
 		if (devnull)
 			files_match = to_sb.st_size == 0;
 		else
-			files_match = !(compare(from_fd, from_name,
-			    (size_t)from_sb.st_size, to_fd,
-			    to_name, (size_t)to_sb.st_size));
+			files_match = !compare(from_fd, (size_t)from_sb.st_size,
+					       to_fd, (size_t)to_sb.st_size);
 
 		/* Close "to" file unless we match. */
 		if (!files_match) {
@@ -549,8 +562,7 @@ install(const char *from_name, const char *to_name, u_long fset, u_int flags)
 				    from_name, to_name);
 		}
 		if (!devnull) {
-			rc = copy(from_fd, from_name, to_fd,
-			          tempcopy ? tempfile : to_name, from_sb.st_size);
+			rc = copy(from_fd, from_name, &to_fd, tempcopy ? tempfile : to_name);
 			if (rc)
     				goto l_done;
 		}
@@ -600,8 +612,8 @@ install(const char *from_name, const char *to_name, u_long fset, u_int flags)
 			goto l_done;
 		}
 
-		if (compare(temp_fd, tempfile, (size_t)temp_sb.st_size, to_fd,
-			    to_name, (size_t)to_sb.st_size) == 0) {
+		if (compare(temp_fd, (size_t)temp_sb.st_size,
+			    to_fd, (size_t)to_sb.st_size) == 0) {
 			/*
 			 * If target has more than one link we need to
 			 * replace it in order to snap the extra links.
@@ -778,64 +790,35 @@ l_done:
  *	compare two files; non-zero means files differ
  */
 static int
-compare(int from_fd, const char *from_name __unused, size_t from_len,
-	int to_fd, const char *to_name __unused, size_t to_len)
+compare(int from_fd, size_t from_len, int to_fd, size_t to_len)
 {
-	char *p, *q;
+	char buf1[MAXBSIZE];
+	char buf2[MAXBSIZE];
+	int n1, n2;
 	int rv;
-	int done_compare;
 
-	rv = 0;
 	if (from_len != to_len)
 		return 1;
 
 	if (from_len <= MAX_CMP_SIZE) {
-#ifdef USE_MMAP
-		done_compare = 0;
-		if (trymmap(from_fd) && trymmap(to_fd)) {
-			p = mmap(NULL, from_len, PROT_READ, MAP_SHARED, from_fd, (off_t)0);
-			if (p == (char *)MAP_FAILED)
-				goto out;
-			q = mmap(NULL, from_len, PROT_READ, MAP_SHARED, to_fd, (off_t)0);
-			if (q == (char *)MAP_FAILED) {
-				munmap(p, from_len);
-				goto out;
-			}
-
-			rv = memcmp(p, q, from_len);
-			munmap(p, from_len);
-			munmap(q, from_len);
-			done_compare = 1;
-		}
-	out:
-#else
-	(void)p; (void)q;
-	done_compare = 0;
-#endif
-		if (!done_compare) {
-			char buf1[MAXBSIZE];
-			char buf2[MAXBSIZE];
-			int n1, n2;
-
-			rv = 0;
-			lseek(from_fd, 0, SEEK_SET);
-			lseek(to_fd, 0, SEEK_SET);
-			while (rv == 0) {
-				n1 = read(from_fd, buf1, sizeof(buf1));
-				if (n1 == 0)
-					break;		/* EOF */
-				else if (n1 > 0) {
-					n2 = read(to_fd, buf2, n1);
-					if (n2 == n1)
-						rv = memcmp(buf1, buf2, n1);
-					else
-						rv = 1;	/* out of sync */
-				} else
-					rv = 1;		/* read failure */
-			}
-			lseek(from_fd, 0, SEEK_SET);
-			lseek(to_fd, 0, SEEK_SET);
+		rv = 0;
+		lseek(from_fd, 0, SEEK_SET);
+		lseek(to_fd, 0, SEEK_SET);
+		while (rv == 0) {
+			n1 = read(from_fd, buf1, sizeof(buf1));
+			if (n1 == 0)
+				break;		/* EOF */
+			else if (n1 > 0) {
+				n2 = read(to_fd, buf2, n1);
+				if (n2 == n1)
+					rv = memcmp(buf1, buf2, n1);
+				else
+					rv = 1;	/* out of sync */
+			} else
+				rv = 1;		/* read failure */
 		}
+		lseek(from_fd, 0, SEEK_SET);
+		lseek(to_fd, 0, SEEK_SET);
 	} else
 		rv = 1;	/* don't bother in this case */
 
@@ -913,17 +896,43 @@ create_newfile(const char *path, int target, struct stat *sbp)
 }
 
 /*
+ * Write error handler.
+ */
+static int write_error(int *ptr_to_fd, const char *to_name, int nw)
+{
+    int serrno = errno;
+    (void)close(*ptr_to_fd);
+    *ptr_to_fd = -1;
+    (void)unlink(to_name);
+    errno = nw > 0 ? EIO : serrno;
+    return err(EX_OSERR, "%s", to_name);
+}
+
+/*
+ * Read error handler.
+ */
+static int read_error(const char *from_name, int *ptr_to_fd, const char *to_name)
+{
+    int serrno = errno;
+    (void)close(*ptr_to_fd);
+    *ptr_to_fd = -1;
+    (void)unlink(to_name);
+    errno = serrno;
+    return err(EX_OSERR, "%s", from_name);
+}
+
+/*
  * copy --
  *	copy from one file to another
  */
 static int
-copy(int from_fd, const char *from_name, int to_fd, const char *to_name,
-    off_t size)
+copy(int from_fd, const char *from_name, int *ptr_to_fd, const char *to_name)
 {
+	KBOOL fPendingCr = K_FALSE;
+	KSIZE cchDst;
 	int nr, nw;
-	int serrno;
-	char *p, buf[MAXBSIZE];
-	int done_copy;
+	char buf[MAXBSIZE];
+	int to_fd = *ptr_to_fd;
 
 	/* Rewind file descriptors. */
 	if (lseek(from_fd, (off_t)0, SEEK_SET) == (off_t)-1)
@@ -931,43 +940,63 @@ copy(int from_fd, const char *from_name, int to_fd, const char *to_name,
 	if (lseek(to_fd, (off_t)0, SEEK_SET) == (off_t)-1)
 		return err(EX_OSERR, "lseek: %s", to_name);
 
-	/*
-	 * Mmap and write if less than 8M (the limit is so we don't totally
-	 * trash memory on big files.  This is really a minor hack, but it
-	 * wins some CPU back.
-	 */
-	done_copy = 0;
-#ifdef USE_MMAP
-	if (size <= 8 * 1048576 && trymmap(from_fd) &&
-	    (p = mmap(NULL, (size_t)size, PROT_READ, MAP_SHARED,
-		    from_fd, (off_t)0)) != (char *)MAP_FAILED) {
-		if ((nw = write(to_fd, p, size)) != size) {
-			serrno = errno;
-			(void)unlink(to_name);
-			errno = nw > 0 ? EIO : serrno;
-			err(EX_OSERR, "%s", to_name);
-		}
-		done_copy = 1;
-	}
-#else
-	(void)p; (void)size;
-#endif
-	if (!done_copy) {
+	if (dos2unix == 0) {
+		/*
+		 * Copy bytes, no conversion.
+		 */
 		while ((nr = read(from_fd, buf, sizeof(buf))) > 0)
-			if ((nw = write(to_fd, buf, nr)) != nr) {
-				serrno = errno;
-				(void)unlink(to_name);
-				errno = nw > 0 ? EIO : serrno;
-				return err(EX_OSERR, "%s", to_name);
-			}
-		if (nr != 0) {
-			serrno = errno;
-			(void)unlink(to_name);
-			errno = serrno;
-			return err(EX_OSERR, "%s", from_name);
+			if ((nw = write(to_fd, buf, nr)) != nr)
+				return write_error(ptr_to_fd, to_name, nw);
+	} else if (dos2unix > 0) {
+		/*
+		 * CRLF -> LF is a reduction, so we can work with full buffers.
+		 */
+		while ((nr = read(from_fd, buf, sizeof(buf))) > 0) {
+			if (   fPendingCr
+				&& buf[0] != '\n'
+				&& (nw = write(to_fd, "\r", 1)) != 1)
+				return write_error(ptr_to_fd, to_name, nw);
+
+			fPendingCr = dos2unix_convert_to_unix(buf, nr, buf, &cchDst);
+
+			nw = write(to_fd, buf, cchDst);
+			if (nw != (int)cchDst)
+				return write_error(ptr_to_fd, to_name, nw);
+		}
+	} else {
+		/*
+		 * LF -> CRLF is an expansion, so we work with half buffers, reading
+		 * into the upper half of the buffer and expanding into the full buffer.
+		 * The conversion will never expand to more than the double size.
+		 *
+		 * Note! We do not convert valid CRLF line endings.  This gives us
+		 *       valid DOS text, but no round-trip conversion.
+		 */
+		char * const pchSrc = &buf[sizeof(buf) / 2];
+		while ((nr = read(from_fd, pchSrc, sizeof(buf) / 2)) > 0) {
+			if (   fPendingCr
+				&& pchSrc[0] != '\n'
+				&& (nw = write(to_fd, "\r", 1))!= 1)
+				return write_error(ptr_to_fd, to_name, nw);
+
+			fPendingCr = dos2unix_convert_to_dos(pchSrc, nr, buf, &cchDst);
+
+			nw = write(to_fd, buf, cchDst);
+			if (nw != (int)cchDst)
+				return write_error(ptr_to_fd, to_name, nw);
 		}
 	}
-	return EX_OK;
+
+	/* Check for read error. */
+	if (nr != 0)
+		return read_error(from_name, ptr_to_fd, to_name);
+
+	/* When converting, we might have a pending final CR to write. */
+    if (   fPendingCr
+		&& (nw = write(to_fd, "\r", 1))!= 1)
+		return write_error(ptr_to_fd, to_name, nw);
+
+    return EX_OK;
 }
 
 /*
@@ -1064,8 +1093,8 @@ usage(FILE *pf)
 {
 	fprintf(pf,
 "usage: %s [-bCcpSsv] [--[no-]hard-link-files-when-possible]\n"
-"            [--[no-]ignore-perm-errors] [-B suffix] [-f flags]\n"
-"            [-g group] [-m mode] [-o owner] file1 file2\n"
+"            [--[no-]ignore-perm-errors] [-B suffix] [-f flags] [-g group]\n"
+"            [-m mode] [-o owner] [--dos2unix|--unix2dos] file1 file2\n"
 "   or: %s [-bCcpSsv] [--[no-]ignore-perm-errors] [-B suffix] [-f flags]\n"
 "            [-g group] [-m mode] [-o owner] file1 ... fileN directory\n"
 "   or: %s -d [-v] [-g group] [-m mode] [-o owner] directory ...\n"
@@ -1075,31 +1104,6 @@ usage(FILE *pf)
 	return EX_USAGE;
 }
 
-#ifdef USE_MMAP
-/*
- * trymmap --
- *	return true (1) if mmap should be tried, false (0) if not.
- */
-static int
-trymmap(int fd)
-{
-/*
- * The ifdef is for bootstrapping - f_fstypename doesn't exist in
- * pre-Lite2-merge systems.
- */
-#ifdef MFSNAMELEN
-	struct statfs stfs;
-
-	if (nommap || fstatfs(fd, &stfs) != 0)
-		return (0);
-	if (strcmp(stfs.f_fstypename, "ufs") == 0 ||
-	    strcmp(stfs.f_fstypename, "cd9660") == 0)
-		return (1);
-#endif
-	return (0);
-}
-#endif
-
 /* figures out where the last slash or colon is. */
 static char *
 last_slash(const char *path)
@@ -1124,3 +1128,31 @@ last_slash(const char *path)
 #endif
 }
 
+/**
+ * Checks if @a pszFilename actually needs dos2unix conversion.
+ *
+ * @returns boolean.
+ * @param	pszFilename		The name of the file to check.
+ */
+static KBOOL needs_dos2unix_conversion(const char *pszFilename)
+{
+	KU32 fStyle = 0;
+	int iErr = dos2unix_analyze_file(pszFilename, &fStyle, NULL, NULL);
+	return iErr != 0
+		|| (fStyle & (DOS2UNIX_STYLE_MASK | DOS2UNIX_F_BINARY)) != DOS2UNIX_STYLE_UNIX;
+}
+
+/**
+ * Checks if @a pszFilename actually needs unix2dos conversion.
+ *
+ * @returns boolean.
+ * @param	pszFilename		The name of the file to check.
+ */
+static KBOOL needs_unix2dos_conversion(const char *pszFilename)
+{
+	KU32 fStyle = 0;
+	int iErr = dos2unix_analyze_file(pszFilename, &fStyle, NULL, NULL);
+	return iErr != 0
+		|| (fStyle & (DOS2UNIX_STYLE_MASK | DOS2UNIX_F_BINARY)) != DOS2UNIX_STYLE_DOS;
+}
+
diff --git a/src/kmk/kmkbuiltin/mscfakes.c b/src/kmk/kmkbuiltin/mscfakes.c
index 26d475c..82a7a61 100644
--- a/src/kmk/kmkbuiltin/mscfakes.c
+++ b/src/kmk/kmkbuiltin/mscfakes.c
@@ -1,4 +1,4 @@
-/* $Id: mscfakes.c 3094 2017-10-14 03:32:50Z bird $ */
+/* $Id: mscfakes.c 3117 2017-10-30 17:49:42Z bird $ */
 /** @file
  * Fake Unix stuff for MSC.
  */
@@ -48,6 +48,8 @@
 #include <Windows.h>
 #undef timeval
 
+extern ssize_t maybe_con_write(int, void const *, size_t);
+
 
 /*******************************************************************************
 *   Internal Functions                                                         *
@@ -473,9 +475,14 @@ int snprintf(char *buf, size_t size, const char *fmt, ...)
    XXX: Probably need to hook into fwrite as well. */
 ssize_t msc_write(int fd, const void *pvSrc, size_t cbSrc)
 {
+#define MSC_WRITE_MAX_CHUNK (UINT_MAX / 32)
     ssize_t cbRet;
-    if (cbSrc < UINT_MAX / 4)
+    if (cbSrc <= MSC_WRITE_MAX_CHUNK)
     {
+        /* Console output optimization: */
+        if (cbSrc > 0 && isatty(fd))
+            return maybe_con_write(fd, pvSrc, cbSrc);
+
 #ifndef MSC_WRITE_TEST
         cbRet = _write(fd, pvSrc, (unsigned int)cbSrc);
 #else
@@ -484,7 +491,7 @@ ssize_t msc_write(int fd, const void *pvSrc, size_t cbSrc)
         if (cbRet < 0)
         {
             /* ENOSPC on pipe kludge. */
-            int cbLimit;
+            unsigned int cbLimit;
             int cSinceLastSuccess;
 
             if (cbSrc == 0)
@@ -501,7 +508,7 @@ ssize_t msc_write(int fd, const void *pvSrc, size_t cbSrc)
 
             /* Likely a full pipe buffer, try write smaller amounts and do some
                sleeping inbetween each unsuccessful one. */
-            cbLimit = cbSrc / 4;
+            cbLimit = (unsigned)(cbSrc / 4);
             if (cbLimit < 4)
                 cbLimit = 4;
             else if (cbLimit > 512)
@@ -512,13 +519,18 @@ ssize_t msc_write(int fd, const void *pvSrc, size_t cbSrc)
             cbLimit = 4;
 #endif
 
-            while (cbSrc > 0)
+            while ((ssize_t)cbSrc > 0)
             {
-                unsigned int cbAttempt = cbSrc > cbLimit ? (int)cbLimit : (int)cbSrc;
+                unsigned int cbAttempt = cbSrc > cbLimit ? cbLimit : (unsigned int)cbSrc;
                 ssize_t cbActual = _write(fd, pvSrc, cbAttempt);
                 if (cbActual > 0)
                 {
-                    assert(cbActual <= (ssize_t)cbAttempt);
+                    /* For some reason, it seems like we cannot trust _write to return
+                       a number that's less or equal to the number of bytes we passed
+                       in to the call.  (Also reason for signed check in loop.) */
+                    if (cbActual > cbAttempt)
+                        cbActual = cbAttempt;
+
                     pvSrc  = (char *)pvSrc + cbActual;
                     cbSrc -= cbActual;
                     cbRet += cbActual;
@@ -558,7 +570,7 @@ ssize_t msc_write(int fd, const void *pvSrc, size_t cbSrc)
         cbRet = 0;
         while (cbSrc > 0)
         {
-            size_t  cbToWrite = cbSrc > UINT_MAX / 4 ? UINT_MAX / 4 : cbSrc;
+            size_t  cbToWrite = cbSrc > MSC_WRITE_MAX_CHUNK ? MSC_WRITE_MAX_CHUNK : cbSrc;
             ssize_t cbWritten = msc_write(fd, pvSrc, cbToWrite);
             if (cbWritten > 0)
             {
diff --git a/src/kmk/main.c b/src/kmk/main.c
index 2db8638..e0203c8 100644
--- a/src/kmk/main.c
+++ b/src/kmk/main.c
@@ -1409,11 +1409,18 @@ main (int argc, char **argv, char **envp)
 #  endif
 # endif /* !ELECTRIC_HEAP */
 
+# ifdef KMK
+  /* Clear the SEM_NOGPFAULTERRORBOX flag so WER will generate dumps when we run
+     under cygwin.  To void popups, set WER registry value DontShowUI to 1. */
+  if (getenv("KMK_NO_SET_ERROR_MODE") == NULL)
+    SetErrorMode(SetErrorMode(0) & ~SEM_NOGPFAULTERRORBOX);
+# endif
+
   /* start off assuming we have no shell */
   unixy_shell = 0;
   no_default_sh_exe = 1;
 #endif
-# ifdef CONFIG_WITH_FAST_IS_SPACE /* bird */
+#ifdef CONFIG_WITH_FAST_IS_SPACE /* bird */
   memset (space_map, '\0', sizeof(space_map));
   set_space_map_entry (' ');
   set_space_map_entry ('\f');
@@ -1421,7 +1428,7 @@ main (int argc, char **argv, char **envp)
   set_space_map_entry ('\r');
   set_space_map_entry ('\t');
   set_space_map_entry ('\v');
-# endif /* CONFIG_WITH_FAST_IS_SPACE */
+#endif /* CONFIG_WITH_FAST_IS_SPACE */
 
 #ifdef CONFIG_WITH_PRINT_TIME_SWITCH
   make_start_ts = nano_timestamp ();
@@ -2066,6 +2073,7 @@ main (int argc, char **argv, char **envp)
     strcpy (default_shell + len, "/kmk_ash.exe");
     no_default_sh_exe = 0;
     batch_mode_shell = 1;
+    unixy_shell = 1;
   }
 #else /* !KMK */
    no_default_sh_exe = !find_and_set_default_shell(NULL);
diff --git a/src/lib/Makefile.kmk b/src/lib/Makefile.kmk
index b3f5a67..d148a07 100644
--- a/src/lib/Makefile.kmk
+++ b/src/lib/Makefile.kmk
@@ -1,4 +1,4 @@
-# $Id: Makefile.kmk 3060 2017-09-21 15:11:07Z bird $
+# $Id: Makefile.kmk 3114 2017-10-29 18:02:04Z bird $
 ## @file
 # Sub-makefile for various libraries and stuff.
 #
@@ -40,6 +40,7 @@ kUtil_SOURCES = \
 	md5.c \
 	maybe_con_write.c \
 	maybe_con_fwrite.c \
+       dos2unix.c \
 	kbuild_version.c
 kUtil_SOURCES.win = \
 	msc_buffered_printf.c \
diff --git a/src/lib/dos2unix.c b/src/lib/dos2unix.c
new file mode 100644
index 0000000..308a58f
--- /dev/null
+++ b/src/lib/dos2unix.c
@@ -0,0 +1,302 @@
+/* $Id: dos2unix.c 3114 2017-10-29 18:02:04Z bird $ */
+/** @file
+ * dos2unix - Line ending conversion routines.
+ */
+
+/*
+ * Copyright (c) 2017 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Alternatively, the content of this file may be used under the terms of the
+ * GPL version 2 or later, or LGPL version 2.1 or later.
+ */
+
+
+/*********************************************************************************************************************************
+*   Header Files                                                                                                                 *
+*********************************************************************************************************************************/
+#include "dos2unix.h"
+#include <k/kDefs.h>
+#include <errno.h>
+#include <fcntl.h>
+#if K_OS == K_OS_WINDOWS
+# include <io.h>
+#else
+# include <unistd.h>
+#endif
+#include <assert.h>
+
+#ifndef O_BINARY
+# ifdef _O_BINARY
+#  define O_BINARY   _O_BINARY
+# else
+#  define O_BINARY   0
+# endif
+#endif
+
+
+/*********************************************************************************************************************************
+*   Defined Constants And Macros                                                                                                 *
+*********************************************************************************************************************************/
+#define STACK_BUF_SIZE  0x20000
+
+#define DOS2UNIX_LF     0x0a
+#define DOS2UNIX_CR     0x0d
+
+
+
+/**
+ * Does a line ending analysis of the given file.
+ *
+ * @returns 0 on success, errno value on open or read error.
+ * @param   pszFilename         The path to the file
+ * @param   pfStyle             Where to return the DOS2UNIX_STYLE_XXX and
+ *                              DOS2UNIX_F_XXX flags.
+ * @param   pcDosEols           Where to return the number of DOS end-of-line
+ *                              sequences found.  Optional.
+ * @param   pcUnixEols          Where to return the number of UNIX end-of-line
+ *                              sequences found.
+ */
+int dos2unix_analyze_file(const char *pszFilename, KU32 *pfStyle, KSIZE *pcDosEols, KSIZE *pcUnixEols)
+{
+    int iRet = 0;
+    int fd = open(pszFilename, O_RDONLY | O_BINARY);
+    if (fd >= 0)
+    {
+        iRet = dos2unix_analyze_fd(fd, pfStyle, pcDosEols, pcUnixEols);
+        close(fd);
+    }
+    else
+    {
+        iRet = errno;
+        *pfStyle = DOS2UNIX_STYLE_NONE;
+        if (pcUnixEols)
+            *pcUnixEols = 0;
+        if (pcDosEols)
+            *pcDosEols = 0;
+    }
+    return iRet;
+}
+
+/**
+ * Does a line ending analysis of the given file descriptor.
+ *
+ * @returns 0 on success, errno value on open or read error.
+ * @param   fd                  The file descriptor to analyze.  Caller must
+ *                              place this as the desired position.
+ * @param   pfStyle             Where to return the DOS2UNIX_STYLE_XXX and
+ *                              DOS2UNIX_F_XXX flags.
+ * @param   pcDosEols           Where to return the number of DOS end-of-line
+ *                              sequences found.  Optional.
+ * @param   pcUnixEols          Where to return the number of UNIX end-of-line
+ *                              sequences found.
+ */
+int dos2unix_analyze_fd(int fd, KU32 *pfStyle, KSIZE *pcDosEols, KSIZE *pcUnixEols)
+{
+    KSIZE   cUnixEols  = 0;
+    KSIZE   cDosEols   = 0;
+    KSIZE   cLoneCrs   = 0;
+    KBOOL   fPendingCr = K_FALSE;
+    int     iRet       = 0;
+
+    /*
+     * Do the analysis.
+     */
+    *pfStyle = DOS2UNIX_STYLE_NONE;
+    for (;;)
+    {
+        char achBuf[STACK_BUF_SIZE];
+        int  cchRead = read(fd, achBuf, sizeof(achBuf));
+        if (cchRead > 0)
+        {
+            int off = 0;
+            if (fPendingCr)
+            {
+                if (achBuf[0] == DOS2UNIX_LF)
+                {
+                    off++;
+                    cDosEols++;
+                }
+                else
+                    cLoneCrs++;
+                fPendingCr = K_FALSE;
+            }
+
+            while (off < cchRead)
+            {
+                char ch = achBuf[off++];
+                if ((unsigned char)ch > (unsigned char)DOS2UNIX_CR)
+                { /* likely */ }
+                else if (ch == DOS2UNIX_CR)
+                {
+                    if (off < cchRead && achBuf[off] == DOS2UNIX_CR)
+                        cDosEols++;
+                    else
+                    {
+                        fPendingCr = K_TRUE;
+                        while (off < cchRead)
+                        {
+                            ch = achBuf[off++];
+                            if (ch != DOS2UNIX_CR)
+                            {
+                                if (ch == DOS2UNIX_LF)
+                                    cDosEols++;
+                                else
+                                    cLoneCrs++;
+                                fPendingCr = K_FALSE;
+                                break;
+                            }
+                            cLoneCrs++;
+                        }
+                    }
+                }
+                else if (ch == DOS2UNIX_LF)
+                    cUnixEols++;
+                else if (ch == '\0')
+                    *pfStyle |= DOS2UNIX_F_BINARY;
+            }
+        }
+        else
+        {
+            if (cchRead < 0)
+                iRet = errno;
+            if (fPendingCr)
+                cLoneCrs++;
+            break;
+        }
+    }
+
+    /*
+     * Set return values.
+     */
+    if (cUnixEols > 0 && cDosEols == 0)
+        *pfStyle |= DOS2UNIX_STYLE_UNIX;
+    else if (cDosEols > 0 && cUnixEols == 0)
+        *pfStyle |= DOS2UNIX_STYLE_DOS;
+    else if (cDosEols != 0 && cUnixEols != 0)
+        *pfStyle |= DOS2UNIX_STYLE_MIXED;
+    if (pcUnixEols)
+        *pcUnixEols = cUnixEols;
+    if (pcDosEols)
+        *pcDosEols = cDosEols;
+
+    return iRet;
+}
+
+
+/**
+ * Converts a buffer to unix line (LF) endings.
+ *
+ * @retval  K_TRUE if pending CR.  The caller must handle this case.
+ * @retval  K_FALSE if no pending CR.
+ *
+ * @param   pchSrc          The input buffer.
+ * @param   cchSrc          Number of characters to convert from the input
+ *                          buffer.
+ * @param   pchDst          The output buffer.  This must be at least as big as
+ *                          the input.  It is okay if this overlaps with the
+ *                          source buffer, as long as this is at the same or a
+ *                          lower address.
+ * @param   pcchDst         Where to return the number of characters in the
+ *                          output buffer.
+ */
+KBOOL dos2unix_convert_to_unix(const char *pchSrc, KSIZE cchSrc, char *pchDst, KSIZE *pcchDst)
+{
+    KSIZE offDst = 0;
+    while (cchSrc-- > 0)
+    {
+        char ch = *pchSrc++;
+        if ((unsigned char)ch != (unsigned char)DOS2UNIX_CR)
+            pchDst[offDst++] = ch;
+        else if (cchSrc > 0 && *pchSrc == DOS2UNIX_LF)
+        {
+            pchDst[offDst++] = DOS2UNIX_LF;
+            cchSrc--;
+            pchSrc++;
+        }
+        else if (cchSrc == 0)
+        {
+            *pcchDst = offDst;
+            return K_TRUE;
+        }
+        else
+            pchDst[offDst++] = ch;
+    }
+
+    *pcchDst = offDst;
+    return K_FALSE;
+}
+
+
+/**
+ * Converts a buffer to DOS (CRLF) endings.
+ *
+ * @retval  K_TRUE if pending CR.  The caller must handle this case.
+ * @retval  K_FALSE if no pending CR.
+ *
+ * @param   pchSrc          The input buffer.
+ * @param   cchSrc          Number of characters to convert from the input
+ *                          buffer.
+ * @param   pchDst          The output buffer.  This must be at least _twice_ as
+ *                          big as the input.  It is okay if the top half of the
+ *                          buffer overlaps with the source buffer.
+ * @param   pcchDst         Where to return the number of characters in the
+ *                          output buffer.
+ */
+KBOOL dos2unix_convert_to_dos(const char *pchSrc, KSIZE cchSrc, char *pchDst, KSIZE *pcchDst)
+{
+    KSIZE offDst = 0;
+    while (cchSrc-- > 0)
+    {
+        char ch = *pchSrc++;
+        if ((unsigned char)ch > (unsigned char)DOS2UNIX_CR)
+            pchDst[offDst++] = ch;
+        else if (ch == DOS2UNIX_CR)
+        {
+            /* We treat CR kind of like an escape character. */
+            do
+            {
+                if (cchSrc > 0)
+                {
+                    pchDst[offDst++] = ch;
+                    cchSrc--;
+                    ch = *pchSrc++;
+                }
+                else
+                {
+                    *pcchDst = offDst;
+                    return K_TRUE;
+                }
+            } while (ch == DOS2UNIX_CR);
+            pchDst[offDst++] = ch;
+        }
+        else if (ch == DOS2UNIX_LF)
+        {
+            pchDst[offDst++] = DOS2UNIX_CR;
+            pchDst[offDst++] = DOS2UNIX_LF;
+        }
+        else
+            pchDst[offDst++] = ch;
+    }
+
+    *pcchDst = offDst;
+    return K_FALSE;
+}
+
diff --git a/src/lib/dos2unix.h b/src/lib/dos2unix.h
new file mode 100644
index 0000000..bb85137
--- /dev/null
+++ b/src/lib/dos2unix.h
@@ -0,0 +1,50 @@
+/* $Id: dos2unix.h 3114 2017-10-29 18:02:04Z bird $ */
+/** @file
+ * dos2unix - Line ending conversion routines.
+ */
+
+/*
+ * Copyright (c) 2017 knut st. osmundsen <bird-kBuild-spamx at anduin.net>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Alternatively, the content of this file may be used under the terms of the
+ * GPL version 2 or later, or LGPL version 2.1 or later.
+ */
+
+#ifndef ___lib_dos2unix_h___
+#define ___lib_dos2unix_h___
+
+#include <k/kTypes.h>
+
+#define DOS2UNIX_STYLE_NONE     0x00
+#define DOS2UNIX_STYLE_DOS      0x01
+#define DOS2UNIX_STYLE_UNIX     0x02
+#define DOS2UNIX_STYLE_MIXED    0x03
+#define DOS2UNIX_STYLE_MASK     0x03
+#define DOS2UNIX_F_BINARY       0x80 /**< Probably a binary file. */
+
+int dos2unix_analyze_file(const char *pszFilename, KU32 *pfStyle, KSIZE *pcDosEols, KSIZE *pcUnixEols);
+int dos2unix_analyze_fd(int fd, KU32 *pfStyle, KSIZE *pcDosEols, KSIZE *pcUnixEols);
+
+KBOOL dos2unix_convert_to_unix(const char *pchSrc, KSIZE cchSrc, char *pchDst, KSIZE *pcchDst);
+KBOOL dos2unix_convert_to_dos(const char *pchSrc, KSIZE cchSrc, char *pchDst, KSIZE *pcchDst);
+
+#endif
+
diff --git a/src/lib/kDep.c b/src/lib/kDep.c
index 09415ee..f7a09bc 100644
--- a/src/lib/kDep.c
+++ b/src/lib/kDep.c
@@ -1,4 +1,4 @@
-/* $Id: kDep.c 3105 2017-10-20 16:40:25Z bird $ */
+/* $Id: kDep.c 3114 2017-10-29 18:02:04Z bird $ */
 /** @file
  * kDep - Common Dependency Managemnt Code.
  */
@@ -68,7 +68,7 @@ extern int kwFsPathExists(const char *pszPath);
 *********************************************************************************************************************************/
 /* For the GNU/hurd weirdo. */
 #if !defined(PATH_MAX) && !defined(_MAX_PATH)
-# define PATH_MAX 2048
+# define PATH_MAX 4096
 #endif
 
 
diff --git a/src/lib/kStuff/include/k/kDefs.h b/src/lib/kStuff/include/k/kDefs.h
index 11e67b8..01e210b 100644
--- a/src/lib/kStuff/include/k/kDefs.h
+++ b/src/lib/kStuff/include/k/kDefs.h
@@ -1,4 +1,4 @@
-/* $Id: kDefs.h 104 2017-10-20 17:19:04Z bird $ */
+/* $Id: kDefs.h 105 2017-11-21 23:55:40Z bird $ */
 /** @file
  * kTypes - Defines and Macros.
  */
@@ -52,22 +52,24 @@
 #define K_OS_GNU_KFBSD  5
 /** GNU/kNetBSD or GNU/NetBSD or whatever the decide to call it. */
 #define K_OS_GNU_KNBSD  6
+/** Haiku. */
+#define K_OS_HAIKU      7
 /** Linux. */
-#define K_OS_LINUX      7
+#define K_OS_LINUX      8
 /** NetBSD. */
-#define K_OS_NETBSD     8
+#define K_OS_NETBSD     9
 /** NT (native). */
-#define K_OS_NT         9
+#define K_OS_NT         10
 /** OpenBSD*/
-#define K_OS_OPENBSD    10
+#define K_OS_OPENBSD    11
 /** OS/2 */
-#define K_OS_OS2        11
+#define K_OS_OS2        12
 /** Solaris */
-#define K_OS_SOLARIS    12
+#define K_OS_SOLARIS    13
 /** Windows. */
-#define K_OS_WINDOWS    13
+#define K_OS_WINDOWS    14
 /** The max K_OS_* value (exclusive). */
-#define K_OS_MAX        14
+#define K_OS_MAX        15
 /** @} */
 
 /** @def K_OS
@@ -106,6 +108,8 @@
 #  define K_OS      K_OS_SOLARIS
 # elif defined(_WIN32) || defined(_WIN64)
 #  define K_OS      K_OS_WINDOWS
+# elif defined(__haiku__) || defined(__HAIKU__)
+#  define K_OS      K_OS_HAIKU
 # else
 #  error "Port Me"
 # endif
diff --git a/src/lib/nt/ntunlink.c b/src/lib/nt/ntunlink.c
index fc0d82e..257e919 100644
--- a/src/lib/nt/ntunlink.c
+++ b/src/lib/nt/ntunlink.c
@@ -1,4 +1,4 @@
-/* $Id: ntunlink.c 3060 2017-09-21 15:11:07Z bird $ */
+/* $Id: ntunlink.c 3126 2017-11-16 16:05:25Z bird $ */
 /** @file
  * MSC + NT unlink and variations.
  */
@@ -127,7 +127,7 @@ static int birdUnlinkInternal(HANDLE hRoot, const char *pszFile, const wchar_t *
             {
                 rcNt = birdOpenFileUniStr(hRoot,
                                           &NtPath,
-                                          DELETE,
+                                          DELETE | SYNCHRONIZE,
                                           FILE_ATTRIBUTE_NORMAL,
                                           FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
                                           FILE_OPEN,
diff --git a/src/lib/testcase/dos-text.txt b/src/lib/testcase/dos-text.txt
new file mode 100644
index 0000000..a685cbd
--- /dev/null
+++ b/src/lib/testcase/dos-text.txt
@@ -0,0 +1,35 @@
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aenean commodo ligula eget dolor. Aenean massa. Cum sociis
+natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec
+quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat
+massa quis enim. Donec pede justo, fringilla vel, aliquet nec,
+vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet
+a,
+venenatis
+vitae, justo. Nullam dictum
+felis eu pede mollis pretium. Integer tincidunt. Cras dapibus.
+Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo
+ligula, porttitor eu, consequat vitae, eleifend ac, enim.
+
+Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra
+
+
+nulla ut metus varius
+ laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue.
+
+
+   Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus
+	eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.
+Nam 		quam nunc, blandit vel,
+	luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante
+	tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis
+	ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla
+
+
+
+
+mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales,
+augue
+velit
+cursus
+nunc,
diff --git a/src/lib/testcase/dos2unix-test.cmd b/src/lib/testcase/dos2unix-test.cmd
new file mode 100644
index 0000000..a491e3f
--- /dev/null
+++ b/src/lib/testcase/dos2unix-test.cmd
@@ -0,0 +1,46 @@
+ at setlocal
+
+ at set INSPROG="E:\kBuild\svn\trunk\out\win.amd64\debug\stage\kBuild\bin\win.amd64\kmk_install.exe"
+ at set TMPFILE="e:\tmp\tmp.txt"
+ at set CMPPROG="E:\kBuild\svn\trunk\kBuild\bin\win.amd64\kmk_cmp.exe"
+ at set RMPROG="E:\kBuild\svn\trunk\kBuild\bin\win.amd64\kmk_rm.exe"
+
+@%RMPROG% -f -- %TMPFILE%
+
+ at echo ... dos2unix ...
+%INSPROG% --dos2unix dos-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% unix-text.txt
+ at if not errorlevel 0 goto end
+
+%INSPROG% --dos2unix unix-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% unix-text.txt
+ at if not errorlevel 0 goto end
+
+%INSPROG% --dos2unix mixed-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% unix-text.txt
+ at if not errorlevel 0 goto end
+
+ at echo ... unix2dos ...
+%INSPROG% --unix2dos unix-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% dos-text.txt
+ at if not errorlevel 0 goto end
+
+%INSPROG% --unix2dos dos-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% dos-text.txt
+ at if not errorlevel 0 goto end
+
+%INSPROG% --unix2dos mixed-text.txt %TMPFILE%
+ at if not errorlevel 0 goto end
+%CMPPROG% -- %TMPFILE% dos-text.txt
+ at if not errorlevel 0 goto end
+
+
+@%RMPROG% -f -- %TMPFILE%
+:end
+ at endlocal
+
diff --git a/src/lib/testcase/mixed-text.txt b/src/lib/testcase/mixed-text.txt
new file mode 100644
index 0000000..adec2a8
--- /dev/null
+++ b/src/lib/testcase/mixed-text.txt
@@ -0,0 +1,35 @@
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aenean commodo ligula eget dolor. Aenean massa. Cum sociis
+natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec
+quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat
+massa quis enim. Donec pede justo, fringilla vel, aliquet nec,
+vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet
+a,
+venenatis
+vitae, justo. Nullam dictum
+felis eu pede mollis pretium. Integer tincidunt. Cras dapibus.
+Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo
+ligula, porttitor eu, consequat vitae, eleifend ac, enim.
+
+Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra
+
+
+nulla ut metus varius
+ laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue.
+
+
+   Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus
+	eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.
+Nam 		quam nunc, blandit vel,
+	luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante
+	tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis
+	ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla
+
+
+
+
+mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales,
+augue
+velit
+cursus
+nunc,
diff --git a/src/lib/testcase/unix-text.txt b/src/lib/testcase/unix-text.txt
new file mode 100644
index 0000000..5d3ccd5
--- /dev/null
+++ b/src/lib/testcase/unix-text.txt
@@ -0,0 +1,35 @@
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aenean commodo ligula eget dolor. Aenean massa. Cum sociis
+natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec
+quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat
+massa quis enim. Donec pede justo, fringilla vel, aliquet nec,
+vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet
+a,
+venenatis
+vitae, justo. Nullam dictum
+felis eu pede mollis pretium. Integer tincidunt. Cras dapibus.
+Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo
+ligula, porttitor eu, consequat vitae, eleifend ac, enim.
+
+Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra
+
+
+nulla ut metus varius
+ laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue.
+
+
+   Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus
+	eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.
+Nam 		quam nunc, blandit vel,
+	luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante
+	tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis
+	ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla
+
+
+
+
+mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales,
+augue
+velit
+cursus
+nunc,

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-virtualbox/kbuild.git



More information about the Pkg-virtualbox-commits mailing list