Releases: rust-lang/cc-rs
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!
1.0.74
Version 1.0.74
Changelog
- When compiling with
clang-cl
, we now use--
to separate flags/options from input files. (#514) - We now fall back to
RUSTC_LINKER
's prefix (rather than erroring) if we fail to determine the prefix to use for the given target. (#685) - A
Build::link_lib_modifier
function was added to allow control which library modifiers are used when linking with the generated library. (#671) - When searching for an
ar
binary to use, we now try{target}-ar
in addition to{target}-gcc-ar
. If they're both present,{target}-ar
will be preferred. (#735, #736) - We now emit
cargo:rerun-if-env-changed
messages for environment variables that influence the build. This is only done ifcargo_metadata
is enabled, and can be disabled by passing false to the newBuild::emit_rerun_if_env_changed
builder function. (#701, #738)
New Targets
The following targets are now supported:
- The Apple WatchOS (and simulator) targets (
*-watchos
and*-watchos-sim
). (#662) - The LLVM-based MinGW targets (
*-pc-windows-gnullvm
). (#734) - The Xous microkernel (
riscv32imac-unknown-xous-elf
). (#686)
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!