diff options
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/inet/resolv.c | 19 | ||||
| -rw-r--r-- | libc/misc/syslog/syslog.c | 128 | ||||
| -rw-r--r-- | libc/pwd_grp/lckpwdf.c | 4 | ||||
| -rw-r--r-- | libc/stdio/vswprintf.c | 4 | ||||
| -rw-r--r-- | libc/stdlib/ptsname.c | 6 | ||||
| -rw-r--r-- | libc/string/arm/strcmp.S | 8 | ||||
| -rw-r--r-- | libc/string/i386/strcmp.c | 4 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/ssp.c | 7 | ||||
| -rw-r--r-- | libc/sysdeps/linux/mips/pipe.S | 13 | ||||
| -rw-r--r-- | libc/sysdeps/linux/mips/pipe.c | 3 |
10 files changed, 106 insertions, 90 deletions
diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c index 0e7c4d8b8..4bfec0a50 100644 --- a/libc/inet/resolv.c +++ b/libc/inet/resolv.c @@ -140,6 +140,15 @@ #define getservbyport __getservbyport #define getdomainname __getdomainname #define uname __uname +#define inet_addr __inet_addr +#define inet_aton __inet_aton +#define inet_pton __inet_pton +#define inet_ntop __inet_ntop +#define connect __connect +#define select __select +#define recv __recv +#define send __send +#define snprintf __snprintf #define __FORCE_GLIBC #include <features.h> @@ -764,9 +773,9 @@ int attribute_hidden __dns_lookup(const char *name, int type, int nscount, char #ifdef __UCLIBC_HAS_IPV6__ v6 = inet_pton(AF_INET6, dns, &sa6.sin6_addr) > 0; - fd = socket(v6 ? AF_INET6 : AF_INET, SOCK_DGRAM, IPPROTO_UDP); + fd = __socket(v6 ? AF_INET6 : AF_INET, SOCK_DGRAM, IPPROTO_UDP); #else - fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + fd = __socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); #endif if (fd < 0) { retries++; @@ -1400,7 +1409,7 @@ int res_querydomain(name, domain, class, type, answer, anslen) #ifdef DEBUG if (_res.options & RES_DEBUG) - printf(";; res_querydomain(%s, %s, %d, %d)\n", + __printf(";; res_querydomain(%s, %s, %d, %d)\n", name, domain?domain:"<Nil>", class, type); #endif if (domain == NULL) { @@ -2338,7 +2347,7 @@ int attribute_hidden __gethostbyaddr_r (const void *addr, socklen_t len, int typ addr_list[0] = in; - sprintf(buf, "%u.%u.%u.%u.in-addr.arpa", + __sprintf(buf, "%u.%u.%u.%u.in-addr.arpa", tmp_addr[3], tmp_addr[2], tmp_addr[1], tmp_addr[0]); #ifdef __UCLIBC_HAS_IPV6__ } else { @@ -2348,7 +2357,7 @@ int attribute_hidden __gethostbyaddr_r (const void *addr, socklen_t len, int typ qp = buf; for (i = len - 1; i >= 0; i--) { - qp += sprintf(qp, "%x.%x.", in6->s6_addr[i] & 0xf, + qp += __sprintf(qp, "%x.%x.", in6->s6_addr[i] & 0xf, (in6->s6_addr[i] >> 4) & 0xf); } __strcpy(qp, "ip6.int"); diff --git a/libc/misc/syslog/syslog.c b/libc/misc/syslog/syslog.c index 129b2036e..649f36d65 100644 --- a/libc/misc/syslog/syslog.c +++ b/libc/misc/syslog/syslog.c @@ -32,6 +32,9 @@ */ #define ctime __ctime +#define sigaction __sigaction +#define connect __connect +#define vsnprintf __vsnprintf #define __FORCE_GLIBC #define _GNU_SOURCE @@ -100,13 +103,6 @@ static int LogFacility = LOG_USER; /* default facility code */ static int LogMask = 0xff; /* mask of priorities to be logged */ static struct sockaddr SyslogAddr; /* AF_UNIX address of local logger */ -static void closelog_intern( int ); -void syslog( int, const char *, ...); -void vsyslog( int, const char *, va_list ); -void openlog( const char *, int, int ); -void closelog( void ); -int setlogmask(int pmask); - static void closelog_intern(int to_default) { @@ -127,12 +123,65 @@ closelog_intern(int to_default) } static void -sigpipe_handler (int sig) +sigpipe_handler (attribute_unused int sig) { closelog_intern (0); } /* + * OPENLOG -- open system log + */ +void attribute_hidden +__openlog( const char *ident, int logstat, int logfac ) +{ + int logType = SOCK_DGRAM; + + LOCK; + + if (ident != NULL) + LogTag = ident; + LogStat = logstat; + if (logfac != 0 && (logfac &~ LOG_FACMASK) == 0) + LogFacility = logfac; + if (LogFile == -1) { + SyslogAddr.sa_family = AF_UNIX; + (void)__strncpy(SyslogAddr.sa_data, _PATH_LOG, + sizeof(SyslogAddr.sa_data)); +retry: + if (LogStat & LOG_NDELAY) { + if ((LogFile = __socket(AF_UNIX, logType, 0)) == -1){ + UNLOCK; + return; + } + /* fcntl(LogFile, F_SETFD, 1); */ + } + } + + if (LogFile != -1 && !connected) { + if (connect(LogFile, &SyslogAddr, sizeof(SyslogAddr) - + sizeof(SyslogAddr.sa_data) + __strlen(SyslogAddr.sa_data)) != -1) + { + connected = 1; + } else if (logType == SOCK_DGRAM) { + logType = SOCK_STREAM; + if (LogFile != -1) { + __close(LogFile); + LogFile = -1; + } + goto retry; + } else { + if (LogFile != -1) { + __close(LogFile); + LogFile = -1; + } + } + } + + UNLOCK; +} +strong_alias(__openlog,openlog) + +/* * syslog, vsyslog -- * print message on log file; output is intended for syslogd(8). */ @@ -161,7 +210,7 @@ __vsyslog( int pri, const char *fmt, va_list ap ) if (!(LogMask & LOG_MASK(LOG_PRI(pri))) || (pri &~ (LOG_PRIMASK|LOG_FACMASK))) goto getout; if (LogFile < 0 || !connected) - openlog(LogTag, LogStat | LOG_NDELAY, 0); + __openlog(LogTag, LogStat | LOG_NDELAY, 0); /* Set default facility if none specified. */ if ((pri & LOG_FACMASK) == 0) @@ -172,15 +221,15 @@ __vsyslog( int pri, const char *fmt, va_list ap ) * safe to test only LogTag and use normal sprintf everywhere else. */ (void)__time(&now); - stdp = p = tbuf + sprintf(tbuf, "<%d>%.15s ", pri, ctime(&now) + 4); + stdp = p = tbuf + __sprintf(tbuf, "<%d>%.15s ", pri, ctime(&now) + 4); if (LogTag) { if (__strlen(LogTag) < sizeof(tbuf) - 64) - p += sprintf(p, "%s", LogTag); + p += __sprintf(p, "%s", LogTag); else - p += sprintf(p, "<BUFFER OVERRUN ATTEMPT>"); + p += __sprintf(p, "<BUFFER OVERRUN ATTEMPT>"); } if (LogStat & LOG_PID) - p += sprintf(p, "[%d]", __getpid()); + p += __sprintf(p, "[%d]", __getpid()); if (LogTag) { *p++ = ':'; *p++ = ' '; @@ -271,59 +320,6 @@ __syslog(int pri, const char *fmt, ...) strong_alias(__syslog,syslog) /* - * OPENLOG -- open system log - */ -void attribute_hidden -__openlog( const char *ident, int logstat, int logfac ) -{ - int logType = SOCK_DGRAM; - - LOCK; - - if (ident != NULL) - LogTag = ident; - LogStat = logstat; - if (logfac != 0 && (logfac &~ LOG_FACMASK) == 0) - LogFacility = logfac; - if (LogFile == -1) { - SyslogAddr.sa_family = AF_UNIX; - (void)__strncpy(SyslogAddr.sa_data, _PATH_LOG, - sizeof(SyslogAddr.sa_data)); -retry: - if (LogStat & LOG_NDELAY) { - if ((LogFile = socket(AF_UNIX, logType, 0)) == -1){ - UNLOCK; - return; - } - /* fcntl(LogFile, F_SETFD, 1); */ - } - } - - if (LogFile != -1 && !connected) { - if (connect(LogFile, &SyslogAddr, sizeof(SyslogAddr) - - sizeof(SyslogAddr.sa_data) + __strlen(SyslogAddr.sa_data)) != -1) - { - connected = 1; - } else if (logType == SOCK_DGRAM) { - logType = SOCK_STREAM; - if (LogFile != -1) { - __close(LogFile); - LogFile = -1; - } - goto retry; - } else { - if (LogFile != -1) { - __close(LogFile); - LogFile = -1; - } - } - } - - UNLOCK; -} -strong_alias(__openlog,openlog) - -/* * CLOSELOG -- close the system log */ void attribute_hidden diff --git a/libc/pwd_grp/lckpwdf.c b/libc/pwd_grp/lckpwdf.c index 3f0968aa0..72f8e3c83 100644 --- a/libc/pwd_grp/lckpwdf.c +++ b/libc/pwd_grp/lckpwdf.c @@ -20,6 +20,8 @@ Boston, MA 02111-1307, USA. */ #define sigfillset __sigfillset_internal +#define sigaction __sigaction +#define alarm __alarm #include <features.h> #include <fcntl.h> @@ -174,7 +176,7 @@ int ulckpwdf (void) } -static void noop_handler (int sig) +static void noop_handler (attribute_unused int sig) { /* We simply return which makes the `fcntl' call return with an error. */ } diff --git a/libc/stdio/vswprintf.c b/libc/stdio/vswprintf.c index d23ba123f..c9e73cf87 100644 --- a/libc/stdio/vswprintf.c +++ b/libc/stdio/vswprintf.c @@ -38,8 +38,12 @@ int attribute_hidden __vswprintf(wchar_t *__restrict buf, size_t size, #ifdef __UCLIBC_HAS_THREADS__ f.__user_locking = 1; /* Set user locking. */ +#ifdef __USE_STDIO_FUTEXES__ + _IO_lock_init (f._lock); +#else __stdio_init_mutex(&f.__lock); #endif +#endif f.__nextopen = NULL; if (size > ((SIZE_MAX - (size_t) buf)/sizeof(wchar_t))) { diff --git a/libc/stdlib/ptsname.c b/libc/stdlib/ptsname.c index 769944ba2..c56f18a91 100644 --- a/libc/stdlib/ptsname.c +++ b/libc/stdlib/ptsname.c @@ -152,7 +152,7 @@ int attribute_hidden __ptsname_r (int fd, char *buf, size_t buflen) if (major (st.st_rdev) == 4) ptyno -= 128; - if (ptyno / 16 >= __strlen (_ptyname1)) + if (ptyno / 16 >= __strlen (__libc_ptyname1)) { errno = ENOTTY; return ENOTTY; @@ -160,8 +160,8 @@ int attribute_hidden __ptsname_r (int fd, char *buf, size_t buflen) __strcpy (buf, _PATH_TTY); p = buf + __strlen (buf); - p[0] = _ptyname1[ptyno / 16]; - p[1] = _ptyname2[ptyno % 16]; + p[0] = __libc_ptyname1[ptyno / 16]; + p[1] = __libc_ptyname2[ptyno % 16]; p[2] = '\0'; } diff --git a/libc/string/arm/strcmp.S b/libc/string/arm/strcmp.S index 4e2e3f5b5..33acc14cf 100644 --- a/libc/string/arm/strcmp.S +++ b/libc/string/arm/strcmp.S @@ -29,7 +29,7 @@ * by Erik Andersen <andersen@codepoet.org> */ -#include <locale.h> +#include <features.h> .global strcmp .set strcmp,__strcmp @@ -50,7 +50,7 @@ __strcmp: mov pc, lr .size __strcmp,.-__strcmp -#ifdef __LOCALE_C_ONLY -.weak __strcoll ; __strcoll = __strcmp -.global strcoll ; .set strcoll,__strcoll +#ifndef __UCLIBC_HAS_LOCALE__ +.global __strcoll ; .hidden __strcoll ; __strcoll = __strcmp +.global strcoll ; .set strcoll,__strcmp #endif diff --git a/libc/string/i386/strcmp.c b/libc/string/i386/strcmp.c index 4db824dbd..3786d5983 100644 --- a/libc/string/i386/strcmp.c +++ b/libc/string/i386/strcmp.c @@ -57,6 +57,6 @@ int attribute_hidden __strcmp(const char *cs, const char *ct) strong_alias(__strcmp, strcmp) #ifdef __LOCALE_C_ONLY -weak_alias(__strcmp, __strcoll) -strong_alias(__strcoll, strcoll) +hidden_strong_alias(__strcmp, __strcoll) +strong_alias(__strcmp, strcoll) #endif /* __LOCALE_C_ONLY */ diff --git a/libc/sysdeps/linux/common/ssp.c b/libc/sysdeps/linux/common/ssp.c index fe7a56f71..05e53c29d 100644 --- a/libc/sysdeps/linux/common/ssp.c +++ b/libc/sysdeps/linux/common/ssp.c @@ -31,6 +31,7 @@ #define closelog __closelog #define sigfillset __sigfillset_internal #define sigdelset __sigdelset_internal +#define sigaction __sigaction #define kill __kill #include <string.h> @@ -62,9 +63,9 @@ static __always_inline void ssp_write(int fd, const char *msg1, const char *msg2 __write(fd, msg2, __strlen(msg2)); __write(fd, msg3, __strlen(msg3)); __write(fd, "()\n", 3); - __openlog("ssp", LOG_CONS | LOG_PID, LOG_USER); - __syslog(LOG_INFO, "%s%s%s()", msg1, msg2, msg3); - __closelog(); + openlog("ssp", LOG_CONS | LOG_PID, LOG_USER); + syslog(LOG_INFO, "%s%s%s()", msg1, msg2, msg3); + closelog(); } static __always_inline attribute_noreturn void terminate(void) diff --git a/libc/sysdeps/linux/mips/pipe.S b/libc/sysdeps/linux/mips/pipe.S index c3afae550..1936d7626 100644 --- a/libc/sysdeps/linux/mips/pipe.S +++ b/libc/sysdeps/linux/mips/pipe.S @@ -7,9 +7,12 @@ #include <asm/unistd.h> #include <asm/regdef.h> - .globl pipe - .ent pipe, 0 -pipe: + .globl pipe + .set pipe,__pipe + .globl __pipe + .hidden __pipe + .ent __pipe, 0 +__pipe: addiu sp,sp,-24 sw a0,16(sp) li v0,__NR_pipe @@ -27,5 +30,5 @@ pipe: 2: addiu sp,sp,24 j ra - .end pipe - .size pipe,.-pipe + .end __pipe + .size __pipe,.-__pipe diff --git a/libc/sysdeps/linux/mips/pipe.c b/libc/sysdeps/linux/mips/pipe.c index 65e335964..fbc73b489 100644 --- a/libc/sysdeps/linux/mips/pipe.c +++ b/libc/sysdeps/linux/mips/pipe.c @@ -6,7 +6,7 @@ #include <unistd.h> #include <syscall.h> -int pipe(int *fd) +int attribute_hidden __pipe(int *fd) { register long int res __asm__ ("$2"); // v0 register long int res2 __asm__ ("$3"); // v1 @@ -21,3 +21,4 @@ int pipe(int *fd) fd[1] = res2; return(0); } +strong_alias(__pipe,pipe) |
