Skip to content

Releases: rust-lang/cc-rs

1.0.84

12 Nov 19:24
17f9e01
Compare
Choose a tag to compare

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 with add_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

Full Changelog: 1.0.83...1.0.84

1.0.83

20 Aug 18:57
bfc3ba4
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.0.82...1.0.83

1.0.82

07 Aug 04:16
bf4f709
Compare
Choose a tag to compare

This release corrects a deadlock and potential performance regression present since 1.0.80, and contains no other changes. See #849 for details.

1.0.81

02 Aug 15:19
5710ce5
Compare
Choose a tag to compare

This release exists to fix a bug introduced in 1.0.80 where we would panic if non-UTF8 were written to stderr by the C compiler. See #842 and #841 for more info.

1.0.80

02 Aug 00:09
7adebb9
Compare
Choose a tag to compare

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: Use Arc instead of String/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: Reuse PrintThread 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: Return Cow<'_, Path> by @NobodyXu in #831
  • Optimize Build::env_cache: Store Option<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

Full Changelog: 1.0.79...1.0.80

1.0.79

28 Jan 20:08
e5bbdfa
Compare
Choose a tag to compare

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 and ranlib (#763)
    • New functions to return the ar (Build::get_archiver) and ranlib (Build::get_ranlib) binaries used for this build have been added.
    • Several related environment variables involving the archiver and ranlib variant (ARFLAGS, RANLIBFLAGS, AR, and RANLIB) are now respected automatically if not overridden.
    • Some other changes too, see #763 for details.
  • 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

15 Dec 02:33
203a57f
Compare
Choose a tag to compare

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 of lib.exe when clang-cl is used in an MSVC environment (#758)

Thanks to everybody who contributed to this release!

1.0.77

20 Nov 22:56
Compare
Choose a tag to compare

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

08 Nov 23:39
Compare
Choose a tag to compare

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

08 Nov 16:45
Compare
Choose a tag to compare

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!