aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2017-10-18 20:21:25 +0300
committerEli Zaretskii2017-10-18 20:21:25 +0300
commit2f7163fb72e764d2df046a4d816e1e0b81e41d18 (patch)
tree9b36f3479120afd6a50b4fb112ddd86e295f6514 /src
parent2551d28fe8344e0c122489965abc6c91d65bca06 (diff)
downloademacs-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.h2
-rw-r--r--src/msdos.c2
-rw-r--r--src/msdos.h3
-rw-r--r--src/process.c11
-rw-r--r--src/sysdep.c3
-rw-r--r--src/sysselect.h5
-rw-r--r--src/thread.c4
-rw-r--r--src/thread.h4
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,
3943int 3943int
3944faccessat (int dirfd, const char * path, int mode, int flags) 3944faccessat (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
24int dos_ttraw (struct tty_display_info *); 26int dos_ttraw (struct tty_display_info *);
25int dos_ttcooked (void); 27int dos_ttcooked (void);
26int dos_get_saved_screen (char **, int *, int *); 28int 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/>. */
49static struct rlimit nofile_limit; 51static 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. */
7464void
7465update_processes_for_thread_death (Lisp_Object dying_thread)
7466{
7467}
7468
7458/* Defined in msdos.c. */ 7469/* Defined in msdos.c. */
7459extern int sys_select (int, fd_set *, fd_set *, fd_set *, 7470extern 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. */
835void 837void
836block_interrupt_signal (sigset_t *oldset) 838block_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"