| #!/bin/bash |
| set -euo pipefail |
| IFS=$'\n\t' |
| cd "$(dirname "$0")"/.. |
| |
| # Update the list of targets that do not support atomic CAS operations. |
| # |
| # Usage: |
| # ./ci/no_atomic_cas.sh |
| |
| file="no_atomic_cas.rs" |
| |
| no_atomic_cas=() |
| for target in $(rustc --print target-list); do |
| target_spec=$(rustc --print target-spec-json -Z unstable-options --target "${target}") |
| res=$(jq <<<"${target_spec}" -r 'select(."atomic-cas" == false)') |
| [[ -z "${res}" ]] || no_atomic_cas+=("${target}") |
| done |
| |
| cat >"${file}" <<EOF |
| // This file is @generated by $(basename "$0"). |
| // It is not intended for manual editing. |
| |
| const NO_ATOMIC_CAS: &[&str] = &[ |
| EOF |
| for target in "${no_atomic_cas[@]}"; do |
| echo " \"${target}\"," >>"${file}" |
| done |
| cat >>"${file}" <<EOF |
| ]; |
| EOF |