---
title: "mold 3.0 發布：高速連結器完成 Rust 重寫"
url: https://sammy.hk/mold-3-0-%e7%99%bc%e5%b8%83%ef%bc%9a%e9%ab%98%e9%80%9f%e9%80%a3%e7%b5%90%e5%99%a8%e5%ae%8c%e6%88%90-rust-%e9%87%8d%e5%af%ab/
author: Ethan
published: 2026-10-06T11:23:00+08:00
modified: 2026-10-06T10:26:40+08:00
description: "mold 專輯於 2026 年 10 月 5 日發布 mold 3.0.0，這是高速連結器完成由 C++ 重寫為 Rust 後的第一個版本。官方指出，重寫計劃早於 2.42.1 版本的發布說明中公開，而 2.42.1 是 C++ 版本的最後一個版本。[1] 目標與相容性 官方表示，mold 3.x 的目標是縮窄與 GN…"
categories: ["開放源碼"]
tags: [GNU ld, mold, Rust, "工具鏈", "建構系統", "連結器"]
source: https://sammy.hk
---
![](https://sammy.hk/wp-content/uploads/2026/10/mold-3-og.jpg)mold 專輯於 2026 年 10 月 5 日發布 mold 3.0.0，這是高速連結器完成由 C++ 重寫為 Rust 後的第一個版本。官方指出，重寫計劃早於 2.42.1 版本的發布說明中公開，而 2.42.1 是 C++ 版本的最後一個版本。\[1\]

## 目標與相容性

官方表示，mold 3.x 的目標是縮窄與 GNU ld 之間殘留的相容性距離，尤其在連結器腳本支援方面，並為 mold 被 Linux 發行版採用為預設連結器鋪路。\[1\]

官方強調，mold 3.0 旨在成為 2.42.1 的直接替代品：接受相同的命令列選項、支持相同的目標架構，除下文列出的錯誤修正外，輸出一致，連結效能也與 2.42.1 相似。官方以多種方式驗證相容性，包括在每個受支援目標上執行測試套件、在廣泛的真實工作負載與選項組合下比較連結器輸出，以及建構所有 Gentoo 軟體包，結果未發現回歸。\[1\]

官方又指出，改用 Rust 後，mold 在處理惡意輸入檔案時更安全：C++ 版本在遇到這類輸入時可能越界讀取記憶體並以分段錯誤崩潰；在 mold 3.0 中，這些讀取受邊界檢查保護，因此 mold 會在被存取的位置拋出 panic 而停止。\[1\]

## 建置方式改變

官方列出多項建置層面的變動。\[1\]

mold 現以 Cargo 而非 CMake 建置，需要 Rust 1.95 或以上版本及一個 C 編譯器；建置指令為 `cargo build --release`，安裝用 `./install-mold.sh`，且安裝腳本接受 `PREFIX` 與 `DESTDIR`。原有的 CMake 選項已被移除。\[1\]

若把 mold 的程式庫安裝到 `$PREFIX/lib` 以外的目錄（例如 `/usr/lib64`），需在建置與安裝時同時設定 `MOLD_LIBDIR` 環境變數，令 `mold -run` 能找到 `mold-wrapper.so`。\[1\]

依賴方面，mold 不再依賴 oneTBB，仍然靜態連結 mimalloc 3.5.3，並可透過 `--features system-allocator` 改用系統的 malloc；mold 會在可用時連結系統 zlib，並內含 zstd 與 BLAKE3，亦可設定 `ZSTD_SYS_USE_PKG_CONFIG=1` 連結系統 zstd。原有的 `MOLD_TARGETS` CMake 變數改以 Cargo features 取代，官方建議發布版如以往一樣為所有目標建置 mold；測試套件也改以 `cargo test` 執行。\[1\]

## 錯誤修正與相容性改善

官方列出多項修正，包括：修正以版本腳本或 `--default-symver` 建立靜態連結執行檔時的崩潰；修正輸出檔同時是輸入檔（例如 `mold -r -o foo.o foo.o bar.o`）時的崩潰或輸出損壞；`--gc-sections` 不再移除由 `--init` 與 `--fini` 指定的函數；同名但大小不同的 common symbol 現在會採用最大尺寸與最嚴格對齊，與 GNU ld 及 lld 一致；`--icf=safe` 不再誤合由共享程式庫產生的函數，`--icf=all` 也不再與 `--emit-relocs` 同時崩潰；共享程式庫中的版本化引用（如 `foo@VER`）不再拉入無版本的 `foo` 作為封裝成員。\[1\]

官方還修正數項非確定性輸出的情況，涉及 `--dependency-file`、`--repro`、帶大量同名 COMDAT 群組的 `-r`，以及部分動態重定位。\[1\]

## 專業狀況

官方在發布說明中感謝贊助者，並列出每月贊助 32 美元以上的機構與個人，包括 Cybozu、SAP、Mercedes-Benz Group、Signal Slot、Mercury、G-Research 開源跟蹤、Ahrefs 等。\[1\]\[2\]

## 參考資料

\[1\] [GitHub — mold 3.0.0 官方發布說明（2026 年 10 月 5 日）](https://github.com/rui314/mold/releases/tag/v3.0.0)

\[2\] [GitHub — rui314/mold 官方專屬倉庫](https://github.com/rui314/mold)

### 相關文章：

1. [GitHub 用 AI 代理把 Copilot 執行時重寫為 Rust：832,378 行與 96% 提示快取命中](https://sammy.hk/github-%e7%94%a8-ai-%e4%bb%a3%e7%90%86%e6%8a%8a-copilot-%e5%9f%b7%e8%a1%8c%e6%99%82%e9%87%8d%e5%af%ab%e7%82%ba-rust%ef%bc%9a832378-%e8%a1%8c%e8%88%87-96-%e6%8f%90%e7%a4%ba%e5%bf%ab%e5%8f%96%e5%91%bd/ "GitHub 用 AI 代理把 Copilot 執行時重寫為 Rust：832,378 行與 96% 提示快取命中")
2. [Rust 官方警告：針對知名開發者的目標攻擊正在進行](https://sammy.hk/rust-%e5%ae%98%e6%96%b9%e8%ad%a6%e5%91%8a%ef%bc%9a%e9%87%9d%e5%b0%8d%e7%9f%a5%e5%90%8d%e9%96%8b%e7%99%bc%e8%80%85%e7%9a%84%e7%9b%ae%e6%a8%99%e6%94%bb%e6%93%8a%e6%ad%a3%e5%9c%a8%e9%80%b2%e8%a1%8c/ "Rust 官方警告：針對知名開發者的目標攻擊正在進行")
3. [GNOME 生態新日曆程式「Era」以 Rust 寫成，首個 beta 上架 Flathub](https://sammy.hk/gnome-%e7%94%9f%e6%85%8b%e6%96%b0%e6%97%a5%e6%9b%86%e7%a8%8b%e5%bc%8f%e3%80%8cera%e3%80%8d%e4%bb%a5-rust-%e5%af%ab%e6%88%90%ef%bc%8c%e9%a6%96%e5%80%8b-beta-%e4%b8%8a%e6%9e%b6-flathub/ "GNOME 生態新日曆程式「Era」以 Rust 寫成，首個 beta 上架 Flathub")
4. [NVIDIA 推出 CUDA Rust：兩條路線用 Rust 寫 GPU 核心](https://sammy.hk/nvidia-%e6%8e%a8%e5%87%ba-cuda-rust%ef%bc%9a%e5%85%a9%e6%a2%9d%e8%b7%af%e7%b7%9a%e7%94%a8-rust-%e5%af%ab-gpu-%e6%a0%b8%e5%bf%83/ "NVIDIA 推出 CUDA Rust：兩條路線用 Rust 寫 GPU 核心")
