Index: /trunk/kBuild/tools/GCC32.kmk
===================================================================
--- /trunk/kBuild/tools/GCC32.kmk	(revision 2245)
+++ /trunk/kBuild/tools/GCC32.kmk	(revision 2246)
@@ -47,5 +47,5 @@
 TOOL_GCC32_LDFLAGS.dll ?= $(TOOL_GCC32_LDFLAGS.$(KBUILD_TARGET))
 endif
-TOOL_GCC32_LDFLAGS.sysmod ?= -r -m elf_i386
+TOOL_GCC32_LDFLAGS.sysmod ?= -r -m elf_i386$(if-expr "$(KBUILD_TARGET)" == "freebsd",_fbsd,)
 TOOL_GCC32_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
 ifeq ($(KBUILD_TARGET),os2)
Index: /trunk/kBuild/tools/GCC64.kmk
===================================================================
--- /trunk/kBuild/tools/GCC64.kmk	(revision 2245)
+++ /trunk/kBuild/tools/GCC64.kmk	(revision 2246)
@@ -47,5 +47,5 @@
 TOOL_GCC64_LDFLAGS.dll ?= $(TOOL_GCC64_LDFLAGS.$(KBUILD_TARGET))
 endif
-TOOL_GCC64_LDFLAGS.sysmod ?= -r -m elf_x86_64
+TOOL_GCC64_LDFLAGS.sysmod ?= -r -m elf_x86_64$(if-expr "$(KBUILD_TARGET)" == "freebsd",_fbsd,)
 TOOL_GCC64_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
 ifeq ($(KBUILD_TARGET),os2)
Index: /trunk/kBuild/tools/GXX32.kmk
===================================================================
--- /trunk/kBuild/tools/GXX32.kmk	(revision 2245)
+++ /trunk/kBuild/tools/GXX32.kmk	(revision 2246)
@@ -47,5 +47,5 @@
 TOOL_GXX32_LDFLAGS.dll ?= $(TOOL_GXX32_LDFLAGS.$(KBUILD_TARGET))
 endif
-TOOL_GXX32_LDFLAGS.sysmod ?= -r -m elf_i386
+TOOL_GXX32_LDFLAGS.sysmod ?= -r -m elf_i386$(if-expr "$(KBUILD_TARGET)" == "freebsd",_fbsd,)
 TOOL_GXX32_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
 ifeq ($(KBUILD_TARGET),os2)
Index: /trunk/kBuild/tools/GXX64.kmk
===================================================================
--- /trunk/kBuild/tools/GXX64.kmk	(revision 2245)
+++ /trunk/kBuild/tools/GXX64.kmk	(revision 2246)
@@ -47,5 +47,5 @@
 TOOL_GXX64_LDFLAGS.dll ?= $(TOOL_GXX64_LDFLAGS.$(KBUILD_TARGET))
 endif
-TOOL_GXX64_LDFLAGS.sysmod ?= -r -m elf_x86_64
+TOOL_GXX64_LDFLAGS.sysmod ?= -r -m elf_x86_64$(if-expr "$(KBUILD_TARGET)" == "freebsd",_fbsd,)
 TOOL_GXX64_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
 ifeq ($(KBUILD_TARGET),os2)
Index: /trunk/kBuild/tools/TARGZ.kmk
===================================================================
--- /trunk/kBuild/tools/TARGZ.kmk	(revision 2245)
+++ /trunk/kBuild/tools/TARGZ.kmk	(revision 2246)
@@ -65,7 +65,14 @@
 TOOL_TARGZ_UNPACK_DEPEND =
 TOOL_TARGZ_UNPACK_DEPORD =
+ifeq ($(KBUILD_HOST),win) # hacking with buggy unxutils on windows. it doesn't like driver letters.
+define TOOL_TARGZ_UNPACK_CMDS
+	$(QUIET)$(TOOL_TARGZ_UNPACK) -x $(flags) -C $(subst G:,,$(inst)) -f $(archive)
+	$(QUIET)$(TOOL_TARGZ_UNPACK) -t $(flags) -f $(archive) > $(out)
+endef
+else
 define TOOL_TARGZ_UNPACK_CMDS
 	$(QUIET)$(TOOL_TARGZ_UNPACK) -x $(flags) -C $(inst) -f $(archive)
 	$(QUIET)$(TOOL_TARGZ_UNPACK) -t $(flags) -f $(archive) > $(out)
 endef
+endif
 
