]> code.delx.au - gnu-emacs/blobdiff - src/s/freebsd.h
(POSIX_SIGNALS): New definition.
[gnu-emacs] / src / s / freebsd.h
index 27a29d5f8e2bcec91adaf65ffb98331fb55dbd8b..9affb886231e0d2a811a1b592dd79912ffa78837 100644 (file)
@@ -1,7 +1,9 @@
 /* s/ file for freebsd system.  */
 
 /* '__FreeBSD__' is defined by the preprocessor on FreeBSD-1.1 and up.
-   Earlier versions do not have shared libraries, so inhibit them.  */
+   Earlier versions do not have shared libraries, so inhibit them.
+   You can inhibit them on newer systems if you wish
+   by defining NO_SHARED_LIBS.  */
 #ifndef __FreeBSD__
 #define NO_SHARED_LIBS
 #endif
 /* For mem-limits.h. */
 #define BSD4_2
 
-/* thses aren't needed, since we have getloadavg() */
+/* These aren't needed, since we have getloadavg.  */
 #undef KERNEL_FILE
 #undef LDAV_SYMBOL
 
 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
 
-#define A_TEXT_OFFSET(x) (sizeof (struct exec))
-#define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr))
-
 #define LIBS_DEBUG
 #define LIBS_SYSTEM -lutil
 #define LIBS_TERMCAP -ltermcap
 #define LIB_GCC -lgcc
 
-/* Reread the time zone on startup. */
-#define LOCALTIME_CACHE
-
 #define SYSV_SYSTEM_DIR
 
 /* freebsd has POSIX-style pgrp behavior. */
 #undef BSD_PGRPS
+#define GETPGRP_NO_ARG
 
 #ifndef NO_SHARED_LIBS
-/* These definitions should work for either dynamic or static linking,
-   whichever is the default for `cc -nostdlib'. */
+#define LD_SWITCH_SYSTEM -e start -dc -dp
 #define HAVE_TEXT_START                /* No need to define `start_of_text'. */
 #define START_FILES pre-crt0.o /usr/lib/crt0.o
 #define UNEXEC unexsunos4.o
 #define N_BSSADDR(x) (N_ALIGN(x, N_DATADDR(x)+x.a_data))
 #define N_TRELOFF(x) N_RELOFF(x)
 #endif
-#endif /* not NO_SHARED_LIBS */
+#else /* NO_SHARED_LIBS */
+#ifdef __FreeBSD__  /* shared libs are available, but the user prefers
+                     not to use them.  */
+#define LD_SWITCH_SYSTEM -Bstatic
+#define A_TEXT_OFFSET(x) (sizeof (struct exec))
+#define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr))
+#endif /* __FreeBSD__ */
+#endif /* NO_SHARED_LIBS */
 
 #define HAVE_WAIT_HEADER
 #define HAVE_GETLOADAVG
+/*#define HAVE_GETPAGESIZE  /* configure now puts this in config.h */
 #define HAVE_TERMIOS
 #define NO_TERMIO
+#define DECLARE_GETPWUID_WITH_UID_T
 
 /* freebsd uses OXTABS instead of the expected TAB3. */
 #define TABDLY OXTABS
 #define TAB3 OXTABS
 
 /* this silences a few compilation warnings */
-#undef BSD
-#define BSD 199103
+#undef BSD_SYSTEM
+#if __FreeBSD__ == 1
+#define BSD_SYSTEM 199103
+#elif __FreeBSD__ == 2
+#define BSD_SYSTEM 199306
+#endif
 
 #define WAITTYPE int
 /* get this since it won't be included if WAITTYPE is defined */
 #include <sys/wait.h>
 #endif
 #define WRETCODE(w) (_W_INT(w) >> 8)
+
+/* Needed to avoid hanging when child process writes an error message
+   and exits -- enami tsugutomo <enami@ba2.so-net.or.jp>.  */
+#define vfork fork
+
+/* Don't close pty in process.c to make it as controlling terminal.
+   It is already a controlling terminal of subprocess, because we did
+   ioctl TIOCSCTTY.  */
+#define DONT_REOPEN_PTY