1. 11 4月, 2020 1 次提交
  2. 31 3月, 2020 1 次提交
    • J
      Ensure LLVM is in the link path for "fulldeps" tests · 6067315d
      Josh Stone 提交于
      This is a follow-up to #70123, which added `llvm-config --libdir` to the
      `LIBRARY_PATH` for rustc tools. We need the same for "run-make-fulldeps"
      and "ui-fulldeps" tests which depend on compiler libraries, implicitly
      needing to link to `-lLLVM` as well.
      6067315d
  3. 25 3月, 2020 1 次提交
  4. 24 3月, 2020 1 次提交
  5. 20 3月, 2020 1 次提交
  6. 14 3月, 2020 1 次提交
  7. 13 3月, 2020 1 次提交
  8. 04 3月, 2020 1 次提交
  9. 22 2月, 2020 1 次提交
  10. 17 2月, 2020 1 次提交
  11. 16 2月, 2020 1 次提交
    • O
      Fix running rustdoc-js test suite individually · 33007253
      Oliver Middleton 提交于
      Without `Compiletest.path` set running `x.py test src/test/rustdoc-js` would run the `rustdoc-js` test suite with everything filtered out.
      
      As this was the only place setting `Compiletest.path` to `None` this removes the `Option` wrapper as well.
      33007253
  12. 14 2月, 2020 1 次提交
  13. 09 2月, 2020 1 次提交
  14. 04 2月, 2020 1 次提交
  15. 30 1月, 2020 1 次提交
  16. 27 1月, 2020 1 次提交
  17. 20 1月, 2020 1 次提交
    • T
      compiletest: Simplify multi-debugger support · 6d218db2
      Tomasz Miąsko 提交于
      Previous implementation used a single mode type to store various pieces
      of otherwise loosely related information:
      
      * Whether debuginfo mode is in use or not.
      * Which debuggers should run in general.
      * Which debuggers are enabled for particular test case.
      
      The new implementation introduces a separation between those aspects.
      There is a single debuginfo mode parametrized by a debugger type.
      The debugger detection is performed first and a separate configuration
      is created for each detected debugger. The test cases are gathered
      independently for each debugger which makes it trivial to implement
      support for `ignore` / `only` conditions.
      
      Functional changes:
      
      * A single `debuginfo` entry point (rather than `debuginfo-cdb`, `debuginfo-gdb+lldb`, etc.).
      * Debugger name is included in the test name.
      * Test outputs are placed in per-debugger directory.
      * Fixed spurious hash mismatch. Previously, the config mode would change
        from `DebugInfoGdbLldb` (when collecting tests) to `DebugInfoGdb` or
        `DebugInfoLldb` (when running them) which would affect hash computation.
      * PYTHONPATH is additionally included in gdb hash.
      * lldb-python and lldb-python-dir are additionally included in lldb hash.
      6d218db2
  18. 09 1月, 2020 1 次提交
  19. 29 12月, 2019 1 次提交
  20. 24 12月, 2019 1 次提交
  21. 23 12月, 2019 1 次提交
  22. 22 12月, 2019 1 次提交
  23. 18 12月, 2019 2 次提交
  24. 11 12月, 2019 1 次提交
    • A
      rustc: Link LLVM directly into rustc again · 7f23e6e8
      Alex Crichton 提交于
      This commit builds on #65501 continue to simplify the build system and
      compiler now that we no longer have multiple LLVM backends to ship by
      default. Here this switches the compiler back to what it once was long
      long ago, which is linking LLVM directly to the compiler rather than
      dynamically loading it at runtime. The `codegen-backends` directory of
      the sysroot no longer exists and all relevant support in the build
      system is removed. Note that `rustc` still supports a dynamically loaded
      codegen backend as it did previously, it just no longer supports
      dynamically loaded codegen backends in its own sysroot.
      
      Additionally as part of this the `librustc_codegen_llvm` crate now once
      again explicitly depends on all of its crates instead of implicitly
      loading them through the sysroot. This involved filling out its
      `Cargo.toml` and deleting all the now-unnecessary `extern crate`
      annotations in the header of the crate. (this in turn required adding a
      number of imports for names of macros too).
      
      The end results of this change are:
      
      * Rustbuild's build process for the compiler as all the "oh don't forget
        the codegen backend" checks can be easily removed.
      * Building `rustc_codegen_llvm` is much simpler since it's simply
        another compiler crate.
      * Managing the dependencies of `rustc_codegen_llvm` is much simpler since
        it's "just another `Cargo.toml` to edit"
      * The build process should be a smidge faster because there's more
        parallelism in the main rustc build step rather than splitting
        `librustc_codegen_llvm` out to its own step.
      * The compiler is expected to be slightly faster by default because the
        codegen backend does not need to be dynamically loaded.
      * Disabling LLVM as part of rustbuild is still supported, supporting
        multiple codegen backends is still supported, and dynamic loading of a
        codegen backend is still supported.
      7f23e6e8
  25. 11 11月, 2019 1 次提交
  26. 26 10月, 2019 2 次提交
  27. 22 10月, 2019 1 次提交
    • A
      Remove `src/llvm-emscripten` submodule · c7d285b7
      Alex Crichton 提交于
      With #65251 landed there's no need to build two LLVM backends and ship
      them with rustc, every target we have now uses the same LLVM backend!
      
      This removes the `src/llvm-emscripten` submodule and additionally
      removes all support from rustbuild for building the emscripten LLVM
      backend. Multiple codegen backend support is left in place for now, and
      this is intended to be an easy 10-15 minute win on CI times by avoiding
      having to build LLVM twice.
      c7d285b7
  28. 19 10月, 2019 1 次提交
  29. 17 10月, 2019 1 次提交
    • T
      Upgrade Emscripten targets to use upstream LLVM backend · 2bf59bea
      Thomas Lively 提交于
       - Compatible with Emscripten 1.38.46-upstream or later upstream.
       - Refactors the Emscripten target spec to share code with other wasm
         targets.
       - Replaces the old incorrect wasm32 C call ABI with the correct one,
         preserving the old one as wasm32_bindgen_compat for wasm-bindgen
         compatibility.
       - Updates the varargs ABI used by Emscripten and deletes the old one.
       - Removes the obsolete wasm32-experimental-emscripten target.
       - Uses EMCC_CFLAGS on CI to avoid the timeout problems with #63649.
      2bf59bea
  30. 06 10月, 2019 1 次提交
  31. 04 10月, 2019 2 次提交
    • T
      Fix ABI, run and fix more tests, re-enable CI for PRs · 5b56c660
      Thomas Lively 提交于
      5b56c660
    • T
      Upgrade Emscripten targets to use upstream LLVM backend · 9a55103b
      Thomas Lively 提交于
       - Refactors the Emscripten target spec to share code with other wasm
         targets.
       - Replaces the incorrect wasm32 C call ABI with the old asmjs
         version, which is correct for both wasm32 and JS.
       - Updates the varargs ABI used by Emscripten and deletes the old one.
       - Removes the obsolete wasm32-experimental-emscripten target.
       - Temporarily makes Emscripten targets use panic=abort by default
         because supporting unwinding will require an LLVM patch.
      9a55103b
  32. 24 9月, 2019 3 次提交
  33. 06 9月, 2019 1 次提交
  34. 28 8月, 2019 1 次提交
    • A
      std: Remove the `wasm_syscall` feature · 8fe65da9
      Alex Crichton 提交于
      This commit removes the `wasm_syscall` feature from the
      wasm32-unknown-unknown build of the standard library. This feature was
      originally intended to allow an opt-in way to interact with the
      operating system in a posix-like way but it was never stabilized.
      Nowadays with the advent of the `wasm32-wasi` target that should
      entirely replace the intentions of the `wasm_syscall` feature.
      8fe65da9
  35. 24 8月, 2019 1 次提交
    • A
      bootstrap: Merge the libtest build step with libstd · b47c9690
      Alex Crichton 提交于
      Since its inception rustbuild has always worked in three stages: one for
      libstd, one for libtest, and one for rustc. These three stages were
      architected around crates.io dependencies, where rustc wants to depend
      on crates.io crates but said crates don't explicitly depend on libstd,
      requiring a sysroot assembly step in the middle. This same logic was
      applied for libtest where libtest wants to depend on crates.io crates
      (`getopts`) but `getopts` didn't say that it depended on std, so it
      needed `std` built ahead of time.
      
      Lots of time has passed since the inception of rustbuild, however,
      and we've since gotten to the point where even `std` itself is depending
      on crates.io crates (albeit with some wonky configuration). This
      commit applies the same logic to the two dependencies that the `test`
      crate pulls in from crates.io, `getopts` and `unicode-width`. Over the
      many years since rustbuild's inception `unicode-width` was the only
      dependency picked up by the `test` crate, so the extra configuration
      necessary to get crates building in this crate graph is unlikely to be
      too much of a burden on developers.
      
      After this patch it means that there are now only two build phasese of
      rustbuild, one for libstd and one for rustc. The libtest/libproc_macro
      build phase is all lumped into one now with `std`.
      
      This was originally motivated by rust-lang/cargo#7216 where Cargo was
      having to deal with synthesizing dependency edges but this commit makes
      them explicit in this repository.
      b47c9690