From dcf47d21baeb07262b2ae698846447d02cc52abd Mon Sep 17 00:00:00 2001
From: Alex Crichton <alex@alexcrichton.com>
Date: Fri, 14 Oct 2016 13:54:45 -0700
Subject: [PATCH] Add a number of constants to mips64

---
 .travis.yml                                        |  3 +++
 ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile | 11 +++++++++++
 ci/run.sh                                          |  4 ++++
 src/unix/notbsd/linux/mips64.rs                    |  6 ++++++
 4 files changed, 24 insertions(+)
 create mode 100644 ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile

diff --git a/.travis.yml b/.travis.yml
index e02f9ca2..25fd8aa0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -85,6 +85,9 @@ matrix:
     - os: linux
       env: TARGET=mipsel-unknown-linux-musl
       rust: stable
+    - os: linux
+      env: TARGET=mips64-unknown-linux-gnuabi64
+      rust: nightly
 
     # beta
     - os: linux
diff --git a/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile b/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
new file mode 100644
index 00000000..2eb5de24
--- /dev/null
+++ b/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
@@ -0,0 +1,11 @@
+FROM ubuntu:16.10
+
+RUN apt-get update
+RUN apt-get install -y --no-install-recommends \
+        gcc libc6-dev qemu-user ca-certificates \
+        gcc-mips64-linux-gnuabi64 libc6-dev-mips64-cross \
+        qemu-system-mips64
+
+ENV CARGO_TARGET_MIPS64_UNKNOWN_LINUX_GNUABI64_LINKER=mips64-linux-gnuabi64-gcc \
+    CC_mips64_unknown_linux_gnuabi64=mips64-linux-gnuabi64-gcc \
+    PATH=$PATH:/rust/bin
diff --git a/ci/run.sh b/ci/run.sh
index 760353bf..15721ab9 100755
--- a/ci/run.sh
+++ b/ci/run.sh
@@ -121,6 +121,10 @@ case "$TARGET" in
     qemu-mips -L /usr/mips-linux-gnu $CARGO_TARGET_DIR/$TARGET/debug/libc-test
     ;;
 
+  mips64-unknown-linux-gnuabi64)
+    qemu-mips64 -L /usr/mips64-linux-gnuabi64 $CARGO_TARGET_DIR/$TARGET/debug/libc-test
+    ;;
+
   mips-unknown-linux-musl)
     qemu-mips -L /toolchain/staging_dir/toolchain-mips_34kc_gcc-5.3.0_musl-1.1.15 \
               $CARGO_TARGET_DIR/$TARGET/debug/libc-test
diff --git a/src/unix/notbsd/linux/mips64.rs b/src/unix/notbsd/linux/mips64.rs
index 96124953..30c336e6 100644
--- a/src/unix/notbsd/linux/mips64.rs
+++ b/src/unix/notbsd/linux/mips64.rs
@@ -213,10 +213,12 @@ pub const O_NONBLOCK: ::c_int = 128;
 pub const POSIX_FADV_DONTNEED: ::c_int = 4;
 pub const POSIX_FADV_NOREUSE: ::c_int = 5;
 pub const PTHREAD_STACK_MIN: ::size_t = 131072;
+pub const NFS_SUPER_MAGIC: ::c_long = 0x00006969;
 pub const RLIM_INFINITY: ::rlim_t = 0xffffffffffffffff;
 pub const SA_ONSTACK: ::c_int = 0x08000000;
 pub const SA_SIGINFO: ::c_int = 0x00000008;
 pub const SIGBUS: ::c_int = 10;
+pub const SIGSYS: ::c_int = 12;
 pub const SIGSTKSZ: ::size_t = 0x2000;
 pub const SIG_SETMASK: ::c_int = 3;
 pub const SOCK_DGRAM: ::c_int = 1;
@@ -227,6 +229,10 @@ pub const SO_ERROR: ::c_int = 4103;
 pub const SO_RCVTIMEO: ::c_int = 4102;
 pub const SO_REUSEADDR: ::c_int = 4;
 pub const SO_SNDTIMEO: ::c_int = 4101;
+pub const SO_REUSEPORT: ::c_int = 0x200;
+pub const SO_SNDBUF: ::c_int = 4097;
+pub const SO_RCVBUF: ::c_int = 4098;
+pub const SO_KEEPALIVE: ::c_int = 8;
 
 #[link(name = "util")]
 extern {
-- 
GitLab