<stdlib.h>/<unistd.h>: Expose mkdtemp()'s prototype also if XSI is visible.
authorSascha Wildner <saw@online.de>
Tue, 27 Oct 2015 18:16:37 +0000 (19:16 +0100)
committerSascha Wildner <saw@online.de>
Tue, 27 Oct 2015 18:16:37 +0000 (19:16 +0100)
The history of this function in the specs seems to be a bit convoluted
for this function, to say the least. Even though I can't find it in
either Issue 5 or 6, go with what Issue 7's HISTORY says and treat it
like it was moved from XSI to base starting with Issue 7:

http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkdtemp.html

Most importantly, this commit fixes x11/xterm which was building but
segfaulting after 8eb95a5667325.

Reported-by: Rimvydas Jasinskas <rimvydas.jasinskas@gmail.com>
include/stdlib.h
include/unistd.h

index 1a1f99b..2945bab 100644 (file)
@@ -176,14 +176,12 @@ int        setenv(const char *, const char *, int);
 int     unsetenv(const char *);
 #endif
 
-#if __POSIX_VISIBLE >= 200809
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
+int     getsubopt(char **, char *const *, char **);
 #ifndef _MKDTEMP_DECLARED
 char   *mkdtemp(char *);
 #define        _MKDTEMP_DECLARED
 #endif
-#endif /* __POSIX_VISIBLE >= 200809 */
-#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
-int     getsubopt(char **, char *const *, char **);
 #ifndef _MKSTEMP_DECLARED
 int     mkstemp(char *);
 #define        _MKSTEMP_DECLARED
index 5fb6272..452bfaa 100644 (file)
@@ -447,6 +447,10 @@ int         getsid(pid_t _pid);
 int     fchdir(int);
 int     getpgid(pid_t _pid);
 int     lchown(const char *, uid_t, gid_t);
+#ifndef _MKDTEMP_DECLARED
+char   *mkdtemp(char *);
+#define        _MKDTEMP_DECLARED
+#endif
 #ifndef _MKSTEMP_DECLARED
 int     mkstemp(char *);
 #define        _MKSTEMP_DECLARED
@@ -468,10 +472,6 @@ int        fchownat(int, const char *, uid_t, gid_t, int);
 int    fexecve(int, char *const [], char *const []);
 #endif
 int    linkat(int, const char *, int, const char *, int);
-#ifndef _MKDTEMP_DECLARED
-char   *mkdtemp(char *);
-#define        _MKDTEMP_DECLARED
-#endif
 ssize_t        readlinkat(int, const char * __restrict, char * __restrict, size_t);
 int    symlinkat(const char *, int, const char *);
 int    unlinkat(int, const char *, int);