# 使用 Homebrew, Nix, pacman 安装 flip-link

查看 flip-link 的安装路径、可执行文件、元数据以及面向 AI 代理工作流的安全说明。

## 安装

```sh
sudo av install brew:flip-link
```

其他安装命令:

### macOS

- Homebrew (100%):

```sh
brew install flip-link
```

  证据: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#flip-link
```

  证据: nixpkgs package indexes: pkgs/by-name/fl/flip-link/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S flip-link
```

  证据: Arch Linux sync databases: flip-link from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

## 软件包事实

- **软件包键:** brew:flip-link
- **软件包管理器:** Homebrew
- **版本:** 0.1.12
- **来源摘要:** Adds zero-cost stack overflow protection to your embedded programs
- **主页:** <https://github.com/knurling-rs/flip-link>
- **仓库:** <https://github.com/knurling-rs/flip-link>
- **已生成:** 2026-08-03T19:37:03+00:00

## 可执行文件

- flip-link (别名)

## 安装行为

- Bottle: 不可用

## 版本和新鲜度

- 页面生成时间: 2026-08-03
- 管理器版本: 0.1.12
## 项目历史与用法

flip-link is a Rust linker wrapper from the Knurling embedded tooling project. It adds zero-cost stack overflow protection to bare-metal embedded Rust programs by flipping the memory layout used for ARM Cortex-M targets.

### 项目历史

The README explains the motivating bug class: stack overflows in bare-metal Cortex-M Rust programs can collide with .bss and .data static variables, causing undefined behavior even in code without unsafe blocks.

flip-link changes the link layout so the stack grows toward the physical RAM boundary instead of into static data. A stack overflow then becomes a hardware exception handled through the Cortex-M runtime rather than silent memory corruption.

### 采用历史

The README documents installation from crates.io with cargo install flip-link and configuration through .cargo/config.toml, making it a drop-in build-tool package for embedded Rust projects.

The input package metadata records packaging in Homebrew, Nix, and Arch, showing adoption outside Cargo for users who install embedded toolchain helpers through system package managers.

### 使用方式

Users set the target linker to flip-link for bare-metal ARM targets, replacing rust-lld in Cargo configuration. flip-link invokes the Rust toolchain linker after adjusting the memory layout.

The official docs note support for ARM Cortex-M programs using cortex-m-rt 0.6.x and 0.7.x with LLD, with other architectures and runtime crates outside the tested scope.

### 为什么软件包爱好者会关心

flip-link is significant because it packages a linker-level safety trick as a small CLI rather than requiring every embedded project to maintain custom linker scripts.

For Rust package maintainers, it is also a clear example of tooling that belongs in the build environment: the binary is tiny, target-specific, and wired through Cargo configuration rather than imported as a normal runtime library.

### 时间线

- 2020: v0.1.0 was released.
- 2021: v0.1.3 improved documentation and project checks around the stack overflow problem and solution.
- 2022: v0.1.6 updated the project to Rust 2021 and improved memory.x handling.
- 2024: v0.1.9 recommended target linker configuration for recent Cargo versions.
- 2025: v0.1.10 added help behavior and a fuller parser for ORIGIN and LENGTH expressions.

### Related projects

- flip-link is part of Knurling, Ferrous Systems' embedded Rust tooling effort.
- It is closely related to cortex-m-rt, rust-lld, Cargo target configuration, and ARM Cortex-M bare-metal Rust applications.

### 来源

- <https://crates.io/crates/flip-link>
- <https://github.com/knurling-rs/flip-link>
- <https://github.com/knurling-rs/flip-link/blob/main/CHANGELOG.md>


## 安全说明

narrow executable package without higher-risk signals.

- **Geiger 风险:** 绿色 / 低
- narrow executable package without higher-risk signals

## 其他软件包管理器记录

- Nix - flip-link: normalized package name match | nixpkgs package indexes: pkgs/by-name/fl/flip-link/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- pacman - flip-link - 0.1.12-2: normalized package name match | Arch Linux sync databases: flip-link from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Flips the memory layout of embedded programs to protect against stack overflows | https://github.com/knurling-rs/flip-link


## 相关链接

- [flip-link](https://pkg.so/zh-hans/pkg/cargo/flip-link/) - Same normalized package name exists in another local package ecosystem.

## Combined YAML source

View the package source record on GitHub. [combined/flip-link.yml](https://github.com/mxcl/pkgdb/blob/main/combined/flip-link.yml)


## 来源

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
