checkcfg.strict-c90: CFGCHECK_CONFIGFLAGS = CFLAGS='-std=c90 -pedantic'
checkcfg.strict-c90: CFGCHECK_MAKEFLAGS =
+checkcfg.job-pipe: CFGCHECK_CONFIGFLAGS = CPPFLAGS=-DJOBSERVER_USE_FIFO=0
checkcfg.no-jobserver:CFGCHECK_CONFIGFLAGS = --disable-job-server
checkcfg.no-load: CFGCHECK_CONFIGFLAGS = --disable-load
checkcfg.no-guile: CFGCHECK_CONFIGFLAGS = --without-guile
CONFIG_CHECKS := \
checkcfg.strict-c90 \
+ checkcfg.job-pipe \
checkcfg.no-jobserver \
checkcfg.no-load \
checkcfg.no-guile \
char *jobserver_auth = NULL;
/* Style for the jobserver. */
+
static char *jobserver_style = NULL;
/* Shuffle mode for goals and prerequisites. */
#endif
#ifdef MAKE_JOBSERVER
" jobserver"
-# ifdef HAVE_MKFIFO
+# if JOBSERVER_USE_FIFO
" jobserver-fifo"
# endif
#endif
#endif
/* Define macros specifying which OS we are building for. */
+#if __gnu_hurd__
+# define MK_OS_HURD 1
+#endif
#if defined(__MVS__)
# define MK_OS_ZOS 1
#endif
extern unsigned int no_intermediates;
+#if HAVE_MKFIFO
+# if !defined(JOBSERVER_USE_FIFO) && !MK_OS_HURD
+/* It seems that mkfifo() is not working correctly, or at least not the way
+ GNU make wants it to work, on GNU/Hurd so don't use it there. */
+# define JOBSERVER_USE_FIFO 1
+# endif
+#endif
+
#define JOBSERVER_AUTH_OPT "jobserver-auth"
extern char *jobserver_auth;
{
int r;
-#if HAVE_MKFIFO
- if (style == NULL || strcmp (style, "fifo") == 0)
+#if JOBSERVER_USE_FIFO
+ if (!style || strcmp (style, "fifo") == 0)
{
/* Unfortunately glibc warns about uses of mktemp even though we aren't
using it in dangerous way here. So avoid this by generating our own
create_file('features.mk', 'all:;$(info $(.FEATURES))');
%FEATURES = map { $_ => 1 } split /\s+/, `$make_path -sf features.mk`;
+ print "$make_path FEATURES: @{[%FEATURES]}\n" if $verbose;
unlink('features.mk');
# Find the default values for different built-in variables