From 4cc4b30426c5e5a0ecf912791e3f27312438d10e Mon Sep 17 00:00:00 2001
From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Date: Tue, 3 Jun 2008 08:11:56 +0000
Subject: - adds several config-options to allow for turning off certain
 features   like   o UCLIBC_HAS_GNU_ERROR   o UCLIBC_HAS_BSD_ERR   o
 UCLIBC_HAS_PTY   o UCLIBC_HAS_GETPT (1)   o UCLIBC_SYSCALL_STUBS   o
 UCLIBC_SYSCALL_STUB_WARNING   o UCLIBC_LINUX_SPECIFIC (2)   o
 UCLIBC_BSD_SPECIFIC (3)   o UCLIBC_NTP_LEGACY (4)   o UCLIBC_SV4_DEPRECATED
 (5)   o UCLIBC_HAVE_REALTIME (6)   o UCLIBC_HAVE_ADVANCED_REALTIME (7)   o
 UCLIBC_HAVE_EPOLL (8)   o UCLIBC_HAVE_XATTR (9)   o UCLIBC_HAVE_PROFILING
 (10)

(1) make non-standard getpt optional and implement standard posix_openpt
(2) fstatfs(), inotify_*(), ioperm(), iopl(), madvise(), modify_ldt(),
    personality()
    ppoll(), setresuid()
(3) mincore(), getdomainname(), setdomainname()
(4) ntp_adjtime(), ntp_gettime() aliases
(5) ustat() [use statfs(2) in your code instead]
(6) All marked as "(REALTIME)" in SUSv3
(7) All marked as "(ADVANCED REALTIME)" in SUSv3
(8) epoll_create(), epoll_ctl(), epoll_wait()
(9) all Extended Attributes
(10) helpers for gcc's -finstrument-functions

- Fixes _dl_exit()
- Implements sleep(3) for !UCLIBC_HAVE_REALTIME
- Implements usleep(3) for !UCLIBC_HAVE_REALTIME
- adds #warning about incorrect posix_fadvise{,64}()
- removes unused and unwanted uselib()

Net outcome is that an allnoconfig with HAVE_SHARED is now about 88k instead
of formerly 130k.
---
 include/sys/mman.h   | 10 ++++++----
 include/sys/poll.h   |  2 +-
 include/sys/statfs.h |  2 ++
 include/sys/timex.h  |  2 ++
 4 files changed, 11 insertions(+), 5 deletions(-)

(limited to 'include/sys')

diff --git a/include/sys/mman.h b/include/sys/mman.h
index 7bb1595bb..326685f61 100644
--- a/include/sys/mman.h
+++ b/include/sys/mman.h
@@ -98,17 +98,18 @@ static inline int msync (void *__addr, size_t __len, int __flags) { return 0; }
 
 #endif
 
-#ifdef __USE_BSD
+#if defined __USE_BSD && defined __UCLIBC_LINUX_SPECIFIC__
 /* Advise the system about particular usage patterns the program follows
    for the region starting at ADDR and extending LEN bytes.  */
 extern int madvise (void *__addr, size_t __len, int __advice) __THROW;
 #endif
-#ifdef __USE_XOPEN2K
+#if defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
 /* This is the POSIX name for this function.  */
 extern int posix_madvise (void *__addr, size_t __len, int __advice) __THROW;
 #endif
 
-#ifdef __ARCH_USE_MMU__
+#if defined __UCLIBC_HAS_REALTIME__
+# ifdef __ARCH_USE_MMU__
 
 /* Guarantee all whole pages mapped by the range [ADDR,ADDR+LEN) to
    be memory resident.  */
@@ -135,8 +136,9 @@ static inline int munlock (__const void *__addr, size_t __len) { return 0; }
 static inline int mlockall (int __flags) { return 0; }
 static inline int munlockall (void) { return 0; }
 #endif
+#endif /* __UCLIBC_HAS_REALTIME__ */
 
-#ifdef __USE_MISC
+#if defined __USE_MISC && defined __UCLIBC_BSD_SPECIFIC__
 /* mincore returns the memory residency status of the pages in the
    current process's address space specified by [start, start + len).
    The status is returned in a vector of bytes.  The least significant
diff --git a/include/sys/poll.h b/include/sys/poll.h
index 70f0d3159..a298dac15 100644
--- a/include/sys/poll.h
+++ b/include/sys/poll.h
@@ -59,7 +59,7 @@ __BEGIN_DECLS
    __THROW.  */
 extern int poll (struct pollfd *__fds, nfds_t __nfds, int __timeout);
 
-#ifdef __USE_GNU
+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
 /* Like poll, but before waiting the threads signal mask is replaced
    with that specified in the fourth parameter.  For better usability,
    the timeout value is specified using a TIMESPEC object.
diff --git a/include/sys/statfs.h b/include/sys/statfs.h
index 3b2226b41..f4177d4c9 100644
--- a/include/sys/statfs.h
+++ b/include/sys/statfs.h
@@ -45,6 +45,7 @@ extern int statfs64 (__const char *__file, struct statfs64 *__buf)
      __THROW __nonnull ((1, 2));
 #endif
 
+#if defined __UCLIBC_LINUX_SPECIFIC__
 /* Return information about the filesystem containing the file FILDES
    refers to.  */
 #ifndef __USE_FILE_OFFSET64
@@ -62,6 +63,7 @@ extern int __REDIRECT_NTH (fstatfs, (int __fildes, struct statfs *__buf),
 extern int fstatfs64 (int __fildes, struct statfs64 *__buf)
      __THROW __nonnull ((2));
 #endif
+#endif /* __UCLIBC_LINUX_SPECIFIC__ */
 
 __END_DECLS
 
diff --git a/include/sys/timex.h b/include/sys/timex.h
index 773a5ab8d..d2020a6d2 100644
--- a/include/sys/timex.h
+++ b/include/sys/timex.h
@@ -119,8 +119,10 @@ __BEGIN_DECLS
 extern int __adjtimex (struct timex *__ntx) __THROW;
 extern int adjtimex (struct timex *__ntx) __THROW;
 
+#if defined __UCLIBC_NTP_LEGACY__
 extern int ntp_gettime (struct ntptimeval *__ntv) __THROW;
 extern int ntp_adjtime (struct timex *__tntx) __THROW;
+#endif
 
 __END_DECLS
 
-- 
cgit v1.2.3