diff --git a/libc/Android.bp b/libc/Android.bp
index 76f0dfb..f13a76c 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -478,7 +478,6 @@
         "upstream-netbsd/lib/libc/stdlib/nrand48.c",
         "upstream-netbsd/lib/libc/stdlib/_rand48.c",
         "upstream-netbsd/lib/libc/stdlib/rand_r.c",
-        "upstream-netbsd/lib/libc/stdlib/reallocarr.c",
         "upstream-netbsd/lib/libc/stdlib/seed48.c",
         "upstream-netbsd/lib/libc/stdlib/srand48.c",
     ],
diff --git a/libc/upstream-netbsd/android/include/netbsd-compat.h b/libc/upstream-netbsd/android/include/netbsd-compat.h
index 2c48b87..dc52002 100644
--- a/libc/upstream-netbsd/android/include/netbsd-compat.h
+++ b/libc/upstream-netbsd/android/include/netbsd-compat.h
@@ -35,12 +35,4 @@
  */
 #define __UNCONST(a)    ((void *)(unsigned long)(const void *)(a))
 
-// TODO: we don't yet have thread-safe environment variables.
-#define __readlockenv() 0
-#define __unlockenv() 0
-
-#include <sys/cdefs.h>
-#include <stddef.h>
-int reallocarr(void*, size_t, size_t);
-
 #define __arraycount(a) (sizeof(a) / sizeof(a[0]))
diff --git a/libc/upstream-netbsd/lib/libc/stdlib/reallocarr.c b/libc/upstream-netbsd/lib/libc/stdlib/reallocarr.c
deleted file mode 100644
index 6ffe811..0000000
--- a/libc/upstream-netbsd/lib/libc/stdlib/reallocarr.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* $NetBSD: reallocarr.c,v 1.5 2015/08/20 22:27:49 kamil Exp $ */
-
-/*-
- * Copyright (c) 2015 Joerg Sonnenberger <joerg@NetBSD.org>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: reallocarr.c,v 1.5 2015/08/20 22:27:49 kamil Exp $");
-
-#include "namespace.h"
-#include <errno.h>
-/* Old POSIX has SIZE_MAX in limits.h */
-#include <limits.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef _LIBC
-#ifdef __weak_alias
-__weak_alias(reallocarr, _reallocarr)
-#endif
-#endif
-
-#define SQRT_SIZE_MAX (((size_t)1) << (sizeof(size_t) * CHAR_BIT / 2))
-
-#if !HAVE_REALLOCARR
-int
-reallocarr(void *ptr, size_t number, size_t size)
-{
-	int saved_errno, result;
-	void *optr;
-	void *nptr;
-
-	saved_errno = errno;
-	memcpy(&optr, ptr, sizeof(ptr));
-	if (number == 0 || size == 0) {
-		free(optr);
-		nptr = NULL;
-		memcpy(ptr, &nptr, sizeof(ptr));
-		errno = saved_errno;
-		return 0;
-	}
-
-	/*
-	 * Try to avoid division here.
-	 *
-	 * It isn't possible to overflow during multiplication if neither
-	 * operand uses any of the most significant half of the bits.
-	 */
-	if (__predict_false((number|size) >= SQRT_SIZE_MAX &&
-	                    number > SIZE_MAX / size)) {
-		errno = saved_errno;
-		return EOVERFLOW;
-	}
-
-	nptr = realloc(optr, number * size);
-	if (__predict_false(nptr == NULL)) {
-		result = errno;
-	} else {
-		result = 0;
-		memcpy(ptr, &nptr, sizeof(ptr));
-	}
-	errno = saved_errno;
-	return result;
-}
-#endif
diff --git a/libc/upstream-openbsd/android/include/openbsd-compat.h b/libc/upstream-openbsd/android/include/openbsd-compat.h
index fa0831f..19f28ad 100644
--- a/libc/upstream-openbsd/android/include/openbsd-compat.h
+++ b/libc/upstream-openbsd/android/include/openbsd-compat.h
@@ -48,13 +48,7 @@
 #define __LIBC_HIDDEN__ __attribute__((visibility("hidden")))
 #endif
 
-/* OpenBSD has this in paths.h. But this directory doesn't normally exist.
- * Even when it does exist, only the 'shell' user has permissions.
- */
-#define _PATH_TMP "/data/local/tmp/"
-
 __LIBC_HIDDEN__ extern char* __findenv(const char*, int, int*);
-__LIBC_HIDDEN__ extern char* _mktemp(char*);
 
 // Only OpenBSD has this at the moment, and we're more likely to just say
 // "malloc is always calloc", so we don't expose this as libc API.
