diff --git a/libc-test/build.rs b/libc-test/build.rs
index 25eb8e1f9b09b446899ab9f4872cba81ff4e54e7..e4cf8eb64acd8cf0e8fe8f694c7505955bc53561 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -2257,6 +2257,10 @@ fn test_linux(target: &str) {
     let mut cfg = ctest::TestGenerator::new();
     // FIXME: still necessary?
     cfg.define("_GNU_SOURCE", None);
+    // This macro re-deifnes fscanf,scanf,sscanf to link to the symbols that are
+    // deprecated since glibc >= 2.29. This allows Rust binaries to link against
+    // glibc versions older than 2.29.
+    cfg.define("DEPRECATED_SCANF", None);
 
     // FIXME: still necessary?
     cfg.flag("-Wno-deprecated-declarations");