Mercurial > hg > octave-jordi > gnulib-hg
annotate m4/mknod.m4 @ 18070:d460ec17f09f
autoupdate
author | Karl Berry <karl@freefriends.org> |
---|---|
date | Tue, 28 Jul 2015 13:57:32 -0700 |
parents | ab58d4870664 |
children |
rev | line source |
---|---|
16811
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
1 # serial 5 |
12267 | 2 # See if we need to provide mknod replacement. |
3 | |
17848 | 4 dnl Copyright (C) 2009-2015 Free Software Foundation, Inc. |
12267 | 5 dnl This file is free software; the Free Software Foundation |
6 dnl gives unlimited permission to copy and/or distribute it, | |
7 dnl with or without modifications, as long as this notice is preserved. | |
8 | |
9 # Written by Eric Blake. | |
10 | |
11 AC_DEFUN([gl_FUNC_MKNOD], | |
12 [ | |
13 AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) | |
16811
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
14 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles |
12267 | 15 AC_REQUIRE([gl_FUNC_MKFIFO]) |
16 AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | |
17 AC_CHECK_FUNCS_ONCE([mknod]) | |
18 if test $ac_cv_func_mknod = no; then | |
19 HAVE_MKNOD=0 | |
20 else | |
21 dnl Detect BSD bug, where mknod requires root privileges to create fifo. | |
22 AC_CACHE_CHECK([whether mknod can create fifo without root privileges], | |
23 [gl_cv_func_mknod_works], | |
24 [AC_RUN_IFELSE( | |
25 [AC_LANG_PROGRAM( | |
26 [[#include <sys/stat.h> | |
27 #include <unistd.h> | |
16951 | 28 |
29 /* Copied from root-uid.h. FIXME: Just use root-uid.h. */ | |
30 #ifdef __TANDEM | |
31 # define ROOT_UID 65535 | |
32 #else | |
33 # define ROOT_UID 0 | |
34 #endif | |
12267 | 35 ]], [[/* Indeterminate for super-user, assume no. Why are you running |
36 configure as root, anyway? */ | |
16951 | 37 if (geteuid () == ROOT_UID) return 99; |
12267 | 38 if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;]])], |
13540
a4b0494e2b96
mknod: be more vocal about danger of running tests as root
Eric Blake <eblake@redhat.com>
parents:
12559
diff
changeset
|
39 [gl_cv_func_mknod_works=yes], |
13850
c39e4e516aee
mknod: avoid false failure with dash
Christian Weisgerber <naddy@mips.inka.de>
parents:
13540
diff
changeset
|
40 [if test $? = 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then |
13540
a4b0494e2b96
mknod: be more vocal about danger of running tests as root
Eric Blake <eblake@redhat.com>
parents:
12559
diff
changeset
|
41 AC_MSG_FAILURE([you should not run configure as root ]dnl |
a4b0494e2b96
mknod: be more vocal about danger of running tests as root
Eric Blake <eblake@redhat.com>
parents:
12559
diff
changeset
|
42 [(set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)]) |
a4b0494e2b96
mknod: be more vocal about danger of running tests as root
Eric Blake <eblake@redhat.com>
parents:
12559
diff
changeset
|
43 fi |
a4b0494e2b96
mknod: be more vocal about danger of running tests as root
Eric Blake <eblake@redhat.com>
parents:
12559
diff
changeset
|
44 gl_cv_func_mknod_works=no], |
16811
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
45 [case "$host_os" in |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
46 # Guess yes on glibc systems. |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
47 *-gnu*) gl_cv_func_mknod_works="guessing yes" ;; |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
48 # If we don't know, assume the worst. |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
49 *) gl_cv_func_mknod_works="guessing no" ;; |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
50 esac |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
51 ]) |
12267 | 52 rm -f conftest.fifo]) |
16811
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
53 case "$gl_cv_func_mknod_works" in |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
54 *yes) ;; |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
55 *) |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
56 REPLACE_MKNOD=1 |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
57 AC_DEFINE([MKNOD_FIFO_BUG], [1], [Define to 1 if mknod cannot create |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
58 a fifo without super-user privileges]) |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
59 ;; |
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
60 esac |
12267 | 61 dnl Systems that mishandle trailing slash on mkfifo also goof on mknod. |
16811
b187fc49964b
Avoid "guessing no" guesses when cross-compiling to glibc systems.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
62 if test $REPLACE_MKFIFO = 1; then |
12267 | 63 REPLACE_MKNOD=1 |
64 fi | |
65 fi | |
66 ]) |