| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
raw-dylib is a link kind that allows rustc to link against a library
without having any library files present.
This currently only exists on Windows. rustc will take all the symbols
from raw-dylib link blocks and put them in an import library, where they
can then be resolved by the linker.
While import libraries don't exist on ELF, it would still be convenient
to have this same functionality. Not having the libraries present at
build-time can be convenient for several reasons, especially
cross-compilation. With raw-dylib, code linking against a library can be
cross-compiled without needing to have these libraries available on the
build machine. If the libc crate makes use of this, it would allow
cross-compilation without having any libc available on the build
machine. This is not yet possible with this implementation, at least
against libc's like glibc that use symbol versioning.
The raw-dylib kind could be extended with support for symbol versioning
in the future.
This implementation is very experimental and I have not tested it very
well. I have tested it for a toy example and the lz4-sys crate, where it
was able to successfully link a binary despite not having a
corresponding library at build-time.
|
|
revert accidental change in get_closest_merge_commit
This was accidentally merged as part of https://github.com/rust-lang/rust/pull/137594. I need this local diff to be able to debug miri syncs, and then typed `git commit -a` too fast and didn't realize it includes this change... sorry for that.
r? ``@Kobzol``
|
|
Update gcc submodule
To add support for the x87 feature (see https://github.com/rust-lang/rust/pull/137612#issuecomment-2683303111).
r? `@antoyo`
|
|
Rustc dev guide subtree update
r? ``@Kobzol`` ``@jieyouxu``
|
|
|
|
|
|
should emit crate
|
|
doc: remove nit from setup.md
|
|
It is reasonable to expect that ./x.py test core is enough to run tests
when you are working on core. In addition it seems like CI for wasm32 at
least doesn't run coretests currently, which this commit fixes.
|
|
This overrides the test=false flag in Cargo.toml and it shouldn't be
necessary as --tests is already passed.
|
|
If we use a С/С++ compiler as linker, then Posix-style escaping should be used.
|
|
|
|
|
|
internal: Migrate some low-hanging `remove_*` assists to `SyntaxEditor`
|
|
|
|
Include version number of libs being built in cargo lib metadata (esp. `librustc_driver*.so`)
Previously, on a non-stable channel, it's possible for two builds from different versioned sources (e.g. 1.84.0 vs 1.84.1) to produce a `librustc_driver*.so` with the same filename hashes. This causes problems with side-by-side installs wrt. linker search paths because 1.84.1 rustc bin and 1.84.0 rustc bin may try to link to the "same" `librustc_driver*.so` (same filename hash) but fail because the contents of the so is actually different.
We try to mitigate this by including the version number of artifacts being built via `__CARGO_DEFAULT_LIB_METADATA` (kind of an ugly hack, but I don't think cargo has a way for us to tell cargo to use a package version override).
Fixes #136701 (mitigates, really).
### Testing
Tested manually[^host] by:
```bash
$ cat src/version
1.86.0
$ ./x build library # w/ compiler profile, (non-stable) dev channel
$ lddtree build/host/stage1/bin/rustc
rustc => build/host/stage1/bin/rustc (interpreter => /lib64/ld-linux-x86-64.so.2)
librustc_driver-ea1b1b2291881cc4.so => build/host/stage1/bin/../lib/librustc_driver-ea1b1b2291881cc4.so
[...]
```
and observing that changing `src/version` to bump a point release causes `librustc_driver*.so` to have a different hash while sources are unmodified otherwise.
```bash
$ cat src/version
1.86.1
$ ./x build library # w/ compiler profile, (non-stable) dev channel
$ lddtree build/host/stage1/bin/rustc
rustc => build/host/stage1/bin/rustc (interpreter => /lib64/ld-linux-x86-64.so.2)
librustc_driver-746badadbcb74721.so => build/host/stage1/bin/../lib/librustc_driver-746badadbcb74721.so
[...]
```
cc `@clan` `@demize` could you check that if you backport this change against 1.84.{0,1} as reported in #136701, that the produced `rustc` binary works, under the context of the Gentoo build system setup?
[^host]: on a `x86_64-unknown-linux-gnu` host, no cross
|
|
To add support for the x87 feature.
|
|
Resolve more FIXMEs
|
|
Rollup of 14 pull requests
Successful merges:
- #136576 (pass optimization level to llvm-bitcode-linker)
- #137154 (Add UTF-8 validation fast paths in `Wtf8Buf`)
- #137311 (Enable `f16` for MIPS)
- #137320 (fix(rustdoc): Fixed stability version in rustdoc)
- #137529 (remove few unused args)
- #137544 (tests: Add regression test for derive token invalidation (#81099))
- #137559 (run some tests on emscripten again)
- #137601 (ssa/mono: deduplicate `type_has_metadata`)
- #137603 (codegen_llvm: avoid `Deref` impls w/ extern type)
- #137604 (trait_sel: resolve vars in host effects)
- #137609 (Complete the list of resources used in rustdoc output)
- #137613 (hir_analysis: skip self type of host effect preds in variances_of)
- #137614 (fix doc in library/core/src/pin.rs)
- #137622 (fix attribute-related ICE when parsing macro on the rhs of a name-value attribute)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
Allow "package/feature" format feature flag
|
|
|
|
|
|
|
|
|
|
Complete the list of resources used in rustdoc output
The Nanum Barun Gothic Font was missing in the list and should clearly be mentionned.
Arguably referencing the Rust logos is not really necessary as the file mentions "third party resources" but it doesn't hurt and should make things clearer for anybody who wants to publish their Rust doc.
|
|
fix(rustdoc): Fixed stability version in rustdoc
Tries to fix https://github.com/rust-lang/rust/issues/137141
Fixed by adding checks glob exports
|
|
Build GCC on CI
Previously, we have downloaded a specific commit of GCC and prebuilt it inside Docker using the `build-gccjit.sh` script. This PR removes that scripts and uses the bootstrap GCC step. This allows us to use the `src/gcc` submodule for determining which GCC should be built, and it also moves the logic closer to LLVM, which is also built by bootstrap.
A few things to note:
- The `sccache` option is currently in the `llvm` block, so the GCC build uses `llvm.ccache`, which is a bit weird :) We could either add `gcc.ccache`, or (what I think would be better) to just move `ccache` to the `build` section, as I don't think that it will be necessary to use ccache for LLVM, but not for GCC.
- When the GCC codegen backend is built, it needs to depend on a step that first builds GCC. This is currently done in a hacky way. The proper solution is to create a separate step for the GCC codegen backend, but that is a larger change. Let me know what you think.
r? `@onur-ozkan`
try-job: i686-msvc-1
try-job: x86_64-mingw-1
|
|
Miri subtree update
r? `@ghost`
try-job: x86_64-gnu-aux
|
|
|
|
|
|
Rollup of 8 pull requests
Successful merges:
- #137370 (adjust_abi: make fallback logic for ABIs a bit easier to read)
- #137444 (Improve behavior of `IF_LET_RESCOPE` around temporaries and place expressions)
- #137464 (Fix invalid suggestion from type error for derive macro)
- #137539 ( Add rustdoc-gui regression test for #137082 )
- #137576 (Don't doc-comment BTreeMap<K, SetValZST, A>)
- #137595 (remove `simd_fpow` and `simd_fpowi`)
- #137600 (type_ir: remove redundant part of comment)
- #137602 (feature: fix typo in attribute description)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Revert accidental cargo submodule update
This was accidentally introduced in #135726
|
|
use stage 2 on cargo and clippy tests when possible
Follow-up for #137215.
For more context, read the discussion starting from https://github.com/rust-lang/rust/pull/137215#issuecomment-2674395959.
r? Kobzol (Feel free to re-r if you are not available).
|
|
downgrade bootstrap `cc`
Current `cc` version causing bootstrap to fail on custom targets. See https://github.com/rust-lang/cc-rs/issues/1317 for more context.
Fixes (after beta and stable backports): https://github.com/rust-lang/rust/issues/137064 and https://github.com/rust-lang/rust/issues/135271
|
|
|
|
Add rustdoc-gui regression test for #137082
Fixes https://github.com/rust-lang/rust/issues/137082.
Added new commands in `browser-ui-test` allowing us to add a regression test for #137082 and also another to copy code examples content.
r? `@notriddle`
|
|
|
|
|
|
|