diff --git a/ci/build.sh b/ci/build.sh
index 5043de8c21cddf70880fd888379f0a538f670b78..8fcf630817a6b2e72b0161bdefecb28fc9a08765 100644
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -43,14 +43,17 @@ test_target() {
     if [ "${NO_STD}" != "1" ]; then
         cargo "+${RUST}" "${BUILD_CMD}" -vv --no-default-features --target "${TARGET}"
     else
-        cargo "+${RUST}" "${BUILD_CMD}" -Z build-std=core,alloc -vv --no-default-features --target "${TARGET}"
+        # FIXME: With `build-std` feature, `compiler_builtins` emits a lof of lint warnings.
+        RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \
+            -Z build-std=core,alloc -vv --no-default-features --target "${TARGET}"
     fi
     # Test that libc builds with default features (e.g. libstd)
     # if the target supports libstd
     if [ "$NO_STD" != "1" ]; then
         cargo "+${RUST}" "${BUILD_CMD}" -vv --target "${TARGET}"
     else
-        cargo "+${RUST}" "${BUILD_CMD}" -Z build-std=core,alloc -vv --target "${TARGET}"
+        RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \
+            -Z build-std=core,alloc -vv --target "${TARGET}"
     fi
 
     # Test that libc builds with the `extra_traits` feature
@@ -58,7 +61,8 @@ test_target() {
         cargo "+${RUST}" "${BUILD_CMD}" -vv --no-default-features --target "${TARGET}" \
             --features extra_traits
     else
-        cargo "+${RUST}" "${BUILD_CMD}" -Z build-std=core,alloc -vv --no-default-features \
+        RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \
+            -Z build-std=core,alloc -vv --no-default-features \
             --target "${TARGET}" --features extra_traits
     fi
 
@@ -68,7 +72,8 @@ test_target() {
             cargo "+${RUST}" "${BUILD_CMD}" -vv --no-default-features --target "${TARGET}" \
                 --features const-extern-fn
         else
-            cargo "+${RUST}" "${BUILD_CMD}" -Z build-std=core,alloc -vv --no-default-features \
+            RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \
+                -Z build-std=core,alloc -vv --no-default-features \
                 --target "${TARGET}" --features const-extern-fn
         fi
     fi
@@ -78,7 +83,8 @@ test_target() {
         cargo "+${RUST}" "${BUILD_CMD}" -vv --target "${TARGET}" \
             --features extra_traits
     else
-        cargo "+${RUST}" "${BUILD_CMD}" -Z build-std=core,alloc -vv --target "${TARGET}" \
+        RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \
+            -Z build-std=core,alloc -vv --target "${TARGET}" \
             --features extra_traits
     fi
 }
diff --git a/libc-test/build.rs b/libc-test/build.rs
index edc13b54099e3fd2605c11706f235c4405e8a147..ed1b176bbf8ad46b1edc142ab5fc975b383d9d0d 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -1763,12 +1763,8 @@ fn test_freebsd(target: &str) {
     cfg.skip_const(move |name| {
         match name {
             // These constants are to be introduced in yet-unreleased FreeBSD 12.2.
-            "F_ADD_SEALS"
-            | "F_GET_SEALS"
-            | "F_SEAL_SEAL"
-            | "F_SEAL_SHRINK"
-            | "F_SEAL_GROW"
-            | "F_SEAL_WRITE"
+            "F_ADD_SEALS" | "F_GET_SEALS" | "F_SEAL_SEAL"
+            | "F_SEAL_SHRINK" | "F_SEAL_GROW" | "F_SEAL_WRITE"
                 if Some(12) <= freebsd_ver =>
             {
                 true