diff options
| author | Eli Zaretskii | 2017-10-18 20:21:25 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2017-10-18 20:21:25 +0300 |
| commit | 2f7163fb72e764d2df046a4d816e1e0b81e41d18 (patch) | |
| tree | 9b36f3479120afd6a50b4fb112ddd86e295f6514 /src | |
| parent | 2551d28fe8344e0c122489965abc6c91d65bca06 (diff) | |
| download | emacs-2f7163fb72e764d2df046a4d816e1e0b81e41d18.tar.gz emacs-2f7163fb72e764d2df046a4d816e1e0b81e41d18.zip | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/conf_post.h | 2 | ||||
| -rw-r--r-- | src/msdos.c | 2 | ||||
| -rw-r--r-- | src/msdos.h | 3 | ||||
| -rw-r--r-- | src/process.c | 11 | ||||
| -rw-r--r-- | src/sysdep.c | 3 | ||||
| -rw-r--r-- | src/sysselect.h | 5 | ||||
| -rw-r--r-- | src/thread.c | 4 | ||||
| -rw-r--r-- | src/thread.h | 4 |
8 files changed, 32 insertions, 2 deletions
diff --git a/src/conf_post.h b/src/conf_post.h index febdb8b8bf7..4c9eb32aba3 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/>. */ | |||
| 31 | 31 | ||
| 32 | #include <stdbool.h> | 32 | #include <stdbool.h> |
| 33 | 33 | ||
| 34 | #if defined DOS_NT && !defined DEFER_MS_W32_H | 34 | #if defined WINDOWSNT && !defined DEFER_MS_W32_H |
| 35 | # include <ms-w32.h> | 35 | # include <ms-w32.h> |
| 36 | #endif | 36 | #endif |
| 37 | 37 | ||
diff --git a/src/msdos.c b/src/msdos.c index 68daa10fdb9..43730ebedc3 100644 --- a/src/msdos.c +++ b/src/msdos.c | |||
| @@ -3943,6 +3943,8 @@ careadlinkat (int fd, char const *filename, | |||
| 3943 | int | 3943 | int |
| 3944 | faccessat (int dirfd, const char * path, int mode, int flags) | 3944 | faccessat (int dirfd, const char * path, int mode, int flags) |
| 3945 | { | 3945 | { |
| 3946 | char fullname[MAXPATHLEN]; | ||
| 3947 | |||
| 3946 | /* We silently ignore FLAGS. */ | 3948 | /* We silently ignore FLAGS. */ |
| 3947 | flags = flags; | 3949 | flags = flags; |
| 3948 | 3950 | ||
diff --git a/src/msdos.h b/src/msdos.h index 16292c551d9..e4f633e9df4 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/>. */ | |||
| 21 | 21 | ||
| 22 | #include <dpmi.h> | 22 | #include <dpmi.h> |
| 23 | 23 | ||
| 24 | #include "termhooks.h" /* struct terminal */ | ||
| 25 | |||
| 24 | int dos_ttraw (struct tty_display_info *); | 26 | int dos_ttraw (struct tty_display_info *); |
| 25 | int dos_ttcooked (void); | 27 | int dos_ttcooked (void); |
| 26 | int dos_get_saved_screen (char **, int *, int *); | 28 | int dos_get_saved_screen (char **, int *, int *); |
| @@ -67,6 +69,7 @@ void syms_of_win16select (void); | |||
| 67 | 69 | ||
| 68 | /* Constants. */ | 70 | /* Constants. */ |
| 69 | #define EINPROGRESS 112 | 71 | #define EINPROGRESS 112 |
| 72 | #define ENOTSUP ENOSYS | ||
| 70 | /* Gnulib sets O_CLOEXEC to O_NOINHERIT, which gets in the way when we | 73 | /* Gnulib sets O_CLOEXEC to O_NOINHERIT, which gets in the way when we |
| 71 | need to redirect standard handles for subprocesses using temporary | 74 | need to redirect standard handles for subprocesses using temporary |
| 72 | files created by mkostemp, see callproc.c. */ | 75 | files created by mkostemp, see callproc.c. */ |
diff --git a/src/process.c b/src/process.c index 943cb2a1048..fc46e743328 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/>. */ | |||
| 40 | #include <netinet/in.h> | 40 | #include <netinet/in.h> |
| 41 | #include <arpa/inet.h> | 41 | #include <arpa/inet.h> |
| 42 | 42 | ||
| 43 | #endif /* subprocesses */ | ||
| 44 | |||
| 43 | #ifdef HAVE_SETRLIMIT | 45 | #ifdef HAVE_SETRLIMIT |
| 44 | # include <sys/resource.h> | 46 | # include <sys/resource.h> |
| 45 | 47 | ||
| @@ -49,6 +51,8 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ | |||
| 49 | static struct rlimit nofile_limit; | 51 | static struct rlimit nofile_limit; |
| 50 | #endif | 52 | #endif |
| 51 | 53 | ||
| 54 | #ifdef subprocesses | ||
| 55 | |||
| 52 | /* Are local (unix) sockets supported? */ | 56 | /* Are local (unix) sockets supported? */ |
| 53 | #if defined (HAVE_SYS_UN_H) | 57 | #if defined (HAVE_SYS_UN_H) |
| 54 | #if !defined (AF_LOCAL) && defined (AF_UNIX) | 58 | #if !defined (AF_LOCAL) && defined (AF_UNIX) |
| @@ -7455,6 +7459,13 @@ keyboard_bit_set (fd_set *mask) | |||
| 7455 | 7459 | ||
| 7456 | #else /* not subprocesses */ | 7460 | #else /* not subprocesses */ |
| 7457 | 7461 | ||
| 7462 | /* This is referenced in thread.c:run_thread (which is never actually | ||
| 7463 | called, since threads are not enabled for this configuration. */ | ||
| 7464 | void | ||
| 7465 | update_processes_for_thread_death (Lisp_Object dying_thread) | ||
| 7466 | { | ||
| 7467 | } | ||
| 7468 | |||
| 7458 | /* Defined in msdos.c. */ | 7469 | /* Defined in msdos.c. */ |
| 7459 | extern int sys_select (int, fd_set *, fd_set *, fd_set *, | 7470 | extern int sys_select (int, fd_set *, fd_set *, fd_set *, |
| 7460 | struct timespec *, void *); | 7471 | struct timespec *, void *); |
diff --git a/src/sysdep.c b/src/sysdep.c index dd0062b6f04..f9cc2c81762 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -831,6 +831,8 @@ unblock_child_signal (sigset_t const *oldset) | |||
| 831 | pthread_sigmask (SIG_SETMASK, oldset, 0); | 831 | pthread_sigmask (SIG_SETMASK, oldset, 0); |
| 832 | } | 832 | } |
| 833 | 833 | ||
| 834 | #endif /* !MSDOS */ | ||
| 835 | |||
| 834 | /* Block SIGINT. */ | 836 | /* Block SIGINT. */ |
| 835 | void | 837 | void |
| 836 | block_interrupt_signal (sigset_t *oldset) | 838 | block_interrupt_signal (sigset_t *oldset) |
| @@ -848,7 +850,6 @@ restore_signal_mask (sigset_t const *oldset) | |||
| 848 | pthread_sigmask (SIG_SETMASK, oldset, 0); | 850 | pthread_sigmask (SIG_SETMASK, oldset, 0); |
| 849 | } | 851 | } |
| 850 | 852 | ||
| 851 | #endif /* !MSDOS */ | ||
| 852 | 853 | ||
| 853 | /* Saving and restoring the process group of Emacs's terminal. */ | 854 | /* Saving and restoring the process group of Emacs's terminal. */ |
| 854 | 855 | ||
diff --git a/src/sysselect.h b/src/sysselect.h index 8295aeb8421..4d8a4d0a3a9 100644 --- a/src/sysselect.h +++ b/src/sysselect.h | |||
| @@ -50,6 +50,11 @@ typedef int fd_set; | |||
| 50 | #endif | 50 | #endif |
| 51 | 51 | ||
| 52 | #ifdef MSDOS | 52 | #ifdef MSDOS |
| 53 | /* The above #define for 'select' gets in the way because sysselect.h | ||
| 54 | is included in thread.h, which is included everywhere, and 'select' | ||
| 55 | declared in DJGPP system headers has a signature incompatible with | ||
| 56 | 'pselect', which we emulate in msdos.c. */ | ||
| 57 | #undef select | ||
| 53 | #define pselect sys_select | 58 | #define pselect sys_select |
| 54 | #endif | 59 | #endif |
| 55 | 60 | ||
diff --git a/src/thread.c b/src/thread.c index d075bdb3a13..c03cdda0fae 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. */) | |||
| 806 | { | 806 | { |
| 807 | /* Restore the previous situation. */ | 807 | /* Restore the previous situation. */ |
| 808 | all_threads = all_threads->next_thread; | 808 | all_threads = all_threads->next_thread; |
| 809 | #ifdef THREADS_ENABLED | ||
| 809 | error ("Could not start a new thread"); | 810 | error ("Could not start a new thread"); |
| 811 | #else | ||
| 812 | error ("Concurrency is not supported in this configuration"); | ||
| 813 | #endif | ||
| 810 | } | 814 | } |
| 811 | 815 | ||
| 812 | /* FIXME: race here where new thread might not be filled in? */ | 816 | /* FIXME: race here where new thread might not be filled in? */ |
diff --git a/src/thread.h b/src/thread.h index cb2133d72d4..19baafbf8a1 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/>. */ | |||
| 25 | #include <sys/socket.h> | 25 | #include <sys/socket.h> |
| 26 | #endif | 26 | #endif |
| 27 | 27 | ||
| 28 | #ifdef MSDOS | ||
| 29 | #include <signal.h> /* sigset_t */ | ||
| 30 | #endif | ||
| 31 | |||
| 28 | #include "sysselect.h" /* FIXME */ | 32 | #include "sysselect.h" /* FIXME */ |
| 29 | #include "systime.h" /* FIXME */ | 33 | #include "systime.h" /* FIXME */ |
| 30 | #include "systhread.h" | 34 | #include "systhread.h" |