Skip to content

make and make -j4 have different behavior in compiling #14461

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

Closed
xuzhao9 opened this issue May 27, 2014 · 3 comments
Closed

make and make -j4 have different behavior in compiling #14461

xuzhao9 opened this issue May 27, 2014 · 3 comments

Comments

@xuzhao9
Copy link

xuzhao9 commented May 27, 2014

I am using rust-nightly.tar.gz.
When I run make -j4, it tries to download a stage0 file from rust-server.
Filename: rust-stage0-2014-05-16-5327218-linux-x86_64-212f9062080a6e6cba472d8530d086ad787bbf72.tar.bz2

However when I run make, it does not do so. Compiling does not need to fetch a pre-build stage0 file. Everything is local.

Is it supposed to be a correct behavior?

@xuzhao9
Copy link
Author

xuzhao9 commented May 27, 2014

The make command also need to fetch stage0 file. It is just slower.

Sorry for my mistake.

@xuzhao9 xuzhao9 closed this as completed May 27, 2014
@ghost
Copy link

ghost commented Oct 14, 2015

I'm stuck having to run with -j1 or else(with -j4) this error keeps happening

...
cfg: disabling valgrind run-pass tests
rustc: x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore
rustdoc: doc/not_found.html
/bin/sh: x86_64-unknown-linux-gnu/stage2/bin/rustdoc: No such file or directory
/home/zazdxscf/build/1nonpkgs/rust/rust/mk/docs.mk:123: recipe for target 'doc/not_found.html' failed
make: *** [doc/not_found.html] Error 127
make: *** Waiting for unfinished jobs....
time: 0.227; rss: 44MB  parsing
...

Seems to me that this part of the make should wait until rustdoc gets compiled. Or maybe we're not supposed to run with anything other than -j1. Ideas?

EDIT:

$ export MAKEFLAGS='-j4 '
$ make clean
...
$ ./configure --prefix=/home/zazdxscf/build/1nonpkgs/rust/usr/local --disable-rpath --enable-manage-submodules --disable-clang --enable-ccache --enable-dist-host-only --disable-valgrind --disable-helgrind --disable-valgrind-rpass --python=/usr/bin/python2 --enable-optimize --enable-optimize-cxx --enable-optimize-llvm --enable-debug --disable-debuginfo --enable-debug-assertions --enable-debuginfo-tests --enable-llvm-assertions --enable-debug-jemalloc --disable-local-rust --release-channel=dev --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu
...
configure: writing configuration
configure: 
configure: CFG_SRC_DIR          := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_SRC_DIR_RELATIVE := ./ 
configure: CFG_BUILD_DIR        := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_OSTYPE           := unknown-linux-gnu 
configure: CFG_CPUTYPE          := x86_64 
configure: CFG_CONFIGURE_ARGS   := --prefix=/home/zazdxscf/build/1nonp ...
configure: CFG_PREFIX           := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_HOST             := x86_64-unknown-linux-gnu 
configure: CFG_TARGET           := x86_64-unknown-linux-gnu 
configure: CFG_LIBDIR_RELATIVE  := lib 
configure: CFG_DISABLE_MANAGE_SUBMODULES :=  
configure: CFG_AARCH64_LINUX_ANDROID_NDK :=  
configure: CFG_ARM_LINUX_ANDROIDEABI_NDK :=  
configure: CFG_I686_LINUX_ANDROID_NDK :=  
configure: CFG_MANDIR           := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_CCACHE_BASEDIR   := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_LLVM_SRC_DIR     := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_LLVM_BUILD_DIR_x86_64_unknown_linux_gnu := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: CFG_LLVM_INST_DIR_x86_64_unknown_linux_gnu := /home/zazdxscf/build/1nonpkgs/rust/ ...
configure: 
configure: leaving ./Makefile unchanged
configure: mv -f config.tmp config.mk
configure: 
configure: complete
configure: 
configure: run `make help`
$ time make -j4 -- VERBOSE=1 NO_REBUILD=1 TIME_PASSES=1 TIME_LLVM_PASSES=1 'RUSTFLAGS=--verbose -Z verbose -Z print-link-args -Z print-llvm-passes -Z verbose -C debug-assertions=y -Ccodegen-units=4' RUST_BACKTRACE=1
cfg: version 1.5.0-dev (9a855668f 2015-10-23)
cfg: build triple x86_64-unknown-linux-gnu
cfg: host triples x86_64-unknown-linux-gnu
cfg: target triples x86_64-unknown-linux-gnu
cfg: enabling debug assertions (CFG_ENABLE_DEBUG_ASSERTIONS)
cfg: host for x86_64-unknown-linux-gnu is x86_64
cfg: os for x86_64-unknown-linux-gnu is unknown-linux-gnu
cfg: good valgrind for x86_64-unknown-linux-gnu is 1
cfg: using CC=ccache gcc (CFG_CC)
cfg: disabling valgrind run-pass tests
...
LD_LIBRARY_PATH=/home/zazdxscf/build/1nonpkgs/rust/rust/x86_64-unknown-linux-gnu/stage2/lib:$LD_LIBRARY_PATH x86_64-unknown-linux-gnu/stage2/bin/rustdoc --html-before-content=doc/version_info.html --html-in-header=doc/favicon.inc --html-after-content=doc/footer.inc --markdown-playground-url='https://play.rust-lang.org/' --markdown-css rust.css  /home/zazdxscf/build/1nonpkgs/rust/rust/src/doc/grammar.md
/bin/sh: x86_64-unknown-linux-gnu/stage2/bin/rustdoc: No such file or directory
/home/zazdxscf/build/1nonpkgs/rust/rust/mk/docs.mk:138: recipe for target 'doc/grammar.html' failed
make: *** [doc/grammar.html] Error 127
make: *** Waiting for unfinished jobs....
...
real    3m54.500s
user    7m42.910s
sys 4m30.387s

Note that it stops after llvm compilation finishes.

@ghost
Copy link

ghost commented Oct 23, 2015

It only fails when I pass NO_REBUILD=1 to make ! So both -j4 and NO_REBUILD=1 are required to fail like that.

bors added a commit to rust-lang-ci/rust that referenced this issue Jun 5, 2023
Use async block in async fn type inference

fix rust-lang#14456

At some point we should probably go further and completely desugar async fn in hir lowering.
bors pushed a commit to rust-lang-ci/rust that referenced this issue Apr 22, 2025
Fix rust-lang#14461:

- insert parentheses as required in suggestion
- check MSRV before suggesting fix in `const` context
- do not lint macro expansion result

Commits have been logically separated to facilitate review, and start
with a refactoring (and simplification) of the existing code.

changelog: [`manual_is_power_of_two`]: insert parentheses as required in
suggestion, check MSRV before suggesting fix in `const` context, do not
lint macro expansion results
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant