diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-06-03 08:11:56 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-06-03 08:11:56 +0000 |
commit | 4cc4b30426c5e5a0ecf912791e3f27312438d10e (patch) | |
tree | 81c31f4bde953f135d9e63582b162c17cc173f10 /libc/misc | |
parent | 1f124eb0280a5009f1265a9dca49fdb0d95b845e (diff) |
- 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.
Diffstat (limited to 'libc/misc')
-rw-r--r-- | libc/misc/dirent/Makefile.in | 4 | ||||
-rw-r--r-- | libc/misc/error/Makefile.in | 8 | ||||
-rw-r--r-- | libc/misc/error/err.c | 3 | ||||
-rw-r--r-- | libc/misc/statfs/fstatvfs.c | 18 | ||||
-rw-r--r-- | libc/misc/statfs/statvfs.c | 5 | ||||
-rw-r--r-- | libc/misc/syslog/Makefile.in | 2 | ||||
-rw-r--r-- | libc/misc/sysvipc/sem.c | 6 | ||||
-rw-r--r-- | libc/misc/time/Makefile.in | 6 |
8 files changed, 41 insertions, 11 deletions
diff --git a/libc/misc/dirent/Makefile.in b/libc/misc/dirent/Makefile.in index 89a00ed5e..b35efa0b1 100644 --- a/libc/misc/dirent/Makefile.in +++ b/libc/misc/dirent/Makefile.in @@ -5,8 +5,8 @@ # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # -CSRC := alphasort.c closedir.c dirfd.c opendir.c readdir.c rewinddir.c scandir.c \ - seekdir.c telldir.c readdir_r.c +CSRC := alphasort.c closedir.c dirfd.c opendir.c readdir.c rewinddir.c \ + scandir.c seekdir.c telldir.c readdir_r.c ifeq ($(UCLIBC_HAS_LFS),y) CSRC += readdir64.c alphasort64.c scandir64.c readdir64_r.c diff --git a/libc/misc/error/Makefile.in b/libc/misc/error/Makefile.in index c529e955e..9facacff0 100644 --- a/libc/misc/error/Makefile.in +++ b/libc/misc/error/Makefile.in @@ -5,7 +5,13 @@ # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # -CSRC := error.c err.c +CSRC := +ifeq ($(UCLIBC_HAS_BSD_ERR),y) +CSRC += err.c +endif +ifeq ($(UCLIBC_HAS_GNU_ERROR),y) +CSRC += error.c +endif MISC_ERROR_DIR := $(top_srcdir)libc/misc/error MISC_ERROR_OUT := $(top_builddir)libc/misc/error diff --git a/libc/misc/error/err.c b/libc/misc/error/err.c index cd331500a..ab9c8b72b 100644 --- a/libc/misc/error/err.c +++ b/libc/misc/error/err.c @@ -19,6 +19,8 @@ #warning REMINDER: Deal with wide oriented stderr case. #endif +#if defined __USE_BSD + libc_hidden_proto(vwarn) libc_hidden_proto(vwarnx) libc_hidden_proto(verr) @@ -124,3 +126,4 @@ void attribute_noreturn errx(int status, const char *format, ...) while(1) va_end(args); } +#endif diff --git a/libc/misc/statfs/fstatvfs.c b/libc/misc/statfs/fstatvfs.c index bc00cc6b5..231d45207 100644 --- a/libc/misc/statfs/fstatvfs.c +++ b/libc/misc/statfs/fstatvfs.c @@ -34,7 +34,21 @@ libc_hidden_proto(setmntent) libc_hidden_proto(getmntent_r) libc_hidden_proto(endmntent) -libc_hidden_proto(fstatfs) +#if !defined __UCLIBC_LINUX_SPECIFIC__ +#ifndef __USE_FILE_OFFSET64 +extern int fstatfs (int __fildes, struct statfs *__buf) + __THROW __nonnull ((2)); +#else +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (fstatfs, (int __fildes, struct statfs *__buf), + fstatfs64) __nonnull ((2)); +# else +# define fstatfs fstatfs64 +# endif +#endif +#endif +extern __typeof(fstatfs) __libc_fstatfs; +libc_hidden_proto(__libc_fstatfs) libc_hidden_proto(fstat) libc_hidden_proto(stat) @@ -44,7 +58,7 @@ int fstatvfs (int fd, struct statvfs *buf) struct stat st; /* Get as much information as possible from the system. */ - if (fstatfs (fd, &fsbuf) < 0) + if (__libc_fstatfs (fd, &fsbuf) < 0) return -1; #define STAT(st) fstat (fd, st) diff --git a/libc/misc/statfs/statvfs.c b/libc/misc/statfs/statvfs.c index 077a2fb0b..0feb8731d 100644 --- a/libc/misc/statfs/statvfs.c +++ b/libc/misc/statfs/statvfs.c @@ -34,7 +34,8 @@ libc_hidden_proto(setmntent) libc_hidden_proto(getmntent_r) libc_hidden_proto(endmntent) -libc_hidden_proto(statfs) +extern __typeof(statfs) __libc_statfs; +libc_hidden_proto(__libc_statfs) libc_hidden_proto(stat) int statvfs (const char *file, struct statvfs *buf) @@ -43,7 +44,7 @@ int statvfs (const char *file, struct statvfs *buf) struct stat st; /* Get as much information as possible from the system. */ - if (statfs (file, &fsbuf) < 0) + if (__libc_statfs (file, &fsbuf) < 0) return -1; #define STAT(st) stat (file, st) diff --git a/libc/misc/syslog/Makefile.in b/libc/misc/syslog/Makefile.in index fd9ae198f..8355ac0cd 100644 --- a/libc/misc/syslog/Makefile.in +++ b/libc/misc/syslog/Makefile.in @@ -13,7 +13,9 @@ MISC_SYSLOG_OUT := $(top_builddir)libc/misc/syslog MISC_SYSLOG_SRC := $(patsubst %.c,$(MISC_SYSLOG_DIR)/%.c,$(CSRC)) MISC_SYSLOG_OBJ := $(patsubst %.c,$(MISC_SYSLOG_OUT)/%.o,$(CSRC)) +ifeq ($(UCLIBC_HAS_SYSLOG),y) libc-y += $(MISC_SYSLOG_OBJ) +endif objclean-y += misc_syslog_objclean diff --git a/libc/misc/sysvipc/sem.c b/libc/misc/sysvipc/sem.c index 51706c58d..07705c9d9 100644 --- a/libc/misc/sysvipc/sem.c +++ b/libc/misc/sysvipc/sem.c @@ -19,6 +19,7 @@ #include <errno.h> #include <sys/sem.h> +#include <stddef.h> #include "ipc.h" @@ -26,6 +27,7 @@ /* Return identifier for array of NSEMS semaphores associated with KEY. */ #include <stdarg.h> +#include <stdlib.h> /* arg for semctl system calls. */ union semun { int val; /* value for SETVAL */ @@ -53,7 +55,7 @@ int semctl(int semid, int semnum, int cmd, ...) #ifdef __NR_semctl return __semctl(semid, semnum, cmd | __IPC_64, arg.__pad); #else - return __syscall_ipc(IPCOP_semctl, semid, semnum, cmd | __IPC_64, &arg, 0); + return __syscall_ipc(IPCOP_semctl, semid, semnum, cmd|__IPC_64, &arg, NULL); #endif } #endif @@ -84,7 +86,7 @@ _syscall3(int, semop, int, semid, struct sembuf *, sops, size_t, nsops); /* Perform user-defined atomical operation of array of semaphores. */ int semop (int semid, struct sembuf *sops, size_t nsops) { - return __syscall_ipc(IPCOP_semop, semid, (int) nsops, 0, sops, 0); + return __syscall_ipc(IPCOP_semop, semid, (int) nsops, 0, sops, NULL); } #endif #endif diff --git a/libc/misc/time/Makefile.in b/libc/misc/time/Makefile.in index b90b9b48f..4c4d510b1 100644 --- a/libc/misc/time/Makefile.in +++ b/libc/misc/time/Makefile.in @@ -5,8 +5,10 @@ # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # -CSRC := adjtime.c ftime.c - +CSRC := adjtime.c +ifeq ($(UCLIBC_SUSV3_LEGACY),y) +CSRC += ftime.c +endif # multi source time.c CSRC += asctime.c asctime_r.c clock.c ctime.c ctime_r.c gmtime.c gmtime_r.c \ localtime.c localtime_r.c mktime.c strftime.c strptime.c tzset.c \ |