From 9c6714e54ddc1477c2b3bac79ca7c95df1093110 Mon Sep 17 00:00:00 2001
From: Tom Parker-Shemilt <palfrey@tevp.net>
Date: Tue, 20 Nov 2018 23:50:37 +0000
Subject: [PATCH] Define _WITH_GETLINE for FreeBSD so we can move getline into
 general Unix

---
 libc-test/build.rs        | 2 ++
 src/unix/bsd/apple/mod.rs | 2 --
 src/unix/mod.rs           | 1 +
 src/unix/notbsd/mod.rs    | 2 --
 4 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/libc-test/build.rs b/libc-test/build.rs
index 90c5640b..7250290c 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -42,6 +42,8 @@ fn main() {
         cfg.define("_XOPEN_SOURCE", Some("700"));
         cfg.define("__EXTENSIONS__", None);
         cfg.define("_LCONV_C99", None);
+    } else if freebsd {
+        cfg.define("_WITH_GETLINE", None);
     }
 
     // Android doesn't actually have in_port_t but it's much easier if we
diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs
index 50bc57f4..ee8108de 100644
--- a/src/unix/bsd/apple/mod.rs
+++ b/src/unix/bsd/apple/mod.rs
@@ -2585,8 +2585,6 @@ extern {
         fd: ::c_int,
         newfd: ::c_int,
     ) -> ::c_int;
-
-    pub fn getline (lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t;
 }
 
 cfg_if! {
diff --git a/src/unix/mod.rs b/src/unix/mod.rs
index 84c31ce7..b7bcac15 100644
--- a/src/unix/mod.rs
+++ b/src/unix/mod.rs
@@ -949,6 +949,7 @@ extern {
     pub fn unlockpt(fd: ::c_int) -> ::c_int;
 
     pub fn strcasestr(cs: *const c_char, ct: *const c_char) -> *mut c_char;
+    pub fn getline (lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t;
 }
 
 cfg_if! {
diff --git a/src/unix/notbsd/mod.rs b/src/unix/notbsd/mod.rs
index d3d79244..6e450068 100644
--- a/src/unix/notbsd/mod.rs
+++ b/src/unix/notbsd/mod.rs
@@ -1229,8 +1229,6 @@ extern {
                    flags: ::c_int) -> ::ssize_t;
     pub fn recvmsg(fd: ::c_int, msg: *mut ::msghdr, flags: ::c_int)
                    -> ::ssize_t;
-
-    pub fn getline (lineptr: *mut *mut c_char, n: *mut size_t, stream: *mut FILE) -> ssize_t;
 }
 
 cfg_if! {
-- 
GitLab