diff --git a/c/Makefile.am b/c/Makefile.am
index 29a1e875..f6ecc180 100644
--- a/c/Makefile.am
+++ b/c/Makefile.am
@@ -19,7 +19,7 @@ mlr_LDADD=		\
 			lib/libmlr.la \
 			parsing/libdsl.la \
 			aux/libaux.la \
-			-lm
+			-lm -lpcreposix
 
 # Other executable variants
 
diff --git a/c/aux/Makefile.am b/c/aux/Makefile.am
index 76edb9ae..ff463e47 100644
--- a/c/aux/Makefile.am
+++ b/c/aux/Makefile.am
@@ -2,7 +2,7 @@ noinst_LTLIBRARIES=	libaux.la
 libaux_la_SOURCES=	aux_entries.c \
 			aux_entries.h
 
-libaux_la_LIBADD=	../lib/libmlr.la \
+libaux_la_LIBADD=	../lib/libmlr.la
 
 AM_CPPFLAGS=	-I${srcdir}/../
 AM_CFLAGS=	-std=gnu99
diff --git a/c/lib/mlr_arch.h b/c/lib/mlr_arch.h
index 34ef1647..fea3dfef 100644
--- a/c/lib/mlr_arch.h
+++ b/c/lib/mlr_arch.h
@@ -4,6 +4,8 @@
 #include <stdio.h>
 #include <time.h>
 
+#define MLR_ON_MSYS2
+
 // ----------------------------------------------------------------
 // Miller is single-threaded and the file-locking in getc is simply an unneeded
 // performance hit, so we intentionally call getc_unlocked().  But for MSYS2
diff --git a/c/unit_test/Makefile.am b/c/unit_test/Makefile.am
index d529b321..02f4f539 100644
--- a/c/unit_test/Makefile.am
+++ b/c/unit_test/Makefile.am
@@ -27,7 +27,7 @@ all_ldadd=		\
 			../mapping/libmapping.la \
 			../output/liboutput.la \
 			../stream/libstream.la \
-			-lm
+			-lm -lpcreposix
 
 # Unit-test mains
 test_mlrutil_CFLAGS=              -std=gnu99 -g ${AM_CFLAGS}
diff --git a/c/winpatch.diff b/c/winpatch.diff
index 332d779c..e69de29b 100644
--- a/c/winpatch.diff
+++ b/c/winpatch.diff
@@ -1,26 +0,0 @@
-diff --git a/c/Makefile.am b/c/Makefile.am
-index 29a1e875..f6ecc180 100644
---- a/c/Makefile.am
-+++ b/c/Makefile.am
-@@ -19,7 +19,7 @@ mlr_LDADD=		\
- 			lib/libmlr.la \
- 			parsing/libdsl.la \
- 			aux/libaux.la \
--			-lm
-+			-lm -lpcreposix
- 
- # Other executable variants
- 
-diff --git a/c/lib/mlr_arch.h b/c/lib/mlr_arch.h
-index 97eaf5c8..30fe1d0c 100644
---- a/c/lib/mlr_arch.h
-+++ b/c/lib/mlr_arch.h
-@@ -4,6 +4,8 @@
- #include <stdio.h>
- #include <time.h>
- 
-+#define MLR_ON_MSYS2
-+
- // ----------------------------------------------------------------
- // Miller is single-threaded and the file-locking in getc is simply an unneeded
- // performance hit, so we intentionally call getc_unlocked().  But for MSYS2
