Fix visibility of various functions in a number of headers.
authorSascha Wildner <saw@online.de>
Wed, 21 Oct 2015 16:41:01 +0000 (18:41 +0200)
committerSascha Wildner <saw@online.de>
Wed, 21 Oct 2015 16:41:13 +0000 (18:41 +0200)
The following functions were moved from XSI into the base with
POSIX 200809:

catclose(), catgets(), catopen(), dlclose(), dlerror(), dlopen(),
dlsym(), fchdir(), getpgid(), getsid(), getsubopt(), iconv(),
iconv_close(), iconv_open(), lchown(), mkstemp(), nl_langinfo(),
poll(), pread(), pwrite(), strdup(), strfmon(), tcgetsid(),
truncate(), and waitid().

This commit adjusts our headers to reflect that, i.e. specifying
_POSIX_C_SOURCE=200809 is now enough to expose their prototypes.

The checking of __XSI_VISIBLE's value (ranges) for XSI functions
could certainly be better (generally in our headers).

Also, we don't yet have waitid().

This change was build tested with around 8000 ports (until the
bulk build choked on a jdk7 memory leak (I suppose) while building
textproc/fop). The glibc conformance test suite thinks this
commit is correct, too.

include/dlfcn.h
include/iconv.h
include/langinfo.h
include/monetary.h
include/nl_types.h
include/stdlib.h
include/string.h
include/unistd.h
sys/sys/poll.h
sys/sys/termios.h

index 908cc53..7b62a5c 100644 (file)
@@ -110,11 +110,12 @@ typedef void (*dlfunc_t)(struct __dlfunc_arg);
 #endif /* __BSD_VISIBLE */
 
 __BEGIN_DECLS
-/* XSI functions first. */
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
 int             dlclose(void *);
 char           *dlerror(void);
 void           *dlopen(const char *, int);
 void           *dlsym(void * __restrict, const char * __restrict);
+#endif
 
 #if __BSD_VISIBLE
 void           *fdlopen(int, int);
index b92e808..c258a46 100644 (file)
@@ -49,11 +49,13 @@ struct __tag_iconv_t;
 typedef        struct __tag_iconv_t    *iconv_t;
 
 __BEGIN_DECLS
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
 iconv_t        iconv_open(const char *, const char *);
 size_t iconv(iconv_t, char ** __restrict,
              size_t * __restrict, char ** __restrict,
              size_t * __restrict);
 int    iconv_close(iconv_t);
+#endif
 /*
  * non-portable interfaces for iconv
  */
index 343cd8d..62ba80a 100644 (file)
@@ -129,7 +129,9 @@ typedef     __nl_item       nl_item;
 #define        ALTMON_12       69
 
 __BEGIN_DECLS
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
 char   *nl_langinfo(nl_item);
+#endif
 
 #if __POSIX_VISIBLE >= 200809 || defined(_XLOCALE_H_)
 #include <xlocale/_langinfo.h>
index 0fb67c3..3c9e1df 100644 (file)
@@ -43,7 +43,9 @@ typedef       __ssize_t       ssize_t;
 #endif
 
 __BEGIN_DECLS
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
 ssize_t        strfmon(char * __restrict, size_t, const char * __restrict, ...);
+#endif
 
 #if __POSIX_VISIBLE >= 200809 || defined(_XLOCALE_H_)
 #include <xlocale/_monetary.h>
index 2bf19e4..1b848bb 100644 (file)
@@ -89,9 +89,11 @@ typedef      __nl_item       nl_item;
 #endif
 
 __BEGIN_DECLS
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
 nl_catd  catopen(const char *, int);
 char    *catgets(nl_catd, int, int, const char *) __format_arg(4);
 int     catclose(nl_catd);
+#endif
 __END_DECLS
 
 #endif /* _NL_TYPES_H_ */
index 12357fa..1a1f99b 100644 (file)
@@ -176,11 +176,14 @@ int        setenv(const char *, const char *, int);
 int     unsetenv(const char *);
 #endif
 
-#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
+#if __POSIX_VISIBLE >= 200809
 #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
@@ -205,7 +208,6 @@ char        *fcvt(double, int, int * __restrict, int * __restrict); /* LEGACY */
 char   *gcvt(double, int, int * __restrict, int * __restrict); /* LEGACY */
 #endif
 #endif
-int     getsubopt(char **, char *const *, char **);
 int     grantpt(int);
 char   *initstate(unsigned long /* XSI requires u_int */, char *, long);
 long    jrand48(unsigned short[3]);
index 704f5b1..b16c90d 100644 (file)
@@ -90,7 +90,7 @@ int    strcoll(const char *, const char *);
 char   *strcpy(char * __restrict, const char * __restrict);
 #endif
 size_t  strcspn(const char *, const char *) __pure;
-#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
 char   *strdup(const char *);
 #endif
 char   *strerror(int);
index 6ae9dcc..302624b 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 _MKSTEMP_DECLARED
+int     mkstemp(char *);
+#define        _MKSTEMP_DECLARED
+#endif
 ssize_t         pread(int, void *, size_t, off_t);
 ssize_t         pwrite(int, const void *, size_t, off_t);
 
@@ -464,6 +468,10 @@ 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);
@@ -549,18 +557,10 @@ int        issetugid(void);
 long    lpathconf(const char *, int);
 int     lwp_create(struct lwp_params *);
 lwpid_t         lwp_gettid(void);
-#ifndef _MKDTEMP_DECLARED
-char   *mkdtemp(char *);
-#define        _MKDTEMP_DECLARED
-#endif
 #ifndef        _MKNOD_DECLARED
 int     mknod(const char *, mode_t, dev_t);
 #define        _MKNOD_DECLARED
 #endif
-#ifndef _MKSTEMP_DECLARED
-int     mkstemp(char *);
-#define        _MKSTEMP_DECLARED
-#endif
 int     mkstemps(char *, int);
 #ifndef _MKTEMP_DECLARED
 char   *mktemp(char *);
index 3040fff..a651823 100644 (file)
@@ -26,7 +26,6 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/sys/poll.h,v 1.6.2.1 2000/08/21 12:25:58 sheldonh Exp $
- * $DragonFly: src/sys/sys/poll.h,v 1.7 2008/01/12 06:01:27 nant Exp $
  */
 
 #ifndef _SYS_POLL_H_
@@ -92,7 +91,9 @@ __BEGIN_DECLS
  * XXX logically, poll() should be declared in <poll.h>, but SVR4 at
  * least has it here in <sys/poll.h>.
  */
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
 int    poll (struct pollfd *, nfds_t, int);
+#endif
 __END_DECLS
 
 #endif /* !_KERNEL */
index cbf3ae2..eb7ab37 100644 (file)
@@ -32,7 +32,6 @@
  *
  *     @(#)termios.h   8.3 (Berkeley) 3/28/94
  * $FreeBSD: src/sys/sys/termios.h,v 1.13.2.1 2001/03/06 06:31:44 jhb Exp $
- * $DragonFly: src/sys/sys/termios.h,v 1.5 2007/01/08 19:29:23 dillon Exp $
  */
 
 #ifndef _SYS_TERMIOS_H_
@@ -263,9 +262,9 @@ int tcflow (int, int);
 int    tcflush (int, int);
 int    tcsendbreak (int, int);
 
-#if    __XSI_VISIBLE
+#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
 pid_t  tcgetsid(int);
-#endif /* !_XSI_VISIBLE */
+#endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */
 
 #ifndef _POSIX_SOURCE
 void   cfmakeraw (struct termios *);