Bug 29406 - Summary: [binutils] c++filt工具缺少解修饰格式选项,与CentOS 8不兼容
Summary: Summary: [binutils] c++filt工具缺少解修饰格式选项,与CentOS 8不兼容
Status: NEW
Alias: None
Product: Anolis OS 8
Classification: Anolis OS
Component: BaseOS Packages (show other bugs) BaseOS Packages
Version: 8.8
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: Jacob
QA Contact: shuming
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-01-11 17:13 UTC by djjjjj
Modified: 2026-01-11 17:13 UTC (History)
0 users

See Also:


Attachments
用于复现问题的 Dockerfile (4.15 KB, text/plain)
2026-01-11 17:13 UTC, djjjjj
Details

Note You need to log in before you can comment on or make changes to this bug.
Description djjjjj 2026-01-11 17:13:44 UTC
Created attachment 1460 [details]
用于复现问题的 Dockerfile

问题描述:
AnolisOS 8 中的 c++filt 工具(来自 binutils 包)支持的格式选项与 CentOS 8 不一致。具体差异为:

AnolisOS 8 支持的格式:{none, auto, gnu-v3, java, gnat, dlang, rust}

CentOS 8 支持的格式:{none, auto, gnu, lucid, arm, hp, edg, gnu-v3, java, gnat, dlang, rust}

缺少的格式包括:gnu、lucid、arm、hp、edg。这导致使用这些格式选项的脚本在 AnolisOS 8 上失败。

受影响组件版本号:
binutils-2.30(具体版本号可能因更新而异)

重现概率:
100% 可重现。在全新安装的 AnolisOS 8 和 CentOS 8 系统上均可观察到差异。

重现步骤:

在 AnolisOS 8 上安装 binutils 包:yum install -y binutils

检查 c++filt 支持的格式:c++filt --help | grep format

测试使用缺失的格式:c++filt -s gnu _ZN4Test4funcEv

在 CentOS 8 上重复相同步骤

实际结果:
AnolisOS 8 输出:

text
c++filt: unknown demangling style `gnu'
CentOS 8 输出:

text
_ZN4Test4funcEv  # 或 Test::func(),取决于格式
期望结果:
为了确保完全兼容,AnolisOS 8 应该支持与 CentOS 8 相同的格式选项。

附加信息:
这是一个重要的兼容性问题,因为:

一些构建系统和脚本可能依赖于特定的 c++filt 格式选项

GNU 格式(gnu)是传统格式,很多旧脚本可能使用

缺失的格式可能导致开发工具链不兼容