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 {