Remove compiler warnings when building Bionic.
Also add missing declarations to misc. functions.
Fix clearerr() implementation (previous was broken).
Handle feature test macros like _POSIX_C_SOURCE properly.
Change-Id: Icdc973a6b9d550a166fc2545f727ea837fe800c4
diff --git a/libc/bionic/clearenv.c b/libc/bionic/clearenv.c
index ffc58d9..0f6f066 100644
--- a/libc/bionic/clearenv.c
+++ b/libc/bionic/clearenv.c
@@ -26,14 +26,17 @@
* SUCH DAMAGE.
*/
+#include <stddef.h>
+
extern char** environ;
int clearenv(void)
{
- char **P = environ;
- int offset;
+ char **P = environ;
- for (P = &environ[offset]; *P; ++P)
- *P = 0;
- return 0;
+ if (P != NULL) {
+ for (; *P; ++P)
+ *P = NULL;
+ }
+ return 0;
}
diff --git a/libc/bionic/cpuacct.c b/libc/bionic/cpuacct.c
index abdbc51..7317073 100644
--- a/libc/bionic/cpuacct.c
+++ b/libc/bionic/cpuacct.c
@@ -29,7 +29,7 @@
#include <stdio.h>
#include <errno.h>
#include <sys/stat.h>
-//#include <sys/types.h>
+#include "cpuacct.h"
int cpuacct_add(uid_t uid)
{
diff --git a/libc/bionic/fork.c b/libc/bionic/fork.c
index e20f548..79b8fff 100644
--- a/libc/bionic/fork.c
+++ b/libc/bionic/fork.c
@@ -27,6 +27,7 @@
*/
#include <unistd.h>
#include "pthread_internal.h"
+#include "cpuacct.h"
extern int __fork(void);
diff --git a/libc/bionic/fts.c b/libc/bionic/fts.c
index 3dcfb28..c7770b6 100644
--- a/libc/bionic/fts.c
+++ b/libc/bionic/fts.c
@@ -548,9 +548,9 @@
DIR *dirp;
void *oldaddr;
size_t len, maxlen;
- int nitems, cderrno, descend, level, nlinks, nostat, doadjust;
+ int nitems, cderrno, descend, level, nlinks, nostat = 0, doadjust;
int saved_errno;
- char *cp;
+ char *cp = NULL;
/* Set current node pointer. */
cur = sp->fts_cur;
diff --git a/libc/bionic/pthread.c b/libc/bionic/pthread.c
index 8eee136..061cce1 100644
--- a/libc/bionic/pthread.c
+++ b/libc/bionic/pthread.c
@@ -48,6 +48,7 @@
#include <sys/prctl.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include <stdio.h>
extern int __pthread_clone(int (*fn)(void*), void *child_stack, int flags, void *arg);
extern void _exit_with_stack_teardown(void * stackBase, int stackSize, int retCode);
diff --git a/libc/bionic/system_properties.c b/libc/bionic/system_properties.c
index 5e3b9e7..767baa3 100644
--- a/libc/bionic/system_properties.c
+++ b/libc/bionic/system_properties.c
@@ -126,7 +126,7 @@
for(;;) {
serial = pi->serial;
while(SERIAL_DIRTY(serial)) {
- __futex_wait(&pi->serial, serial, 0);
+ __futex_wait((volatile void *)&pi->serial, serial, 0);
serial = pi->serial;
}
len = SERIAL_VALUE_LEN(serial);
@@ -164,7 +164,7 @@
} else {
n = pi->serial;
do {
- __futex_wait(&pi->serial, n, 0);
+ __futex_wait((volatile void *)&pi->serial, n, 0);
} while(n == pi->serial);
}
return 0;