Releases: rust-lang/cc-rs
1.0.85
Important
This release has been yanked, due to panicking in freeBSD debug build. A release without these issues will be made in the near future.
Sorry, and thanks.
What's Changed
- fix: fix the usage of include directories for the Rust analyzer by @aminya in #854
- Fix Apple deployment version floor when linking C++ by @BlackHoleFox in #901
- Fix unconditional cargo metadata printing on flag support check by @ahlinc in #908
- Some clippy fixes by @waywardmonkeys in #879
- Add
--
for files intry_expand
(like in #514) by @pashokitsme in #911 - Link against libc++ on *-linux-ohos by @DianQK in #915
- Add support for ARM64EC when building with MSVC by @dpaoliello in #910
- Add new compile_intermediates function. by @roblabla in #914
- Add
cargo_warnings
config to control the use of the cargo warning instruction by @scootermon in #917 - Use RUSTC_WRAPPER if no other wrapper is provided by @LeonMatthesKDAB in #918
- move async_executor and job_token modules into new parallel module by @Be-ing in #923
- do not publish cc-test crate by @Be-ing in #926
- move src/os_pipe.rs to src/os_pipe/mod.rs by @Be-ing in #925
- add comment why tvOS CI job is separate from the matrix by @Be-ing in #928
- move retain_unordered_mut function into parallel module by @Be-ing in #930
- move cc-test & gen-windows-sys-binding into workspace by @Be-ing in #927
- fix broken intradoc links by @Be-ing in #922
- split miscellaneous code into a new command_helpers module by @Be-ing in #931
- split Tool and ToolFamily to a new tool module by @Be-ing in #929
- do not publish tests or gcc-shim with crate by @Be-ing in #934
- use full import path in tool module by @Be-ing in #933
- move Windows code into a module by @Be-ing in #924
- add comment explaining gcc-shim. by @Be-ing in #935
- Add support for riscv32imac-esp-espidf by @madmo in #939
- Forward lines from stderr of child process to stdout on the same thread, instead of spawning a thread by @dpaoliello in #940
- Fix typos. by @waywardmonkeys in #942
- Fix default deployment target behavior for Apple targets by @BlackHoleFox in #943
- move documentation from README.md to lib.rs by @Be-ing in #921
- Release cc 1.0.85 by @NobodyXu in #944
New Contributors
- @aminya made their first contribution in #854
- @ahlinc made their first contribution in #908
- @pashokitsme made their first contribution in #911
- @DianQK made their first contribution in #915
- @dpaoliello made their first contribution in #910
- @scootermon made their first contribution in #917
- @LeonMatthesKDAB made their first contribution in #918
- @Be-ing made their first contribution in #923
- @madmo made their first contribution in #939
Full Changelog: 1.0.84...1.0.85
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!