Clean up <stdlib.h> slightly.
Interestingly, this mostly involves cleaning up our implementation of
various <string.h> functions.
Change-Id: Ifaef49b5cb997134f7bc0cc31bdac844bdb9e089
diff --git a/libc/include/stdlib.h b/libc/include/stdlib.h
index 0060ea3..4cb288d 100644
--- a/libc/include/stdlib.h
+++ b/libc/include/stdlib.h
@@ -25,15 +25,16 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-#ifndef _STDLIB_H_
-#define _STDLIB_H_
+
+#ifndef _STDLIB_H
+#define _STDLIB_H
#include <sys/cdefs.h>
+#include <xlocale.h>
-#include <stddef.h>
#include <alloca.h>
-#include <strings.h>
-#include <memory.h>
+#include <malloc.h>
+#include <stddef.h>
__BEGIN_DECLS
@@ -173,4 +174,4 @@
__END_DECLS
-#endif /* _STDLIB_H_ */
+#endif /* _STDLIB_H */
diff --git a/libc/include/string.h b/libc/include/string.h
index f0bed10..4ca77ae 100644
--- a/libc/include/string.h
+++ b/libc/include/string.h
@@ -36,6 +36,10 @@
__BEGIN_DECLS
+#if defined(__USE_BSD)
+#include <strings.h>
+#endif
+
extern void* memccpy(void* __restrict, const void* __restrict, int, size_t);
extern void* memchr(const void *, int, size_t) __purefunc;
extern void* memrchr(const void *, int, size_t) __purefunc;