diff -urN wine-4.21-orig/configure.ac wine-4.21/configure.ac
--- wine-4.21-orig/configure.ac	2019-11-30 04:15:57 +0900
+++ wine-4.21/configure.ac	2019-12-30 09:36:09 +0900
@@ -28,6 +28,11 @@
 
 dnl **** Command-line arguments ****
 
+AC_ARG_ENABLE(unixfs,AS_HELP_STRING([--disable-unixfs],[do not include unixfs support]))
+if test "x$enable_unixfs" != "xno"
+then
+    AC_DEFINE(ENABLE_UNIXFS, 1, [Define to enable unixfs]) 
+fi
 AC_ARG_ENABLE(win16, AS_HELP_STRING([--disable-win16],[do not include Win16 support]))
 AC_ARG_ENABLE(win64, AS_HELP_STRING([--enable-win64],[build a Win64 emulator on AMD64 (won't run Win32 binaries)]))
 AC_ARG_ENABLE(tests, AS_HELP_STRING([--disable-tests],[do not build the regression tests]))
diff -urN wine-4.21-orig/dlls/krnl386.exe16/int21.c wine-4.21/dlls/krnl386.exe16/int21.c
--- wine-4.21-orig/dlls/krnl386.exe16/int21.c	2019-11-30 04:15:57 +0900
+++ wine-4.21/dlls/krnl386.exe16/int21.c	2019-12-30 09:36:09 +0900
@@ -35,6 +35,7 @@
 # include <unistd.h>
 #endif
 
+#include "ntstatus.h"
 #include "windef.h"
 #include "winbase.h"
 #include "winreg.h"
@@ -796,11 +797,13 @@
  */
 static HANDLE INT21_CreateMagicDeviceHandle( LPCWSTR name )
 {
+    HANDLE ret;
+    NTSTATUS status;
+
+#if defined(ENABLE_UNIXFS)
     static const WCHAR prefixW[] = {'\\','?','?','\\','u','n','i','x'};
     const char *dir = wine_get_server_dir();
     int len;
-    HANDLE ret;
-    NTSTATUS status;
     OBJECT_ATTRIBUTES attr;
     UNICODE_STRING nameW;
     IO_STATUS_BLOCK io;
@@ -829,12 +832,16 @@
     status = NtCreateFile( &ret, GENERIC_READ|GENERIC_WRITE|SYNCHRONIZE, &attr, &io, NULL, 0,
                            FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN_IF,
                            FILE_SYNCHRONOUS_IO_ALERT, NULL, 0 );
+    RtlFreeUnicodeString( &nameW );
+#else
+    status = STATUS_NOT_IMPLEMENTED;
+#endif
+
     if (status)
     {
         ret = 0;
         SetLastError( RtlNtStatusToDosError(status) );
     }
-    RtlFreeUnicodeString( &nameW );
     return ret;
 }
 
diff -urN wine-4.21-orig/dlls/krnl386.exe16/vxd.c wine-4.21/dlls/krnl386.exe16/vxd.c
--- wine-4.21-orig/dlls/krnl386.exe16/vxd.c	2019-11-30 04:15:57 +0900
+++ wine-4.21/dlls/krnl386.exe16/vxd.c	2019-12-30 09:36:09 +0900
@@ -111,11 +111,13 @@
 /* create a file handle to represent a VxD, by opening a dummy file in the wineserver directory */
 static HANDLE open_vxd_handle( LPCWSTR name )
 {
+    HANDLE ret;
+    NTSTATUS status;
+
+#if defined(ENABLE_UNIXFS)
     static const WCHAR prefixW[] = {'\\','?','?','\\','u','n','i','x'};
     const char *dir = wine_get_server_dir();
     int len;
-    HANDLE ret;
-    NTSTATUS status;
     OBJECT_ATTRIBUTES attr;
     UNICODE_STRING nameW;
     IO_STATUS_BLOCK io;
@@ -144,12 +146,16 @@
     status = NtCreateFile( &ret, SYNCHRONIZE, &attr, &io, NULL, 0,
                            FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN_IF,
                            FILE_SYNCHRONOUS_IO_ALERT, NULL, 0 );
+    RtlFreeUnicodeString( &nameW );
+#else
+    status = STATUS_NOT_IMPLEMENTED;
+#endif
+
     if (status)
     {
         ret = 0;
         SetLastError( RtlNtStatusToDosError(status) );
     }
-    RtlFreeUnicodeString( &nameW );
     return ret;
 }
 
diff -urN wine-4.21-orig/dlls/ntdll/directory.c wine-4.21/dlls/ntdll/directory.c
--- wine-4.21-orig/dlls/ntdll/directory.c	2019-11-30 04:15:57 +0900
+++ wine-4.21/dlls/ntdll/directory.c	2019-12-30 09:36:09 +0900
@@ -2757,7 +2757,9 @@
 NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret,
                                           UINT disposition, BOOLEAN check_case )
 {
+#if defined(ENABLE_UNIXFS)
     static const WCHAR unixW[] = {'u','n','i','x'};
+#endif
     static const WCHAR invalid_charsW[] = { INVALID_NT_CHARS, 0 };
 
     NTSTATUS status = STATUS_SUCCESS;
@@ -2802,7 +2804,9 @@
     name_len -= prefix_len;
 
     /* check for invalid characters (all chars except 0 are valid for unix) */
+#if defined(ENABLE_UNIXFS)
     is_unix = (prefix_len == 4 && !memcmp( prefix, unixW, sizeof(unixW) ));
+#endif
     if (is_unix)
     {
         for (p = name; p < name + name_len; p++)
diff -urN wine-4.21-orig/dlls/ntdll/path.c wine-4.21/dlls/ntdll/path.c
--- wine-4.21-orig/dlls/ntdll/path.c	2019-11-30 04:15:57 +0900
+++ wine-4.21/dlls/ntdll/path.c	2019-12-30 09:36:09 +0900
@@ -1075,7 +1075,9 @@
 NTSTATUS CDECL wine_unix_to_nt_file_name( const ANSI_STRING *name, UNICODE_STRING *nt )
 {
     static const WCHAR prefixW[] = {'\\','?','?','\\','A',':','\\'};
+#if defined(ENABLE_UNIXFS)
     static const WCHAR unix_prefixW[] = {'\\','?','?','\\','u','n','i','x'};
+#endif
     unsigned int lenW, lenA = name->Length;
     const char *path = name->Buffer;
     char *cwd;
@@ -1115,6 +1117,7 @@
 
     if (status != STATUS_SUCCESS)
     {
+#if defined(ENABLE_UNIXFS)
         if (status == STATUS_OBJECT_PATH_NOT_FOUND)
         {
             lenW = ntdll_umbstowcs( 0, path, lenA, NULL, 0 );
@@ -1134,6 +1137,7 @@
             for (p = nt->Buffer + ARRAY_SIZE( unix_prefixW ); *p; p++) if (*p == '/') *p = '\\';
             status = STATUS_SUCCESS;
         }
+#endif
         goto done;
     }
     while (lenA && path[0] == '/') { lenA--; path++; }
diff -urN wine-4.21-orig/dlls/shell32/folders.c wine-4.21/dlls/shell32/folders.c
--- wine-4.21-orig/dlls/shell32/folders.c	2019-11-30 04:15:57 +0900
+++ wine-4.21/dlls/shell32/folders.c	2019-12-30 09:36:09 +0900
@@ -236,9 +236,11 @@
                 *piIndex = -IDI_SHELL_MY_DOCUMENTS;
             else if(IsEqualGUID(riid, &CLSID_NetworkPlaces))
                 *piIndex = -IDI_SHELL_MY_NETWORK_PLACES;
+#if defined(ENABLE_UNIXFS)
             else if(IsEqualGUID(riid, &CLSID_UnixFolder) ||
                     IsEqualGUID(riid, &CLSID_UnixDosFolder))
                 *piIndex = -IDI_SHELL_DRIVE;
+#endif
             else
                 *piIndex = -IDI_SHELL_FOLDER;
 	  }
diff -urN wine-4.21-orig/dlls/shell32/shellole.c wine-4.21/dlls/shell32/shellole.c
--- wine-4.21-orig/dlls/shell32/shellole.c	2019-11-30 04:15:57 +0900
+++ wine-4.21/dlls/shell32/shellole.c	2019-12-30 09:36:09 +0900
@@ -82,8 +82,10 @@
 	{&CLSID_ShellFSFolder,	IFSFolder_Constructor},
 	{&CLSID_ShellItem,	IShellItem_Constructor},
 	{&CLSID_ShellLink,	IShellLink_Constructor},
+#if defined(ENABLE_UNIXFS)
 	{&CLSID_UnixDosFolder,  UnixDosFolder_Constructor},
 	{&CLSID_UnixFolder,     UnixFolder_Constructor},
+#endif
 	{&CLSID_ExplorerBrowser,ExplorerBrowser_Constructor},
 	{&CLSID_KnownFolderManager, KnownFolderManager_Constructor},
 	{&CLSID_Shell,          IShellDispatch_Constructor},
diff -urN wine-4.21-orig/dlls/shell32/shellpath.c wine-4.21/dlls/shell32/shellpath.c
--- wine-4.21-orig/dlls/shell32/shellpath.c	2019-11-30 04:15:57 +0900
+++ wine-4.21/dlls/shell32/shellpath.c	2019-12-30 09:36:09 +0900
@@ -4652,9 +4652,11 @@
         DWORD call_for_attr;
     } folders[] =
     {
+#if defined(ENABLE_UNIXFS)
         { &CLSID_UnixFolder, TRUE, FALSE, FALSE },
         { &CLSID_UnixDosFolder, TRUE, FALSE, FALSE,
           SFGAO_FILESYSANCESTOR|SFGAO_FOLDER|SFGAO_HASSUBFOLDER, SFGAO_FILESYSTEM },
+#endif
         { &CLSID_FolderShortcut, FALSE, FALSE, FALSE,
           SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_LINK,
           SFGAO_HASSUBFOLDER|SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR },
@@ -4784,9 +4786,11 @@
             *ppidl = _ILCreateDesktop();
             break;
 
+#if defined(ENABLE_UNIXFS)
         case CSIDL_PERSONAL:
             *ppidl = _ILCreateMyDocuments();
             break;
+#endif
 
         case CSIDL_INTERNET:
             *ppidl = _ILCreateIExplore();
diff -urN wine-4.21-orig/dlls/shell32/shfldr.h wine-4.21/dlls/shell32/shfldr.h
--- wine-4.21-orig/dlls/shell32/shfldr.h	2019-11-30 04:15:57 +0900
+++ wine-4.21/dlls/shell32/shfldr.h	2019-12-30 09:36:09 +0900
@@ -80,5 +80,7 @@
 void SHELL_FS_ProcessDisplayFilename(LPWSTR szPath, DWORD dwFlags) DECLSPEC_HIDDEN;
 BOOL SHELL_FS_HideExtension(LPCWSTR pwszPath) DECLSPEC_HIDDEN;
 
+#if defined(ENABLE_UNIXFS)
 DEFINE_GUID( CLSID_UnixFolder, 0xcc702eb2, 0x7dc5, 0x11d9, 0xc6, 0x87, 0x00, 0x04, 0x23, 0x8a, 0x01, 0xcd );
 DEFINE_GUID( CLSID_UnixDosFolder, 0x9d20aae8, 0x0625, 0x44b0, 0x9c, 0xa7, 0x71, 0x88, 0x9c, 0x22, 0x54, 0xd9 );
+#endif
diff -urN wine-4.21-orig/dlls/shell32/shfldr_desktop.c wine-4.21/dlls/shell32/shfldr_desktop.c
--- wine-4.21-orig/dlls/shell32/shfldr_desktop.c	2019-11-30 04:15:57 +0900
+++ wine-4.21/dlls/shell32/shfldr_desktop.c	2019-12-30 09:36:09 +0900
@@ -184,10 +184,12 @@
     }
     else if (PathGetDriveNumberW (lpszDisplayName) >= 0)
     {
+#if defined(ENABLE_UNIXFS)
         /* it's a filesystem path with a drive. Let MyComputer/UnixDosFolder parse it */
         if (UNIXFS_is_rooted_at_desktop()) 
             pidlTemp = _ILCreateGuid(PT_GUID, &CLSID_UnixDosFolder);
         else
+#endif
             pidlTemp = _ILCreateMyComputer ();
         szNext = lpszDisplayName;
     }
diff -urN wine-4.21-orig/dlls/shell32/shfldr_unixfs.c wine-4.21/dlls/shell32/shfldr_unixfs.c
--- wine-4.21-orig/dlls/shell32/shfldr_unixfs.c	2019-11-30 04:15:57 +0900
+++ wine-4.21/dlls/shell32/shfldr_unixfs.c	2019-12-30 09:36:09 +0900
@@ -165,7 +165,7 @@
 #include "pidl.h"
 #include "debughlp.h"
 
-#if !defined(__MINGW32__) && !defined(_MSC_VER)
+#if !defined(__MINGW32__) && !defined(_MSC_VER) && defined(ENABLE_UNIXFS)
 
 WINE_DEFAULT_DEBUG_CHANNEL(shell);
 
@@ -2572,6 +2572,7 @@
  *  FALSE, if not.
  */
 BOOL UNIXFS_is_rooted_at_desktop(void) {
+#if defined(ENABLE_UNIXFS)
     HKEY hKey;
     WCHAR wszRootedAtDesktop[69 + CHARS_IN_GUID] = {
         'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
@@ -2585,5 +2586,6 @@
         RegCloseKey(hKey);
         return TRUE;
     }
+#endif
     return FALSE;
 }
diff -urN wine-4.21-orig/include/config.h.in wine-4.21/include/config.h.in
--- wine-4.21-orig/include/config.h.in	2019-11-30 04:15:57 +0900
+++ wine-4.21/include/config.h.in	2019-12-30 09:36:09 +0900
@@ -6,6 +6,9 @@
 #error config.h should not be used when cross-compiling
 #endif
 
+/* Define to enable unixfs */
+#undef ENABLE_UNIXFS
+
 /* Define to the file extension for executables. */
 #undef EXEEXT
 
