Hi, I've added code for generating a new atomic intrinsic to
librustc_llvm_codegen/intrinsic.rs (or rather a new success/failure ordering combination for
cxchg) and added the corresponding intrinsic signature to
libcore/intrinsics.rs and usage to
However, with changes to both
libcore the stage-1 build of libstd (and libcore I assume) fails.
From my understanding of the bootstrapping process, this should be caused by the beta compiler used in stage-1 being unable to compile the changes made to
libcore because it is lacking the changes to
How do I go about this? Do I have to first try to get the changes to codegen merged and only then the changes to core?
You can use
#[cfg(not(bootstrap))] to only enable or disable code in libcore when compiling using the bootstrap compiler.
You can use
#[cfg(not(bootstrap))]to only enable or disable code in libcore when compiling using the bootstrap compiler.
Thanks for the hint, I hadn't seen anything in the contribution guide about this attribute. I would assume these tend to get phased out over time?
We compile the stage 1 compiler using the current beta release (mostly i think)
after every new beta release, we use the new beta compiler for bootstrap, which means that we can now remove all previous
see https://github.com/rust-lang/rust/pull/74395 where this was done the last time
(every new beta is mostly just the nightly compiler of that given day, so it contains all relevant changes)
I see, sorry for asking, I should have read the guide more carefully
don't mind :thumbs_up:
its often far easier to search things if you know what to search for, so this taking me 5 minutes while waiting for stuff to compile isn't something which should prevent you from asking in the future
i also think that questions like this may often end up being somewhat interesting to other people as well