mknod: new module
authorEric Blake <ebb9@byu.net>
Wed, 11 Nov 2009 20:23:04 +0000 (13:23 -0700)
committerEric Blake <ebb9@byu.net>
Thu, 12 Nov 2009 02:24:35 +0000 (19:24 -0700)
commit599bbd22717fdd0f8d6b8a6f54b99b2a9fa7b410
tree1ee79736ff3a7d917bdc1274872d9ba51731a902
parent08166afd7322d40407cf62e3c98b97782d7d1af0
mknod: new module

Solaris 9 mknod("name/",mode,dev) mistakenly creates "name" for
non-directory mode.  FreeBSD 7.2 mknod("dangling/",mode,dev)
mistakenly creates the target of the symlink if run as root.
FreeBSD and OpenBSD mknod("fifo",S_IFIFO|mode,0) fails for non-root.
Use of mknod caused link failures on mingw.

* modules/mknod: New file.
* m4/mknod.m4 (gl_FUNC_MKNOD): Likewise.
* lib/mknod.c (mknod): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Set witness
defaults.
* modules/sys_stat (Makefile.am): Substitute them.
* lib/sys_stat.in.h (mknod): Declare replacement.
* MODULES.html.sh (Support for systems lacking POSIX:2008):
Document it.
* doc/posix-functions/mknod.texi (mknod): Likewise.
* modules/mknod-tests: New test.
* tests/test-mknod.c: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
MODULES.html.sh
doc/posix-functions/mknod.texi
lib/mknod.c [new file with mode: 0644]
lib/sys_stat.in.h
m4/mknod.m4 [new file with mode: 0644]
m4/sys_stat_h.m4
modules/mknod [new file with mode: 0644]
modules/mknod-tests [new file with mode: 0644]
modules/sys_stat
tests/test-mknod.c [new file with mode: 0644]