Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nightly rust hangs forever #46449

Closed
zonyitoo opened this issue Dec 2, 2017 · 46 comments
Closed

Nightly rust hangs forever #46449

zonyitoo opened this issue Dec 2, 2017 · 46 comments
Assignees
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. C-bug Category: This is a bug. I-compiletime Issue: Problems and improvements with respect to compile times. P-high High priority regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@zonyitoo
Copy link

zonyitoo commented Dec 2, 2017

When I tried to use nightly rust to compile my project shadowsocks-rust, it will hang forever.

Stable version works fine.

Reproduce steps:

$ git clone https://github.com/shadowsocks/shadowsocks-rust.git
$ cd shadowsocks-rust
$ cargo install -f
  Installing shadowsocks-rust v1.6.10-nightly (file:///Users/zonyitoo/Projects/shadowsocks-rust)
 Downloading openssl v0.9.22
 Downloading serde v1.0.23
 Downloading num-traits v0.1.41
 Downloading openssl-sys v0.9.22
 Downloading foreign-types v0.3.2
 Downloading foreign-types-shared v0.1.1
    Blocking waiting for file lock on memchr-2.0.1.crate
   Compiling typenum v1.9.0
   Compiling unicode-width v0.1.4
   Compiling openssl v0.9.22
   Compiling lazycell v0.5.1
   Compiling strsim v0.6.0
   Compiling num-traits v0.1.41
... (many more logs)
   Compiling env_logger v0.4.3
   Compiling shadowsocks-rust v1.6.10-nightly (file:///Users/zonyitoo/Projects/shadowsocks-rust)

It will hang forever, but still consumes CPU.

ps shows a rustc process:

zonyitoo         14287  98.3  0.0 25306648   1012 s001  R+   10:36下午  17:20.50 /Users/zonyitoo/.rustup/toolchains/nightly-x86_64-apple-darwin/bin/rustc --crate-name shadowsocks src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg feature="default" --cfg feature="libsodium-ffi" --cfg feature="sodium" -C metadata=fb046a911106e95e -C extra-filename=-fb046a911106e95e --out-dir /Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps -L dependency=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps --extern serde_urlencoded=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libserde_urlencoded-61a60925e70dcbe4.rlib --extern lazy_static=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/liblazy_static-a066899e4d28630a.rlib --extern byteorder=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libbyteorder-1cb3c8ca5707fac7.rlib --extern qrcode=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libqrcode-c4d0865acf488074.rlib --extern tokio_signal=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libtokio_signal-6fa3848f7558b050.rlib --extern url=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/liburl-42ffd8f1fd62548b.rlib --extern futures_cpupool=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libfutures_cpupool-32ced888700d9e3b.rlib --extern scoped_tls=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libscoped_tls-50ac73adf01c31a4.rlib --extern serde_json=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libserde_json-cc1e76046d610c86.rlib --extern openssl=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libopenssl-91c6f1f26b8759c6.rlib --extern subprocess=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libsubprocess-0a3efa9a446563ca.rlib --extern digest=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libdigest-c6d1d61fc5bc9bf0.rlib --extern libsodium_ffi=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/liblibsodium_ffi-f0ea0ac518324990.rlib --extern bytes=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libbytes-54eacfdfc8e87665.rlib --extern ring=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libring-6add70aa26956a4c.rlib --extern typenum=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libtypenum-fdfe19e18f298fbb.rlib --extern time=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libtime-37bf8783b022cc7e.rlib --extern md_5=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libmd_5-f51cf7bee16cb806.rlib --extern libc=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/liblibc-8e42d4cf8815835d.rlib --extern clap=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libclap-2f9d9629604ac78b.rlib --extern env_logger=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libenv_logger-37a09170e3cd67b7.rlib --extern futures=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libfutures-7614b080b7aa6bfa.rlib --extern byte_string=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libbyte_string-8e53eb4422822c2d.rlib --extern rand=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/librand-ba32c60615891fa3.rlib --extern tokio_io=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libtokio_io-0ba48e8839c90dec.rlib --extern log=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/liblog-db3a3cc0c4299968.rlib --extern base64=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libbase64-519a09b2f17b9fbf.rlib --extern tokio_core=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/deps/libtokio_core-c3e74c59a01ac9ad.rlib -L native=/usr/local/Cellar/libsodium/1.0.15/lib -L native=/usr/local/opt/openssl@1.1/lib -L native=/Users/zonyitoo/Projects/shadowsocks-rust/target/release/build/ring-c441a9fe61114cc0/out

Meta

  • rustc:
rustc 1.24.0-nightly (23032d0af 2017-11-30)
binary: rustc
commit-hash: 23032d0afa2b0e0c60a9b2ae62709f846d90007c
commit-date: 2017-11-30
host: x86_64-apple-darwin
release: 1.24.0-nightly
LLVM version: 4.0
  • cargo: cargo 0.24.0-nightly (6529d418d 2017-11-29)
@kennytm kennytm added C-bug Category: This is a bug. I-compiletime Issue: Problems and improvements with respect to compile times. labels Dec 2, 2017
@arielb1 arielb1 added the regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. label Dec 3, 2017
@ghost
Copy link

ghost commented Dec 3, 2017

Is that a git bisect result for the commit id or something else, it's a little unclear from the comments here. If not then I would recommend running git bisect on the nightly build that's failing and report it back. After that me and others can figure out if reverted is possible or works cleanly. If not then a fix should be applied based on what git bisect returns.

@zonyitoo
Copy link
Author

zonyitoo commented Dec 3, 2017

I found this problem after rustup update. So I don't remember which exact commit I was on before update.

It would be the last version before Nov. 1. I guess.

@ghost
Copy link

ghost commented Dec 3, 2017

Actually you can run git bisect on the git repo here: https://github.com/rust-lang/rust/commits/master. As it's up to date. Just clone it and build it. Actually you don't need commit ids, that makes it run faster a few less bisections. If you run git bisect bad or good without commit for both, it runs it against the complete history rather than a range of commits.

@Mark-Simulacrum
Copy link
Member

Last few lines of SODIUM_BUILD_STATIC=yes cargo rustc --lib --release -- --emit=llvm-ir -Ztime-passes -Ztime-llvm-passes -Zprint-llvm-passes are below. It might be due to ThinLTO being enabled by default perhaps (purely based on -write-thinlto-bitcode? cc @alexcrichton

@xerofoify Generally running git bisect isn't too useful in most cases due to how slow that'll be. It's probably easier to bisect using the CI artifacts, which I'll attempt to do myself soon. We try to diagnose the problem ourselves before asking reporters to do so since it's likely our bug.

    time: 0.055; rss: 193MB     write metadata
    time: 3.273; rss: 224MB     translation item collection
    time: 0.017; rss: 232MB     codegen unit partitioning
    time: 4.273; rss: 326MB     translate to LLVM IR
    time: 0.000; rss: 326MB     assert dep graph
    time: 0.000; rss: 326MB     serialize dep graph
  time: 7.792; rss: 326MB       translation
    time: 0.772; rss: 284MB     llvm function passes [shadowsocks0]
    time: 90.584; rss: 6616MB   llvm module passes [shadowsocks0]
Pass Arguments:  -profile-summary-info -module-summary-analysis -write-thinlto-bitcode
Profile summary info
  ModulePass Manager
    Module Summary Analysis
      Unnamed pass: implement Pass::getPassName()
    ThinLTO Bitcode Writer
Pass Arguments:  -domtree -loops -branch-prob -block-freq
  FunctionPass Manager
    Dominator Tree Construction
    Natural Loop Information
    Branch Probability Analysis
    Block Frequency Analysis

@ghost
Copy link

ghost commented Dec 3, 2017

Sorry about that, wasn't sure what the protocol for git bisect was here :).

@Mark-Simulacrum
Copy link
Member

Looks like this was caused by #45225 (cc @eddyb). I suspect that LLVM is struggling with the IR we're handing it...

@eddyb
Copy link
Member

eddyb commented Dec 3, 2017

@Mark-Simulacrum I don't understand the log, is LLVM just slower, or does it end up in some loop?
I feel like we've seen one such bug before but I can't remember which one it was.

@Mark-Simulacrum
Copy link
Member

It's possible it's just slower, I didn't try looking at what was happening with gdb or anything. The memory usage did seem to keep growing so it presumably as doing something....

@ghost
Copy link

ghost commented Dec 3, 2017

It will hang forever, but still consums CPU.

ps shows a rustc process:

zonyitoo 14287 98.3 0.0 25306648 1012 s001 R+ 10:36下午 17:20.50 /Users/zonyitoo/.rustup/toolchains/nightly-x86_64-apple-darwin/bin/rustc --crate-name shadowsocks

Is what the log states. We should check if the build for rust supports it this occurs under gcc as it if does then we have a issue with us and the compiler.

I am curious what is meant by this through:
avoiding LLVM's "first-class aggregates"

in this commit, #45225?

@kennytm
Copy link
Member

kennytm commented Dec 3, 2017

The error only happens when optimization level ≥2. Number of CGUs (ThinLTO) is irrelevant. Most time is spent on SROALegacyPass

@kennytm
Copy link
Member

kennytm commented Dec 4, 2017

I've enabled some debug log for the SROA pass and looks like there's difficulty working with futures::future::AndThen::poll. SROA-ing every such call takes nearly 2 minutes, and there are at least 28 futures-related and_thens in the shadowsocks-rust package…

[00:00:00]    Compiling shadowsocks-rust v1.6.10 (file://$DIR/shadowsocks-rust)
[00:00:00]      Running `rustc --crate-name shadowsocks src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="libsodium-ffi"' --cfg 'feature="sodium"' -C metadata=875e43cd17c0b5a0 -C extra-filename=-875e43cd17c0b5a0 --out-dir $DIR/shadowsocks-rust/target/release/deps -L dependency=$DIR/shadowsocks-rust/target/release/deps --extern tokio_signal=$DIR/shadowsocks-rust/target/release/deps/libtokio_signal-d8d02ef07068b1ca.rlib --extern subprocess=$DIR/shadowsocks-rust/target/release/deps/libsubprocess-3c1ecbd141d33dff.rlib --extern openssl=$DIR/shadowsocks-rust/target/release/deps/libopenssl-1b60528d713e083d.rlib --extern bytes=$DIR/shadowsocks-rust/target/release/deps/libbytes-7b105104e2fe57f0.rlib --extern md_5=$DIR/shadowsocks-rust/target/release/deps/libmd_5-f4490bb4d711237a.rlib --extern lazy_static=$DIR/shadowsocks-rust/target/release/deps/liblazy_static-dd36e56c4b5b6e36.rlib --extern tokio_core=$DIR/shadowsocks-rust/target/release/deps/libtokio_core-cd674c1cee8f4b35.rlib --extern scoped_tls=$DIR/shadowsocks-rust/target/release/deps/libscoped_tls-2741372f6d09b8f2.rlib --extern ring=$DIR/shadowsocks-rust/target/release/deps/libring-28456fadef0887d9.rlib --extern libsodium_ffi=$DIR/shadowsocks-rust/target/release/deps/liblibsodium_ffi-3c35aa1af33659fd.rlib --extern libc=$DIR/shadowsocks-rust/target/release/deps/liblibc-187fc6c13f99925e.rlib --extern byte_string=$DIR/shadowsocks-rust/target/release/deps/libbyte_string-f2e9086bfb1da425.rlib --extern qrcode=$DIR/shadowsocks-rust/target/release/deps/libqrcode-8986450b39a075af.rlib --extern url=$DIR/shadowsocks-rust/target/release/deps/liburl-4b2c5f911212381c.rlib --extern serde_urlencoded=$DIR/shadowsocks-rust/target/release/deps/libserde_urlencoded-25effef210302280.rlib --extern serde_json=$DIR/shadowsocks-rust/target/release/deps/libserde_json-09584eb04dca168e.rlib --extern digest=$DIR/shadowsocks-rust/target/release/deps/libdigest-faeede511d72a534.rlib --extern typenum=$DIR/shadowsocks-rust/target/release/deps/libtypenum-0ea64efc715818d9.rlib --extern time=$DIR/shadowsocks-rust/target/release/deps/libtime-9a37c4925e6970b3.rlib --extern clap=$DIR/shadowsocks-rust/target/release/deps/libclap-a8b942b4941c7197.rlib --extern env_logger=$DIR/shadowsocks-rust/target/release/deps/libenv_logger-3c47b9db34b73bb5.rlib --extern byteorder=$DIR/shadowsocks-rust/target/release/deps/libbyteorder-390f9f29da931bec.rlib --extern tokio_io=$DIR/shadowsocks-rust/target/release/deps/libtokio_io-14bba7a8919ac847.rlib --extern futures=$DIR/shadowsocks-rust/target/release/deps/libfutures-5b90b645077d9497.rlib --extern log=$DIR/shadowsocks-rust/target/release/deps/liblog-820009db7805861d.rlib --extern base64=$DIR/shadowsocks-rust/target/release/deps/libbase64-e45e06e9dc086d37.rlib --extern futures_cpupool=$DIR/shadowsocks-rust/target/release/deps/libfutures_cpupool-bb8344cc22845bf3.rlib --extern rand=$DIR/shadowsocks-rust/target/release/deps/librand-0b5438783367eeba.rlib -L native=/usr/local/Cellar/libsodium/1.0.15/lib -L native=/usr/local/opt/openssl/lib -L native=$DIR/shadowsocks-rust/target/release/build/ring-b4c40f80f2d65dd1/out`
[00:00:50] SROA function: _ZN100_$LT$$RF$$u27$a$u20$mut$u20$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..iter..traits..IntoIterator$GT$9into_iter17h29e23af86a7d2c85E
...
<skipped 17832 lines>
...
[00:01:10] SROA function: _ZN65_$LT$futures..future..chain..Chain$LT$A$C$$u20$B$C$$u20$C$GT$$GT$4poll17h05ca77dd1cc1739aE
[00:01:10] Promoting allocas with mem2reg...
[00:01:10] SROA function: _ZN105_$LT$futures..future..and_then..AndThen$LT$A$C$$u20$B$C$$u20$F$GT$$u20$as$u20$futures..future..Future$GT$4poll17hca25b69dd59146a1E
[00:02:30] Promoting allocas with mem2reg...
[00:03:02] SROA function: _ZN4core3mem7size_of17h9931e69b61525598E
[00:03:02] SROA function: _ZN4core3ptr19swap_nonoverlapping17h48ec9f255a445c1bE
[00:03:02] SROA function: _ZN4core3mem4swap17h58bbc82a017d5836E
...
<skipped 86 lines>
...
[00:03:03] SROA function: _ZN65_$LT$futures..future..chain..Chain$LT$A$C$$u20$B$C$$u20$C$GT$$GT$4poll17h6788e14405a2ffadE
[00:03:03] Promoting allocas with mem2reg...
[00:03:03] SROA function: _ZN105_$LT$futures..future..and_then..AndThen$LT$A$C$$u20$B$C$$u20$F$GT$$u20$as$u20$futures..future..Future$GT$4poll17h466afb4be6fc7f15E
[00:04:16] Promoting allocas with mem2reg...
[00:04:59] SROA function: _ZN4core3mem7size_of17he136b9e66cd6b59bE
[00:04:59] SROA function: _ZN4core3ptr19swap_nonoverlapping17hdeab54ab4295f4f6E
[00:04:59] SROA function: _ZN4core3mem4swap17h82cdf9db11f129e6E
...

@ghost
Copy link

ghost commented Dec 4, 2017

Ok at least from my knowledge this is possibly a issue with LLVM in optimizations if it's failing like that. What version of LLVM is being used here. Maybe a newer version fixes it from upstream already?

@eddyb
Copy link
Member

eddyb commented Dec 7, 2017

I don't know if OSX is different, but I get this instead:

rustc: /home/eddy/Projects/rust-2/src/llvm/lib/Support/SmallVector.cpp:36:
  void llvm::SmallVectorBase::grow_pod(void *, size_t, size_t):
    Assertion `NewElts && "Out of memory"' failed.

@kennytm
Copy link
Member

kennytm commented Dec 7, 2017

LLVM assertions in nightlies are disabled, so normal users won't see this...

@eddyb
Copy link
Member

eddyb commented Dec 7, 2017

We should do bisections with the nightlies that have the assertions enabled (cc @rust-lang/infra).
Also, if it does run out of memory, is the hang some kind of UB result of that?

@eddyb
Copy link
Member

eddyb commented Dec 7, 2017

Backtrace for that OOM (maybe 16GB just aren't enough?):
EDIT: htop shows the process going to 16.3G VIRT 15.5G RES with about 16G free.

#0  0x00007ffff7132274 in raise () from /nix/store/fysbl29a8p8sa9z3wpnqpn56a0b54fap-glibc-2.26-75/lib/libc.so.6
#1  0x00007ffff7133675 in abort () from /nix/store/fysbl29a8p8sa9z3wpnqpn56a0b54fap-glibc-2.26-75/lib/libc.so.6
#2  0x00007ffff712acf7 in __assert_fail_base () from /nix/store/fysbl29a8p8sa9z3wpnqpn56a0b54fap-glibc-2.26-75/lib/libc.so.6
#3  0x00007ffff712ada2 in __assert_fail () from /nix/store/fysbl29a8p8sa9z3wpnqpn56a0b54fap-glibc-2.26-75/lib/libc.so.6
#4  0x00007fffeee5ce8a in llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long) ()
   from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#5  0x00007fffee943e4a in void llvm::BitstreamWriter::EmitAbbreviatedField<unsigned long>(llvm::BitCodeAbbrevOp const&, unsigned long) ()
   from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#6  0x00007fffee94389c in void llvm::BitstreamWriter::EmitRecordWithAbbrevImpl<unsigned long>(unsigned int, llvm::ArrayRef<unsigned long>, llvm::StringRef, llvm::Optional<unsigned int>)
    () from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#7  0x00007fffee9434d9 in void llvm::BitstreamWriter::EmitRecord<llvm::SmallVector<unsigned long, 64u> >(unsigned int, llvm::SmallVector<unsigned long, 64u> const&, unsigned int) ()
   from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#8  0x00007fffee9423b8 in (anonymous namespace)::ModuleBitcodeWriter::writeValueSymbolTable(llvm::ValueSymbolTable const&, bool, llvm::DenseMap<llvm::Function const*, unsigned long, llvm::DenseMapInfo<llvm::Function const*>, llvm::detail::DenseMapPair<llvm::Function const*, unsigned long> >*) ()
   from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#9  0x00007fffee935ce9 in (anonymous namespace)::ModuleBitcodeWriter::write() ()
   from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#10 0x00007fffee92c968 in llvm::BitcodeWriter::writeModule(llvm::Module const*, bool, llvm::ModuleSummaryIndex const*, bool) ()
   from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#11 0x00007fffee939291 in llvm::WriteBitcodeToFile(llvm::Module const*, llvm::raw_ostream&, bool, llvm::ModuleSummaryIndex const*, bool) ()
   from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#12 0x00007fffedbb02aa in (anonymous namespace)::WriteThinLTOBitcode::runOnModule(llvm::Module&) ()
   from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#13 0x00007fffeecace08 in llvm::legacy::PassManagerImpl::run(llvm::Module&) ()
   from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#14 0x00007fffed515803 in LLVMRustThinLTOBufferCreate () from /home/eddy/Projects/rust-2/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/../lib/../lib/librustc_llvm-2d59d9b96ed97eac.so
#15 0x00007ffff4f2766c in rustc_trans::back::lto::ThinBuffer::new () at src/librustc_trans/back/lto.rs:555
#16 rustc_trans::back::write::codegen () at src/librustc_trans/back/write.rs:659
#17 0x00007ffff4f195e9 in rustc_trans::back::write::execute_work_item () at src/librustc_trans/back/write.rs:1303

@eddyb
Copy link
Member

eddyb commented Dec 7, 2017

If I change the crate type to staticlib then it compiles pretty quickly for me.
EDIT: without changing the crate type, just disabling LTO and adding --emit=obj works for me.

@kennytm kennytm added the O-macos Operating system: macOS label Dec 7, 2017
@kennytm
Copy link
Member

kennytm commented Dec 7, 2017

I'm marking it O-macos for now, as just disabling LTO and adding --emit=obj does not work for me.

Edit: Not an -alt build, just regular nightly.

@eddyb
Copy link
Member

eddyb commented Dec 7, 2017

So there are multiple bugs here? Have you been trying the -altbuild?

@kennytm
Copy link
Member

kennytm commented Dec 7, 2017

@eddyb I found one part which is highly relevant to #45225. In src/relay/tcprelay/mod.rs there is a constant

const BUFFER_SIZE: usize = 8 * 1024; // 8K buffer

which is used in several structures, e.g.

pub struct CopyTimeout<R, W>
where
    R: AsyncRead,
    W: AsyncWrite,
{
    r: Option<R>,
    w: Option<W>,
    timeout: Duration,
    amt: u64,
    timer: Option<Timeout>,
    buf: [u8; BUFFER_SIZE],   // <----
    pos: usize,
    cap: usize,
}

Reducing the BUFFER_SIZE from 8 KiB allows the compilation to finish (quoted is the timing for the "llvm module passes" pass):

Size Stable Beta Nightly
1 22s 20s 20s
1024 20s 21s 20s
2048 20s 24s 24s
3072 20s 30s 30s
4096 20s 42s 40s
5120 20s 61s 58s
6144 20s 84s 82s

Note that the time spent in stable is constant, but that for beta and nightly is superlinear.

I'm still reducing the program but this structure (together with some interactions with Futures) should be one contribution of the cause that hangs LLVM and eats up all the memory.

@eddyb
Copy link
Member

eddyb commented Dec 7, 2017

Is it used with enums or directly in argument/return types?
LLVM shouldn't be SROA-ing arrays, but I don't know the actual mechanisms involved :/.

@eddyb
Copy link
Member

eddyb commented Dec 7, 2017

It's possible CopyTimeoutOpt (which would be represented like an union) triggers some edge case in LLVM - we used to use different filler types for unions but now it's all bytes.

@ghost
Copy link

ghost commented Dec 7, 2017

Are you able to give us the output of the assembly itself for what you stated may be causing the problem. It seems that SROAing may happen for arrays or objects.
The well-known scalar replacement of aggregates transformation. This transform breaks up alloca instructions of aggregate type (structure or array) into individual alloca instructions for each member if possible. Then, if possible, it transforms the individual alloca instructions into nice clean scalar SSA form.

@kennytm
Copy link
Member

kennytm commented Dec 7, 2017

Half reduced:

EDIT: Disregard, I haven't compared this with stable branch. It maybe just inherent slowness irrelevant to the regression.

#![forbid(warnings)]

extern crate futures;
extern crate tokio_core;
extern crate tokio_io;

mod config {
    use std::net::SocketAddr;
    pub struct ServerAddr;

    impl ServerAddr {
        pub fn listen_addr(&self) -> &SocketAddr {
            loop {}
        }
    }
    pub struct ServerConfig;
    impl ServerConfig {
        pub fn addr(&self) -> &ServerAddr {
            loop {}
        }
    }
    pub struct Config {
        pub server: Option<ServerConfig>,
    }
}
pub mod relay {
    use std::io;
    use config::Config;
    use futures::Future;
    use tokio_core::reactor::Handle;
    pub mod tcprelay {
        use std::io;
        use relay::{boxed_future, BoxIoFuture};
        use futures::{Future};
        pub mod server {
            use std::io;
            use relay::BoxIoFuture;
            use relay::Context;
            use futures::Future;
            use futures::stream::Stream;
            use tokio_core::net::{TcpListener};
            use super::{tunnel, EncryptedHalfFut};
            use super::utils::CopyTimeoutOpt;

            struct TcpRelayClientHandshake;
            impl TcpRelayClientHandshake {
                fn handshake(self) -> BoxIoFuture<TcpRelayClientPending> {
                    loop {}
                }
            }

            struct TcpRelayClientPending;
            impl TcpRelayClientPending {
                fn connect(self) -> BoxIoFuture<TcpRelayClientConnected> {
                    loop {}
                }
            }

            struct TcpRelayClientConnected;
            fn copy_timeout_opt() -> CopyTimeoutOpt {
                loop {}
            }
            fn client() -> EncryptedHalfFut {
                loop {}
            }

            impl TcpRelayClientConnected {
                fn tunnel(self) -> BoxIoFuture<()> {
                    tunnel(copy_timeout_opt(), client())
                }
            }

            pub fn run() -> Box<Future<Item = (), Error = io::Error>> {
                let mut fut: Option<Box<Future<Item = (), Error = io::Error>>> = None;
                Context::with(|ctx| {
                    let config = ctx.config();
                    for svr_cfg in &config.server {
                        let listener = {
                            let addr = svr_cfg.addr();
                            let addr = addr.listen_addr();
                            let listener =
                                TcpListener::bind(&addr, ctx.handle()).unwrap_or_else(|_| loop {});
                            listener
                        };
                        let listening = listener.incoming().for_each(move |_| {
                            let client = TcpRelayClientHandshake {};
                            let fut = client
                                .handshake()
                                .and_then(|c| c.connect())
                                .and_then(|c| c.tunnel())
                                .map_err(|_| ());
                            Context::with(|ctx| ctx.handle().spawn(fut));
                            Ok(())
                        });
                        fut = Some(Box::new(listening)
                            as Box<Future<Item = (), Error = io::Error>>)
                    }
                    loop {}
                })
            }
        }
        mod utils {
            use std::io;
            use futures::{Future, Poll};

            pub struct CopyTimeoutOpt {
                _buf: [u8; 8192],
            }
            impl Future for CopyTimeoutOpt {
                type Item = (u64, (), ());
                type Error = io::Error;
                fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
                    loop {}
                }
            }
        }

        struct EncryptedHalf;

        type EncryptedHalfFut = BoxIoFuture<EncryptedHalf>;

        fn tunnel<CF, CFI, SF, SFI>(c2s: CF, s2c: SF) -> BoxIoFuture<()>
        where
            CF: Future<Item = CFI, Error = io::Error> + 'static,
            SF: Future<Item = SFI, Error = io::Error> + 'static,
        {
            let c2s = c2s.then(move |res| match res {
                Ok(..) => Ok(()),
                Err(err) => Err(err),
            });
            let s2c = s2c.then(move |res| match res {
                Ok(..) => Ok(()),
                Err(err) => Err(err),
            });
            let fut = c2s.select(s2c)
                .and_then(move |_| Ok(()))
                .map_err(|(err, _)| err);
            boxed_future(fut)
        }
    }

    type BoxIoFuture<T> = Box<Future<Item = T, Error = io::Error>>;
    fn boxed_future<T, E, F>(f: F) -> Box<Future<Item = T, Error = E>>
    where
        F: Future<Item = T, Error = E> + 'static,
    {
        Box::new(f)
    }
    thread_local!(static CONTEXT: Context = loop {});
    struct Context;
    impl Context {
        fn with<F, R>(f: F) -> R
        where
            F: FnOnce(&Context) -> R,
        {
            CONTEXT.with(f)
        }

        fn handle(&self) -> &Handle {
            loop {}
        }

        fn config(&self) -> &Config {
            loop {}
        }
    }
}

Expected timing of the code above (replace the "8192" by a number below):

Size Time
1 1.3s
1024 1.6s
2048 1.6s
3072 2.0s
4096 3.0s
5120 5.0s
6144 7.1s
7168 9.9s
8192 14.0s
9216 21.0s
10240 29.2s

Looks like quadratic or cubic.

@eddyb
Copy link
Member

eddyb commented Dec 13, 2017

cc @rust-lang/compiler Should we untag as a regression from stable to beta given that this is a longstanding issue in LLVM? Either way we should separate the LLVM bug and me triggering it.

@kennytm kennytm added the A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. label Dec 13, 2017
Mark-Simulacrum added a commit to rust-lang/rustc-perf that referenced this issue Dec 15, 2017
@eddyb
Copy link
Member

eddyb commented Dec 15, 2017

@serge-sans-paille in LLVM IRC came up with this patch https://reviews.llvm.org/D41296, which solves at least the quadratic slowdown caused by SROA trying to generate fresh value names.

EDIT: it makes one testcase go from 128s and 9.8GB to 4.6s and 248MB.

EDIT2: the original crate finishes a full rebuild in 363.77s (for comparison, 1.21 does it in 209.66s).

bors added a commit that referenced this issue Dec 15, 2017
rustc_trans: approximate ABI alignment for padding/union fillers.

Before #45225 and after this PR, unions and enums are filled with integers of size and alignment matching their alignment (e.g. `Option<u32>` becomes `[u32; 2]`) instead of mere bytes.
Also, the alignment padding between struct fields gets this treatment after this PR.

Partially helps with some reduced testcases in #46449, although it doesn't solve the bug itself.
@arielb1 arielb1 added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Dec 21, 2017
@eddyb
Copy link
Member

eddyb commented Dec 21, 2017

https://reviews.llvm.org/D41296 is still unreviewed. Does someone know who to poke?
cc @alexcrichton Should we apply this patch to our LLVM on beta?

EDIT: The layout PR has been taken out of the current beta, for now, and the LLVM patch is now getting reviewed (and generalized beyond SROA).

@joker-eph
Copy link

If you don't need to debug the value names at the IR level, you can set a flag on the LLVMContext to discard them automatically, it would much improve the performance.
For instance clang sets this flag by default in Release mode.

bors added a commit that referenced this issue Dec 22, 2017
Bounce out the layout refactor from beta

@eddyb's #45225 was supposed to get into get into 1.24, but due to an ordering mistake, it had snuck into 1.23.

That wide-effect translation-changing PR had poked LLVM's weak corners and caused many regressions (3 of them have fixes I include here, but also #46897, #46845, #46449, #46371). I don't think it is a good idea to land it in the beta (1.23) because there are bound to be some regressions we didn't patch.

Therefore, I am reverting it in time for stable, along with its related regression fixes.

r? @michaelwoerister (I think)
@pnkfelix
Copy link
Member

I believe this should be fixed by #46925 .

Should we trigger a beta .3 release (presumably in a manner similar to that of #46580), so that people can actually test out all these various fixes via rustup?

@nikomatsakis
Copy link
Contributor

triage: P-high

I'm bumping this up to P-high -- it affects the upcoming beta. @eddyb can you give us a status update of the LLVM bug?

@rust-highfive rust-highfive added the P-high High priority label Jan 4, 2018
@nagisa
Copy link
Member

nagisa commented Jan 4, 2018

We will want to land the LLVM patch into our fork either way (we haven’t yet upgraded to our own LLVM to 5.0 yet, IIRC and this would land against 6.0 upstream).

That being said, disabling name generation in LLVM when --emit=llvm-ir is not requested, sounds like a great idea nevertheless.

@nagisa
Copy link
Member

nagisa commented Jan 4, 2018

Using LLVM context configured to not retain any names brings the compilation time back to a fairly reasonable

   Compiling num-traits v0.1.41
   Compiling unicode-width v0.1.4
   Compiling byte-tools v0.2.0
   Compiling untrusted v0.5.1
   Compiling vec_map v0.8.0
   Compiling percent-encoding v1.0.1
   Compiling ansi_term v0.10.2
   Compiling pkg-config v0.3.9
   Compiling rayon-core v1.3.0
   Compiling arrayref v0.3.4
   Compiling bitflags v1.0.1
   Compiling itoa v0.3.4
   Compiling utf8-ranges v1.0.0
   Compiling scoped-tls v0.1.0
   Compiling dtoa v0.4.2
   Compiling matches v0.1.6
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name num_traits /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/num-traits-0.1.41/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=84421a36ae353688 -C extra-filename=-84421a36ae353688 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name unicode_width /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/unicode-width-0.1.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' -C metadata=ec82559bf62d2254 -C extra-filename=-ec82559bf62d2254 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name byte_tools /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/byte-tools-0.2.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=10ffe0d41c495fdd -C extra-filename=-10ffe0d41c495fdd --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name untrusted /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/untrusted-0.5.1/src/untrusted.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=2c41a5706a3a4816 -C extra-filename=-2c41a5706a3a4816 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name vec_map /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/vec_map-0.8.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=e1b041af6ccdbed8 -C extra-filename=-e1b041af6ccdbed8 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name percent_encoding /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/percent-encoding-1.0.1/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=8610131edee05741 -C extra-filename=-8610131edee05741 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name ansi_term /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/ansi_term-0.10.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=7d5bb25a23944c7d -C extra-filename=-7d5bb25a23944c7d --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name build_script_build /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.3.0/build.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=ff1b0ce26b2dd563 -C extra-filename=-ff1b0ce26b2dd563 --out-dir /tmp/shadowsocks-rust/target/release/build/rayon-core-ff1b0ce26b2dd563 -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name pkg_config /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=52ea74684a0ac56d -C extra-filename=-52ea74684a0ac56d --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name arrayref /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/arrayref-0.3.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=2d87a1a197925121 -C extra-filename=-2d87a1a197925121 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name bitflags /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="example_generated"' -C metadata=9854d75d5eb5ba02 -C extra-filename=-9854d75d5eb5ba02 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name itoa /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/itoa-0.3.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=6f04ce52c9820ae0 -C extra-filename=-6f04ce52c9820ae0 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name scoped_tls /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=901f4d19f6f7d2e4 -C extra-filename=-901f4d19f6f7d2e4 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name utf8_ranges /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/utf8-ranges-1.0.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=26c0718e35f8bd30 -C extra-filename=-26c0718e35f8bd30 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name dtoa /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/dtoa-0.4.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=afc7bb8a657c0c9c -C extra-filename=-afc7bb8a657c0c9c --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name matches /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/matches-0.1.6/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=7ab4c84bc15de2dc -C extra-filename=-7ab4c84bc15de2dc --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling regex-syntax v0.4.1
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name regex_syntax /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/regex-syntax-0.4.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=98d6a2e3311fd90d -C extra-filename=-98d6a2e3311fd90d --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling openssl v0.9.22
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name build_script_build /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.22/build.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=acedba966281e9ad -C extra-filename=-acedba966281e9ad --out-dir /tmp/shadowsocks-rust/target/release/build/openssl-acedba966281e9ad -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling byteorder v1.2.1
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name byteorder /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/byteorder-1.2.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=e988d2f6a69b2f3c -C extra-filename=-e988d2f6a69b2f3c --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling gcc v0.3.54
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name gcc /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=d95417a1b856c3f4 -C extra-filename=-d95417a1b856c3f4 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling qrcode v0.4.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name qrcode /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/qrcode-0.4.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=ecd2cb6be5f9d7b4 -C extra-filename=-ecd2cb6be5f9d7b4 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling libc v0.2.34
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name libc /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.34/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=c100df01d157afe5 -C extra-filename=-c100df01d157afe5 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling void v1.0.2
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name void /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=6cb666e0572a664f -C extra-filename=-6cb666e0572a664f --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling either v1.4.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name either /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/either-1.4.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=92183bf109565bea -C extra-filename=-92183bf109565bea --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling cfg-if v0.1.2
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name cfg_if /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-0.1.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=599f22a8a1c04a4a -C extra-filename=-599f22a8a1c04a4a --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling futures v0.1.17
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name futures /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.17/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' --cfg 'feature="with-deprecated"' -C metadata=887a78df9937843a -C extra-filename=-887a78df9937843a --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling typenum v1.9.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name build_script_main /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/typenum-1.9.0/build/main.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=67bad57930c74d5b -C extra-filename=-67bad57930c74d5b --out-dir /tmp/shadowsocks-rust/target/release/build/typenum-67bad57930c74d5b -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling foreign-types-shared v0.1.1
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name foreign_types_shared /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/foreign-types-shared-0.1.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=28e57635316923ef -C extra-filename=-28e57635316923ef --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling scopeguard v0.3.3
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name scopeguard /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/scopeguard-0.3.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=e5971820c9484b79 -C extra-filename=-e5971820c9484b79 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling byte_string v1.0.0
   Compiling slab v0.3.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name slab /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/slab-0.3.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=2261768919d73df1 -C extra-filename=-2261768919d73df1 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling strsim v0.6.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name byte_string /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/byte_string-1.0.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=6dd1e5b5cde0b4c8 -C extra-filename=-6dd1e5b5cde0b4c8 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name strsim /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/strsim-0.6.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=92775543e4a7f2ff -C extra-filename=-92775543e4a7f2ff --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling unicode-normalization v0.1.5
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name unicode_normalization /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/unicode-normalization-0.1.5/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=389b46939f9e931e -C extra-filename=-389b46939f9e931e --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling cc v1.0.3
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name cc /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=31b14a17f45b6bc2 -C extra-filename=-31b14a17f45b6bc2 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling nodrop v0.1.12
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name nodrop /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/nodrop-0.1.12/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=50d3a0269a0363ad -C extra-filename=-50d3a0269a0363ad --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling lazy_static v0.2.11
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name lazy_static /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-0.2.11/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=21e987f4be5bdaf7 -C extra-filename=-21e987f4be5bdaf7 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling safemem v0.2.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name safemem /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/safemem-0.2.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=90e8673d01eb8bef -C extra-filename=-90e8673d01eb8bef --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling bitflags v0.9.1
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name bitflags /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-0.9.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="example_generated"' -C metadata=8630009f8fa93f4f -C extra-filename=-8630009f8fa93f4f --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling serde v1.0.23
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name serde /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/serde-1.0.23/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=90be96b9f7b7bd25 -C extra-filename=-90be96b9f7b7bd25 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling log v0.3.8
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name log /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/log-0.3.8/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=135a6fd754b72b2c -C extra-filename=-135a6fd754b72b2c --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling lazycell v0.5.1
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name lazycell /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/lazycell-0.5.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=61fe073dba480197 -C extra-filename=-61fe073dba480197 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling slab v0.4.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name slab /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/slab-0.4.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=1287dd479a35c0e1 -C extra-filename=-1287dd479a35c0e1 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling textwrap v0.9.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name textwrap /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/textwrap-0.9.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=0c8cb2f769864bb2 -C extra-filename=-0c8cb2f769864bb2 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern unicode_width=/tmp/shadowsocks-rust/target/release/deps/libunicode_width-ec82559bf62d2254.rlib --cap-lints allow`
   Compiling unicode-bidi v0.3.4
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name unicode_bidi /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/unicode-bidi-0.3.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' -C metadata=41190b487ea24b2f -C extra-filename=-41190b487ea24b2f --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern matches=/tmp/shadowsocks-rust/target/release/deps/libmatches-7ab4c84bc15de2dc.rlib --cap-lints allow`
   Compiling block-buffer v0.3.3
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name block_buffer /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/block-buffer-0.3.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=3447b6e531634135 -C extra-filename=-3447b6e531634135 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern byte_tools=/tmp/shadowsocks-rust/target/release/deps/libbyte_tools-10ffe0d41c495fdd.rlib --extern arrayref=/tmp/shadowsocks-rust/target/release/deps/libarrayref-2d87a1a197925121.rlib --cap-lints allow`
   Compiling unreachable v1.0.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name unreachable /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/unreachable-1.0.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=8a510302b29541a7 -C extra-filename=-8a510302b29541a7 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern void=/tmp/shadowsocks-rust/target/release/deps/libvoid-6cb666e0572a664f.rlib --cap-lints allow`
     Running `/tmp/shadowsocks-rust/target/release/build/rayon-core-ff1b0ce26b2dd563/build-script-build`
   Compiling foreign-types v0.3.2
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name foreign_types /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/foreign-types-0.3.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=fd6eac128f2178ca -C extra-filename=-fd6eac128f2178ca --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern foreign_types_shared=/tmp/shadowsocks-rust/target/release/deps/libforeign_types_shared-28e57635316923ef.rlib --cap-lints allow`
   Compiling coco v0.1.1
   Compiling net2 v0.2.31
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name coco /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/coco-0.1.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=cb22e69695a1d6a5 -C extra-filename=-cb22e69695a1d6a5 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern either=/tmp/shadowsocks-rust/target/release/deps/libeither-92183bf109565bea.rlib --extern scopeguard=/tmp/shadowsocks-rust/target/release/deps/libscopeguard-e5971820c9484b79.rlib --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name net2 /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.31/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="duration"' -C metadata=47145c16f72184b3 -C extra-filename=-47145c16f72184b3 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern cfg_if=/tmp/shadowsocks-rust/target/release/deps/libcfg_if-599f22a8a1c04a4a.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow`
   Compiling rand v0.3.18
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name rand /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.3.18/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=c6c254e397d5d7fe -C extra-filename=-c6c254e397d5d7fe --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow`
   Compiling subprocess v0.1.12
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name subprocess /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/subprocess-0.1.12/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=b108bc229820c3c7 -C extra-filename=-b108bc229820c3c7 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow`
   Compiling atty v0.2.3
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name atty /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/atty-0.2.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=043bbbee967c1ee1 -C extra-filename=-043bbbee967c1ee1 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow`
   Compiling num_cpus v1.7.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name num_cpus /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/num_cpus-1.7.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=ed8a1ea85d3d7a13 -C extra-filename=-ed8a1ea85d3d7a13 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow`
   Compiling iovec v0.1.1
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name iovec /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/iovec-0.1.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=3f138f227c97e540 -C extra-filename=-3f138f227c97e540 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow`
   Compiling time v0.1.38
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name time /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.1.38/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=b597a16ea20d29a6 -C extra-filename=-b597a16ea20d29a6 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow`
   Compiling memchr v2.0.1
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name memchr /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/memchr-2.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="libc"' --cfg 'feature="use_std"' -C metadata=975b5e366434ede6 -C extra-filename=-975b5e366434ede6 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow`
   Compiling base64 v0.6.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name base64 /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/base64-0.6.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=e6b70ef6c11a69f2 -C extra-filename=-e6b70ef6c11a69f2 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern safemem=/tmp/shadowsocks-rust/target/release/deps/libsafemem-90e8673d01eb8bef.rlib --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-e988d2f6a69b2f3c.rlib --cap-lints allow`
   Compiling libsodium-ffi v0.1.9
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name build_script_build /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/libsodium-ffi-0.1.9/build.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=c252bf4b8e79de13 -C extra-filename=-c252bf4b8e79de13 --out-dir /tmp/shadowsocks-rust/target/release/build/libsodium-ffi-c252bf4b8e79de13 -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern pkg_config=/tmp/shadowsocks-rust/target/release/deps/libpkg_config-52ea74684a0ac56d.rlib --cap-lints allow`
   Compiling thread_local v0.3.4
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name thread_local /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/thread_local-0.3.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=893232cdacabed12 -C extra-filename=-893232cdacabed12 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern unreachable=/tmp/shadowsocks-rust/target/release/deps/libunreachable-8a510302b29541a7.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-21e987f4be5bdaf7.rlib --cap-lints allow`
   Compiling clap v2.28.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name clap /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.28.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="ansi_term"' --cfg 'feature="atty"' --cfg 'feature="color"' --cfg 'feature="default"' --cfg 'feature="strsim"' --cfg 'feature="suggestions"' --cfg 'feature="vec_map"' -C metadata=235aad276dabfc9b -C extra-filename=-235aad276dabfc9b --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern ansi_term=/tmp/shadowsocks-rust/target/release/deps/libansi_term-7d5bb25a23944c7d.rlib --extern bitflags=/tmp/shadowsocks-rust/target/release/deps/libbitflags-9854d75d5eb5ba02.rlib --extern atty=/tmp/shadowsocks-rust/target/release/deps/libatty-043bbbee967c1ee1.rlib --extern textwrap=/tmp/shadowsocks-rust/target/release/deps/libtextwrap-0c8cb2f769864bb2.rlib --extern strsim=/tmp/shadowsocks-rust/target/release/deps/libstrsim-92775543e4a7f2ff.rlib --extern vec_map=/tmp/shadowsocks-rust/target/release/deps/libvec_map-e1b041af6ccdbed8.rlib --extern unicode_width=/tmp/shadowsocks-rust/target/release/deps/libunicode_width-ec82559bf62d2254.rlib --cap-lints allow`
     Running `/tmp/shadowsocks-rust/target/release/build/typenum-67bad57930c74d5b/build-script-main`
   Compiling mio v0.6.11
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name mio /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/mio-0.6.11/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="with-deprecated"' -C metadata=e09763bcbede75c1 -C extra-filename=-e09763bcbede75c1 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --extern lazycell=/tmp/shadowsocks-rust/target/release/deps/liblazycell-61fe073dba480197.rlib --extern slab=/tmp/shadowsocks-rust/target/release/deps/libslab-2261768919d73df1.rlib --extern net2=/tmp/shadowsocks-rust/target/release/deps/libnet2-47145c16f72184b3.rlib --extern iovec=/tmp/shadowsocks-rust/target/release/deps/libiovec-3f138f227c97e540.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-135a6fd754b72b2c.rlib --cap-lints allow`
   Compiling bytes v0.4.5
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name bytes /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/bytes-0.4.5/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=bacf04505d555b88 -C extra-filename=-bacf04505d555b88 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-e988d2f6a69b2f3c.rlib --extern iovec=/tmp/shadowsocks-rust/target/release/deps/libiovec-3f138f227c97e540.rlib --cap-lints allow`
   Compiling futures-cpupool v0.1.7
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name futures_cpupool /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-cpupool-0.1.7/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="futures"' --cfg 'feature="with-deprecated"' -C metadata=08df12b5058f40f0 -C extra-filename=-08df12b5058f40f0 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern num_cpus=/tmp/shadowsocks-rust/target/release/deps/libnum_cpus-ed8a1ea85d3d7a13.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-887a78df9937843a.rlib --cap-lints allow`
   Compiling idna v0.1.4
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name idna /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/idna-0.1.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=305ec7b976e74223 -C extra-filename=-305ec7b976e74223 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern matches=/tmp/shadowsocks-rust/target/release/deps/libmatches-7ab4c84bc15de2dc.rlib --extern unicode_bidi=/tmp/shadowsocks-rust/target/release/deps/libunicode_bidi-41190b487ea24b2f.rlib --extern unicode_normalization=/tmp/shadowsocks-rust/target/release/deps/libunicode_normalization-389b46939f9e931e.rlib --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name rayon_core /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.3.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=9571198b3b95ee6a -C extra-filename=-9571198b3b95ee6a --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern num_cpus=/tmp/shadowsocks-rust/target/release/deps/libnum_cpus-ed8a1ea85d3d7a13.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --extern coco=/tmp/shadowsocks-rust/target/release/deps/libcoco-cb22e69695a1d6a5.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-21e987f4be5bdaf7.rlib --extern rand=/tmp/shadowsocks-rust/target/release/deps/librand-c6c254e397d5d7fe.rlib --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name typenum /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/typenum-1.9.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=8a9986b23f8c2e7b -C extra-filename=-8a9986b23f8c2e7b --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling aho-corasick v0.6.4
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name aho_corasick /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/aho-corasick-0.6.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=211a0a12920fa620 -C extra-filename=-211a0a12920fa620 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern memchr=/tmp/shadowsocks-rust/target/release/deps/libmemchr-975b5e366434ede6.rlib --cap-lints allow`
   Compiling openssl-sys v0.9.22
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name build_script_build /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.9.22/build.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=c0cdc3f23448badc -C extra-filename=-c0cdc3f23448badc --out-dir /tmp/shadowsocks-rust/target/release/build/openssl-sys-c0cdc3f23448badc -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern pkg_config=/tmp/shadowsocks-rust/target/release/deps/libpkg_config-52ea74684a0ac56d.rlib --extern cc=/tmp/shadowsocks-rust/target/release/deps/libcc-31b14a17f45b6bc2.rlib --cap-lints allow`
     Running `/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-c252bf4b8e79de13/build-script-build`
   Compiling tokio-io v0.1.4
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name tokio_io /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-io-0.1.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=a35b62340658ca6e -C extra-filename=-a35b62340658ca6e --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-887a78df9937843a.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-bacf04505d555b88.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-135a6fd754b72b2c.rlib --cap-lints allow`
   Compiling generic-array v0.8.3
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name generic_array /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.8.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=f7480d032fcf5c7e -C extra-filename=-f7480d032fcf5c7e --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern typenum=/tmp/shadowsocks-rust/target/release/deps/libtypenum-8a9986b23f8c2e7b.rlib --extern nodrop=/tmp/shadowsocks-rust/target/release/deps/libnodrop-50d3a0269a0363ad.rlib --cap-lints allow`
   Compiling regex v0.2.3
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name regex /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/regex-0.2.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=07d20f1ad5509f7b -C extra-filename=-07d20f1ad5509f7b --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern regex_syntax=/tmp/shadowsocks-rust/target/release/deps/libregex_syntax-98d6a2e3311fd90d.rlib --extern memchr=/tmp/shadowsocks-rust/target/release/deps/libmemchr-975b5e366434ede6.rlib --extern aho_corasick=/tmp/shadowsocks-rust/target/release/deps/libaho_corasick-211a0a12920fa620.rlib --extern thread_local=/tmp/shadowsocks-rust/target/release/deps/libthread_local-893232cdacabed12.rlib --extern utf8_ranges=/tmp/shadowsocks-rust/target/release/deps/libutf8_ranges-26c0718e35f8bd30.rlib --cap-lints allow`
   Compiling rayon v0.7.1
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name rayon /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-0.7.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=781c009f33f8aa2e -C extra-filename=-781c009f33f8aa2e --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern rayon_core=/tmp/shadowsocks-rust/target/release/deps/librayon_core-9571198b3b95ee6a.rlib --cap-lints allow`
   Compiling digest v0.6.2
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name digest /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/digest-0.6.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=367cf326e7ab4857 -C extra-filename=-367cf326e7ab4857 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern generic_array=/tmp/shadowsocks-rust/target/release/deps/libgeneric_array-f7480d032fcf5c7e.rlib --cap-lints allow`
   Compiling mio-uds v0.6.4
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name mio_uds /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/mio-uds-0.6.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=5365a05f13ffafcb -C extra-filename=-5365a05f13ffafcb --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --extern mio=/tmp/shadowsocks-rust/target/release/deps/libmio-e09763bcbede75c1.rlib --cap-lints allow`
   Compiling tokio-core v0.1.10
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name tokio_core /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-core-0.1.10/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=556bf573bd895382 -C extra-filename=-556bf573bd895382 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern iovec=/tmp/shadowsocks-rust/target/release/deps/libiovec-3f138f227c97e540.rlib --extern slab=/tmp/shadowsocks-rust/target/release/deps/libslab-1287dd479a35c0e1.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-bacf04505d555b88.rlib --extern mio=/tmp/shadowsocks-rust/target/release/deps/libmio-e09763bcbede75c1.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-135a6fd754b72b2c.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-887a78df9937843a.rlib --extern scoped_tls=/tmp/shadowsocks-rust/target/release/deps/libscoped_tls-901f4d19f6f7d2e4.rlib --extern tokio_io=/tmp/shadowsocks-rust/target/release/deps/libtokio_io-a35b62340658ca6e.rlib --cap-lints allow`
   Compiling md-5 v0.5.2
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name md_5 /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/md-5-0.5.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="digest"' --cfg 'feature="generic"' --cfg 'feature="generic-array"' -C metadata=4e9ba4fe21c2bf6d -C extra-filename=-4e9ba4fe21c2bf6d --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern byte_tools=/tmp/shadowsocks-rust/target/release/deps/libbyte_tools-10ffe0d41c495fdd.rlib --extern block_buffer=/tmp/shadowsocks-rust/target/release/deps/libblock_buffer-3447b6e531634135.rlib --extern digest=/tmp/shadowsocks-rust/target/release/deps/libdigest-367cf326e7ab4857.rlib --extern generic_array=/tmp/shadowsocks-rust/target/release/deps/libgeneric_array-f7480d032fcf5c7e.rlib --cap-lints allow`
     Running `/tmp/shadowsocks-rust/target/release/build/openssl-sys-c0cdc3f23448badc/build-script-build`
     Running `/tmp/shadowsocks-rust/target/release/build/openssl-acedba966281e9ad/build-script-build`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name openssl_sys /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.9.22/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=d365556419a7e646 -C extra-filename=-d365556419a7e646 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib --cfg 'osslconf="OPENSSL_NO_KRB5"' --cfg 'osslconf="OPENSSL_NO_RFC3779"' --cfg ossl102 -l ssl -l crypto`
   Compiling url v1.6.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name url /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/url-1.6.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=d8f1b99106747c73 -C extra-filename=-d8f1b99106747c73 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern matches=/tmp/shadowsocks-rust/target/release/deps/libmatches-7ab4c84bc15de2dc.rlib --extern idna=/tmp/shadowsocks-rust/target/release/deps/libidna-305ec7b976e74223.rlib --extern percent_encoding=/tmp/shadowsocks-rust/target/release/deps/libpercent_encoding-8610131edee05741.rlib --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name openssl /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.22/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=f6b18609e0059bf2 -C extra-filename=-f6b18609e0059bf2 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --extern bitflags=/tmp/shadowsocks-rust/target/release/deps/libbitflags-8630009f8fa93f4f.rlib --extern foreign_types=/tmp/shadowsocks-rust/target/release/deps/libforeign_types-fd6eac128f2178ca.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-21e987f4be5bdaf7.rlib --extern openssl_sys=/tmp/shadowsocks-rust/target/release/deps/libopenssl_sys-d365556419a7e646.rlib --cap-lints allow --cfg ossl102 --cfg ossl10x --cfg 'osslconf="OPENSSL_NO_KRB5"' --cfg 'osslconf="OPENSSL_NO_RFC3779"' -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib`
   Compiling ring v0.11.0
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name build_script_build /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.11.0/build.rs --crate-type bin --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="dev_urandom_fallback"' --cfg 'feature="use_heap"' -C metadata=f0bf955265734099 -C extra-filename=-f0bf955265734099 --out-dir /tmp/shadowsocks-rust/target/release/build/ring-f0bf955265734099 -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern gcc=/tmp/shadowsocks-rust/target/release/deps/libgcc-d95417a1b856c3f4.rlib --extern rayon=/tmp/shadowsocks-rust/target/release/deps/librayon-781c009f33f8aa2e.rlib --cap-lints allow`
   Compiling tokio-signal v0.1.2
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name tokio_signal /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-signal-0.1.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=67c1635271f4796a -C extra-filename=-67c1635271f4796a --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern tokio_core=/tmp/shadowsocks-rust/target/release/deps/libtokio_core-556bf573bd895382.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-887a78df9937843a.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --extern mio_uds=/tmp/shadowsocks-rust/target/release/deps/libmio_uds-5365a05f13ffafcb.rlib --extern mio=/tmp/shadowsocks-rust/target/release/deps/libmio-e09763bcbede75c1.rlib --cap-lints allow`
   Compiling serde_json v1.0.7
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name serde_json /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/serde_json-1.0.7/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' -C metadata=19e060a5d064c702 -C extra-filename=-19e060a5d064c702 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern num_traits=/tmp/shadowsocks-rust/target/release/deps/libnum_traits-84421a36ae353688.rlib --extern dtoa=/tmp/shadowsocks-rust/target/release/deps/libdtoa-afc7bb8a657c0c9c.rlib --extern itoa=/tmp/shadowsocks-rust/target/release/deps/libitoa-6f04ce52c9820ae0.rlib --extern serde=/tmp/shadowsocks-rust/target/release/deps/libserde-90be96b9f7b7bd25.rlib --cap-lints allow`
   Compiling serde_urlencoded v0.5.1
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name serde_urlencoded /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/serde_urlencoded-0.5.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=4080467101b06ca8 -C extra-filename=-4080467101b06ca8 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern itoa=/tmp/shadowsocks-rust/target/release/deps/libitoa-6f04ce52c9820ae0.rlib --extern dtoa=/tmp/shadowsocks-rust/target/release/deps/libdtoa-afc7bb8a657c0c9c.rlib --extern url=/tmp/shadowsocks-rust/target/release/deps/liburl-d8f1b99106747c73.rlib --extern serde=/tmp/shadowsocks-rust/target/release/deps/libserde-90be96b9f7b7bd25.rlib --cap-lints allow`
     Running `/tmp/shadowsocks-rust/target/release/build/ring-f0bf955265734099/build-script-build`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name ring /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.11.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="dev_urandom_fallback"' --cfg 'feature="use_heap"' -C metadata=098825fced7600f2 -C extra-filename=-098825fced7600f2 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-21e987f4be5bdaf7.rlib --extern untrusted=/tmp/shadowsocks-rust/target/release/deps/libuntrusted-2c41a5706a3a4816.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow -L native=/tmp/shadowsocks-rust/target/release/build/ring-653cbe20462d59d4/out -l static=ring-test -l static=ring-core`
   Compiling env_logger v0.4.3
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name env_logger /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/env_logger-0.4.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="regex"' -C metadata=78fcf7aec9923da0 -C extra-filename=-78fcf7aec9923da0 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-135a6fd754b72b2c.rlib --extern regex=/tmp/shadowsocks-rust/target/release/deps/libregex-07d20f1ad5509f7b.rlib --cap-lints allow`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name libsodium_ffi /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/libsodium-ffi-0.1.9/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=cebc764bfdf09243 -C extra-filename=-cebc764bfdf09243 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --cap-lints allow -L native=/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-563214c5b5467f13/out/lib -l static=sodium`
   Compiling shadowsocks-rust v1.6.10 (file:///tmp/shadowsocks-rust)
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name shadowsocks src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="libsodium-ffi"' --cfg 'feature="sodium"' -C metadata=fbcb65dffa741a49 -C extra-filename=-fbcb65dffa741a49 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern rand=/tmp/shadowsocks-rust/target/release/deps/librand-c6c254e397d5d7fe.rlib --extern serde_json=/tmp/shadowsocks-rust/target/release/deps/libserde_json-19e060a5d064c702.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-bacf04505d555b88.rlib --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-e988d2f6a69b2f3c.rlib --extern ring=/tmp/shadowsocks-rust/target/release/deps/libring-098825fced7600f2.rlib --extern digest=/tmp/shadowsocks-rust/target/release/deps/libdigest-367cf326e7ab4857.rlib --extern md_5=/tmp/shadowsocks-rust/target/release/deps/libmd_5-4e9ba4fe21c2bf6d.rlib --extern base64=/tmp/shadowsocks-rust/target/release/deps/libbase64-e6b70ef6c11a69f2.rlib --extern env_logger=/tmp/shadowsocks-rust/target/release/deps/libenv_logger-78fcf7aec9923da0.rlib --extern tokio_signal=/tmp/shadowsocks-rust/target/release/deps/libtokio_signal-67c1635271f4796a.rlib --extern typenum=/tmp/shadowsocks-rust/target/release/deps/libtypenum-8a9986b23f8c2e7b.rlib --extern tokio_core=/tmp/shadowsocks-rust/target/release/deps/libtokio_core-556bf573bd895382.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-21e987f4be5bdaf7.rlib --extern url=/tmp/shadowsocks-rust/target/release/deps/liburl-d8f1b99106747c73.rlib --extern serde_urlencoded=/tmp/shadowsocks-rust/target/release/deps/libserde_urlencoded-4080467101b06ca8.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-887a78df9937843a.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-135a6fd754b72b2c.rlib --extern libsodium_ffi=/tmp/shadowsocks-rust/target/release/deps/liblibsodium_ffi-cebc764bfdf09243.rlib --extern scoped_tls=/tmp/shadowsocks-rust/target/release/deps/libscoped_tls-901f4d19f6f7d2e4.rlib --extern subprocess=/tmp/shadowsocks-rust/target/release/deps/libsubprocess-b108bc229820c3c7.rlib --extern time=/tmp/shadowsocks-rust/target/release/deps/libtime-b597a16ea20d29a6.rlib --extern clap=/tmp/shadowsocks-rust/target/release/deps/libclap-235aad276dabfc9b.rlib --extern futures_cpupool=/tmp/shadowsocks-rust/target/release/deps/libfutures_cpupool-08df12b5058f40f0.rlib --extern byte_string=/tmp/shadowsocks-rust/target/release/deps/libbyte_string-6dd1e5b5cde0b4c8.rlib --extern openssl=/tmp/shadowsocks-rust/target/release/deps/libopenssl-f6b18609e0059bf2.rlib --extern qrcode=/tmp/shadowsocks-rust/target/release/deps/libqrcode-ecd2cb6be5f9d7b4.rlib --extern tokio_io=/tmp/shadowsocks-rust/target/release/deps/libtokio_io-a35b62340658ca6e.rlib -L native=/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-563214c5b5467f13/out/lib -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib -L native=/tmp/shadowsocks-rust/target/release/build/ring-653cbe20462d59d4/out`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name ssurl src/bin/ssurl.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto --cfg 'feature="default"' --cfg 'feature="libsodium-ffi"' --cfg 'feature="sodium"' -C metadata=c9f62e56589b9eaf -C extra-filename=-c9f62e56589b9eaf --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern rand=/tmp/shadowsocks-rust/target/release/deps/librand-c6c254e397d5d7fe.rlib --extern serde_json=/tmp/shadowsocks-rust/target/release/deps/libserde_json-19e060a5d064c702.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-bacf04505d555b88.rlib --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-e988d2f6a69b2f3c.rlib --extern ring=/tmp/shadowsocks-rust/target/release/deps/libring-098825fced7600f2.rlib --extern digest=/tmp/shadowsocks-rust/target/release/deps/libdigest-367cf326e7ab4857.rlib --extern md_5=/tmp/shadowsocks-rust/target/release/deps/libmd_5-4e9ba4fe21c2bf6d.rlib --extern base64=/tmp/shadowsocks-rust/target/release/deps/libbase64-e6b70ef6c11a69f2.rlib --extern env_logger=/tmp/shadowsocks-rust/target/release/deps/libenv_logger-78fcf7aec9923da0.rlib --extern tokio_signal=/tmp/shadowsocks-rust/target/release/deps/libtokio_signal-67c1635271f4796a.rlib --extern typenum=/tmp/shadowsocks-rust/target/release/deps/libtypenum-8a9986b23f8c2e7b.rlib --extern tokio_core=/tmp/shadowsocks-rust/target/release/deps/libtokio_core-556bf573bd895382.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-21e987f4be5bdaf7.rlib --extern url=/tmp/shadowsocks-rust/target/release/deps/liburl-d8f1b99106747c73.rlib --extern serde_urlencoded=/tmp/shadowsocks-rust/target/release/deps/libserde_urlencoded-4080467101b06ca8.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-887a78df9937843a.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-135a6fd754b72b2c.rlib --extern libsodium_ffi=/tmp/shadowsocks-rust/target/release/deps/liblibsodium_ffi-cebc764bfdf09243.rlib --extern scoped_tls=/tmp/shadowsocks-rust/target/release/deps/libscoped_tls-901f4d19f6f7d2e4.rlib --extern subprocess=/tmp/shadowsocks-rust/target/release/deps/libsubprocess-b108bc229820c3c7.rlib --extern time=/tmp/shadowsocks-rust/target/release/deps/libtime-b597a16ea20d29a6.rlib --extern clap=/tmp/shadowsocks-rust/target/release/deps/libclap-235aad276dabfc9b.rlib --extern futures_cpupool=/tmp/shadowsocks-rust/target/release/deps/libfutures_cpupool-08df12b5058f40f0.rlib --extern byte_string=/tmp/shadowsocks-rust/target/release/deps/libbyte_string-6dd1e5b5cde0b4c8.rlib --extern openssl=/tmp/shadowsocks-rust/target/release/deps/libopenssl-f6b18609e0059bf2.rlib --extern qrcode=/tmp/shadowsocks-rust/target/release/deps/libqrcode-ecd2cb6be5f9d7b4.rlib --extern tokio_io=/tmp/shadowsocks-rust/target/release/deps/libtokio_io-a35b62340658ca6e.rlib --extern shadowsocks=/tmp/shadowsocks-rust/target/release/deps/libshadowsocks-fbcb65dffa741a49.rlib -L native=/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-563214c5b5467f13/out/lib -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib -L native=/tmp/shadowsocks-rust/target/release/build/ring-653cbe20462d59d4/out`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name ssserver src/bin/server.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto --cfg 'feature="default"' --cfg 'feature="libsodium-ffi"' --cfg 'feature="sodium"' -C metadata=28739d76958d3314 -C extra-filename=-28739d76958d3314 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern rand=/tmp/shadowsocks-rust/target/release/deps/librand-c6c254e397d5d7fe.rlib --extern serde_json=/tmp/shadowsocks-rust/target/release/deps/libserde_json-19e060a5d064c702.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-bacf04505d555b88.rlib --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-e988d2f6a69b2f3c.rlib --extern ring=/tmp/shadowsocks-rust/target/release/deps/libring-098825fced7600f2.rlib --extern digest=/tmp/shadowsocks-rust/target/release/deps/libdigest-367cf326e7ab4857.rlib --extern md_5=/tmp/shadowsocks-rust/target/release/deps/libmd_5-4e9ba4fe21c2bf6d.rlib --extern base64=/tmp/shadowsocks-rust/target/release/deps/libbase64-e6b70ef6c11a69f2.rlib --extern env_logger=/tmp/shadowsocks-rust/target/release/deps/libenv_logger-78fcf7aec9923da0.rlib --extern tokio_signal=/tmp/shadowsocks-rust/target/release/deps/libtokio_signal-67c1635271f4796a.rlib --extern typenum=/tmp/shadowsocks-rust/target/release/deps/libtypenum-8a9986b23f8c2e7b.rlib --extern tokio_core=/tmp/shadowsocks-rust/target/release/deps/libtokio_core-556bf573bd895382.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-21e987f4be5bdaf7.rlib --extern url=/tmp/shadowsocks-rust/target/release/deps/liburl-d8f1b99106747c73.rlib --extern serde_urlencoded=/tmp/shadowsocks-rust/target/release/deps/libserde_urlencoded-4080467101b06ca8.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-887a78df9937843a.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-135a6fd754b72b2c.rlib --extern libsodium_ffi=/tmp/shadowsocks-rust/target/release/deps/liblibsodium_ffi-cebc764bfdf09243.rlib --extern scoped_tls=/tmp/shadowsocks-rust/target/release/deps/libscoped_tls-901f4d19f6f7d2e4.rlib --extern subprocess=/tmp/shadowsocks-rust/target/release/deps/libsubprocess-b108bc229820c3c7.rlib --extern time=/tmp/shadowsocks-rust/target/release/deps/libtime-b597a16ea20d29a6.rlib --extern clap=/tmp/shadowsocks-rust/target/release/deps/libclap-235aad276dabfc9b.rlib --extern futures_cpupool=/tmp/shadowsocks-rust/target/release/deps/libfutures_cpupool-08df12b5058f40f0.rlib --extern byte_string=/tmp/shadowsocks-rust/target/release/deps/libbyte_string-6dd1e5b5cde0b4c8.rlib --extern openssl=/tmp/shadowsocks-rust/target/release/deps/libopenssl-f6b18609e0059bf2.rlib --extern qrcode=/tmp/shadowsocks-rust/target/release/deps/libqrcode-ecd2cb6be5f9d7b4.rlib --extern tokio_io=/tmp/shadowsocks-rust/target/release/deps/libtokio_io-a35b62340658ca6e.rlib --extern shadowsocks=/tmp/shadowsocks-rust/target/release/deps/libshadowsocks-fbcb65dffa741a49.rlib -L native=/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-563214c5b5467f13/out/lib -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib -L native=/tmp/shadowsocks-rust/target/release/build/ring-653cbe20462d59d4/out`
     Running `/sb/d/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc --crate-name sslocal src/bin/local.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto --cfg 'feature="default"' --cfg 'feature="libsodium-ffi"' --cfg 'feature="sodium"' -C metadata=3093b9dc13adad90 -C extra-filename=-3093b9dc13adad90 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern rand=/tmp/shadowsocks-rust/target/release/deps/librand-c6c254e397d5d7fe.rlib --extern serde_json=/tmp/shadowsocks-rust/target/release/deps/libserde_json-19e060a5d064c702.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-bacf04505d555b88.rlib --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-e988d2f6a69b2f3c.rlib --extern ring=/tmp/shadowsocks-rust/target/release/deps/libring-098825fced7600f2.rlib --extern digest=/tmp/shadowsocks-rust/target/release/deps/libdigest-367cf326e7ab4857.rlib --extern md_5=/tmp/shadowsocks-rust/target/release/deps/libmd_5-4e9ba4fe21c2bf6d.rlib --extern base64=/tmp/shadowsocks-rust/target/release/deps/libbase64-e6b70ef6c11a69f2.rlib --extern env_logger=/tmp/shadowsocks-rust/target/release/deps/libenv_logger-78fcf7aec9923da0.rlib --extern tokio_signal=/tmp/shadowsocks-rust/target/release/deps/libtokio_signal-67c1635271f4796a.rlib --extern typenum=/tmp/shadowsocks-rust/target/release/deps/libtypenum-8a9986b23f8c2e7b.rlib --extern tokio_core=/tmp/shadowsocks-rust/target/release/deps/libtokio_core-556bf573bd895382.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-21e987f4be5bdaf7.rlib --extern url=/tmp/shadowsocks-rust/target/release/deps/liburl-d8f1b99106747c73.rlib --extern serde_urlencoded=/tmp/shadowsocks-rust/target/release/deps/libserde_urlencoded-4080467101b06ca8.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-c100df01d157afe5.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-887a78df9937843a.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-135a6fd754b72b2c.rlib --extern libsodium_ffi=/tmp/shadowsocks-rust/target/release/deps/liblibsodium_ffi-cebc764bfdf09243.rlib --extern scoped_tls=/tmp/shadowsocks-rust/target/release/deps/libscoped_tls-901f4d19f6f7d2e4.rlib --extern subprocess=/tmp/shadowsocks-rust/target/release/deps/libsubprocess-b108bc229820c3c7.rlib --extern time=/tmp/shadowsocks-rust/target/release/deps/libtime-b597a16ea20d29a6.rlib --extern clap=/tmp/shadowsocks-rust/target/release/deps/libclap-235aad276dabfc9b.rlib --extern futures_cpupool=/tmp/shadowsocks-rust/target/release/deps/libfutures_cpupool-08df12b5058f40f0.rlib --extern byte_string=/tmp/shadowsocks-rust/target/release/deps/libbyte_string-6dd1e5b5cde0b4c8.rlib --extern openssl=/tmp/shadowsocks-rust/target/release/deps/libopenssl-f6b18609e0059bf2.rlib --extern qrcode=/tmp/shadowsocks-rust/target/release/deps/libqrcode-ecd2cb6be5f9d7b4.rlib --extern tokio_io=/tmp/shadowsocks-rust/target/release/deps/libtokio_io-a35b62340658ca6e.rlib --extern shadowsocks=/tmp/shadowsocks-rust/target/release/deps/libshadowsocks-fbcb65dffa741a49.rlib -L native=/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-563214c5b5467f13/out/lib -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib -L native=/tmp/shadowsocks-rust/target/release/build/ring-653cbe20462d59d4/out`
    Finished release [optimized] target(s) in 98.65 secs
    Finished release [optimized] target(s) in 98.65 secs

compared to

   Compiling percent-encoding v1.0.1
   Compiling ansi_term v0.10.2
   Compiling utf8-ranges v1.0.0
   Compiling safemem v0.2.0
   Compiling byte-tools v0.2.0
   Compiling matches v0.1.6
   Compiling typenum v1.9.0
   Compiling void v1.0.2
   Compiling lazy_static v0.2.11
   Compiling log v0.3.8
   Compiling nodrop v0.1.12
   Compiling gcc v0.3.54
   Compiling dtoa v0.4.2
   Compiling itoa v0.3.4
   Compiling qrcode v0.4.0
   Compiling slab v0.3.0
     Running `rustc --crate-name percent_encoding /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/percent-encoding-1.0.1/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=1286984d4c3162b4 -C extra-filename=-1286984d4c3162b4 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name ansi_term /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/ansi_term-0.10.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=bc45a867939ff1ad -C extra-filename=-bc45a867939ff1ad --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name utf8_ranges /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/utf8-ranges-1.0.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=c05e1b01760bf895 -C extra-filename=-c05e1b01760bf895 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name safemem /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/safemem-0.2.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=c7fb685d55aca36a -C extra-filename=-c7fb685d55aca36a --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name byte_tools /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/byte-tools-0.2.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=c8aea36519a917f0 -C extra-filename=-c8aea36519a917f0 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name matches /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/matches-0.1.6/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=5256cc5069546f1c -C extra-filename=-5256cc5069546f1c --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name build_script_main /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/typenum-1.9.0/build/main.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=d49348d85a3e9cc4 -C extra-filename=-d49348d85a3e9cc4 --out-dir /tmp/shadowsocks-rust/target/release/build/typenum-d49348d85a3e9cc4 -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name void /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/void-1.0.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=03cb4c1c6e234677 -C extra-filename=-03cb4c1c6e234677 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name lazy_static /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-0.2.11/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=46d4f8b8e3c032e1 -C extra-filename=-46d4f8b8e3c032e1 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name log /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/log-0.3.8/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=e1645c2cacfb5151 -C extra-filename=-e1645c2cacfb5151 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name nodrop /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/nodrop-0.1.12/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=22bb987d4d3a2979 -C extra-filename=-22bb987d4d3a2979 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name gcc /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=82cad37d2e3a0d27 -C extra-filename=-82cad37d2e3a0d27 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name itoa /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/itoa-0.3.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=395082b30328b1c6 -C extra-filename=-395082b30328b1c6 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name qrcode /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/qrcode-0.4.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=d8583b36270e520d -C extra-filename=-d8583b36270e520d --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name dtoa /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/dtoa-0.4.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=8a28b1cd3c0ace11 -C extra-filename=-8a28b1cd3c0ace11 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name slab /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/slab-0.3.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=3dc680c5bc737239 -C extra-filename=-3dc680c5bc737239 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling num-traits v0.1.41
     Running `rustc --crate-name num_traits /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/num-traits-0.1.41/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=887282983f0b1b4f -C extra-filename=-887282983f0b1b4f --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling cfg-if v0.1.2
     Running `rustc --crate-name cfg_if /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/cfg-if-0.1.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=7a2cd09612af1e76 -C extra-filename=-7a2cd09612af1e76 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling unicode-normalization v0.1.5
     Running `rustc --crate-name unicode_normalization /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/unicode-normalization-0.1.5/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=44f787513531369e -C extra-filename=-44f787513531369e --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling byteorder v1.2.1
     Running `rustc --crate-name byteorder /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/byteorder-1.2.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=74c0a1bfca1d6641 -C extra-filename=-74c0a1bfca1d6641 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling regex-syntax v0.4.1
     Running `rustc --crate-name regex_syntax /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/regex-syntax-0.4.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=7c0a0c86444dc0e2 -C extra-filename=-7c0a0c86444dc0e2 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling bitflags v0.9.1
     Running `rustc --crate-name bitflags /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-0.9.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="example_generated"' -C metadata=44e1d4fa284b6fbb -C extra-filename=-44e1d4fa284b6fbb --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling unicode-width v0.1.4
     Running `rustc --crate-name unicode_width /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/unicode-width-0.1.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' -C metadata=c470f143be15aa45 -C extra-filename=-c470f143be15aa45 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling byte_string v1.0.0
     Running `rustc --crate-name byte_string /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/byte_string-1.0.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=99c3e4903d3f5cf4 -C extra-filename=-99c3e4903d3f5cf4 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling bitflags v1.0.1
     Running `rustc --crate-name bitflags /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-1.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="example_generated"' -C metadata=a13f1ffac440f1ec -C extra-filename=-a13f1ffac440f1ec --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling libc v0.2.34
     Running `rustc --crate-name libc /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.34/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=ba5f7ea6f1f21b48 -C extra-filename=-ba5f7ea6f1f21b48 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling scopeguard v0.3.3
     Running `rustc --crate-name scopeguard /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/scopeguard-0.3.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=8cca9db2433cf089 -C extra-filename=-8cca9db2433cf089 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling futures v0.1.17
     Running `rustc --crate-name futures /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.17/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' --cfg 'feature="with-deprecated"' -C metadata=05f07acfff7847a7 -C extra-filename=-05f07acfff7847a7 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling vec_map v0.8.0
     Running `rustc --crate-name vec_map /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/vec_map-0.8.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=0da17cfd5da9a343 -C extra-filename=-0da17cfd5da9a343 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling slab v0.4.0
     Running `rustc --crate-name slab /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/slab-0.4.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=51d59ce5f08308bd -C extra-filename=-51d59ce5f08308bd --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling rayon-core v1.3.0
     Running `rustc --crate-name build_script_build /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.3.0/build.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=ed588c03a5e84ca6 -C extra-filename=-ed588c03a5e84ca6 --out-dir /tmp/shadowsocks-rust/target/release/build/rayon-core-ed588c03a5e84ca6 -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling arrayref v0.3.4
     Running `rustc --crate-name arrayref /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/arrayref-0.3.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=db0c1222ed878673 -C extra-filename=-db0c1222ed878673 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling foreign-types-shared v0.1.1
     Running `rustc --crate-name foreign_types_shared /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/foreign-types-shared-0.1.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=cbd025bb21c6dc2a -C extra-filename=-cbd025bb21c6dc2a --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling untrusted v0.5.1
     Running `rustc --crate-name untrusted /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/untrusted-0.5.1/src/untrusted.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=96ca1fbb565440e6 -C extra-filename=-96ca1fbb565440e6 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling cc v1.0.3
     Running `rustc --crate-name cc /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=d40825882e3e0ae2 -C extra-filename=-d40825882e3e0ae2 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling either v1.4.0
   Compiling serde v1.0.23
     Running `rustc --crate-name either /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/either-1.4.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="use_std"' -C metadata=3ee8697cc3634786 -C extra-filename=-3ee8697cc3634786 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
     Running `rustc --crate-name serde /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/serde-1.0.23/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=88117e67d7a67da2 -C extra-filename=-88117e67d7a67da2 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling openssl v0.9.22
     Running `rustc --crate-name build_script_build /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.22/build.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=2e102065f13c215f -C extra-filename=-2e102065f13c215f --out-dir /tmp/shadowsocks-rust/target/release/build/openssl-2e102065f13c215f -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling strsim v0.6.0
     Running `rustc --crate-name strsim /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/strsim-0.6.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=33327a59552cfe58 -C extra-filename=-33327a59552cfe58 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling lazycell v0.5.1
     Running `rustc --crate-name lazycell /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/lazycell-0.5.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=5b4619b4c51ad2a7 -C extra-filename=-5b4619b4c51ad2a7 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling pkg-config v0.3.9
     Running `rustc --crate-name pkg_config /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=6c4e2ffab3eed3f3 -C extra-filename=-6c4e2ffab3eed3f3 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling scoped-tls v0.1.0
     Running `rustc --crate-name scoped_tls /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=94cf1c46eaf7da14 -C extra-filename=-94cf1c46eaf7da14 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling unreachable v1.0.0
     Running `rustc --crate-name unreachable /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/unreachable-1.0.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=198c19e8b0932238 -C extra-filename=-198c19e8b0932238 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern void=/tmp/shadowsocks-rust/target/release/deps/libvoid-03cb4c1c6e234677.rlib --cap-lints allow`
   Compiling unicode-bidi v0.3.4
     Running `rustc --crate-name unicode_bidi /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/unicode-bidi-0.3.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' -C metadata=600f13fe5217b25d -C extra-filename=-600f13fe5217b25d --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern matches=/tmp/shadowsocks-rust/target/release/deps/libmatches-5256cc5069546f1c.rlib --cap-lints allow`
   Compiling textwrap v0.9.0
     Running `rustc --crate-name textwrap /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/textwrap-0.9.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=10ee8d3a9bf5c250 -C extra-filename=-10ee8d3a9bf5c250 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern unicode_width=/tmp/shadowsocks-rust/target/release/deps/libunicode_width-c470f143be15aa45.rlib --cap-lints allow`
   Compiling block-buffer v0.3.3
     Running `rustc --crate-name block_buffer /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/block-buffer-0.3.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=8bea06083179620b -C extra-filename=-8bea06083179620b --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern byte_tools=/tmp/shadowsocks-rust/target/release/deps/libbyte_tools-c8aea36519a917f0.rlib --extern arrayref=/tmp/shadowsocks-rust/target/release/deps/libarrayref-db0c1222ed878673.rlib --cap-lints allow`
   Compiling foreign-types v0.3.2
     Running `rustc --crate-name foreign_types /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/foreign-types-0.3.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=6abc578034ff989b -C extra-filename=-6abc578034ff989b --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern foreign_types_shared=/tmp/shadowsocks-rust/target/release/deps/libforeign_types_shared-cbd025bb21c6dc2a.rlib --cap-lints allow`
   Compiling base64 v0.6.0
     Running `rustc --crate-name base64 /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/base64-0.6.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=035681d24c7b6147 -C extra-filename=-035681d24c7b6147 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern safemem=/tmp/shadowsocks-rust/target/release/deps/libsafemem-c7fb685d55aca36a.rlib --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-74c0a1bfca1d6641.rlib --cap-lints allow`
     Running `/tmp/shadowsocks-rust/target/release/build/rayon-core-ed588c03a5e84ca6/build-script-build`
   Compiling coco v0.1.1
     Running `rustc --crate-name coco /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/coco-0.1.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=b3eb3fa05b136fe8 -C extra-filename=-b3eb3fa05b136fe8 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern either=/tmp/shadowsocks-rust/target/release/deps/libeither-3ee8697cc3634786.rlib --extern scopeguard=/tmp/shadowsocks-rust/target/release/deps/libscopeguard-8cca9db2433cf089.rlib --cap-lints allow`
   Compiling thread_local v0.3.4
     Running `rustc --crate-name thread_local /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/thread_local-0.3.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=23cce0a56fca3ca7 -C extra-filename=-23cce0a56fca3ca7 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-46d4f8b8e3c032e1.rlib --extern unreachable=/tmp/shadowsocks-rust/target/release/deps/libunreachable-198c19e8b0932238.rlib --cap-lints allow`
   Compiling rand v0.3.18
     Running `rustc --crate-name rand /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/rand-0.3.18/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=8db649e4fe2cdce4 -C extra-filename=-8db649e4fe2cdce4 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --cap-lints allow`
   Compiling net2 v0.2.31
     Running `rustc --crate-name net2 /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/net2-0.2.31/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="duration"' -C metadata=4c74690252799344 -C extra-filename=-4c74690252799344 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --extern cfg_if=/tmp/shadowsocks-rust/target/release/deps/libcfg_if-7a2cd09612af1e76.rlib --cap-lints allow`
   Compiling iovec v0.1.1
     Running `rustc --crate-name iovec /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/iovec-0.1.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=09f6fbc68478c317 -C extra-filename=-09f6fbc68478c317 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --cap-lints allow`
   Compiling time v0.1.38
     Running `rustc --crate-name time /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.1.38/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=cc591e3e742b34d4 -C extra-filename=-cc591e3e742b34d4 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --cap-lints allow`
   Compiling subprocess v0.1.12
     Running `rustc --crate-name subprocess /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/subprocess-0.1.12/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=34509b54499fe5e6 -C extra-filename=-34509b54499fe5e6 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --cap-lints allow`
   Compiling memchr v2.0.1
     Running `rustc --crate-name memchr /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/memchr-2.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="libc"' --cfg 'feature="use_std"' -C metadata=a240f74213aad3d2 -C extra-filename=-a240f74213aad3d2 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --cap-lints allow`
   Compiling num_cpus v1.7.0
     Running `rustc --crate-name num_cpus /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/num_cpus-1.7.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=999752cd0fb27668 -C extra-filename=-999752cd0fb27668 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --cap-lints allow`
   Compiling atty v0.2.3
     Running `rustc --crate-name atty /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/atty-0.2.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=dea69ccecaed101d -C extra-filename=-dea69ccecaed101d --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --cap-lints allow`
   Compiling bytes v0.4.5
     Running `rustc --crate-name bytes /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/bytes-0.4.5/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=4c0577d8394c2104 -C extra-filename=-4c0577d8394c2104 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-74c0a1bfca1d6641.rlib --extern iovec=/tmp/shadowsocks-rust/target/release/deps/libiovec-09f6fbc68478c317.rlib --cap-lints allow`
   Compiling aho-corasick v0.6.4
     Running `rustc --crate-name aho_corasick /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/aho-corasick-0.6.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=6ef8a8c860398a30 -C extra-filename=-6ef8a8c860398a30 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern memchr=/tmp/shadowsocks-rust/target/release/deps/libmemchr-a240f74213aad3d2.rlib --cap-lints allow`
   Compiling clap v2.28.0
     Running `rustc --crate-name clap /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-2.28.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="ansi_term"' --cfg 'feature="atty"' --cfg 'feature="color"' --cfg 'feature="default"' --cfg 'feature="strsim"' --cfg 'feature="suggestions"' --cfg 'feature="vec_map"' -C metadata=65b8076b3c0dd8ee -C extra-filename=-65b8076b3c0dd8ee --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern textwrap=/tmp/shadowsocks-rust/target/release/deps/libtextwrap-10ee8d3a9bf5c250.rlib --extern bitflags=/tmp/shadowsocks-rust/target/release/deps/libbitflags-a13f1ffac440f1ec.rlib --extern atty=/tmp/shadowsocks-rust/target/release/deps/libatty-dea69ccecaed101d.rlib --extern vec_map=/tmp/shadowsocks-rust/target/release/deps/libvec_map-0da17cfd5da9a343.rlib --extern strsim=/tmp/shadowsocks-rust/target/release/deps/libstrsim-33327a59552cfe58.rlib --extern unicode_width=/tmp/shadowsocks-rust/target/release/deps/libunicode_width-c470f143be15aa45.rlib --extern ansi_term=/tmp/shadowsocks-rust/target/release/deps/libansi_term-bc45a867939ff1ad.rlib --cap-lints allow`
   Compiling libsodium-ffi v0.1.9
     Running `rustc --crate-name build_script_build /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/libsodium-ffi-0.1.9/build.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=d5b7c980a86ccf38 -C extra-filename=-d5b7c980a86ccf38 --out-dir /tmp/shadowsocks-rust/target/release/build/libsodium-ffi-d5b7c980a86ccf38 -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern pkg_config=/tmp/shadowsocks-rust/target/release/deps/libpkg_config-6c4e2ffab3eed3f3.rlib --cap-lints allow`
   Compiling mio v0.6.11
     Running `rustc --crate-name mio /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/mio-0.6.11/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="with-deprecated"' -C metadata=5e9aa10ea1f78f9f -C extra-filename=-5e9aa10ea1f78f9f --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --extern slab=/tmp/shadowsocks-rust/target/release/deps/libslab-3dc680c5bc737239.rlib --extern iovec=/tmp/shadowsocks-rust/target/release/deps/libiovec-09f6fbc68478c317.rlib --extern lazycell=/tmp/shadowsocks-rust/target/release/deps/liblazycell-5b4619b4c51ad2a7.rlib --extern net2=/tmp/shadowsocks-rust/target/release/deps/libnet2-4c74690252799344.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-e1645c2cacfb5151.rlib --cap-lints allow`
     Running `/tmp/shadowsocks-rust/target/release/build/typenum-d49348d85a3e9cc4/build-script-main`
     Running `rustc --crate-name typenum /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/typenum-1.9.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=951eae4f439ce149 -C extra-filename=-951eae4f439ce149 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --cap-lints allow`
   Compiling idna v0.1.4
     Running `rustc --crate-name idna /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/idna-0.1.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=110745cdccf13654 -C extra-filename=-110745cdccf13654 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern matches=/tmp/shadowsocks-rust/target/release/deps/libmatches-5256cc5069546f1c.rlib --extern unicode_bidi=/tmp/shadowsocks-rust/target/release/deps/libunicode_bidi-600f13fe5217b25d.rlib --extern unicode_normalization=/tmp/shadowsocks-rust/target/release/deps/libunicode_normalization-44f787513531369e.rlib --cap-lints allow`
   Compiling tokio-io v0.1.4
     Running `rustc --crate-name tokio_io /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-io-0.1.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=c830d0fb9976f3c4 -C extra-filename=-c830d0fb9976f3c4 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-e1645c2cacfb5151.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-05f07acfff7847a7.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-4c0577d8394c2104.rlib --cap-lints allow`
   Compiling futures-cpupool v0.1.7
     Running `rustc --crate-name futures_cpupool /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-cpupool-0.1.7/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="futures"' --cfg 'feature="with-deprecated"' -C metadata=d2d37391f76a95d3 -C extra-filename=-d2d37391f76a95d3 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-05f07acfff7847a7.rlib --extern num_cpus=/tmp/shadowsocks-rust/target/release/deps/libnum_cpus-999752cd0fb27668.rlib --cap-lints allow`
     Running `rustc --crate-name rayon_core /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.3.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=1d3e0eb7ab6a87dc -C extra-filename=-1d3e0eb7ab6a87dc --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-46d4f8b8e3c032e1.rlib --extern coco=/tmp/shadowsocks-rust/target/release/deps/libcoco-b3eb3fa05b136fe8.rlib --extern rand=/tmp/shadowsocks-rust/target/release/deps/librand-8db649e4fe2cdce4.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --extern num_cpus=/tmp/shadowsocks-rust/target/release/deps/libnum_cpus-999752cd0fb27668.rlib --cap-lints allow`
     Running `/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-d5b7c980a86ccf38/build-script-build`
   Compiling generic-array v0.8.3
     Running `rustc --crate-name generic_array /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/generic-array-0.8.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=d88a3c4d73376547 -C extra-filename=-d88a3c4d73376547 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern typenum=/tmp/shadowsocks-rust/target/release/deps/libtypenum-951eae4f439ce149.rlib --extern nodrop=/tmp/shadowsocks-rust/target/release/deps/libnodrop-22bb987d4d3a2979.rlib --cap-lints allow`
   Compiling digest v0.6.2
     Running `rustc --crate-name digest /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/digest-0.6.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=f28bff71660ebe2a -C extra-filename=-f28bff71660ebe2a --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern generic_array=/tmp/shadowsocks-rust/target/release/deps/libgeneric_array-d88a3c4d73376547.rlib --cap-lints allow`
   Compiling md-5 v0.5.2
     Running `rustc --crate-name md_5 /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/md-5-0.5.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="digest"' --cfg 'feature="generic"' --cfg 'feature="generic-array"' -C metadata=81f633839830a61d -C extra-filename=-81f633839830a61d --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern generic_array=/tmp/shadowsocks-rust/target/release/deps/libgeneric_array-d88a3c4d73376547.rlib --extern block_buffer=/tmp/shadowsocks-rust/target/release/deps/libblock_buffer-8bea06083179620b.rlib --extern digest=/tmp/shadowsocks-rust/target/release/deps/libdigest-f28bff71660ebe2a.rlib --extern byte_tools=/tmp/shadowsocks-rust/target/release/deps/libbyte_tools-c8aea36519a917f0.rlib --cap-lints allow`
   Compiling rayon v0.7.1
     Running `rustc --crate-name rayon /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-0.7.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=e27343e835c30f38 -C extra-filename=-e27343e835c30f38 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern rayon_core=/tmp/shadowsocks-rust/target/release/deps/librayon_core-1d3e0eb7ab6a87dc.rlib --cap-lints allow`
   Compiling openssl-sys v0.9.22
     Running `rustc --crate-name build_script_build /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.9.22/build.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=7efe94898ccc7a70 -C extra-filename=-7efe94898ccc7a70 --out-dir /tmp/shadowsocks-rust/target/release/build/openssl-sys-7efe94898ccc7a70 -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern cc=/tmp/shadowsocks-rust/target/release/deps/libcc-d40825882e3e0ae2.rlib --extern pkg_config=/tmp/shadowsocks-rust/target/release/deps/libpkg_config-6c4e2ffab3eed3f3.rlib --cap-lints allow`
   Compiling mio-uds v0.6.4
   Compiling tokio-core v0.1.10
     Running `rustc --crate-name mio_uds /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/mio-uds-0.6.4/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=c045e4559d5cfa98 -C extra-filename=-c045e4559d5cfa98 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern mio=/tmp/shadowsocks-rust/target/release/deps/libmio-5e9aa10ea1f78f9f.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --cap-lints allow`
     Running `rustc --crate-name tokio_core /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-core-0.1.10/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=43c309e098f06667 -C extra-filename=-43c309e098f06667 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern scoped_tls=/tmp/shadowsocks-rust/target/release/deps/libscoped_tls-94cf1c46eaf7da14.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-e1645c2cacfb5151.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-05f07acfff7847a7.rlib --extern slab=/tmp/shadowsocks-rust/target/release/deps/libslab-51d59ce5f08308bd.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-4c0577d8394c2104.rlib --extern iovec=/tmp/shadowsocks-rust/target/release/deps/libiovec-09f6fbc68478c317.rlib --extern tokio_io=/tmp/shadowsocks-rust/target/release/deps/libtokio_io-c830d0fb9976f3c4.rlib --extern mio=/tmp/shadowsocks-rust/target/release/deps/libmio-5e9aa10ea1f78f9f.rlib --cap-lints allow`
   Compiling url v1.6.0
     Running `rustc --crate-name url /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/url-1.6.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=d47169341bb39f34 -C extra-filename=-d47169341bb39f34 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern percent_encoding=/tmp/shadowsocks-rust/target/release/deps/libpercent_encoding-1286984d4c3162b4.rlib --extern idna=/tmp/shadowsocks-rust/target/release/deps/libidna-110745cdccf13654.rlib --extern matches=/tmp/shadowsocks-rust/target/release/deps/libmatches-5256cc5069546f1c.rlib --cap-lints allow`
   Compiling ring v0.11.0
     Running `rustc --crate-name build_script_build /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.11.0/build.rs --crate-type bin --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="dev_urandom_fallback"' --cfg 'feature="use_heap"' -C metadata=8d71ee40451a6243 -C extra-filename=-8d71ee40451a6243 --out-dir /tmp/shadowsocks-rust/target/release/build/ring-8d71ee40451a6243 -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern rayon=/tmp/shadowsocks-rust/target/release/deps/librayon-e27343e835c30f38.rlib --extern gcc=/tmp/shadowsocks-rust/target/release/deps/libgcc-82cad37d2e3a0d27.rlib --cap-lints allow`
   Compiling serde_json v1.0.7
     Running `rustc --crate-name serde_json /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/serde_json-1.0.7/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' -C metadata=349bc73f3571259b -C extra-filename=-349bc73f3571259b --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern itoa=/tmp/shadowsocks-rust/target/release/deps/libitoa-395082b30328b1c6.rlib --extern num_traits=/tmp/shadowsocks-rust/target/release/deps/libnum_traits-887282983f0b1b4f.rlib --extern dtoa=/tmp/shadowsocks-rust/target/release/deps/libdtoa-8a28b1cd3c0ace11.rlib --extern serde=/tmp/shadowsocks-rust/target/release/deps/libserde-88117e67d7a67da2.rlib --cap-lints allow`
     Running `/tmp/shadowsocks-rust/target/release/build/openssl-sys-7efe94898ccc7a70/build-script-build`
     Running `rustc --crate-name openssl_sys /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.9.22/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=1117b3b2d33143f2 -C extra-filename=-1117b3b2d33143f2 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --cap-lints allow -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib --cfg 'osslconf="OPENSSL_NO_KRB5"' --cfg 'osslconf="OPENSSL_NO_RFC3779"' --cfg ossl102 -l ssl -l crypto`
     Running `/tmp/shadowsocks-rust/target/release/build/openssl-2e102065f13c215f/build-script-build`
     Running `rustc --crate-name openssl /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.22/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=9b48c27ce0b4e08e -C extra-filename=-9b48c27ce0b4e08e --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern openssl_sys=/tmp/shadowsocks-rust/target/release/deps/libopenssl_sys-1117b3b2d33143f2.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-46d4f8b8e3c032e1.rlib --extern foreign_types=/tmp/shadowsocks-rust/target/release/deps/libforeign_types-6abc578034ff989b.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --extern bitflags=/tmp/shadowsocks-rust/target/release/deps/libbitflags-44e1d4fa284b6fbb.rlib --cap-lints allow --cfg ossl102 --cfg ossl10x --cfg 'osslconf="OPENSSL_NO_KRB5"' --cfg 'osslconf="OPENSSL_NO_RFC3779"' -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib`
   Compiling tokio-signal v0.1.2
     Running `rustc --crate-name tokio_signal /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-signal-0.1.2/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=1192f70cd1345b40 -C extra-filename=-1192f70cd1345b40 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --extern tokio_core=/tmp/shadowsocks-rust/target/release/deps/libtokio_core-43c309e098f06667.rlib --extern mio=/tmp/shadowsocks-rust/target/release/deps/libmio-5e9aa10ea1f78f9f.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-05f07acfff7847a7.rlib --extern mio_uds=/tmp/shadowsocks-rust/target/release/deps/libmio_uds-c045e4559d5cfa98.rlib --cap-lints allow`
   Compiling regex v0.2.3
     Running `rustc --crate-name regex /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/regex-0.2.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=bd57d6e6d06359fc -C extra-filename=-bd57d6e6d06359fc --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern thread_local=/tmp/shadowsocks-rust/target/release/deps/libthread_local-23cce0a56fca3ca7.rlib --extern regex_syntax=/tmp/shadowsocks-rust/target/release/deps/libregex_syntax-7c0a0c86444dc0e2.rlib --extern memchr=/tmp/shadowsocks-rust/target/release/deps/libmemchr-a240f74213aad3d2.rlib --extern aho_corasick=/tmp/shadowsocks-rust/target/release/deps/libaho_corasick-6ef8a8c860398a30.rlib --extern utf8_ranges=/tmp/shadowsocks-rust/target/release/deps/libutf8_ranges-c05e1b01760bf895.rlib --cap-lints allow`
   Compiling serde_urlencoded v0.5.1
     Running `rustc --crate-name serde_urlencoded /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/serde_urlencoded-0.5.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=848fab6ec6b1ca88 -C extra-filename=-848fab6ec6b1ca88 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern dtoa=/tmp/shadowsocks-rust/target/release/deps/libdtoa-8a28b1cd3c0ace11.rlib --extern url=/tmp/shadowsocks-rust/target/release/deps/liburl-d47169341bb39f34.rlib --extern itoa=/tmp/shadowsocks-rust/target/release/deps/libitoa-395082b30328b1c6.rlib --extern serde=/tmp/shadowsocks-rust/target/release/deps/libserde-88117e67d7a67da2.rlib --cap-lints allow`
     Running `/tmp/shadowsocks-rust/target/release/build/ring-8d71ee40451a6243/build-script-build`
     Running `rustc --crate-name ring /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.11.0/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="dev_urandom_fallback"' --cfg 'feature="use_heap"' -C metadata=84ba46c3b8455b46 -C extra-filename=-84ba46c3b8455b46 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-46d4f8b8e3c032e1.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --extern untrusted=/tmp/shadowsocks-rust/target/release/deps/libuntrusted-96ca1fbb565440e6.rlib --cap-lints allow -L native=/tmp/shadowsocks-rust/target/release/build/ring-c207e832565fa168/out -l static=ring-test -l static=ring-core`
     Running `rustc --crate-name libsodium_ffi /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/libsodium-ffi-0.1.9/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C metadata=91edec72045c08be -C extra-filename=-91edec72045c08be --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --cap-lints allow -L native=/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-ea4da76e46ce86d3/out/lib -l static=sodium`
   Compiling env_logger v0.4.3
     Running `rustc --crate-name env_logger /home/nagisa/.cargo/registry/src/github.com-1ecc6299db9ec823/env_logger-0.4.3/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="regex"' -C metadata=466857587eef4afe -C extra-filename=-466857587eef4afe --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-e1645c2cacfb5151.rlib --extern regex=/tmp/shadowsocks-rust/target/release/deps/libregex-bd57d6e6d06359fc.rlib --cap-lints allow`
   Compiling shadowsocks-rust v1.6.10 (file:///tmp/shadowsocks-rust)
     Running `rustc --crate-name shadowsocks src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="libsodium-ffi"' --cfg 'feature="sodium"' -C metadata=f3c22cc1195254ef -C extra-filename=-f3c22cc1195254ef --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern ring=/tmp/shadowsocks-rust/target/release/deps/libring-84ba46c3b8455b46.rlib --extern tokio_signal=/tmp/shadowsocks-rust/target/release/deps/libtokio_signal-1192f70cd1345b40.rlib --extern libsodium_ffi=/tmp/shadowsocks-rust/target/release/deps/liblibsodium_ffi-91edec72045c08be.rlib --extern md_5=/tmp/shadowsocks-rust/target/release/deps/libmd_5-81f633839830a61d.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-05f07acfff7847a7.rlib --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-74c0a1bfca1d6641.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-e1645c2cacfb5151.rlib --extern scoped_tls=/tmp/shadowsocks-rust/target/release/deps/libscoped_tls-94cf1c46eaf7da14.rlib --extern typenum=/tmp/shadowsocks-rust/target/release/deps/libtypenum-951eae4f439ce149.rlib --extern base64=/tmp/shadowsocks-rust/target/release/deps/libbase64-035681d24c7b6147.rlib --extern clap=/tmp/shadowsocks-rust/target/release/deps/libclap-65b8076b3c0dd8ee.rlib --extern byte_string=/tmp/shadowsocks-rust/target/release/deps/libbyte_string-99c3e4903d3f5cf4.rlib --extern futures_cpupool=/tmp/shadowsocks-rust/target/release/deps/libfutures_cpupool-d2d37391f76a95d3.rlib --extern rand=/tmp/shadowsocks-rust/target/release/deps/librand-8db649e4fe2cdce4.rlib --extern tokio_core=/tmp/shadowsocks-rust/target/release/deps/libtokio_core-43c309e098f06667.rlib --extern time=/tmp/shadowsocks-rust/target/release/deps/libtime-cc591e3e742b34d4.rlib --extern url=/tmp/shadowsocks-rust/target/release/deps/liburl-d47169341bb39f34.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-46d4f8b8e3c032e1.rlib --extern serde_urlencoded=/tmp/shadowsocks-rust/target/release/deps/libserde_urlencoded-848fab6ec6b1ca88.rlib --extern openssl=/tmp/shadowsocks-rust/target/release/deps/libopenssl-9b48c27ce0b4e08e.rlib --extern env_logger=/tmp/shadowsocks-rust/target/release/deps/libenv_logger-466857587eef4afe.rlib --extern tokio_io=/tmp/shadowsocks-rust/target/release/deps/libtokio_io-c830d0fb9976f3c4.rlib --extern subprocess=/tmp/shadowsocks-rust/target/release/deps/libsubprocess-34509b54499fe5e6.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-4c0577d8394c2104.rlib --extern qrcode=/tmp/shadowsocks-rust/target/release/deps/libqrcode-d8583b36270e520d.rlib --extern digest=/tmp/shadowsocks-rust/target/release/deps/libdigest-f28bff71660ebe2a.rlib --extern serde_json=/tmp/shadowsocks-rust/target/release/deps/libserde_json-349bc73f3571259b.rlib -L native=/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-ea4da76e46ce86d3/out/lib -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib -L native=/tmp/shadowsocks-rust/target/release/build/ring-c207e832565fa168/out`
     Running `rustc --crate-name sslocal src/bin/local.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto --cfg 'feature="default"' --cfg 'feature="libsodium-ffi"' --cfg 'feature="sodium"' -C metadata=a4eaebba15957a2f -C extra-filename=-a4eaebba15957a2f --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern ring=/tmp/shadowsocks-rust/target/release/deps/libring-84ba46c3b8455b46.rlib --extern tokio_signal=/tmp/shadowsocks-rust/target/release/deps/libtokio_signal-1192f70cd1345b40.rlib --extern libsodium_ffi=/tmp/shadowsocks-rust/target/release/deps/liblibsodium_ffi-91edec72045c08be.rlib --extern md_5=/tmp/shadowsocks-rust/target/release/deps/libmd_5-81f633839830a61d.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-05f07acfff7847a7.rlib --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-74c0a1bfca1d6641.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-e1645c2cacfb5151.rlib --extern scoped_tls=/tmp/shadowsocks-rust/target/release/deps/libscoped_tls-94cf1c46eaf7da14.rlib --extern typenum=/tmp/shadowsocks-rust/target/release/deps/libtypenum-951eae4f439ce149.rlib --extern base64=/tmp/shadowsocks-rust/target/release/deps/libbase64-035681d24c7b6147.rlib --extern clap=/tmp/shadowsocks-rust/target/release/deps/libclap-65b8076b3c0dd8ee.rlib --extern byte_string=/tmp/shadowsocks-rust/target/release/deps/libbyte_string-99c3e4903d3f5cf4.rlib --extern futures_cpupool=/tmp/shadowsocks-rust/target/release/deps/libfutures_cpupool-d2d37391f76a95d3.rlib --extern rand=/tmp/shadowsocks-rust/target/release/deps/librand-8db649e4fe2cdce4.rlib --extern tokio_core=/tmp/shadowsocks-rust/target/release/deps/libtokio_core-43c309e098f06667.rlib --extern time=/tmp/shadowsocks-rust/target/release/deps/libtime-cc591e3e742b34d4.rlib --extern url=/tmp/shadowsocks-rust/target/release/deps/liburl-d47169341bb39f34.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-46d4f8b8e3c032e1.rlib --extern serde_urlencoded=/tmp/shadowsocks-rust/target/release/deps/libserde_urlencoded-848fab6ec6b1ca88.rlib --extern openssl=/tmp/shadowsocks-rust/target/release/deps/libopenssl-9b48c27ce0b4e08e.rlib --extern env_logger=/tmp/shadowsocks-rust/target/release/deps/libenv_logger-466857587eef4afe.rlib --extern tokio_io=/tmp/shadowsocks-rust/target/release/deps/libtokio_io-c830d0fb9976f3c4.rlib --extern subprocess=/tmp/shadowsocks-rust/target/release/deps/libsubprocess-34509b54499fe5e6.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-4c0577d8394c2104.rlib --extern qrcode=/tmp/shadowsocks-rust/target/release/deps/libqrcode-d8583b36270e520d.rlib --extern digest=/tmp/shadowsocks-rust/target/release/deps/libdigest-f28bff71660ebe2a.rlib --extern serde_json=/tmp/shadowsocks-rust/target/release/deps/libserde_json-349bc73f3571259b.rlib --extern shadowsocks=/tmp/shadowsocks-rust/target/release/deps/libshadowsocks-f3c22cc1195254ef.rlib -L native=/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-ea4da76e46ce86d3/out/lib -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib -L native=/tmp/shadowsocks-rust/target/release/build/ring-c207e832565fa168/out`
     Running `rustc --crate-name ssserver src/bin/server.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto --cfg 'feature="default"' --cfg 'feature="libsodium-ffi"' --cfg 'feature="sodium"' -C metadata=6eed3beefc1f68c9 -C extra-filename=-6eed3beefc1f68c9 --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern ring=/tmp/shadowsocks-rust/target/release/deps/libring-84ba46c3b8455b46.rlib --extern tokio_signal=/tmp/shadowsocks-rust/target/release/deps/libtokio_signal-1192f70cd1345b40.rlib --extern libsodium_ffi=/tmp/shadowsocks-rust/target/release/deps/liblibsodium_ffi-91edec72045c08be.rlib --extern md_5=/tmp/shadowsocks-rust/target/release/deps/libmd_5-81f633839830a61d.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-05f07acfff7847a7.rlib --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-74c0a1bfca1d6641.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-e1645c2cacfb5151.rlib --extern scoped_tls=/tmp/shadowsocks-rust/target/release/deps/libscoped_tls-94cf1c46eaf7da14.rlib --extern typenum=/tmp/shadowsocks-rust/target/release/deps/libtypenum-951eae4f439ce149.rlib --extern base64=/tmp/shadowsocks-rust/target/release/deps/libbase64-035681d24c7b6147.rlib --extern clap=/tmp/shadowsocks-rust/target/release/deps/libclap-65b8076b3c0dd8ee.rlib --extern byte_string=/tmp/shadowsocks-rust/target/release/deps/libbyte_string-99c3e4903d3f5cf4.rlib --extern futures_cpupool=/tmp/shadowsocks-rust/target/release/deps/libfutures_cpupool-d2d37391f76a95d3.rlib --extern rand=/tmp/shadowsocks-rust/target/release/deps/librand-8db649e4fe2cdce4.rlib --extern tokio_core=/tmp/shadowsocks-rust/target/release/deps/libtokio_core-43c309e098f06667.rlib --extern time=/tmp/shadowsocks-rust/target/release/deps/libtime-cc591e3e742b34d4.rlib --extern url=/tmp/shadowsocks-rust/target/release/deps/liburl-d47169341bb39f34.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-46d4f8b8e3c032e1.rlib --extern serde_urlencoded=/tmp/shadowsocks-rust/target/release/deps/libserde_urlencoded-848fab6ec6b1ca88.rlib --extern openssl=/tmp/shadowsocks-rust/target/release/deps/libopenssl-9b48c27ce0b4e08e.rlib --extern env_logger=/tmp/shadowsocks-rust/target/release/deps/libenv_logger-466857587eef4afe.rlib --extern tokio_io=/tmp/shadowsocks-rust/target/release/deps/libtokio_io-c830d0fb9976f3c4.rlib --extern subprocess=/tmp/shadowsocks-rust/target/release/deps/libsubprocess-34509b54499fe5e6.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-4c0577d8394c2104.rlib --extern qrcode=/tmp/shadowsocks-rust/target/release/deps/libqrcode-d8583b36270e520d.rlib --extern digest=/tmp/shadowsocks-rust/target/release/deps/libdigest-f28bff71660ebe2a.rlib --extern serde_json=/tmp/shadowsocks-rust/target/release/deps/libserde_json-349bc73f3571259b.rlib --extern shadowsocks=/tmp/shadowsocks-rust/target/release/deps/libshadowsocks-f3c22cc1195254ef.rlib -L native=/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-ea4da76e46ce86d3/out/lib -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib -L native=/tmp/shadowsocks-rust/target/release/build/ring-c207e832565fa168/out`
     Running `rustc --crate-name ssurl src/bin/ssurl.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto --cfg 'feature="default"' --cfg 'feature="libsodium-ffi"' --cfg 'feature="sodium"' -C metadata=67668b0be2ab0fec -C extra-filename=-67668b0be2ab0fec --out-dir /tmp/shadowsocks-rust/target/release/deps -L dependency=/tmp/shadowsocks-rust/target/release/deps --extern ring=/tmp/shadowsocks-rust/target/release/deps/libring-84ba46c3b8455b46.rlib --extern tokio_signal=/tmp/shadowsocks-rust/target/release/deps/libtokio_signal-1192f70cd1345b40.rlib --extern libsodium_ffi=/tmp/shadowsocks-rust/target/release/deps/liblibsodium_ffi-91edec72045c08be.rlib --extern md_5=/tmp/shadowsocks-rust/target/release/deps/libmd_5-81f633839830a61d.rlib --extern futures=/tmp/shadowsocks-rust/target/release/deps/libfutures-05f07acfff7847a7.rlib --extern byteorder=/tmp/shadowsocks-rust/target/release/deps/libbyteorder-74c0a1bfca1d6641.rlib --extern libc=/tmp/shadowsocks-rust/target/release/deps/liblibc-ba5f7ea6f1f21b48.rlib --extern log=/tmp/shadowsocks-rust/target/release/deps/liblog-e1645c2cacfb5151.rlib --extern scoped_tls=/tmp/shadowsocks-rust/target/release/deps/libscoped_tls-94cf1c46eaf7da14.rlib --extern typenum=/tmp/shadowsocks-rust/target/release/deps/libtypenum-951eae4f439ce149.rlib --extern base64=/tmp/shadowsocks-rust/target/release/deps/libbase64-035681d24c7b6147.rlib --extern clap=/tmp/shadowsocks-rust/target/release/deps/libclap-65b8076b3c0dd8ee.rlib --extern byte_string=/tmp/shadowsocks-rust/target/release/deps/libbyte_string-99c3e4903d3f5cf4.rlib --extern futures_cpupool=/tmp/shadowsocks-rust/target/release/deps/libfutures_cpupool-d2d37391f76a95d3.rlib --extern rand=/tmp/shadowsocks-rust/target/release/deps/librand-8db649e4fe2cdce4.rlib --extern tokio_core=/tmp/shadowsocks-rust/target/release/deps/libtokio_core-43c309e098f06667.rlib --extern time=/tmp/shadowsocks-rust/target/release/deps/libtime-cc591e3e742b34d4.rlib --extern url=/tmp/shadowsocks-rust/target/release/deps/liburl-d47169341bb39f34.rlib --extern lazy_static=/tmp/shadowsocks-rust/target/release/deps/liblazy_static-46d4f8b8e3c032e1.rlib --extern serde_urlencoded=/tmp/shadowsocks-rust/target/release/deps/libserde_urlencoded-848fab6ec6b1ca88.rlib --extern openssl=/tmp/shadowsocks-rust/target/release/deps/libopenssl-9b48c27ce0b4e08e.rlib --extern env_logger=/tmp/shadowsocks-rust/target/release/deps/libenv_logger-466857587eef4afe.rlib --extern tokio_io=/tmp/shadowsocks-rust/target/release/deps/libtokio_io-c830d0fb9976f3c4.rlib --extern subprocess=/tmp/shadowsocks-rust/target/release/deps/libsubprocess-34509b54499fe5e6.rlib --extern bytes=/tmp/shadowsocks-rust/target/release/deps/libbytes-4c0577d8394c2104.rlib --extern qrcode=/tmp/shadowsocks-rust/target/release/deps/libqrcode-d8583b36270e520d.rlib --extern digest=/tmp/shadowsocks-rust/target/release/deps/libdigest-f28bff71660ebe2a.rlib --extern serde_json=/tmp/shadowsocks-rust/target/release/deps/libserde_json-349bc73f3571259b.rlib --extern shadowsocks=/tmp/shadowsocks-rust/target/release/deps/libshadowsocks-f3c22cc1195254ef.rlib -L native=/tmp/shadowsocks-rust/target/release/build/libsodium-ffi-ea4da76e46ce86d3/out/lib -L native=/nix/store/v8z56hjwli0yxqczzajg5fhi4n6vm65f-openssl-1.0.2n/lib -L native=/tmp/shadowsocks-rust/target/release/build/ring-c207e832565fa168/out`
    Finished release [optimized] target(s) in 178.61 secs
    Finished release [optimized] target(s) in 178.61 secs

on stable. Not sure if compilation process is doing equivalent amount of work between stable and nightly here (I’m sure the majority of the improvement is from codegen-units), but at least the compilation does not take forever on my branch now! Will cleanup and submit a PR tomorrow.

@serge-sans-paille
Copy link

For the record, https://reviews.llvm.org/D41296 got merged recently and should limit the memory consumption on debug build too.

kennytm added a commit to kennytm/rust that referenced this issue Jan 6, 2018
Use name-discarding LLVM context

This is only applicable when neither of --emit=llvm-ir or --emit=llvm-bc are not
requested.

In case either of these outputs are wanted, but the benefits of such context are
desired as well, -Zfewer_names option provides the same functionality regardless
of the outputs requested.

Should be a viable fix for rust-lang#46449
@alexcrichton
Copy link
Member

@nagisa can you confirm this is fixed now that #47220 is merged?

@nagisa
Copy link
Member

nagisa commented Jan 11, 2018

Yeah, I can compile current shadowsocks master just fine.

@nagisa nagisa closed this as completed Jan 11, 2018
@zonyitoo
Copy link
Author

Thank you all !!!

kennytm added a commit to kennytm/rust that referenced this issue Aug 10, 2018
Consider changing assert! to debug_assert! when it calls visit_with

The perf run from rust-lang#52956 revealed that there were 3 benchmarks that benefited most from changing `assert!`s to `debug_assert!`s:

- issue rust-lang#46449: avg -4.7% for -check
- deeply-nested (AKA rust-lang#38528): avg -3.4% for -check
- regression rust-lang#31157: avg -3.2% for -check

I analyzed their fixing PRs and decided to look for potentially heavy assertions in the files they modified. I noticed that all of the non-trivial ones contained indirect calls to `visit_with()`.

It might be a good idea to consider changing `assert!` to `debug_assert!` in those places in order to get the performance wins shown by the benchmarks.
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this issue Aug 12, 2018
Consider changing assert! to debug_assert! when it calls visit_with

The perf run from rust-lang#52956 revealed that there were 3 benchmarks that benefited most from changing `assert!`s to `debug_assert!`s:

- issue rust-lang#46449: avg -4.7% for -check
- deeply-nested (AKA rust-lang#38528): avg -3.4% for -check
- regression rust-lang#31157: avg -3.2% for -check

I analyzed their fixing PRs and decided to look for potentially heavy assertions in the files they modified. I noticed that all of the non-trivial ones contained indirect calls to `visit_with()`.

It might be a good idea to consider changing `assert!` to `debug_assert!` in those places in order to get the performance wins shown by the benchmarks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. C-bug Category: This is a bug. I-compiletime Issue: Problems and improvements with respect to compile times. P-high High priority regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests