From 3241ec58085a2256b88be01efa505c0509f89ce0 Mon Sep 17 00:00:00 2001
From: gnzlbg <gonzalobg88@gmail.com>
Date: Fri, 16 Aug 2019 15:22:56 +0200
Subject: [PATCH] Do not deny warnings by default.

libc currently denies all warnings by default. This commit denies
warnings only when libc is built in CI.
---
 build.rs     | 6 +++++-
 ci/azure.yml | 6 +++---
 src/lib.rs   | 4 +++-
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/build.rs b/build.rs
index efc95b66..d9d23ca2 100644
--- a/build.rs
+++ b/build.rs
@@ -7,7 +7,6 @@ fn main() {
         rustc_minor_version().expect("Failed to get rustc version");
     let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok();
     let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok();
-    #[allow(unused)]
     let libc_ci = env::var("LIBC_CI").is_ok();
 
     if env::var("CARGO_FEATURE_USE_STD").is_ok() {
@@ -28,6 +27,11 @@ fn main() {
         Some(_) | None => println!("cargo:rustc-cfg=freebsd11"),
     }
 
+    // On CI: deny all warnings
+    if libc_ci {
+        println!("cargo:rustc-cfg=libc_deny_warnings");
+    }
+
     // Rust >= 1.15 supports private module use:
     if rustc_minor_ver >= 15 || rustc_dep_of_std {
         println!("cargo:rustc-cfg=libc_priv_mod_use");
diff --git a/ci/azure.yml b/ci/azure.yml
index 4526361a..456ac7f7 100644
--- a/ci/azure.yml
+++ b/ci/azure.yml
@@ -136,7 +136,7 @@ jobs:
       - template: azure-install-rust.yml
       - script: sh ci/style.sh
         displayName: Check style
-      - script: sh ci/dox.sh
+      - script: LIBC_CI=1 sh ci/dox.sh
         displayName: Generate documentation
       - template: azure-configs/static-websites.yml@rustinfra
         parameters:
@@ -169,7 +169,7 @@ jobs:
       vmImage: ubuntu-16.04
     steps:
       - template: azure-install-rust.yml
-      - script: sh ./ci/build.sh
+      - script: LIBC_CI=1 sh ./ci/build.sh
         displayName: Execute build.sh
     strategy:
       matrix:
@@ -198,7 +198,7 @@ jobs:
       vmImage: macos-10.13
     steps:
       - template: azure-install-rust.yml
-      - script: sh ./ci/build.sh
+      - script: LIBC_CI=1 sh ./ci/build.sh
         displayName: Execute build.sh
     strategy:
       matrix:
diff --git a/src/lib.rs b/src/lib.rs
index 6c2e6c8b..3c757f75 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -14,8 +14,10 @@
 //! [pd]: https://rust-lang.github.io/libc/#platform-specific-documentation
 #![crate_name = "libc"]
 #![crate_type = "rlib"]
-#![cfg_attr(not(feature = "rustc-dep-of-std"), deny(warnings))]
+#![cfg_attr(libc_deny_warnings, deny(warnings))]
 #![allow(bad_style, overflowing_literals, improper_ctypes, unknown_lints)]
+// FIXME: this is due to a rustc bug
+#![allow(redundant_semicolon)]
 // Attributes needed when building as part of the standard library
 #![cfg_attr(
     feature = "rustc-dep-of-std",
-- 
GitLab