about summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/complex.h24
-rw-r--r--include/dirent.h1
-rw-r--r--include/glob.h13
-rw-r--r--include/libm-symbols.h84
-rw-r--r--include/math.h84
-rw-r--r--include/mqueue.h1
-rw-r--r--include/resolv.h2
-rw-r--r--include/setjmp.h3
-rw-r--r--include/stdio.h5
-rw-r--r--include/stdlib.h3
-rw-r--r--include/string.h3
-rw-r--r--include/wchar.h6
-rw-r--r--include/wctype.h2
13 files changed, 172 insertions, 59 deletions
diff --git a/include/complex.h b/include/complex.h
index 2c86709ced..cdcca89db0 100644
--- a/include/complex.h
+++ b/include/complex.h
@@ -2,15 +2,29 @@
 # include <math/complex.h>
 
 # ifndef _ISOMAC
+#  include <libm-symbols.h>
+
+libm_hidden_mathcall (casin)
+libm_hidden_mathcall (casinh)
+libm_hidden_mathcall (ccosh)
+libm_hidden_mathcall (cexp)
+libm_hidden_mathcall (clog)
+libm_hidden_mathcall (csqrt)
+
 /* Return the complex inverse hyperbolic sine of finite nonzero Z,
    with the imaginary part of the result subtracted from pi/2 if ADJ
    is nonzero.  */
-extern complex float __kernel_casinhf (complex float z, int adj);
-extern complex double __kernel_casinh (complex double z, int adj);
-extern complex long double __kernel_casinhl (complex long double z, int adj);
+extern complex float __kernel_casinhf (complex float z, int adj)
+  attribute_hidden;
+extern complex double __kernel_casinh (complex double z, int adj)
+  attribute_hidden;
+extern complex long double __kernel_casinhl (complex long double z, int adj)
+  attribute_hidden;
 #  if __HAVE_DISTINCT_FLOAT128
-extern __CFLOAT128 __kernel_casinhf128 (__CFLOAT128 z, int adj);
+extern __CFLOAT128 __kernel_casinhf128 (__CFLOAT128 z, int adj)
+  attribute_hidden;
 #  endif
-# endif
 
+
+# endif
 #endif
diff --git a/include/dirent.h b/include/dirent.h
index cc8f1895df..faccbfbb7a 100644
--- a/include/dirent.h
+++ b/include/dirent.h
@@ -49,6 +49,7 @@ extern DIR *__alloc_dir (int fd, bool close_fd, int flags,
 extern __typeof (rewinddir) __rewinddir;
 extern __typeof (seekdir) __seekdir;
 extern __typeof (dirfd) __dirfd;
+libc_hidden_proto (__dirfd)
 
 extern void __scandir_cancel_handler (void *arg) attribute_hidden;
 extern int __scandir_tail (DIR *dp,
diff --git a/include/glob.h b/include/glob.h
index 1d2f78793e..1866bc8fcf 100644
--- a/include/glob.h
+++ b/include/glob.h
@@ -8,11 +8,16 @@ libc_hidden_proto (globfree)
 libc_hidden_proto (globfree64)
 
 /* Now define the internal interfaces.  */
-extern int __glob_pattern_p (const char *__pattern, int __quote);
-extern int __glob64 (const char *__pattern, int __flags,
-		     int (*__errfunc) (const char *, int),
-		     glob64_t *__pglob);
+extern typeof (glob_pattern_p) __glob_pattern_p;
+libc_hidden_proto (__glob_pattern_p)
+extern typeof (glob) __glob;
+libc_hidden_proto (__glob)
+extern typeof (glob) __glob_lstat_compat;
+libc_hidden_proto (__glob_lstat_compat)
+extern typeof (glob64) __glob64;
 libc_hidden_proto (__glob64)
+extern typeof (glob64) __glob64_lstat_compat;
+libc_hidden_proto (__glob64_lstat_compat)
 #endif
 
 #endif
diff --git a/include/libm-symbols.h b/include/libm-symbols.h
new file mode 100644
index 0000000000..8fb6e6b083
--- /dev/null
+++ b/include/libm-symbols.h
@@ -0,0 +1,84 @@
+/* Additional support macros for symbol management, used for libm.
+   Copyright (C) 2018 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _LIBM_SYMBOLS_H
+#define _LIBM_SYMBOLS_H 1
+
+#if IS_IN (libc) || IS_IN (libm)
+
+# if defined __NO_LONG_DOUBLE_MATH && !__HAVE_DISTINCT_FLOAT128
+
+#  define libm_hidden_mathcall(sym)		\
+  libm_hidden_proto (__##sym)			\
+  libm_hidden_proto (__##sym##f)
+
+#  define libc_libm_hidden_mathcall(sym)	\
+  hidden_proto (__##sym)			\
+  hidden_proto (__##sym##f)
+
+# elif !defined __NO_LONG_DOUBLE_MATH && !__HAVE_DISTINCT_FLOAT128
+
+#  define libm_hidden_mathcall(sym)		\
+  libm_hidden_proto (__##sym)			\
+  libm_hidden_proto (__##sym##f)		\
+  libm_hidden_proto (__##sym##l)
+
+#  define libc_libm_hidden_mathcall(sym)	\
+  hidden_proto (__##sym)			\
+  hidden_proto (__##sym##f)			\
+  hidden_proto (__##sym##l)
+
+# elif defined __NO_LONG_DOUBLE_MATH && __HAVE_DISTINCT_FLOAT128
+
+#  define libm_hidden_mathcall(sym)		\
+  libm_hidden_proto (__##sym)			\
+  libm_hidden_proto (__##sym##f)		\
+  libm_hidden_proto (__##sym##f128)
+
+#  define libm_hidden_mathcall(sym)		\
+  hidden_proto (__##sym)			\
+  hidden_proto (__##sym##f)			\
+  hidden_proto (__##sym##f128)
+
+# else /* !defined __NO_LONG_DOUBLE_MATH && __HAVE_DISTINCT_FLOAT128 */
+
+#  define libm_hidden_mathcall(sym)		\
+  libm_hidden_proto (__##sym)			\
+  libm_hidden_proto (__##sym##f)		\
+  libm_hidden_proto (__##sym##l)		\
+  libm_hidden_proto (__##sym##f128)
+
+#  define libc_libm_hidden_mathcall(sym)	\
+  hidden_proto (__##sym)			\
+  hidden_proto (__##sym##f)			\
+  hidden_proto (__##sym##l)			\
+  hidden_proto (__##sym##f128)
+
+# endif
+#else
+# define libm_hidden_mathcall(sym)
+# define libc_libm_hidden_mathcall(sym)
+#endif
+
+#if IS_IN (libm)
+# define libm_attr_hidden attribute_hidden
+#else
+# define libm_attr_hidden /* nothing */
+#endif
+
+#endif /* libm-symbols.h */
diff --git a/include/math.h b/include/math.h
index e21d34b868..3e4e020915 100644
--- a/include/math.h
+++ b/include/math.h
@@ -7,64 +7,56 @@
 #include <math/math.h>
 
 #ifndef _ISOMAC
+# include <libm-symbols.h>
+
 /* Now define the internal interfaces.  */
 extern int __signgam;
 
-# if IS_IN (libc) || IS_IN (libm)
-hidden_proto (__finite)
-hidden_proto (__isinf)
-hidden_proto (__isnan)
-hidden_proto (__finitef)
-hidden_proto (__isinff)
-hidden_proto (__isnanf)
-
-#  ifndef __NO_LONG_DOUBLE_MATH
-hidden_proto (__finitel)
-hidden_proto (__isinfl)
-hidden_proto (__isnanl)
-#  endif
-
-#  if __HAVE_DISTINCT_FLOAT128
-hidden_proto (__finitef128)
-hidden_proto (__isinff128)
-hidden_proto (__isnanf128)
-hidden_proto (__signbitf128)
-#  endif
-# endif
-
-libm_hidden_proto (__fpclassify)
-libm_hidden_proto (__fpclassifyf)
-libm_hidden_proto (__issignaling)
-libm_hidden_proto (__issignalingf)
-libm_hidden_proto (__exp)
-libm_hidden_proto (__expf)
-libm_hidden_proto (__roundeven)
+libc_libm_hidden_mathcall (finite)
+libc_libm_hidden_mathcall (isinf)
+libc_libm_hidden_mathcall (isnan)
+libc_libm_hidden_mathcall (scalbn)
+libc_libm_hidden_mathcall (signbit)
 
-# ifndef __NO_LONG_DOUBLE_MATH
-libm_hidden_proto (__fpclassifyl)
-libm_hidden_proto (__issignalingl)
-libm_hidden_proto (__expl)
-libm_hidden_proto (__expm1l)
-# endif
-
-# if __HAVE_DISTINCT_FLOAT128
-libm_hidden_proto (__fpclassifyf128)
-libm_hidden_proto (__issignalingf128)
-libm_hidden_proto (__expf128)
-libm_hidden_proto (__expm1f128)
-# endif
+libm_hidden_mathcall (atan)
+libm_hidden_mathcall (atan2)
+libm_hidden_mathcall (ceil)
+libm_hidden_mathcall (cos)
+libm_hidden_mathcall (erf)
+libm_hidden_mathcall (erfc)
+libm_hidden_mathcall (exp)
+libm_hidden_mathcall (expm1)
+libm_hidden_mathcall (floor)
+libm_hidden_mathcall (fpclassify)
+libm_hidden_mathcall (frexp)
+libm_hidden_mathcall (hypot)
+libm_hidden_mathcall (ilogb)
+libm_hidden_mathcall (issignaling)
+libm_hidden_mathcall (ldexp)
+libm_hidden_mathcall (log)
+libm_hidden_mathcall (log1p)
+libm_hidden_mathcall (nearbyint)
+libm_hidden_mathcall (nextup)
+libm_hidden_mathcall (rint)
+libm_hidden_mathcall (round)
+libm_hidden_mathcall (roundeven)
+libm_hidden_mathcall (scalbln)
+libm_hidden_mathcall (sin)
+libm_hidden_mathcall (sincos)
+libm_hidden_mathcall (sqrt)
+libm_hidden_mathcall (trunc)
 
 # if !(defined __FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
 #  ifndef NO_MATH_REDIRECT
 /* Declare sqrt for use within GLIBC.  Compilers typically inline sqrt as a
    single instruction.  Use an asm to avoid use of PLTs if it doesn't.  */
-float (sqrtf) (float) asm ("__ieee754_sqrtf");
-double (sqrt) (double) asm ("__ieee754_sqrt");
+float (sqrtf) (float) asm ("__ieee754_sqrtf") libm_attr_hidden;
+double (sqrt) (double) asm ("__ieee754_sqrt") libm_attr_hidden;
 #   ifndef __NO_LONG_DOUBLE_MATH
-long double (sqrtl) (long double) asm ("__ieee754_sqrtl");
+long double (sqrtl) (long double) asm ("__ieee754_sqrtl") libm_attr_hidden;
 #   endif
 #   if __HAVE_DISTINCT_FLOAT128 > 0
-_Float128 (sqrtf128) (_Float128) asm ("__ieee754_sqrtf128");
+_Float128 (sqrtf128) (_Float128) asm ("__ieee754_sqrtf128") libm_attr_hidden;
 #   endif
 #  endif
 # endif
diff --git a/include/mqueue.h b/include/mqueue.h
index 3c66f1711e..58af372971 100644
--- a/include/mqueue.h
+++ b/include/mqueue.h
@@ -2,6 +2,7 @@
 
 #ifndef _ISOMAC
 # if IS_IN (librt)
+extern __typeof (mq_open) __mq_open __THROW __nonnull ((1)) attribute_hidden;
 hidden_proto (mq_timedsend)
 extern __typeof (mq_timedsend) __mq_timedsend __nonnull ((2, 5));
 hidden_proto (__mq_timedsend)
diff --git a/include/resolv.h b/include/resolv.h
index daf4a74777..524ee902ac 100644
--- a/include/resolv.h
+++ b/include/resolv.h
@@ -31,8 +31,6 @@ extern struct hostent *_gethtbyname2 (const char *__name, int __af);
 struct hostent *_gethtbyaddr (const char *addr, size_t __len, int __af);
 extern uint32_t _getlong (const unsigned char *__src);
 extern uint16_t _getshort (const unsigned char *__src);
-extern int res_ourserver_p (const res_state __statp,
-			    const struct sockaddr_in6 *__inp);
 extern void __res_iclose (res_state statp, bool free_addr);
 libc_hidden_proto (__res_ninit)
 libc_hidden_proto (__res_nclose)
diff --git a/include/setjmp.h b/include/setjmp.h
index 263bc64b3d..49f7fe8dfb 100644
--- a/include/setjmp.h
+++ b/include/setjmp.h
@@ -17,7 +17,8 @@ extern void ____longjmp_chk (__jmp_buf __env, int __val)
    Always returns zero, for convenience.  */
 extern int __sigjmp_save (jmp_buf __env, int __savemask);
 
-extern void _longjmp_unwind (jmp_buf env, int val);
+extern void _longjmp_unwind (jmp_buf env, int val)
+  attribute_hidden;
 
 extern void __libc_siglongjmp (sigjmp_buf env, int val)
 	  __attribute__ ((noreturn));
diff --git a/include/stdio.h b/include/stdio.h
index f140813ad6..01c324703d 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -133,10 +133,13 @@ extern int _sys_nerr_internal attribute_hidden;
 libc_hidden_proto (__asprintf)
 #  if IS_IN (libc)
 extern FILE *_IO_new_fopen (const char*, const char*);
+libc_hidden_proto (_IO_new_fopen)
 #   define fopen(fname, mode) _IO_new_fopen (fname, mode)
 extern FILE *_IO_new_fdopen (int, const char*);
+libc_hidden_proto (_IO_new_fdopen)
 #   define fdopen(fd, mode) _IO_new_fdopen (fd, mode)
 extern int _IO_new_fclose (FILE*);
+libc_hidden_proto (_IO_new_fclose)
 #   define fclose(fp) _IO_new_fclose (fp)
 extern int _IO_fputs (const char*, FILE*);
 libc_hidden_proto (_IO_fputs)
@@ -146,8 +149,10 @@ libc_hidden_proto (_IO_fputs)
 libc_hidden_proto (fputs)
 #   define fputs(str, fp) _IO_fputs (str, fp)
 extern int _IO_new_fsetpos (FILE *, const __fpos_t *);
+libc_hidden_proto (_IO_new_fsetpos)
 #   define fsetpos(fp, posp) _IO_new_fsetpos (fp, posp)
 extern int _IO_new_fgetpos (FILE *, __fpos_t *);
+libc_hidden_proto (_IO_new_fgetpos)
 #   define fgetpos(fp, posp) _IO_new_fgetpos (fp, posp)
 #  endif
 
diff --git a/include/stdlib.h b/include/stdlib.h
index 114e12d255..13ef64f6ba 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -96,7 +96,8 @@ extern int __add_to_environ (const char *name, const char *value,
 			     const char *combines, int replace)
      attribute_hidden;
 extern void _quicksort (void *const pbase, size_t total_elems,
-			size_t size, __compar_d_fn_t cmp, void *arg);
+			size_t size, __compar_d_fn_t cmp, void *arg)
+     attribute_hidden;
 
 extern int __on_exit (void (*__func) (int __status, void *__arg), void *__arg);
 
diff --git a/include/string.h b/include/string.h
index bb4922cbbe..63639e2e8c 100644
--- a/include/string.h
+++ b/include/string.h
@@ -88,6 +88,7 @@ libc_hidden_proto (__stpncpy)
 libc_hidden_proto (__rawmemchr)
 libc_hidden_proto (__strcasecmp)
 libc_hidden_proto (__strcasecmp_l)
+libc_hidden_proto (__strncasecmp)
 libc_hidden_proto (__strncasecmp_l)
 extern __typeof (strncat) __strncat;
 libc_hidden_proto (__strncat)
@@ -95,6 +96,7 @@ libc_hidden_proto (__strdup)
 libc_hidden_proto (__strndup)
 libc_hidden_proto (__strerror_r)
 libc_hidden_proto (__strverscmp)
+libc_hidden_proto (__strchrnul)
 libc_hidden_proto (basename)
 extern char *__basename (const char *__filename) __THROW __nonnull ((1));
 libc_hidden_proto (__basename)
@@ -109,6 +111,7 @@ libc_hidden_proto (__strnlen)
 libc_hidden_proto (memmem)
 extern __typeof (memmem) __memmem;
 libc_hidden_proto (__memmem)
+libc_hidden_proto (__memrchr)
 libc_hidden_proto (__ffs)
 
 #if IS_IN (libc)
diff --git a/include/wchar.h b/include/wchar.h
index 1db0ac8278..0f5187650f 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -151,9 +151,12 @@ extern int __wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
 			  size_t __n)
      __attribute_pure__;
 extern size_t __wcslen (const wchar_t *__s) __attribute_pure__;
+libc_hidden_proto (__wcslen)
 extern size_t __wcsnlen (const wchar_t *__s, size_t __maxlen)
      __attribute_pure__;
+libc_hidden_proto (__wcsnlen)
 extern wchar_t *__wcscat (wchar_t *dest, const wchar_t *src);
+libc_hidden_proto (__wcscat)
 extern wint_t __btowc (int __c) attribute_hidden;
 extern int __mbsinit (const __mbstate_t *__ps);
 extern size_t __mbrtowc (wchar_t *__restrict __pwc,
@@ -182,9 +185,11 @@ extern size_t __wcsnrtombs (char *__restrict __dst,
      attribute_hidden;
 extern wchar_t *__wcsncpy (wchar_t *__restrict __dest,
 			   const wchar_t *__restrict __src, size_t __n);
+libc_hidden_proto (__wcsncpy)
 extern wchar_t *__wcpcpy (wchar_t *__dest, const wchar_t *__src);
 extern wchar_t *__wcpncpy (wchar_t *__dest, const wchar_t *__src,
 			   size_t __n);
+libc_hidden_proto (__wcpncpy)
 extern wchar_t *__wmemcpy (wchar_t *__s1, const wchar_t *s2,
 			   size_t __n) attribute_hidden;
 extern wchar_t *__wmempcpy (wchar_t *__restrict __s1,
@@ -194,6 +199,7 @@ extern wchar_t *__wmemmove (wchar_t *__s1, const wchar_t *__s2,
 			    size_t __n) attribute_hidden;
 extern wchar_t *__wcschrnul (const wchar_t *__s, wchar_t __wc)
      __attribute_pure__;
+libc_hidden_proto (__wcschrnul)
 
 extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n,
 			       size_t __ns) __THROW;
diff --git a/include/wctype.h b/include/wctype.h
index 5fd3f863ae..5a05899107 100644
--- a/include/wctype.h
+++ b/include/wctype.h
@@ -16,7 +16,9 @@ libc_hidden_proto (towupper)
 extern int __iswspace (wint_t __wc);
 extern int __iswctype (wint_t __wc, wctype_t __desc);
 extern wctype_t __wctype (const char *__property);
+libc_hidden_proto (__wctype)
 extern wctrans_t __wctrans (const char *__property);
+libc_hidden_proto (__wctrans)
 extern wint_t __towctrans (wint_t __wc, wctrans_t __desc);
 
 extern __typeof (iswalnum) __iswalnum __THROW __attribute_pure__;