aboutsummaryrefslogtreecommitdiff
path: root/mingw.m4
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2008-02-08 09:28:51 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2008-02-08 09:28:51 +0000
commit031090eb8eca0e1e3b4f14bd083e123dfdbffe9e (patch)
treee6b2f09fef5f7481f019c9b7fe460ab1bbac41fe /mingw.m4
parent8093c893237cc5b67422d5b59db0c44acb5b2bd1 (diff)
downloadcpio-031090eb8eca0e1e3b4f14bd083e123dfdbffe9e.tar.gz
cpio-031090eb8eca0e1e3b4f14bd083e123dfdbffe9e.tar.bz2
Fix mingw build. Thanks to Robert Millan.
* NEWS, THANKS: Update. * bootstrap: Create lib/system.c, m4/sysdep.m4, update lib/system.h. * mingw.m4, sysdep.m4: New files. * configure.ac: Raise version number to 2.9.90. Call CPIO_SYSDEP. Remove the call to gl_USE_SYSTEM_EXTENSIONS. (AC_CHECK_HEADERS): Add process.h sys/ioctl.h * lib/Makefile.am (libcpio_a_SOURCES): Add system.c * src/idcache.c: Include system.h * src/userspec.c: Remove alloca stuff (already handled by gnulib). Include alloca.h. Remove useless declarations of get.* functions. * src/util.c: Include sys/ioctl.h conditionally.
Diffstat (limited to 'mingw.m4')
-rw-r--r--mingw.m486
1 files changed, 86 insertions, 0 deletions
diff --git a/mingw.m4 b/mingw.m4
new file mode 100644
index 0000000..51ad025
--- /dev/null
+++ b/mingw.m4
@@ -0,0 +1,86 @@
+/* System dependent functions for GNU cpio.
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ GNU cpio is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ GNU cpio is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU cpiio. If not, see <http://www.gnu.org/licenses/>. */
+
+ifelse(MODE,`C',`
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <unistd.h>
+#include <errno.h>
+',MODE,`H',`
+#ifdef HAVE_PROCESS_H
+# include <process.h>
+#endif
+
+#ifndef HAVE_PWD_H
+/* Borrowed from GNU libc */
+/* The passwd structure. */
+struct passwd
+{
+ char *pw_name; /* Username. */
+ char *pw_passwd; /* Password. */
+ int pw_uid; /* User ID. */
+ int pw_gid; /* Group ID. */
+ char *pw_gecos; /* Real name. */
+ char *pw_dir; /* Home directory. */
+ char *pw_shell; /* Shell program. */
+};
+#endif
+#ifndef HAVE_GRP_H
+/* Borrowed from GNU libc */
+/* The group structure. */
+struct group
+ {
+ char *gr_name; /* Group name. */
+ char *gr_passwd; /* Password. */
+ int gr_gid; /* Group ID. */
+ char **gr_mem; /* Member list. */
+ };
+#endif
+
+#include <signal.h>
+#ifndef SIGPIPE
+# define SIGPIPE -1
+#endif
+
+')
+
+BEGIN
+MAKESTUB(struct passwd *, getpwuid, uid_t uid)
+MAKESTUB(struct passwd *, getpwnam, const char *name)
+MAKESTUB(struct group *, getgrgid, gid_t gid)
+MAKESTUB(struct group *, getgrnam, const char *name)
+MAKESTUB(int, pipe, int filedes[2])
+MAKESTUB(int, fork)
+
+define([INTRETVAL],0)
+MAKESTUB(int, getuid)
+
+define([INTRETVAL],0)
+MAKESTUB(int, geteuid)
+
+define([INTRETVAL],0)
+MAKESTUB(int, getgid)
+
+MAKESTUB(int, setuid, int newuid)
+MAKESTUB(int, setgid, int newgid)
+MAKESTUB(int, mknod, const char *filename, int mode, int dev)
+MAKESTUB(int, symlink, const char *oldname, const char *newname)
+MAKESTUB(int, link, const char *oldname, const char *newname)
+MAKESTUB(int, chown, const char *filename, int owner, int group)
+END

Return to:

Send suggestions and report system problems to the System administrator.