Rahix / shared-bus

Crate for sharing buses between multiple devices
Apache License 2.0
129 stars 34 forks source link

Update atomic-polyfill requirement from 0.1.6 to 1.0.1 #44

Closed dependabot[bot] closed 1 year ago

dependabot[bot] commented 1 year ago

Updates the requirements on atomic-polyfill to permit the latest version.

Changelog

Sourced from atomic-polyfill's changelog.

1.0.1 - 2022-08-12

  • Fix AtomicPtr accidentally not being available when not polyfilled.

1.0.0 - 2022-08-12

  • Update to critical-section v1.0

0.1.11 - 2022-11-29

  • Bump critical-section dependency from 0.2 to 1.0.

    This is a breaking change if you were relying on the default implementations available on critical-section 0.2.7 and earlier. They have been removed in critical-section 0.2.8 because they were unsound, since there's no way to guarantee they're correct for the target in use (for example for multi-core embedded targets). Since critical-section 0.2.8 just forwards to 1.0 now, we decided to change atomic-polyfill to use 1.0 directly.

    If you're seeing a linker error like undefined symbol: _critical_section_1_0_acquire, you're affected. To fix it:

    • If your target supports std: Add the critical-section dependency to Cargo.toml enabling the std feature.

      [dependencies]
      critical-section = { version = "1.1", features = ["std"]}
      
    • For single-core Cortex-M targets in privileged mode:

      [dependencies]
      cortex-m = { version = "0.7.6", features = ["critical-section-single-core"]}
      
    • For single-hart RISC-V targets in privileged mode:

      [dependencies]
      riscv = { version = "0.10", features = ["critical-section-single-hart"]}
      
    • For other targets: check if your HAL or architecture-support crate has a critical-section 1.0 implementation available. Otherwise, provide your own.

0.1.10 - 2022-08-12

  • Fix AtomicPtr accidentally not being available when not polyfilled.

0.1.9 - 2022-08-12

  • Switch to only two polyfill levels.

The "CAS" level which uses atomic load/store and critical-section based CAS was not sound, because critical-section guarantees only "no other critical section can run concurrently", not "no other code can run concurrently". Therefore a CS-based CAS can still race a native atomic store.

... (truncated)

Commits


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)