Skip to content

Commit

Permalink
Merge remote-tracking branch 'real/main' into linux_wireless
Browse files Browse the repository at this point in the history
  • Loading branch information
Brijeshkrishna committed Jan 7, 2024
2 parents b8b41f5 + 77fb037 commit c5449b7
Show file tree
Hide file tree
Showing 24 changed files with 457 additions and 4,247 deletions.
22 changes: 3 additions & 19 deletions .github/workflows/bors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -226,13 +226,7 @@ jobs:
stable,
beta,
nightly,
# FIXME: Disabled due to:
# error: failed to parse registry's information for: serde
#1.13.0,
1.19.0,
1.24.0,
1.25.0,
1.30.0,
1.71.0,
]
steps:
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD
Expand Down Expand Up @@ -260,14 +254,7 @@ jobs:
- { toolchain: stable, os: macos-13 }
- { toolchain: beta, os: macos-13 }
- { toolchain: nightly, os: macos-13 }
# Use macOS 11 for older toolchains as newer Xcode donesn't work well.
# FIXME: Disabled due to:
# error: failed to parse registry's information for: serde
#- { toolchain: 1.13.0, os: macos-11 }
- { toolchain: 1.19.0, os: macos-11 }
- { toolchain: 1.24.0, os: macos-11 }
- { toolchain: 1.25.0, os: macos-11 }
- { toolchain: 1.30.0, os: macos-11 }
- { toolchain: 1.71.0, os: macos-13 }
runs-on: ${{ matrix.target.os }}
steps:
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD
Expand All @@ -291,10 +278,7 @@ jobs:
fail-fast: true
matrix:
toolchain: [
1.19.0,
1.24.0,
1.25.0,
1.30.0,
1.71.0,
stable,
]
steps:
Expand Down
306 changes: 306 additions & 0 deletions .github/workflows/full_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,306 @@
name: full CI

on:
merge_group:
pull_request:
branches:
- libc-0.2
types:
- labeled

jobs:
docker_linux_tier1:
if: github.event.label.name == 'libc-0.2-pre-merge-ci'
permissions:
contents: read # to fetch code (actions/checkout)

name: Docker Linux Tier1
runs-on: ubuntu-22.04
strategy:
fail-fast: true
matrix:
target: [
i686-unknown-linux-gnu,
x86_64-unknown-linux-gnu,
]
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
- name: Execute run-docker.sh
run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }}

macos:
if: github.event.label.name == 'libc-0.2-pre-merge-ci'
permissions:
contents: read # to fetch code (actions/checkout)

name: macOS
runs-on: macos-13
strategy:
fail-fast: true
matrix:
target: [
x86_64-apple-darwin,
]
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
- name: Execute run.sh
run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }}

windows:
if: github.event.label.name == 'libc-0.2-pre-merge-ci'
permissions:
contents: read # to fetch code (actions/checkout)

name: Windows
runs-on: windows-2022
env:
OS: windows
strategy:
fail-fast: true
matrix:
include:
- target: x86_64-pc-windows-gnu
env:
ARCH_BITS: 64
ARCH: x86_64
- target: x86_64-pc-windows-msvc
- target: i686-pc-windows-gnu
env:
ARCH_BITS: 32
ARCH: i686
- target: i686-pc-windows-msvc
steps:
- uses: actions/checkout@v4
- name: Self-update rustup
run: rustup self update
shell: bash
- name: Setup Rust toolchain
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
shell: bash
- name: Execute run.sh
run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }}
shell: bash

style_check:
if: github.event.label.name == 'libc-0.2-pre-merge-ci'
permissions:
contents: read # to fetch code (actions/checkout)

name: Style check
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
run: sh ./ci/install-rust.sh
- name: Check style
run: sh ci/style.sh

docker_linux_tier2:
if: github.event.label.name == 'libc-0.2-pre-merge-ci'
permissions:
contents: read # to fetch code (actions/checkout)

name: Docker Linux Tier2
needs: [docker_linux_tier1, style_check]
runs-on: ubuntu-22.04
strategy:
fail-fast: true
max-parallel: 12
matrix:
target: [
aarch64-linux-android,
aarch64-unknown-linux-gnu,
aarch64-unknown-linux-musl,
arm-linux-androideabi,
arm-unknown-linux-gnueabihf,
arm-unknown-linux-musleabihf,
i686-linux-android,
i686-unknown-linux-musl,
powerpc-unknown-linux-gnu,
powerpc64-unknown-linux-gnu,
powerpc64le-unknown-linux-gnu,
s390x-unknown-linux-gnu,
riscv64gc-unknown-linux-gnu,
# FIXME: A recent nightly causes a linker failure:
# https://github.com/rust-lang/rust/issues/76679
# See this comment for more details:
# https://github.com/rust-lang/libc/pull/2225#issuecomment-880696737
#wasm32-wasi,
sparc64-unknown-linux-gnu,
wasm32-unknown-emscripten,
x86_64-linux-android,
# FIXME: Exec format error (os error 8)
#x86_64-unknown-linux-gnux32,
x86_64-unknown-linux-musl,
# FIXME: It seems some items in `src/unix/mod.rs`
# aren't defined on redox actually.
# x86_64-unknown-redox,
]
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
- name: Execute run-docker.sh
run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }}

# These targets are tier 3 or otherwise need to have CI build std via -Zbuild-std.
# Because of this, only the nightly compiler can be used on these targets.
docker_linux_build_std:
permissions:
contents: read # to fetch code (actions/checkout)

if: ${{ false }} # This is currently broken
name: Docker Linux Build-Std Targets
needs: [docker_linux_tier1, style_check]
runs-on: ubuntu-22.04
strategy:
fail-fast: true
max-parallel: 12
matrix:
target: [
armv7-unknown-linux-uclibceabihf
]
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
run: TOOLCHAIN=nightly INSTALL_RUST_SRC=1 sh ./ci/install-rust.sh
- name: Execute run-docker.sh
run: LIBC_CI=1 TOOLCHAIN=nightly LIBC_CI_ZBUILD_STD=1 sh ./ci/run-docker.sh ${{ matrix.target }}

# devkitpro's pacman needs to be connected from Docker.
docker_switch:
if: github.event.label.name == 'libc-0.2-pre-merge-ci'
permissions:
contents: read # to fetch code (actions/checkout)

name: Docker Switch
needs: [docker_linux_tier1, style_check]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
run: sh ./ci/install-rust.sh
- name: Execute run-docker.sh
run: LIBC_CI=1 sh ./ci/run-docker.sh switch

build_channels_linux:
if: github.event.label.name == 'libc-0.2-pre-merge-ci'
permissions:
contents: read # to fetch code (actions/checkout)

name: Build Channels Linux
needs: docker_linux_tier2
runs-on: ubuntu-22.04
env:
OS: linux
strategy:
fail-fast: true
max-parallel: 5
matrix:
toolchain: [
stable,
beta,
nightly,
1.71.0,
]
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh
- name: Execute build.sh
run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh

build_channels_macos:
if: github.event.label.name == 'libc-0.2-pre-merge-ci'
permissions:
contents: read # to fetch code (actions/checkout)

name: Build Channels macOS
needs: macos
env:
OS: macos
strategy:
fail-fast: true
max-parallel: 4
matrix:
target:
- { toolchain: stable, os: macos-13 }
- { toolchain: beta, os: macos-13 }
- { toolchain: nightly, os: macos-13 }
- { toolchain: 1.71.0, os: macos-13 }
runs-on: ${{ matrix.target.os }}
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/install-rust.sh
- name: Execute build.sh
run: LIBC_CI=1 TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/build.sh

build_channels_windows:
if: github.event.label.name == 'libc-0.2-pre-merge-ci'
permissions:
contents: read # to fetch code (actions/checkout)

name: Build Channels Windows
runs-on: windows-2022
env:
OS: windows
strategy:
fail-fast: true
matrix:
toolchain: [
1.71.0,
stable,
]
steps:
- uses: actions/checkout@v4
- name: Self-update rustup
run: rustup self update
shell: bash
- name: Execute build.sh
run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh
shell: bash

check_cfg:
if: github.event.label.name == 'libc-0.2-pre-merge-ci'
permissions:
contents: read # to fetch code (actions/checkout)

name: "Check #[cfg]s"
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
run: TOOLCHAIN=nightly sh ./ci/install-rust.sh
- name: Build with check-cfg
run: LIBC_CI=1 LIBC_CHECK_CFG=1 cargo build -Z unstable-options -Z check-cfg

# One job that "summarizes" the success state of this pipeline. This can then be added to branch
# protection, rather than having to add each job separately.
success:
name: Success
runs-on: ubuntu-22.04
needs: [
docker_linux_tier1,
docker_linux_tier2,
#docker_linux_build_std,
macos,
windows,
style_check,
docker_switch,
build_channels_linux,
build_channels_macos,
build_channels_windows,
]
# Github branch protection is exceedingly silly and treats "jobs skipped because a dependency
# failed" as success. So we have to do some contortions to ensure the job fails if any of its
# dependencies fails.
if: always() # make sure this is never "skipped"
steps:
# Manually check the status of all dependencies. `if: failure()` does not work.
- name: check if any dependency failed
run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
7 changes: 7 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
Welcome! If you are reading this document, it means you are interested in contributing
to the `libc` crate.

## v0.2 changes

If you want to add your changes to v0.2, please submit them to the `libc-0.2` branch.
If you want to add any breaking changes, it should be submitted to the main branch,
which has changes for v0.3.
We will support and make a new release for v0.2 until we make the first release of v0.3.

## Adding an API

Want to use an API which currently isn't bound in `libc`? It's quite easy to add
Expand Down
1 change: 0 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ targets = [
"mips64-unknown-linux-muslabi64",
"mips64el-unknown-linux-gnuabi64",
"mips64el-unknown-linux-muslabi64",
"mipsel-sony-psp",
"mipsel-unknown-linux-gnu",
"mipsel-unknown-linux-musl",
"nvptx64-nvidia-cuda",
Expand Down
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@ More detailed information about the design of this library can be found in its

[rfc]: https://github.com/rust-lang/rfcs/blob/HEAD/text/1291-promote-libc.md

## v0.3 Roadmap

The main branch is now for v0.3 which has some breaking changes.

For v0.2, please submit PRs to the `libc-0.2` branch instead.
We will stop making new v0.2 releases once we release v0.3 on crates.io.

See the [tracking issue](https://github.com/rust-lang/libc/issues/3248) for details.

## Usage

Add the following to your `Cargo.toml`:
Expand Down
Loading

0 comments on commit c5449b7

Please sign in to comment.