Releases: rust-lang/cc-rs
1.0.84
Important
This release has been yanked, due to the Apple deployment target changes causing unintentional widespread breakage for building C++ code on the target (for projects without an explicit deployment target set). A release without these issues will be made in the near future.
Sorry, and thanks.
Changes
This isn't a complete list, but I've tried to cover everything that is either significant, or could cause problems for people using cc
in configurations not covered by our tests.
- The MSRV has been updated to 1.53.0 (#894)
- A completely overhauled implementation of the jobserver protocol (used under
feature = parallel
), which should be more efficient. (#889). - Better handling of assemblers on windows targets, especially
armasm[64].exe
(#867, #868, #869, #857) - A few fixes for incorrect results from
is_flag_supported
(#839, #886) - Support for the
*-apple-tvos
and*-apple-tvos-sim
targets (#881, #704) - Improved handling of the deployment target on Apple targets, including use of
rustc --print deployment-target
when available (#848, #872) - We no longer bundle bitcode when compiling for Apple targets, as they've deprecated it (#812)
- A new
remove_flag
function to remove flags which have been added withadd_flag
(#885) - Changes to how clang and gcc are distinguished, and how
-m32
/-mx32
/-m64
flags are passed (#709) - Minor adjustments to how
-isysroot
is passed on Apple targets (#703) and how MSVC version is detected on Windows (#696).
As always, please file bugs if you hit issues. cc
is used in many more ways than we can possibly test (especially when cross-compiling or using tier-3 platforms).
Thanks.
New Contributors
- @BlackHoleFox made their first contribution in #848
- @youknowone made their first contribution in #704
- @Arc-blroth made their first contribution in #705
- @osiewicz made their first contribution in #878
- @RubixDev made their first contribution in #839
- @lcruz99 made their first contribution in #881
- @raisfeld-ori made their first contribution in #885
Full Changelog: 1.0.83...1.0.84
1.0.83
What's Changed
- Add method for specifying C/C++ standard version by @hikari-no-yume in #761
- Stop using feature "libc/std" by @kadiwa4 in #860
New Contributors
- @hikari-no-yume made their first contribution in #761
- @kadiwa4 made their first contribution in #860
Full Changelog: 1.0.82...1.0.83
1.0.82
1.0.81
1.0.80
What's Changed
- Bump MSRV to 1.46.0 by @thomcc in #781
- Make
windows_registry::VsVers
non_exhaustive by @NobodyXu in #783 - Prioritize RUSTC_LINKER over target->cross-compile-prefix table. by @dot-asm in #767
- If a file path references a parent directory, transform it to ensure we keep inside the OUT_DIR by @jmesmon in #786
- Speedup
Build::clone
: UseArc
instead ofString
/PathBuf
/OsString
by @NobodyXu in #782 - Fix --target cflag on FreeBSD when compiling against clang by @mqudsi in #785
- Append
freebsd-version
to all --target=*-freebsd if executed on FreeBSD. by @dot-asm in #788 - Update some doc comments by @mqudsi in #792
- Prevent cloning on every
get_xxx()
call by @mqudsi in #793 - Change approach for native and cross-compilation with clang++ on FreeBSD by @mqudsi in #794
- Default to llvm-ar when compiling for wasm. by @dot-asm in #657
- Add Loongarch64 support by @zhaixiaojuan in #637
- Refine CUDA documentation. by @dot-asm in #799
- Improve docs for the C++ usage by @SallySoul in #600
- Link against libc++ on AIX by @bzEq in #803
- Speedup CI by @NobodyXu in #805
- Enable dependabot for GitHub Action Workflows by @NobodyXu in #806
- Be more stringent about handling Android NDK. by @jfgoog in #808
- Optimize
Build::compile_objects
: Only spawns one thread by @NobodyXu in #780 - add a function to populate flags from an arbitrary environment variable by @nagisa in #818
- Use gnu -o flag for obj out path instead of -Fo when using gcc & g++ on Windows by @Spencer1O1 in #820
- Replace
os_pipe
with direct implementation by @NobodyXu in #822 - Optimize
Build::print
: Avoid unnecessary heap alloc by @NobodyXu in #824 - Optimize
Error::new
: Avoid unnecessary heap alloc by @NobodyXu in #823 - Optimize
cc::Build::try_compile
: ReusePrintThread
by @NobodyXu in #817 - Remove outdated doc about build parallelism by @NobodyXu in #827
- Use correct ABI on NetBSD/riscv64, and add target entry for same. by @he32 in #815
- Fix
Build::compile_objects
deadlock on parallel by @NobodyXu in #829 - Cleanup mod com, registry, setup_config and winapi by @NobodyXu in #828
- Optimize
Build::get_out_dir
: ReturnCow<'_, Path>
by @NobodyXu in #831 - Optimize
Build::env_cache
: StoreOption<Arc<str>>
as key by @NobodyXu in #832 - Optimize
Build::compile_objects
on feature parallel by @NobodyXu in #833 - Disambiguate Windows run-times when using clang to compile. by @dot-asm in #825
- Harmonize README.md with reality. by @dot-asm in #835
- Replace
windows-sys
dependency with bindings generation by @NobodyXu in #837 - Handle
x86_64h-apple-darwin
target by @thomcc in #840 - Bump version to 1.0.80 by @thomcc in #834
New Contributors
- @zhaixiaojuan made their first contribution in #637
- @SallySoul made their first contribution in #600
- @bzEq made their first contribution in #803
- @jfgoog made their first contribution in #808
- @Spencer1O1 made their first contribution in #820
- @he32 made their first contribution in #815
Full Changelog: 1.0.79...1.0.80
1.0.79
Version 1.0.79
Changelog
- The
riscv32imc-esp-espidf
target is now supported (#776) Build::is_flag_supported
now checks the exit status of the compiler in addition to stderr output, improving reliability (#757)- When building for the
aarch64-apple-ios-sim
target-arch arm64
is now correctly passed as two arguments instead of one (#759) - Improved control over
ar
andranlib
(#763)- New functions to return the
ar
(Build::get_archiver
) andranlib
(Build::get_ranlib
) binaries used for this build have been added. - Several related environment variables involving the archiver and ranlib variant (
ARFLAGS
,RANLIBFLAGS
,AR
, andRANLIB
) are now respected automatically if not overridden. - Some other changes too, see #763 for details.
- New functions to return the
- We will now correctly locate
msbuild
under VS2022 (#773)
Additionally, a number of smaller changes which shouldn't impact users have been made (in particular #769 and #777); see the commit history for complete details.
Thanks to everybody who contributed to this release!
1.0.78
Version 1.0.78
Changelog
- Now, only
.asm
files are passed to masm on windows targets, bringing things back in line with how cc-rs<1.0.77 handled it (#755). - Absolute paths in source are now mapped as relative in OUT_DIR (#684)
- Several improvements were made to CUDA support (#712)
llvm-lib.exe
is now used instead oflib.exe
whenclang-cl
is used in an MSVC environment (#758)
Thanks to everybody who contributed to this release!
1.0.77
Version 1.0.77
Changelog
- Added a new
Build::asm_flag
function, which allows providing flags that are only used when compiling assembly files (for example, if your C compiler rejects flags passed to the assembler when not used as an assembler). (#752) - Ensure that the version of DWARF debuginfo we emit is consistent with what rustc uses on the given target. (#694)
Thanks to everybody who contributed to this release!
1.0.76
Version 1.0.76
Changelog
- When compiling with
clang-cl
, we now only use--
to separate flags/options from input files when not using the assembler, which doesn't support that option. This is a fix for a regression introduced in 1.0.74 (by #514) (present in 1.0.75 as well). (#747)
This is essentially a bugfix release, so that's all!
1.0.75
Version 1.0.75
Changelog
- When Rust debuginfo is enabled, debuginfo is passed to MSVC assemblers (#742)
- When locating an
ar
executable,*-ar
is now preferred to*-gcc-ar
(#741) - On MSVC 15+, the atlmfc directory is now correctly located (#699)
Additionally, a number of smaller changes which shouldn't impact users have been made; see the commit history for complete details.
Thanks to everybody who contributed to this release!