Skip to content

Multi-host cross-compile build sometimes fails when building llvmdeps.rs #17852

Description

@brson

This happens on our nightly and dist bots periodically:

make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/rustbuild/src/rust-buildbot/slave/dist2-linux/build/obj/i686-unknown-linux-gnu/llvm/bindings'
llvm[1]: ***** Completed Release+Asserts Build
make[1]: Leaving directory `/home/rustbuild/src/rust-buildbot/slave/dist2-linux/build/obj/i686-unknown-linux-gnu/llvm'
Traceback (most recent call last):
  File "/home/rustbuild/src/rust-buildbot/slave/dist2-linux/build/src/etc/mklldeps.py", line 50, in <module>
    out = run([llconfig, '--host-target'])
  File "/home/rustbuild/src/rust-buildbot/slave/dist2-linux/build/src/etc/mklldeps.py", line 38, in run
    proc = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  File "/home/rustbuild/root64/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/home/rustbuild/root64/lib/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
make: *** [/home/rustbuild/src/rust-buildbot/slave/dist2-linux/build/src/librustc_llvm/llvmdeps.rs] Error 1
program finished with exit code 2
elapsedTime=4174.547997

Here's what configure looks like:

../configure --disable-valgrind --enable-dist-host-only --host=i686-unknown-linux-gnu,x86_64-unknown-linux-gnu

Activity

  1. brson commented on Oct 7, 2014

    @brson
    ContributorAuthor

    Presumably it's complaining that llvm-config can't be found, but the makefiles look right to me. Hard to reproduce.

  2. alexcrichton commented on Oct 7, 2014

    @alexcrichton
    Member

    I've only ever seen this get reproduced during an LLVM upgrade on a multi-host builder. I've only sporadically been able to reproduce locally, and if you re-make after the error occurs it does not repeat itself. The only sequence of events I've seen to trigger this is:

    1. Build LLVM in the rust repo (for multiple hosts).
    2. Upgrade LLVM in the rust repo.
    3. Build LLVM again (run make -j), see the error.
  3. brson commented on Oct 7, 2014

    @brson
    ContributorAuthor

    Perhaps this is because the rules for the host-specific llvm stamp call the non-host-specific clean-llvm target, so when the build gets to the second LLVM it deletes the just-built LLVM.

  4. added a commit that references this issue on Oct 30, 2014
    b8e7c4f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions