diff --git a/ci/emscripten.sh b/ci/emscripten.sh
index 16be5a17528be84a8396a691abfa8a799b1f5204..1c858edfde231e3b6c7b60d4b83882ad1f5cc4b7 100644
--- a/ci/emscripten.sh
+++ b/ci/emscripten.sh
@@ -2,6 +2,8 @@
 
 set -ex
 
+EMSDK_VERSION=1.39.16
+
 hide_output() {
   set +x
   on_err="
@@ -23,8 +25,8 @@ git clone https://github.com/emscripten-core/emsdk.git /emsdk-portable
 cd /emsdk-portable
 # FIXME: switch to an upstream install once
 # https://github.com/rust-lang/rust/pull/63649 lands
-hide_output ./emsdk install 1.39.12
-./emsdk activate 1.39.12
+hide_output ./emsdk install "${EMSDK_VERSION}"
+./emsdk activate "${EMSDK_VERSION}"
 
 # Compile and cache libc
 # shellcheck disable=SC1091
@@ -34,7 +36,6 @@ HOME=/emsdk-portable/ emcc a.c
 rm -f a.*
 
 # Make emsdk usable by any user
-cp /root/.emscripten /emsdk-portable
 chmod a+rxw -R /emsdk-portable
 
 # node 8 is required to run wasm
diff --git a/libc-test/Cargo.toml b/libc-test/Cargo.toml
index e080948ed2c779b40c7a234f223a212f1cfd2aac..00e0b5407ca4293db113d3058dacbcdea6695912 100644
--- a/libc-test/Cargo.toml
+++ b/libc-test/Cargo.toml
@@ -11,7 +11,7 @@ default-features = false
 [build-dependencies]
 cc = "1.0"
 # FIXME: Use fork ctest until the maintainer gets back.
-ctest = { git = "https://github.com/JohnTitor/ctest.git", branch = "old-ctest" }
+ctest2 = "0.3"
 
 [features]
 default = [ "std" ]
diff --git a/libc-test/build.rs b/libc-test/build.rs
index 2a113ac5b4bd734dd76b732fa03a9869d64efefb..56ea246660dd4909214a9f510f631664cbc27a1d 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -1,7 +1,7 @@
 #![deny(warnings)]
 
 extern crate cc;
-extern crate ctest;
+extern crate ctest2 as ctest;
 
 use std::env;
 
@@ -1567,9 +1567,13 @@ fn test_android(target: &str) {
 
             // FIXME: Somehow we cannot find these fns on aarch64.
             // https://github.com/rust-lang/libc/issues/1765
-            "lockf" | "preadv64" | "pwritev64" | "openpty" |
-            "forkpty" | "login_tty" | "getifaddrs" | "freeifaddrs" |
-            "sethostname" | "getgrgid_r" | "getgrnam_r" if aarch64 => true,
+            "lockf" | "preadv64" | "pwritev64" | "openpty" | "forkpty"
+            | "login_tty" | "getifaddrs" | "freeifaddrs" | "sethostname"
+            | "getgrgid_r" | "getgrnam_r"
+                if aarch64 =>
+            {
+                true
+            }
 
             _ => false,
         }