posixos.c needs to be excluded and w32os.c is missing from the w32 lib when cross building for windows, I got things working with the following
diff --git a/Makefile.am b/Makefile.am
index 96c4ae2..d878a37 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -41,10 +41,14 @@ endif
make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \
function.c getopt.c getopt1.c guile.c implicit.c job.c load.c \
- loadapi.c main.c misc.c output.c posixos.c read.c remake.c \
+ loadapi.c main.c misc.c output.c read.c remake.c \
rule.c signame.c strcache.c variable.c version.c vpath.c \
hash.c $(remote)
+if !WINDOWSENV
+ make_SOURCES += posixos.c
+endif
+
EXTRA_make_SOURCES = vmsjobs.c remote-stub.c remote-cstms.c
noinst_HEADERS = commands.h dep.h filedef.h job.h makeint.h rule.h variable.h \
diff --git a/w32/Makefile.am b/w32/Makefile.am
index af97768..b0b4734 100644
--- a/w32/Makefile.am
+++ b/w32/Makefile.am
@@ -20,6 +20,6 @@ AUTOMAKE_OPTIONS = subdir-objects
noinst_LIBRARIES = libw32.a
libw32_a_SOURCES = subproc/misc.c subproc/sub_proc.c subproc/w32err.c \
- compat/posixfcn.c pathstuff.c
+ compat/posixfcn.c pathstuff.c w32os.c
libw32_a_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/subproc -I$(top_srcdir)