From 09536384edb978930eba7375a5a3d56e93083903 Mon Sep 17 00:00:00 2001
From: Yuki Okushi <huyuumi.dev@gmail.com>
Date: Mon, 27 Jul 2020 02:46:06 +0900
Subject: [PATCH] Suppress `improper_ctypes_definitions` for
 `compiler_builtins`

---
 ci/build.sh | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/ci/build.sh b/ci/build.sh
index 5043de8c..8fcf6308 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
 }
-- 
GitLab