summaryrefslogtreecommitdiff
path: root/data/fakeroot/openat.diff
diff options
context:
space:
mode:
Diffstat (limited to 'data/fakeroot/openat.diff')
-rw-r--r--data/fakeroot/openat.diff52
1 files changed, 52 insertions, 0 deletions
diff --git a/data/fakeroot/openat.diff b/data/fakeroot/openat.diff
new file mode 100644
index 000000000..3287bb4f3
--- /dev/null
+++ b/data/fakeroot/openat.diff
@@ -0,0 +1,52 @@
+>From d67f168080229bdfda9e07fc473fd699ed76a001 Mon Sep 17 00:00:00 2001
+From: Mikhail Gusarov <dottedmag@dottedmag.net>
+Date: Fri, 24 Oct 2014 17:36:15 +0200
+Subject: [PATCH 1/2] Implement openat(2) wrapper which handles optional
+ argument
+
+Unbreaks build on OS X 10.10
+---
+ libfakeroot.c | 16 ++++++++++++++++
+ wrapfunc.inp | 2 +-
+ 2 files changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/libfakeroot.c b/libfakeroot.c
+index f867758..cd0be84 100644
+--- a/libfakeroot.c
++++ b/libfakeroot.c
+@@ -2426,3 +2426,19 @@ int sysinfo(int command, char *buf, long count)
+ }
+ }
+ #endif
++
++#ifdef HAVE_OPENAT
++int openat(int dir_fd, const char *pathname, int flags, ...)
++{
++ if (flags & O_CREAT)
++ {
++ va_list args;
++ mode_t mode;
++ va_start(args, flags);
++ mode = va_arg(args, int);
++ va_end(args);
++ return next_openat(dir_fd, pathname, flags, mode);
++ }
++ return next_openat(dir_fd, pathname, flags);
++}
++#endif
+diff --git a/wrapfunc.inp b/wrapfunc.inp
+index 5eff0cc..88bcc11 100644
+--- a/wrapfunc.inp
++++ b/wrapfunc.inp
+@@ -197,7 +197,7 @@ fchownat;int;(int dir_fd, const char *path, uid_t owner, gid_t group, int flags)
+ mkdirat;int;(int dir_fd, const char *pathname, mode_t mode);(dir_fd, pathname, mode)
+ #endif /* HAVE_MKDIRAT */
+ #ifdef HAVE_OPENAT
+-openat;int;(int dir_fd, const char *pathname, int flags);(dir_fd, pathname, flags)
++openat;int;(int dir_fd, const char *pathname, int flags, ...)
+ #endif /* HAVE_OPENAT */
+ #ifdef HAVE_RENAMEAT
+ renameat;int;(int olddir_fd, const char *oldpath, int newdir_fd, const char *newpath);(olddir_fd, oldpath, newdir_fd, newpath)
+--
+2.1.2
+