emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 2f7163f: Fix the MSDOS build.


From: Eli Zaretskii
Subject: [Emacs-diffs] emacs-26 2f7163f: Fix the MSDOS build.
Date: Wed, 18 Oct 2017 13:22:29 -0400 (EDT)

branch: emacs-26
commit 2f7163fb72e764d2df046a4d816e1e0b81e41d18
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix the MSDOS build.
    
    * msdos/sed1v2.inp (GETADDRINFO_A_LIBS, LIBLCMS2, XDBE_LIBS)
    (XDBE_FLAGS, HYBRID_MALLOC, LIBSYSTEMD_CFLAGS)
    (LIBSYSTEMD_LIBS): Edit to empty.
    (LIBRESOLV, DEPFLAGS, MKDEPDIR, YMF_PASS_LDFLAGS)
    (PRE_EDIT_LDFLAGS, POST_EDIT_LDFLAGS): Remove editing.
    Remove editing of lines that are no longer present in
    src/Makefile.in.
    * msdos/sed2v2.inp (NEED_MKTIME_INTERNAL)
    (NEED_MKTIME_WORKING): Define to 1.
    (HAVE_STRUCT_DIRENT_D_TYPE): Define to 1 for
    DJGPP >= 2.05.
    (HAVE_STRUCT_ATTRIBUTE_ALIGNED): Define to 1.
    Define PACKAGE_VERSION, not VERSION.
    (FLEXIBLE_ARRAY_MEMBER): Define to empty.
    (HAVE_DECL_*_UNLOCKED): Define to 0.
    (HAVE___BUILTIN_FRAME_ADDRESS): Define to 1.
    (PENDING_*): Don't define, as Gnulib no longer supports that.
    Instead, define _IOERR as it is in libc/file.h.
    * msdos/sed3v2.inp: Use $(CURDIR) instead of $(shell cd) to
    determine the current directory.
    (UPDATE_MANIFEST, UTILITIES): Don't edit.
    * msdos/sedlisp.inp (FIND_DELETE): Edit to "-delete".
    * msdos/sedlibmk.inp (AUTO_DEPEND): Define to yes.
    (HYBRID_MALLOC): Edit to empty.
    (am__cd): Don't edit.
    (../config.status): Replaces $(top_builddir)/config.status.
    Define OMIT_GNULIB_MODULE_foo = true for modules not built for
    MS-DOS.  Convert GL_GENERATE_xxx_H_TRUE and
    GL_GENERATE_xxx_H_FALSE into values of GL_GENERATE_xxx_H.
    * msdos/mainmake.v2 (src): Use 'compile-one-process', and make
    the command line shorter to fit into 126-char limit of
    command.com.
    * config.bat: Generate src/deps/*.d files.  Rename more files
    like djtar on plain DOS would.
    Don't rename src/dir.h: it is long gone.  Edit
    lib/gnulib.mk.in using the same scripts as for
    lib/Makefile.in.
    * msdos/depfiles.bat: Create *.d files, not *.Po.
    
    * src/thread.c (Fmake_thread) [!THREADS_ENABLED]: Improve the
    error message.
    * src/thread.h [MSDOS]: Include <signal.h>.
    * src/sysselect.h (select) [MSDOS]: Undefine, to avoid
    compilation errors.
    * src/sysdep.c (block_interrupt_signal, restore_signal_mask):
    Expose to MSDOS build.
    * src/process.c (update_processes_for_thread_death)
    [!subprocess]: No-op implementation.
    [HAVE_SETRLIMIT]: Move inclusion of sys/resource.h and
    declaration of nofile_limit outside "#ifdef subprocesses", as
    it's needed for MSDOS.
    * src/msdos.c (faccessat): Declare fullname[].
    * src/msdos.h (ENOTSUP): Define to be identical to ENOSYS.
    Include termhooks.h.
    * src/conf_post.h [WINDOWSNT]: Include ms-w32.h only on
    WINDOWSNT, not DOS_NT.
    
    * admin/admin.el (set-version): Set version on PACKAGE_VERSION.
---
 admin/admin.el     |   2 +-
 config.bat         |  24 +++++++----
 msdos/depfiles.bat |   2 +-
 msdos/sed1v2.inp   |  40 +++++++----------
 msdos/sed2v2.inp   |  35 ++++++++++++---
 msdos/sed3v2.inp   |   6 +--
 msdos/sedlibmk.inp | 123 ++++++++++++++++++++++++++++++++++-------------------
 msdos/sedlisp.inp  |   1 +
 src/conf_post.h    |   2 +-
 src/msdos.c        |   2 +
 src/msdos.h        |   3 ++
 src/process.c      |  11 +++++
 src/sysdep.c       |   3 +-
 src/sysselect.h    |   5 +++
 src/thread.c       |   4 ++
 src/thread.h       |   4 ++
 16 files changed, 176 insertions(+), 91 deletions(-)

diff --git a/admin/admin.el b/admin/admin.el
index 44d091d..b2adfbf 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -114,7 +114,7 @@ Root must be the root of an Emacs source tree."
   ;; configure.ac with sed, rather than duplicating the information.
   (set-version-in-file root "msdos/sed2v2.inp" version
                       (rx (and bol "/^#undef " (1+ not-newline)
-                               "define VERSION" (1+ space) "\""
+                               "define PACKAGE_VERSION" (1+ space) "\""
                                (submatch (1+ (in "0-9."))))))
   ;; Major version only.
   (when (string-match "\\([0-9]\\{2,\\}\\)" version)
diff --git a/config.bat b/config.bat
index d0251df..9088221 100644
--- a/config.bat
+++ b/config.bat
@@ -189,9 +189,6 @@ rm -f junk.c junk junk.exe
 update config.h2 config.h >nul
 rm -f config.tmp config.h2
 
-rem   On my system dir.h gets in the way.  It's a VMS file so who cares.
-if exist dir.h ren dir.h vmsdir.h
-
 rem   Create "makefile" from "makefile.in".
 rm -f Makefile makefile.tmp
 copy Makefile.in+deps.mk makefile.tmp
@@ -222,6 +219,10 @@ sed -e "/^LIBXML2_LIBS *=/s/=/= -lxml2 -lz -liconv/" 
<Makefile >makefile.tmp
 sed -e "/^LIBXML2_CFLAGS *=/s|=|= -I/dev/env/DJDIR/include/libxml2|" 
<makefile.tmp >Makefile
 rm -f makefile.tmp
 :src7
+Rem Create .d files for new files in src/
+If Not Exist deps\stamp mkdir deps
+for %%f in (*.c) do @call ..\msdos\depfiles.bat %%f
+echo deps-stamp > deps\stamp
 cd ..
 rem   ----------------------------------------------------------------------
 Echo Configuring the library source directory...
@@ -273,6 +274,7 @@ Echo Configuring the lib directory...
 If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h 
build-aux/snippet/cxxdefs.h
 cd lib
 Rem Rename files like djtar on plain DOS filesystem would.
+If Exist c++defs.h update c++defs.h cxxdefs.h
 If Exist alloca.in.h update alloca.in.h alloca.in-h
 If Exist byteswap.in.h update byteswap.in.h byteswap.in-h
 If Exist dirent.in.h update dirent.in.h dirent.in-h
@@ -280,12 +282,12 @@ If Exist errno.in.h update errno.in.h errno.in-h
 If Exist execinfo.in.h update execinfo.in.h execinfo.in-h
 If Exist fcntl.in.h update fcntl.in.h fcntl.in-h
 If Exist getopt.in.h update getopt.in.h getopt.in-h
+If Exist getopt-cdefs.in.h update getopt-cdefs.in.h getopt-cdefs.in-h
 If Exist inttypes.in.h update inttypes.in.h inttypes.in-h
-If Exist stdarg.in.h update stdarg.in.h stdarg.in-h
-If Exist stdalign.in.h update stdalign.in.h stdalign.in-h
-If Exist stdbool.in.h update stdbool.in.h stdbool.in-h
+If Exist limits.in.h update limits.in.h limits.in-h
 If Exist signal.in.h update signal.in.h signal.in-h
-If Exist stdalign.in.h update stdalign.in.h  stdalign.in-h
+If Exist signal.in.h update signal.in.h signal.in-h
+If Exist stdalign.in.h update stdalign.in.h stdalign.in-h
 If Exist stddef.in.h update stddef.in.h  stddef.in-h
 If Exist stdint.in.h update stdint.in.h  stdint.in-h
 If Exist stdio.in.h update stdio.in.h stdio.in-h
@@ -293,16 +295,20 @@ If Exist stdlib.in.h update stdlib.in.h stdlib.in-h
 If Exist string.in.h update string.in.h string.in-h
 If Exist sys_select.in.h update sys_select.in.h sys_select.in-h
 If Exist sys_stat.in.h update sys_stat.in.h sys_stat.in-h
-If Exist sys_types.in.h update sys_types.in.h sys_types.in-h
 If Exist sys_time.in.h update sys_time.in.h sys_time.in-h
+If Exist sys_types.in.h update sys_types.in.h sys_types.in-h
 If Exist time.in.h update time.in.h time.in-h
 If Exist unistd.in.h update unistd.in.h unistd.in-h
+If Exist gnulib.mk.in update gnulib.mk.in gnulib.mk-in
 Rem Only repository has the msdos/autogen directory
 If Exist Makefile.in sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp
 If Exist ..\msdos\autogen\Makefile.in sed -f ../msdos/sedlibcf.inp < 
..\msdos\autogen\Makefile.in > makefile.tmp
 sed -f ../msdos/sedlibmk.inp < makefile.tmp > Makefile
 rm -f makefile.tmp
-Rem Create .Po files for new files in lib/
+sed -f ../msdos/sedlibcf.inp < gnulib.mk-in > gnulib.tmp
+sed -f ../msdos/sedlibmk.inp < gnulib.tmp > gnulib.mk
+rm -f gnulib.tmp
+Rem Create .d files for new files in lib/
 If Not Exist deps\stamp mkdir deps
 for %%f in (*.c) do @call ..\msdos\depfiles.bat %%f
 echo deps-stamp > deps\stamp
diff --git a/msdos/depfiles.bat b/msdos/depfiles.bat
index 31c8622..8910b00 100644
--- a/msdos/depfiles.bat
+++ b/msdos/depfiles.bat
@@ -20,6 +20,6 @@ rem   along with GNU Emacs.  If not, see 
https://www.gnu.org/licenses/.
 
 rem   ----------------------------------------------------------------------
 
-echo %1 | sed -e "s,\(.*\)\.c,@if not exist deps\\\1.Po echo # dummy > 
deps\\\1.Po," > tdepfile.bat
+echo %1 | sed -e "s,\(.*\)\.c,@if not exist deps\\\1.d echo # dummy > 
deps\\\1.d," > tdepfile.bat
 call tdepfile
 del tdepfile.bat
diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp
index 5431d2b..cc51301 100644
--- a/msdos/sed1v2.inp
+++ b/msdos/sed1v2.inp
@@ -94,6 +94,8 @@ s/ address@hidden@//
 /^IMAGEMAGICK_CFLAGS *=/s/@IMAGEMAGICK_CFLAGS@//
 /^LIBXML2_LIBS *=/s/@LIBXML2_LIBS@//
 /^LIBXML2_CFLAGS *=/s/@LIBXML2_CFLAGS@//
+/^GETADDRINFO_A_LIBS *=/s/@GETADDRINFO_A_LIBS@//
+/^LIBLCMS2 *=/s/@LIBLCMS2@//
 /^WIDGET_OBJ *=/s/@WIDGET_OBJ@//
 /^XWIDGETS_OBJ *=/s/@XWIDGETS_OBJ@//
 /^WEBKIT_LIBS *=/s/@WEBKIT_LIBS@//
@@ -102,16 +104,19 @@ s/ address@hidden@//
 /^CAIRO_CFLAGS *=/s/@CAIRO_CFLAGS@//
 /^XFIXES_LIBS *=/s/@XFIXES_LIBS@//
 /^XFIXES_CFLAGS *=/s/@XFIXES_CFLAGS@//
+/^XDBE_LIBS *=/s/@XDBE_LIBS@//
+/^XDBE_CFLAGS *=/s/@XDBE_CFLAGS@//
 /^CYGWIN_OBJ *=/s/@CYGWIN_OBJ@//
 /^WINDOW_SYSTEM_OBJ *=/s/@WINDOW_SYSTEM_OBJ@//
 /^MSDOS_OBJ *=/s/= */= dosfns.o msdos.o w16select.o/
 /^NS_OBJ *=/s/@NS_OBJ@//
 /^NS_OBJC_OBJ *=/s/@NS_OBJC_OBJ@//
 /^GNU_OBJC_CFLAGS*=/s/=.*$/=/
-/^LIBRESOLV *=/s/@LIBRESOLV@//
 /^LIBMODULES *=/s/@LIBMODULES@//
 /^MODULES_OBJ *=/s/@MODULES_OBJ@//
 /^LIBSELINUX_LIBS *=/s/@LIBSELINUX_LIBS@//
+/^LIBSYSTEMD_LIBS *=/s/@LIBSYSTEMD_LIBS@//
+/^LIBSYSTEMD_CFLAGS *=/s/@LIBSYSTEMD_CFLAGS@//
 /^LIB_CLOCK_GETTIME *=/s/@address@hidden@//g
 /^LIB_TIMER_TIME *=/s/@address@hidden@//g
 /^LIB_EXECINFO *=/s/@address@hidden@//g
@@ -133,6 +138,7 @@ s/ address@hidden@//
 /^XRANDR_CFLAGS *=/s/@XRANDR_CFLAGS@//
 /^XINERAMA_LIBS *=/s/@XINERAMA_LIBS@//
 /^XINERAMA_CFLAGS *=/s/@XINERAMA_CFLAGS@//
+/^HYBRID_MALLOC *=/s/@HYBRID_MALLOC@//
 /^GMALLOC_OBJ *=/s/@GMALLOC_OBJ@/gmalloc.o/
 /^VMLIMIT_OBJ *=/s/@VMLIMIT_OBJ@/vm-limit.o/
 /^FIRSTFILE_OBJ *=/s/@FIRSTFILE_OBJ@//
@@ -140,9 +146,8 @@ s/ address@hidden@//
 /^PRE_ALLOC_OBJ *=/s/@PRE_ALLOC_OBJ@/lastfile.o/
 /^POST_ALLOC_OBJ *=/s/@POST_ALLOC_OBJ@/$(vmlimitobj)/
 /^UNEXEC_OBJ *=/s/@UNEXEC_OBJ@/unexcoff.o/
+/^BUILD_DETAILS *=/s/@BUILD_DETAILS@//
 /^CANNOT_DUMP *=/s/@CANNOT_DUMP@/no/
-/^DEPFLAGS *=/s/@DEPFLAGS@//
-/^MKDEPDIR *=/s/@MKDEPDIR@//
 /^W32_OBJ *=/s/@W32_OBJ@//
 /^W32_LIBS *=/s/@W32_LIBS@//
 /^version *=/s/@address@hidden@//
@@ -172,20 +177,18 @@ lisp.mk: $(lispsource)/loadup.el\
 /^     [       ]*\$(AM_V_GLOBALS)\$(libsrc)\/make-doc/s!>.*$!!
 /^\$(libsrc)\/make-docfile\$(EXEEXT): /i\
        cd ../src
-/^\$(leimdir)\/leim-list.el: /s/bootstrap-emacs\$(EXEEXT)/b-emacs$(EXEEXT)/
 /^     if test -f/,/^  fi$/c\
        command.com /c if exist .gdbinit rm -f _gdbinit
 /^      *ifneq (\$(PAXCTL_notdumped),)/,/^      *endif/d
 /^      *ifneq (\$(PAXCTL_dumped),)/,/^         *endif/d
 /^      *ln /s/ln /cp /
-/^      *\$(SETFATTR_if_present) -n/d
 /^     fi/d
 /^      *\$(RUN_TEMACS) /i\
        stubedit temacs.exe minstack=1024k
 /^      *LC_ALL=C \$(RUN_TEMACS)/i\
        stubedit temacs.exe minstack=1024k
 /^      *LC_ALL=C.*\$(RUN_TEMACS)/s/LC_ALL=C/set &;/
-/-batch -l loadup/a\
+/-batch .* -l loadup/a\
        stubify emacs\
        stubedit emacs.exe minstack=3072k
 s/ @true *$/ @rem/
@@ -193,7 +196,6 @@ s/^ [^      ]*move-if-change /      update /
 /^     [^      ]*echo[         ][      ]*timestamp/s/echo /djecho /
 /^     .*djecho timestamp/a\
        @rm -f globals.tmp
-/^      address@hidden(MKDEPDIR) *$/d
 /^     mv \.\/\.gdbinit/d
 /^     if test -f/,/^  fi$/c\
        command.com /c if exist .gdbinit rm -f _gdbinit
@@ -201,12 +203,7 @@ s/^        [^      ]*move-if-change /      update /
 /^     @: /d
 /^     -\{0,1\} *ln /s/ln /cp /
 /^[    ]touch /s/touch/djecho $@ >/
-s/@YMF_PASS_LDFLAGS@/flags/
-s/@PRE_EDIT_LDFLAGS@//
-s/@POST_EDIT_LDFLAGS@//
 s/bootstrap-emacs/b-emacs/
-s/bootstrap-temacs/b-temacs/
-s/bootstrap-doc/b-doc/
 /rm -f bootstrap-emacs/s/b-emacs/b-emacs b-emacs.exe/
 s/echo.*buildobj.lst/dj&/
 / --load loadup bootstrap/a\
@@ -222,25 +219,20 @@ s/echo.*buildobj.lst/dj&/
 }
 # Remove or replace dependencies we cannot have
 /^\.PRECIOUS: /s!\.\./config.status !!
-/^\.\.\/config.status: /d
+/^\.\.\/config.status: /,/^    /d
 /^Makefile: /s!\.\./config.status !!
-/^\$(top_srcdir)\/aclocal\.m4 /,/^doc\.o:/c\
-\
-doc.o: buildobj.h
 # Make the GCC command line fit one screen line
 /^[    ][      ]*\$(GNUSTEP_CFLAGS)/d
-/^[    ][      ]*\$(GCONF_CFLAGS)/d
 /^[    ][      ]*\$(LIBGNUTLS_CFLAGS)/d
-s/\$(LIBOTF_CFLAGS) \$(M17N_FLT_CFLAGS) \$(DEPFLAGS) //
+/^[    ][      ]*\$(LIBSYSTEMD_CFLAGS)/d
+/^[    ][      ]*\$(XRANDR_CFLAGS)/d
+/^[    ][      ]*\$(WEBKIT_CFLAGS)/d
+/^[    ][      ]*\$(SETTINGS_CFLAGS)/d
+s/\$(LIBOTF_CFLAGS) \$(M17N_FLT_CFLAGS) //
 s/ \$(C_SWITCH_X_SITE)//
 s/ \$(DBUS_CFLAGS)//
 s/ \$(PNG_CFLAGS) //
-s/ \$(XINERAMA_CFLAGS)//
-s/ \$(XFIXES_CFLAGS)//
-s/ \$(FREETYPE_CFLAGS)//
-s/ \$(FONTCONFIG_CFLAGS)//
 s| -I\$(srcdir)/\.\./lib||
 s| -I\$(top_srcdir)/lib||
-# Add our local inttypes.h to prerequisites where needed
-/^lread\.o:/s|lread\.c|& ../msdos/inttypes.h|
+s| -I\. -I\$(srcdir)| -I.|
 /^      *test "X/d
diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp
index 2c9c039..d4db263 100644
--- a/msdos/sed2v2.inp
+++ b/msdos/sed2v2.inp
@@ -55,6 +55,7 @@
 /^#undef HAVE_STRNCASECMP *$/s/^.*$/#define HAVE_STRNCASECMP 1/
 /^#undef HAVE_STRUCT_TM_TM_ZONE *$/s/^.*$/#define HAVE_STRUCT_TM_TM_ZONE 1/
 /^#undef HAVE_SYNC *$/s/^.*$/#define HAVE_SYNC 1/
+/^#undef HAVE___BUILTIN_FRAME_ADDRESS *$/s/^.*$/#define 
HAVE___BUILTIN_FRAME_ADDRESS 1/
 /^#undef HAVE___BUILTIN_UNWIND_INIT *$/s/^.*$/#define 
HAVE___BUILTIN_UNWIND_INIT 1/
 /^#undef HAVE_MENUS *$/s/^.*$/#define HAVE_MENUS 1/
 /^#undef DATA_START/s/^.*$/#define DATA_START (\&etext + 1)/
@@ -64,9 +65,7 @@
 /^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/
 /^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/
 /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/
-/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION VERSION/
-/^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) 
((FILE)->_ptr - (FILE)->_base)/
-/^#undef VERSION/s/^.*$/#define VERSION "26.0.90"/
+/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION "26.0.90"/
 /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/
 /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/
 /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/
@@ -86,6 +85,8 @@
 /^#undef IS_DIRECTORY_SEP *$/s,^.*$,#define IS_DIRECTORY_SEP(_c_) ((_c_) == 
'/' || (_c_) == '\\\\'),
 /^#undef IS_DEVICE_SEP *$/s/^.*$/#define IS_DEVICE_SEP(_c_) ((_c_) == ':')/
 /^#undef IS_ANY_SEP *$/s/^.*$/#define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_) 
|| IS_DEVICE_SEP (_c_))/
+/^#undef NEED_MKTIME_INTERNAL *$/s/^.*$/#define NEED_MKTIME_INTERNAL 1/
+/^#undef NEED_MKTIME_WORKING *$/s/^.*$/#define NEED_MKTIME_WORKING 1/
 /^#undef INTERNAL_TERMINAL *$/s,^.*$,#define INTERNAL_TERMINAL "pc|bios|IBM PC 
with color 
display::co#80:li#25:Co#16:pa#256:km:ms:cm=<CM>:cl=<CL>:ce=<CE>::se=</SO>:so=<SO>:us=<UL>:ue=</UL>:md=<BD>:mh=<DIM>:mb=<BL>:mr=<RV>:me=<NV>::AB=<BG
 %d>:AF=<FG %d>:op=<DefC>:",
 /^#undef NULL_DEVICE *$/s/^.*$/#define NULL_DEVICE "nul"/
 /^#undef SEPCHAR *$/s/^.*$/#define SEPCHAR '\;'/
@@ -102,6 +103,7 @@ s/^#undef STACK_DIRECTION *$/#define STACK_DIRECTION -1/
 s/^#undef EMACS_CONFIGURATION *$/#define EMACS_CONFIGURATION 
"i386-pc-msdosdjgpp"/
 s/^#undef EMACS_CONFIG_OPTIONS *$/#define EMACS_CONFIG_OPTIONS "msdos"/
 s/^#undef EMACS_CONFIG_FEATURES *$/#define EMACS_CONFIG_FEATURES ""/
+s|^#undef FLEXIBLE_ARRAY_MEMBER *$|#define FLEXIBLE_ARRAY_MEMBER /**/|
 s/^#undef PROTOTYPES *$/#define PROTOTYPES 1/
 s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/
 /^#undef HAVE_INTTYPES_H/c\
@@ -117,12 +119,31 @@ s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/
 #undef HAVE_STDINT_H\
 #endif
 s/^#undef HAVE_C_VARARRAYS *$/#define HAVE_C_VARARRAYS 1/
+s/^#undef HAVE_DECL_ALIGNED_ALLOC *$/#define HAVE_DECL_ALIGNED_ALLOC 0/
+s/^#undef HAVE_DECL_CLEARERR_UNLOCKED *$/#define HAVE_DECL_CLEARERR_UNLOCKED 0/
+s/^#undef HAVE_DECL_FEOF_UNLOCKED *$/#define HAVE_DECL_FEOF_UNLOCKED 0/
+s/^#undef HAVE_DECL_FERROR_UNLOCKED *$/#define HAVE_DECL_FERROR_UNLOCKED 0/
+s/^#undef HAVE_DECL_FFLUSH_UNLOCKED *$/#define HAVE_DECL_FFLUSH_UNLOCKED 0/
+s/^#undef HAVE_DECL_FGETS_UNLOCKED *$/#define HAVE_DECL_FGETS_UNLOCKED 0/
+s/^#undef HAVE_DECL_FPUTC_UNLOCKED *$/#define HAVE_DECL_FPUTC_UNLOCKED 0/
+s/^#undef HAVE_DECL_FPUTS_UNLOCKED *$/#define HAVE_DECL_FPUTS_UNLOCKED 0/
+s/^#undef HAVE_DECL_FREAD_UNLOCKED *$/#define HAVE_DECL_FREAD_UNLOCKED 0/
+s/^#undef HAVE_DECL_FWRITE_UNLOCKED *$/#define HAVE_DECL_FWRITE_UNLOCKED 0/
+s/^#undef HAVE_DECL_GETCHAR_UNLOCKED *$/#define HAVE_DECL_GETCHAR_UNLOCKED 0/
+s/^#undef HAVE_DECL_GETC_UNLOCKED *$/#define HAVE_DECL_GETC_UNLOCKED 0/
+s/^#undef HAVE_DECL_PUTCHAR_UNLOCKED *$/#define HAVE_DECL_PUTCHAR_UNLOCKED 0/
+s/^#undef HAVE_DECL_PUTC_UNLOCKED *$/#define HAVE_DECL_PUTC_UNLOCKED 0/
 s/^#undef HAVE_DECL_STRTOLL *$/#define HAVE_DECL_STRTOLL 1/
-s/^#undef HAVE_DECL_STRTOULL *$/#define HAVE_DECL_STRTOULL 1/
 s/^#undef HAVE_DECL_STRTOIMAX *$/#define HAVE_DECL_STRTOIMAX 1/
-s/^#undef HAVE_DECL_STRTOUMAX *$/#define HAVE_DECL_STRTOUMAX 1/
 s/^#undef HAVE_STRTOLL *$/#define HAVE_STRTOLL 1/
 s/^#undef HAVE_STRTOULL *$/#define HAVE_STRTOULL 1/
+/^#undef HAVE_STRUCT_DIRENT_D_TYPE *$/c\
+#if __DJGPP__ + (__DJGPP_MINOR__ >= 5) >= 3\
+#define HAVE_STRUCT_DIRENT_D_TYPE 1/\
+#else\
+#undef HAVE_STRUCT_DIRENT_D_TYPE\
+#endif
+s/^#undef HAVE_STRUCT_ATTRIBUTE_ALIGNED *$/#define 
HAVE_STRUCT_ATTRIBUTE_ALIGNED 1/
 s/^#undef HAVE_PUTENV *$/#define HAVE_PUTENV 1/
 /^#undef HAVE_SIGSET_T *$/s/^.*$/#define HAVE_SIGSET_T 1/
 /^#undef HAVE_SNPRINTF/c\
@@ -133,7 +154,9 @@ s/^#undef HAVE_PUTENV *$/#define HAVE_PUTENV 1/
 #include <sys/types.h>\
 extern int snprintf (char *__restrict, size_t, const char *__restrict, ...);\
 #endif
-s/^#undef PENDING_OUTPUT_N_BYTES *$/#define PENDING_OUTPUT_N_BYTES fp->_ptr - 
fp->_base/
+/^#include <conf_post.h>/i\
+/* From libc/file.h, needed by lib/fpending.c.  */\
+#define _IOERR  000200
 
 # Comment out any remaining undef directives, because some of them
 # might be defined in sys/config.h we include at the top of config.h.
diff --git a/msdos/sed3v2.inp b/msdos/sed3v2.inp
index b9600e6..174c63a 100644
--- a/msdos/sed3v2.inp
+++ b/msdos/sed3v2.inp
@@ -20,7 +20,7 @@
 /^archlibdir *=/s!=.*$!=/emacs/bin!
 /^bindir *=/s!=.*$!=/emacs/bin!
 /^libdir *=/s!=.*$!=/emacs/bin!
-/^srcdir=/address@hidden@!srcdir := $(subst \\,/,$(shell command.com /c cd))!
+/^srcdir=/address@hidden@!srcdir := $(CURDIR)!
 /^VPATH *=/s!=.*$!=.!
 /^BLESSMAIL_TARGET *=/address@hidden@!need-blessmail!
 /^KRB4LIB *=/s/@address@hidden@//g
@@ -41,7 +41,6 @@
 /^C_SWITCH_MACHINE *=/s/@C_SWITCH_MACHINE@//
 /^WARN_CFLAGS *=/s/@WARN_CFLAGS@//
 /^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@//
-/^UPDATE_MANIFEST *=/s/@UPDATE_MANIFEST@//
 /^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@//
 /^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/
 /^[Aa][Mm]_/s/@AM_V@/$(V)/
@@ -58,6 +57,3 @@
 /^GETOPT_H *=/address@hidden@!getopt.h!
 /^GETOPTOBJS *=/address@hidden@!getopt.o getopt1.o!
 /^INSTALLABLES/s/emacsclient[^ ]* *//
-/^UTILITIES *=/,/^$/{
-  s/movemail[^ ]* *//
-}
diff --git a/msdos/sedlibmk.inp b/msdos/sedlibmk.inp
index 2261135..30776b4 100644
--- a/msdos/sedlibmk.inp
+++ b/msdos/sedlibmk.inp
@@ -18,14 +18,9 @@
 #
 # Checklist to add a new gnulib module:
 #
-#  . If the module includes source files that need to be compiled, and
-#    does not appear in the am_libgnu_a_OBJECTS list, add the
-#    corresponding .o file names to the list that gets assigned to the
-#    gl_LIBOBJS variable.
-#
-#  . If a module appears in am_libgnu_a_OBJECTS that is not required
-#    for the MSDOS build, edit it out by adding an appropriate command
-#    to the set that edits the am_libgnu_a_OBJECTS block.
+#  . If a module appears in gnulib.mk.in that is not required for the
+#    MSDOS build, disable its building by setting the corresponding
+#    OMIT_GNULIB_MODULE_foo variable to true.
 #
 #  . If the module defines functions that need to replace DJGPP
 #    functions, edit the appropriate REPLACE_foo variables to 1:
@@ -38,22 +33,22 @@
 #    as above should be placed before that catchall rule (search for
 #    "REPLACE_" below).
 #
-#  . If the module is a header or adds headers, edit the corresponding
-#    variable to either an empty value or to the name of the header.
-#    Examples:
+#  . If the module generates a header from a .in.h file, edit the
+#    corresponding variable to either an empty value or to the name of
+#    the header.  Examples:
 #
 #       /^STDINT_H *=/s/@address@hidden@/stdint.h/  -- stdint.h is needed
 #       /^STDDEF_H *=/s/@address@hidden@//          -- stddef.h is not needed
 #
 #  . Some of the headers are generated conditionally, and the
-#    corresponding recipes are guarded by @GL_GENERATE_xxxx_H_TRUE@
-#    and @address@hidden  Depending on whether DJGPP uses
-#    the corresponding header, these should be edited either to
-#    nothing (thus exposing the recipe) or to #, which comments the
-#    recipe away.  Example:
+#    corresponding recipes are guarded by
+#      ifneq (,$(GL_GENERATE_xxxx_H))
+#    Depending on whether DJGPP uses the corresponding header, these
+#    should be edited either to 1 (thus exposing the recipe) or
+#    to notyhing, which makes Make bypass the recipe away.  Example:
 #
-#       s/address@hidden@/\#/
-#       s/address@hidden@//
+#       s/address@hidden@/1/
+#       s/address@hidden@//
 #
 #  . Also edit the NEXT_foo_H and NEXT_AS_FIRST_DIRECTIVE_foo_H
 #    variables as appropriately: to an empty value if the gnulib
@@ -67,7 +62,7 @@
 #
 #  . Note that some gnulib headers cannot be left unused: those for
 #    which there's no corresponding foo_H variable in
-#    msdos/autogen/Makefile.in (example: stdio.h).  For these the "not
+#    lib/Makefile.in (example: stdio.h).  For these the "not
 #    needed" path is not applicable.
 #
 #  . If the header is needed, edit all the variables it uses as
@@ -135,8 +130,6 @@
 /address@hidden@$/s/@SET_MAKE@//
 /^VPATH *=/s/@address@hidden@/./
 s/@PACKAGE@/emacs/
-/^am__cd *=/c\
-am__cd = cd
 /address@hidden@/s/@address@hidden@/#/
 /address@hidden@/s/@address@hidden@//
 /^ALLOCA *=/s/@address@hidden@//
@@ -145,6 +138,7 @@ am__cd = cd
 /^AR *=/s/@address@hidden@/ar/
 /^ARFLAGS *=/s/@address@hidden@/cru/
 /^AWK *=/s/@address@hidden@/gawk/
+/^AUTO_DEPEND *=/s/@AUTO_DEPEND@/yes/
 /^CANNOT_DUMP *=/s/@address@hidden@/no/
 /^CC *=/s/@address@hidden@/gcc -std=gnu99/
 /^CPP *=/s/@address@hidden@/gcc -e/
@@ -159,6 +153,7 @@ am__cd = cd
 /^C_SWITCH_X_SITE *=/s/@C_SWITCH_X_SITE@//
 /^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@//
 /^GNULIB_WARN_CFLAGS *=/s/@GNULIB_WARN_CFLAGS@//
+/^HYBRID_MALLOC *=/s/@HYBRID_MALLOC@//
 /^WARN_CFLAGS *=/s/@WARN_CFLAGS@//
 /^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@//
 /^DEFS *=/s/@address@hidden@//
@@ -191,6 +186,7 @@ am__cd = cd
 /^GNULIB_MKOSTEMP *=/s/@GNULIB_MKOSTEMP@/1/
 /^GNULIB_MKTIME *=/s/@GNULIB_MKTIME@/1/
 /^GNULIB_TIME_R *=/s/@GNULIB_TIME_R@/1/
+/^GNULIB_TIMEGM *=/s/@GNULIB_TIMEGM@/1/
 /^GNULIB_TIME_RZ *=/s/@GNULIB_TIME_RZ@/1/
 /^GNULIB_UNSETENV *=/s/@GNULIB_UNSETENV@/1/
 /^GNULIB_[^ =]* *= *@/s/@address@hidden@/0/
@@ -250,6 +246,7 @@ am__cd = cd
 /^HAVE_SYS_PARAM_H *=/s/@HAVE_SYS_PARAM_H@/1/
 /^HAVE_SYS_TIME_H *=/s/@HAVE_SYS_TIME_H@/1/
 /^HAVE_SYS_TYPES_H *=/s/@HAVE_SYS_TYPES_H@/1/
+/^HAVE_TIMEGM *=/s/@HAVE_TIMEGM@/0/
 /^HAVE_TYPE_VOLATILE_SIG_ATOMIC_T *=/s/@HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@/1/
 /^HAVE_UNISTD_H *=/s/@HAVE_UNISTD_H@/1/
 /^HAVE_UNSIGNED_LONG_LONG_INT *=/s/@HAVE_UNSIGNED_LONG_LONG_INT@/1/
@@ -273,6 +270,7 @@ am__cd = cd
 /^NEXT_AS_FIRST_DIRECTIVE_ERRNO_H *=/s/@address@hidden@//
 /^NEXT_AS_FIRST_DIRECTIVE_FCNTL_H *=/s/@address@hidden@/<fcntl.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H *=/s/@address@hidden@/<getopt.h>/
+/^NEXT_AS_FIRST_DIRECTIVE_LIMITS_H *=/s/@address@hidden@/<limits.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H *=/s/@address@hidden@/<signal.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H *=/s/@address@hidden@/<stddef.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_STDINT_H *=/s/@address@hidden@/<stdint.h>/
@@ -289,6 +287,7 @@ am__cd = cd
 /^NEXT_ERRNO_H *=/s/@address@hidden@//
 /^NEXT_FCNTL_H *=/s/@address@hidden@/<fcntl.h>/
 /^NEXT_GETOPT_H *=/s/@address@hidden@/<getopt.h>/
+/^NEXT_LIMITS_H *=/s/@address@hidden@/<limits.h>/
 /^NEXT_SIGNAL_H *=/s/@address@hidden@/<signal.h>/
 /^NEXT_STDDEF_H *=/s/@address@hidden@/<stddef.h>/
 /^NEXT_STDIO_H *=/s/@address@hidden@/<stdio.h>/
@@ -317,6 +316,8 @@ am__cd = cd
 /^DIRENT_H *=/s/@address@hidden@//
 /^ERRNO_H *=/s/@address@hidden@//
 /^EXECINFO_H *=/s/@address@hidden@/execinfo.h/
+/^GETOPT_CDEFS_H *=/s/@address@hidden@/getopt-cdefs.h/
+/^LIMITS_H *=/s/@address@hidden@/limits.h/
 /^STDALIGN_H *=/s/@address@hidden@/stdalign.h/
 /^STDDEF_H *=/s/@address@hidden@/stddef.h/
 /^STDINT_H *=/s/@address@hidden@/stdint.h/
@@ -330,6 +331,8 @@ am__cd = cd
 /^WINT_T_SUFFIX *=/s/@WINT_T_SUFFIX@//
 /^WINDOWS_64_BIT_OFF_T *=/s/@WINDOWS_64_BIT_OFF_T@/0/
 /^WINDOWS_64_BIT_ST_SIZE *=/s/@WINDOWS_64_BIT_ST_SIZE@/0/
+/^WINDOWS_STAT_INODES *=/s/@WINDOWS_STAT_INODES@/0/
+/^WINDOWS_STAT_TIMESPEC *=/s/@WINDOWS_STAT_TIMESPEC@/0/
 # Tailor lists of files to what we need
 /am__append_[1-9][0-9]* *=.*gettext\.h/s/@address@hidden@/\#/
 /am__append_2 *=.*verify\.h/s/@address@hidden@//
@@ -357,15 +360,18 @@ am__cd = cd
 /^top_builddir *=/s/@address@hidden@/../
 s/@PRAGMA_SYSTEM_HEADER@/\#pragma GCC system_header/
 s/@PRAGMA_COLUMNS@//
+/^SYSTEM_TYPE *=/s/@SYSTEM_TYPE@/msdos/
+/^ifneq (\$(SYSTEM_TYPE),windows-nt)/,/^endif/d
+/^DEPDIR *=/a\
+AUTO_DEPEND = yes
 #
 # Delete the recipes we don't want to get in our way.
-/^\$(srcdir)\/Makefile\.in:/,/^[       ][      ]*\$(AUTOMAKE)/d
-/^Makefile:/,/^[       ][      ]*esac/d
-/^\$(top_srcdir)\/configure:/,/^\$(am__aclocal_m4_deps):/d
-/^\$(top_builddir)\/config.status:/,/^$/d
+/^\.\.\/config.status:/,/^Makefile:/c\
+Makefile: $(srcdir)/Makefile.in
 #
 # Remove the dependencies on $(top_builddir)/config.status
-s/ $(top_builddir)\/config.status//
+s/ \.\.\/config.status//
+s/ \$(top_builddir)\/config.status//
 #
 # Fix the include-dependency lines
 s/address@hidden@//
@@ -387,23 +393,53 @@ CONFIG_CLEAN_VPATH_FILES = xyzzy
 s/^    -*test -z.*|| rm/        -rm/
 s/@echo /@djecho /
 #
-# Fix the recipes for header files
-s/address@hidden@//
-s/address@hidden@/\#/
-s/address@hidden@//
-s/address@hidden@/\#/
-s/address@hidden@/\#/
-s/address@hidden@//
-s/address@hidden@//
-s/address@hidden@/\#/
-s/address@hidden@//
-s/address@hidden@/\#/
-s/address@hidden@//
-s/address@hidden@/\#/
-s/address@hidden@//
-s/address@hidden@/\#/
-s/address@hidden@//
-s/address@hidden@/\#/
+# Determine which headers to generate
+s/= @GL_GENERATE_ALLOCA_H@/= 1/
+s/= @GL_GENERATE_BYTESWAP_H@/= 1/
+s/= @GL_GENERATE_EXECINFO_H@/= 1/
+s/= @GL_GENERATE_STDALIGN_H@/= 1/
+s/= @GL_GENERATE_STDDEF_H@/= 1/
+s/= @GL_GENERATE_STDINT_H@/= 1/
+s/= @GL_GENERATE_LIMITS_H@/= 1/
+s/= @GL_GENERATE_ERRNO_H@/= /
+s/= @GL_GENERATE_LIMITS_H@/= /
+#
+# Determine which modules to build and which to omit
+/^noinst_LIBRARIES /a\
+OMIT_GNULIB_MODULE_acl-permissions = true\
+OMIT_GNULIB_MODULE_allocator = true\
+OMIT_GNULIB_MODULE_at-internal = true\
+OMIT_GNULIB_MODULE_careadlinkat = true\
+OMIT_GNULIB_MODULE_cloexec = true\
+OMIT_GNULIB_MODULE_dirent = true\
+OMIT_GNULIB_MODULE_dirfd = true\
+OMIT_GNULIB_MODULE_dup2 = true\
+OMIT_GNULIB_MODULE_errno = true\
+OMIT_GNULIB_MODULE_euidaccess = true\
+OMIT_GNULIB_MODULE_faccessat = true\
+OMIT_GNULIB_MODULE_fcntl = true\
+OMIT_GNULIB_MODULE_fdopendir = true\
+OMIT_GNULIB_MODULE_fstatat = true\
+OMIT_GNULIB_MODULE_fsync = true\
+OMIT_GNULIB_MODULE_getdtablesize = true\
+OMIT_GNULIB_MODULE_getgroups = true\
+OMIT_GNULIB_MODULE_gettimeofday = true\
+OMIT_GNULIB_MODULE_group-member = true\
+OMIT_GNULIB_MODULE_inttypes-incomplete = true\
+OMIT_GNULIB_MODULE_localtime-buffer = true\
+OMIT_GNULIB_MODULE_lstat = true\
+OMIT_GNULIB_MODULE_open = true\
+OMIT_GNULIB_MODULE_pipe2 = true\
+OMIT_GNULIB_MODULE_pselect = true\
+OMIT_GNULIB_MODULE_putenv = true\
+OMIT_GNULIB_MODULE_qcopy-acl = true\
+OMIT_GNULIB_MODULE_readlink = true\
+OMIT_GNULIB_MODULE_readlinkat = true\
+OMIT_GNULIB_MODULE_strtoimax = true\
+OMIT_GNULIB_MODULE_strtoll = true\
+OMIT_GNULIB_MODULE_symlink = true\
+OMIT_GNULIB_MODULE_sys_select = true\
+OMIT_GNULIB_MODULE_sys_time = true
 /^arg-nonnull\.h:/,/^[         ][      ]*mv /c\
 arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h\
        sed -n -e '/GL_ARG_NONNULL/,$$p' < 
$(top_srcdir)/build-aux/snippet/arg-nonnull.h > $@
@@ -416,6 +452,7 @@ warn-on-use.h: 
$(top_srcdir)/build-aux/snippet/warn-on-use.h\
 s/^    [       ]*{ echo \(.*\); \\/     djecho \1 > address@hidden/
 s/^    [       ]*{ echo \(.*\) && \\/   djecho \1 > address@hidden/
 s/^    [       ]*cat \(.*\); \\/        sed -e '' \1 >> address@hidden/
+s/^          sed -e/     sed -e/
 s/ \&\& \\ *$//
 s/\.in-h\;  *\\$/.in-h >> address@hidden/
 /^     [       ]*} /d
diff --git a/msdos/sedlisp.inp b/msdos/sedlisp.inp
index d58e247..15f17ce 100644
--- a/msdos/sedlisp.inp
+++ b/msdos/sedlisp.inp
@@ -25,6 +25,7 @@ export FNCASE=y
 /^top_srcdir *=/s|@top_srcdir@|./..|
 /^EXEEXT *=/s/@EXEEXT@/.exe/
 /^XARGS_LIMIT *=/s|@XARGS_LIMIT@||
+/^FIND_DELETE *=/s/@FIND_DELETE@/-delete/
 /^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/
 /^[Aa][Mm]_/s/@AM_V@/$(V)/
 /^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/
diff --git a/src/conf_post.h b/src/conf_post.h
index febdb8b..4c9eb32 100644
--- a/src/conf_post.h
+++ b/src/conf_post.h
@@ -31,7 +31,7 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 
 #include <stdbool.h>
 
-#if defined DOS_NT && !defined DEFER_MS_W32_H
+#if defined WINDOWSNT && !defined DEFER_MS_W32_H
 # include <ms-w32.h>
 #endif
 
diff --git a/src/msdos.c b/src/msdos.c
index 68daa10..43730eb 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -3943,6 +3943,8 @@ careadlinkat (int fd, char const *filename,
 int
 faccessat (int dirfd, const char * path, int mode, int flags)
 {
+  char fullname[MAXPATHLEN];
+
   /* We silently ignore FLAGS.  */
   flags = flags;
 
diff --git a/src/msdos.h b/src/msdos.h
index 16292c5..e4f633e 100644
--- a/src/msdos.h
+++ b/src/msdos.h
@@ -21,6 +21,8 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 
 #include <dpmi.h>
 
+#include "termhooks.h"         /* struct terminal */
+
 int dos_ttraw (struct tty_display_info *);
 int dos_ttcooked (void);
 int dos_get_saved_screen (char **, int *, int *);
@@ -67,6 +69,7 @@ void syms_of_win16select (void);
 
 /* Constants.  */
 #define EINPROGRESS 112
+#define ENOTSUP     ENOSYS
 /* Gnulib sets O_CLOEXEC to O_NOINHERIT, which gets in the way when we
    need to redirect standard handles for subprocesses using temporary
    files created by mkostemp, see callproc.c.  */
diff --git a/src/process.c b/src/process.c
index 943cb2a..fc46e74 100644
--- a/src/process.c
+++ b/src/process.c
@@ -40,6 +40,8 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
+#endif /* subprocesses */
+
 #ifdef HAVE_SETRLIMIT
 # include <sys/resource.h>
 
@@ -49,6 +51,8 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 static struct rlimit nofile_limit;
 #endif
 
+#ifdef subprocesses
+
 /* Are local (unix) sockets supported?  */
 #if defined (HAVE_SYS_UN_H)
 #if !defined (AF_LOCAL) && defined (AF_UNIX)
@@ -7455,6 +7459,13 @@ keyboard_bit_set (fd_set *mask)
 
 #else  /* not subprocesses */
 
+/* This is referenced in thread.c:run_thread (which is never actually
+   called, since threads are not enabled for this configuration.  */
+void
+update_processes_for_thread_death (Lisp_Object dying_thread)
+{
+}
+
 /* Defined in msdos.c.  */
 extern int sys_select (int, fd_set *, fd_set *, fd_set *,
                       struct timespec *, void *);
diff --git a/src/sysdep.c b/src/sysdep.c
index dd0062b..f9cc2c8 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -831,6 +831,8 @@ unblock_child_signal (sigset_t const *oldset)
   pthread_sigmask (SIG_SETMASK, oldset, 0);
 }
 
+#endif /* !MSDOS */
+
 /* Block SIGINT.  */
 void
 block_interrupt_signal (sigset_t *oldset)
@@ -848,7 +850,6 @@ restore_signal_mask (sigset_t const *oldset)
   pthread_sigmask (SIG_SETMASK, oldset, 0);
 }
 
-#endif /* !MSDOS */
 
 /* Saving and restoring the process group of Emacs's terminal.  */
 
diff --git a/src/sysselect.h b/src/sysselect.h
index 8295aeb..4d8a4d0 100644
--- a/src/sysselect.h
+++ b/src/sysselect.h
@@ -50,6 +50,11 @@ typedef int fd_set;
 #endif
 
 #ifdef MSDOS
+/* The above #define for 'select' gets in the way because sysselect.h
+   is included in thread.h, which is included everywhere, and 'select'
+   declared in DJGPP system headers has a signature incompatible with
+   'pselect', which we emulate in msdos.c.  */
+#undef select
 #define pselect sys_select
 #endif
 
diff --git a/src/thread.c b/src/thread.c
index d075bdb..c03cdda 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -806,7 +806,11 @@ If NAME is given, it must be a string; it names the new 
thread.  */)
     {
       /* Restore the previous situation.  */
       all_threads = all_threads->next_thread;
+#ifdef THREADS_ENABLED
       error ("Could not start a new thread");
+#else
+      error ("Concurrency is not supported in this configuration");
+#endif
     }
 
   /* FIXME: race here where new thread might not be filled in?  */
diff --git a/src/thread.h b/src/thread.h
index cb2133d..19baafb 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -25,6 +25,10 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 #include <sys/socket.h>
 #endif
 
+#ifdef MSDOS
+#include <signal.h>            /* sigset_t */
+#endif
+
 #include "sysselect.h"         /* FIXME */
 #include "systime.h"           /* FIXME */
 #include "systhread.h"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]