Commit Graph

2116 Commits

Author SHA1 Message Date
beetrees
d6588dff8f Use macos-latest in CI for aarch64-apple-darwin 2024-08-24 11:24:45 +01:00
Trevor Gross
a1ba7445d4 Add a success job to CI
This will allow us to enable auto merge once CI completes.
2024-08-22 03:43:13 -05:00
github-actions[bot]
25be87d8a8 chore: release 2024-08-22 08:01:13 +00:00
Scott McMurray
40d2a60c22 Use array simd in U64x2 2024-08-22 00:43:02 -07:00
github-actions[bot]
7033f32bac chore: release 2024-08-22 06:03:55 +00:00
Amjad Alsharafi
b71531e64e Fix weak linkage on windows and apple platforms
There were some issues regarding windows and apple platform, we were
exporting symbols that are already provided by the compiler but weren't
marked as `weak` which resulted in conflicted symbols in the linking
process.

Initially, we didn't add `weak` because we thought it is not supported
on windows and apple platforms, but it looks like its only not supported
on windows-gnu platforms

Signed-off-by: Amjad Alsharafi <26300843+Amjad50@users.noreply.github.com>
2024-08-22 10:59:06 +08:00
Trevor Gross
db9debf096 Apply fixes to build.rs files
Make the following changes:

- Add `rerun-if-changed` to the new `configure.rs`, it seems this was
  causing incorrect caching.
- Change from matching `i686` to `x86`. The target triple starts with
  `i686` so that is what we were checking before, but the architecture
  is `x86`. This change should have been made when we added `struct
  Target`, update it now instead.
2024-08-19 07:04:07 -05:00
Kleis Auke Wolthuizen
18cbc52ee6 Add configure.rs to the include list 2024-08-12 19:45:28 +02:00
github-actions[bot]
3869b3962c chore: release 2024-08-12 16:42:17 +00:00
Kleis Auke Wolthuizen
13cc7daf05 Fix CI for targets that conditionally disable f16 or f128 support 2024-08-12 14:56:59 +02:00
Kleis Auke Wolthuizen
5dad727bdc Configure f16 and f128 support for WebAssembly 2024-08-11 17:25:55 +02:00
github-actions[bot]
4860f22460 chore: release 2024-08-08 12:17:09 +00:00
Guillaume Gomez
145143a0b7 Activate force-soft-floats feature in build.rs 2024-08-08 14:09:07 +02:00
Guillaume Gomez
281c14d4fc Update libm submodule 2024-08-08 14:00:59 +02:00
Guillaume Gomez
7bc2291ac5 Rename only-soft-floats feature into force-soft-floats 2024-08-07 11:29:47 +02:00
github-actions[bot]
6565fbb704 chore: release 2024-08-07 02:18:44 +00:00
Trevor Gross
14bd1e6ae1 Revert "Eliminate the use of public_test_dep!" 2024-08-06 22:11:19 -04:00
github-actions[bot]
41df199623 chore: release 2024-08-06 21:48:51 +00:00
Guillaume Gomez
c1a498db17 Add only-soft-floats feature to prevent using any intrinsics or arch-specific code 2024-08-06 21:23:34 +02:00
Trevor Gross
976881c9c9 Eliminate the use of public_test_dep!
Replace `public_test_dep!` by placing optionally public items into new
modules, then controlling what is exported with the `public-test-deps`
feature.

This is nicer for automatic formatting and diagnostics.
2024-08-06 02:30:48 -05:00
Trevor Gross
5a4ccab866 Fix emscripten as os rather than env.
b7af6078 ("Switch to a target structure...") is checking whether the
target environment is emscripten, but it seems emscripten is the OS. Fix
this, which should resolve the issue in
<https://github.com/rust-lang/rust/pull/128691#issuecomment-2269933428>.
2024-08-05 16:26:27 -05:00
github-actions[bot]
72e745ff9c chore: release 2024-08-04 23:17:25 +00:00
Trevor Gross
e0e6243b21 Update float conversion tests
Since there are more platforms that do not have symbols present, we need
to use `rustc_apfloat` for more conversion tests. Make use of the
fallback like other tests, and refactor so each test gets its own
function.

Previously we were testing both apfloat and system conversion methods
when possible. This changes to only test one or the other, depending on
whether or not the system version is available. This seems reasonable
because it is consistent with all other tests, but we should consider
updating all tests to check both at some point.

This also includes an adjustment of PowerPC configuration to account for
the linking errors at [1].

[1]: https://github.com/rust-lang/compiler-builtins/issues/655
2024-08-03 02:07:06 -04:00
Trevor Gross
b6c2b6ebf7 Update to the latest rustc_apfloat
The latest version has a convenient `.unwrap()`. Increase the version so
we can use this.
2024-08-03 02:02:44 -04:00
Trevor Gross
1cdeaed9f9 Correct sys_avialable for f64 -> f16 truncation
The `sys_available` gate was incorrect. Update it.
2024-08-03 02:02:44 -04:00
Trevor Gross
db8daebd5b Update which platforms have no f16 symbols
Previously we were building the C versions of these symbols. Since we
added the Rust version and updated compiler builtins, these are no
longer available by default. This is unintentional, but it gives a
better indicator of which symbol versions are not actually provided by
the system.

Use the list of build failures to correct the list of platforms that do
not have `f16` symbols.
2024-08-03 02:02:44 -04:00
Trevor Gross
8199433bb2 Make use of new f16 and f128 config options
Change from `not(feature = "no-f16-f128")` to `f16_enabled` or
`f128_disabled`, as applicable.
2024-08-03 02:02:44 -04:00
Trevor Gross
b168f56dd4 Configure which platforms get f16 and f128 enabled by default
By moving the logic for which platforms get symbols to
`compiler_builtins` rather than rust-lang/rust, we can control where
symbols get enabled without relying on Cargo features. Using Cargo
features turned out to be a problem in [1].

This will help resolve errors like [2].

[1]: https://github.com/rust-lang/rust/issues/128358
[2]: https://github.com/rust-lang/rust/issues/128401
2024-08-03 02:02:44 -04:00
Trevor Gross
b32758cdc2 Add back remaining config on arm_aeabi_alias
Intrinsics marked with `arm_aeabi_alias = ...` were having the rest of
their attributes eaten. Add them back.
2024-08-03 02:02:44 -04:00
Trevor Gross
22e4aa37da Switch to a target structure in build.rs 2024-08-03 02:02:41 -04:00
github-actions[bot]
85d4ef72c8 chore: release 2024-07-28 21:08:01 +00:00
Trevor Gross
99456ad08e Set allow_dirty to release-plz
This should resolve the issue in
<https://github.com/rust-lang/compiler-builtins/pull/643#issuecomment-2254641520>
2024-07-28 17:00:41 -04:00
Trevor Gross
364dd5fd5b Add release-plz for automatic releases.
This is what `cc-rs` is using and should create a release PR whenever a
change to `master` is made. If the branch is merged, it should publish
the new version.

Includes configuration to disable semver checks and not keep a changelog
since this is an implementation detail.
2024-07-26 23:45:35 -04:00
Andrey Turkin
adabbe73d9 Implement __ctz*i2 intrinsics 2024-07-25 19:26:02 +03:00
Trevor Gross
6ef2b95d46 Add missing symbols from compiler-rt to the README 2024-07-24 13:06:15 +01:00
Trevor Gross
fb27c7283c Move IBM extended double to the unneeded section 2024-07-24 13:06:15 +01:00
Trevor Gross
a96c82123e Remove a broken link in README 2024-07-24 13:06:15 +01:00
Andrey Turkin
cc64c7978e Never use C version of clz builtins 2024-07-24 12:50:04 +01:00
Andrey Turkin
a5c7a17d55 Implement remaining __clz*i2 intrinsics 2024-07-24 12:50:04 +01:00
Trevor Gross
ddd97dc19a Fix missing extern "C" for unsafe functions
`unsafe` functions were being matched in a different block that did not
include `extern $abi`. This means that some intrinsics were getting
generated with the Rust ABI rather than C.

Combine the last two blocks using an optional token matcher, which fixes
this problem and is cleaner.
2024-07-23 04:35:04 -05:00
Andrey Turkin
45465cc488 Implement __bswap[sdt]i2 intrinsics
These can be emitted by gcc, at least if requested specifically via __builtin_bswap{32,64,128}.
2024-07-06 11:51:52 +02:00
Andrey Turkin
98195c0348 Get rid of a warning 2024-07-06 05:19:37 +03:00
Trevor Gross
32b12b647b Remove unnecessary benchmark files 2024-07-05 22:17:50 +02:00
beetrees
086a1c33eb Temporarily use define_rust_probestack; 2024-07-01 07:42:22 +01:00
beetrees
c6bf88ab1c Ignore broken nightly/system builtins 2024-07-01 07:42:22 +01:00
beetrees
ffb31aee13 Fix incorrect rounding with subnormal/zero results of float multiplication 2024-06-30 22:03:33 +01:00
Trevor Gross
55b3f8b13d Enable f128 -> f16 tests on Linux
Since updating the docker images in
<https://github.com/rust-lang/compiler-builtins/pull/625>, it looks like
`__extendhftf2` and `__trunctfhf2` are available on all 64-bit Linux
platforms.
2024-06-25 23:57:08 +02:00
Amanieu d'Antras
1d7f2847e3 Release 0.1.113 2024-06-25 22:52:36 +01:00
beetrees
bf503b5c9b Fix building on AVR 2024-06-23 19:19:25 +01:00
Trevor Gross
fdec3b6514 Fix unset variables in the build script
These were preventing building via Docker locally.
2024-06-22 16:15:46 +02:00