diff options
Diffstat (limited to 'lang/guile20/patches/patch-libguile_filesys.c')
-rw-r--r-- | lang/guile20/patches/patch-libguile_filesys.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lang/guile20/patches/patch-libguile_filesys.c b/lang/guile20/patches/patch-libguile_filesys.c new file mode 100644 index 00000000000..225accfd7f6 --- /dev/null +++ b/lang/guile20/patches/patch-libguile_filesys.c @@ -0,0 +1,28 @@ +$NetBSD: patch-libguile_filesys.c,v 1.1 2017/02/20 20:01:45 gdt Exp $ + +When using mkostemp (an interface not defined by POSIX), restrict +flags to the set defined by the documentation of particular operating +systems. + +See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24862#23 for discussion. + +This patch has not yet been sent upstream. + +--- libguile/filesys.c.orig 2016-12-15 00:03:33.000000000 +0000 ++++ libguile/filesys.c +@@ -1486,6 +1486,15 @@ SCM_DEFINE (scm_i_mkstemp, "mkstemp!", 1 + mode_bits = scm_i_mode_bits (mode); + } + ++#ifdef APPLE ++ /* https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24862#23 */ ++ open_flags &= O_APPEND|O_SHLOCK|O_EXLOCK|O_CLOEXEC; ++#endif ++#ifdef __NetBSD__ ++ /* Restrict to list of flags documented in man page. */ ++ open_flags = O_APPEND|O_DIRECT|O_SHLOCK|O_EXLOCK|O_SYNC|O_CLOEXEC; ++#endif ++ + SCM_SYSCALL (rv = mkostemp (c_tmpl, open_flags)); + if (rv == -1) + SCM_SYSERROR; |