| ID | 48423 |
| Package Name | dotnet9-build-helper |
| Version | 1.0.0 |
| Release | 6.1.oc9 |
| Epoch | |
Draft | False |
| Source | dotnet9-build-helper-1.0.0-6.1.oc9.src.rpm |
| Summary |
| Description |
| Built by | opencloudkoji |
| State |
complete
|
| Volume |
DEFAULT |
| Started | Mon, 21 Sep 2026 16:36:58 CST |
| Completed | Mon, 21 Sep 2026 16:39:01 CST |
| Task | build (dist-oc9-epol, dotnet9-build-helper-1.0.0-6.1.oc9.src.rpm) |
| Extra | {'source': {'original_url': 'dotnet9-build-helper-1.0.0-6.1.oc9.src.rpm'}} |
| Tags |
|
| RPMs |
| src | |
|
dotnet9-build-helper-1.0.0-6.1.oc9.src.rpm (info) (download) |
| noarch |
|
dotnet9-build-helper-1.0.0-6.1.oc9.noarch.rpm (info) (download)
|
|
| Logs |
|
| Changelog |
* Mon Sep 21 2026 jiaxinyyang <jiaxinyyang@tencent.com> - 1.0.0-6.1
- 修复 clang-17 / clang++-17 wrapper 无条件追加 -lstdc++ 导致 dotnet 9.0
source-build 在 CMake 配置阶段成片探测失败的问题。
1.0.0-6 在所有调用(含 cmake try_compile 的 -c / -E / -fsyntax-only)末尾
追加 -lstdc++,clang 对非链接调用报 "-Z-reserved-lib-stdc++: 'linker'
input unused";dotnet configure.cmake 全局注入 -Werror 且未豁免
unused-command-line-argument,该无害告警被升级为硬错误,使 pthread_create、
mkstemp、sys/inotify.h、gnu/lib-names.h 等探测全部 Failed,最终表现为
configure.cmake:646 "incorrect arguments for macro" 与 :771
"Cannot find mkstemp"。
现改为仅链接类调用追加 -lstdc++,非链接调用透传。
* Mon Sep 21 2026 jiaxinyyang <jiaxinyyang@tencent.com> - 1.0.0-6.oc9.1
- 跟随 OC9 dist tag 重新发布(Release 由 6.oc9 升至 6.oc9.1),源码与
1.0.0-6 保持一致,无功能变更。
* Fri Sep 18 2026 jiaxinyyang <jiaxinyyang@tencent.com> - 1.0.0-6
- 修正 gcc 工具链定位(覆盖早前的 -target 注入):撤销危害性的
-target x86_64-OpenCloudOS-linux 注入。clang 18 不识别 OpenCloudOS vendor,
该注入反而会阻断其对 x86_64-unknown-linux-gnu 软链的回退,导致 CoreCLR
cmake 的 try_compile 链接整体失败(mkstemp/pthread_create 等 glibc 符号
检测全 Failed,735272 复现)。OC9 gcc(gcc-12.3.1.8-8.oc9)经 PR #19 已提供
x86_64-unknown-linux-gnu -> x86_64-OpenCloudOS-linux 软链,clang 默认回退
即可命中。现仅对缺失该软链的极老 gcc 用 --gcc-toolchain 兜底。
- clang-17 与 clang++-17 wrapper 同步移除 -target/-B,仅保留 -lstdc++ 注入
与 OpenSSL ABI 分发(二者职责不变)。
- 新增 clang++-17 wrapper:在所有参数末尾追加 -lstdc++。
根因:OC9 的 clang-17 已合并进 llvm 主包(Release 18+),clang++ 用
-fuse-ld=lld 链接 dotnet 的 C++ host 工具(watchdog / corerun 等)时
不再自动链接 libstdc++,导致 build.log 中整批 C++ 符号 undefined
(operator new / std::getline / std::__throw_length_error)。
- install.sh 重构为通用 install_one(),同时接管 clang-17(OpenSSL ABI 分发)
与 clang++-17(libstdc++ 注入),二者标识串分别为 "OpenSSL ABI" /
"libstdc++ inject",互不干扰;任一二进制缺失时跳过该二进制继续处理另一个。
- uninstall.sh 同步还原 clang++-17(标识串 "libstdc++ inject")。
- spec %posttrans 兜底校验扩展到 clang++-17;Requires 增加 gcc-c++ /
libstdc++-devel 以闭合 -lstdc++ 所需 libstdc++.so 提供方。
* Wed May 20 2026 jiaxinyyang <jiaxinyyang@tencent.com> - 1.0.0-5
- clang-17.wrapper: 放宽 RID 正则匹配,从硬编码 `x64` 扩展为 `(x64|arm64)`,
支持 aarch64 (ARM64) 架构的 koji 构建。
问题表现:在 ARM 上 RID 为 rocky.8-arm64 / rhel.9-arm64,旧 wrapper 的
`runtime\.rocky\.8-x64` 正则匹配不到,等同透传,导致链接走系统 OpenSSL 3.0
并报 `undefined symbol: ERR_put_error / EVP_MD_size`。
* Wed May 20 2026 jiaxinyyang <jiaxinyyang@tencent.com> - 1.0.0-4
- install.sh: 修复 is_elf 字符串比对错误(od -An -c 实际输出 "177ELF" 而非 "\\177ELF",
导致真 ELF 也被判否,触发 "neither ELF nor a wrapper" 误报)
- install.sh: 备份逻辑放宽——只要不是已装 wrapper,统一 cp -aL 备份后覆盖,
兼容 ELF/软链/ccache/外部包装脚本等多种 clang-17 形态,不再 hard fail
- install.sh: 删除不再使用的 is_elf 死代码
* Wed May 20 2026 jiaxinyyang <jiaxinyyang@tencent.com> - 1.0.0-3
- install.sh / spec %posttrans: 修正 is_wrapper 判定(rpmbuild brp-mangle-shebangs
会把 #!/bin/bash 改为 #!/usr/bin/bash,导致 head -c 11 == "#!/bin/bash" 永远假)
- 改为只校验前 2 字节 "#!" 且文件包含 'OpenSSL ABI' 标识字符串
* Wed May 20 2026 jiaxinyyang <jiaxinyyang@tencent.com> - 1.0.0-2
- install.sh: 二进制安全自检(前 11 字节字面比对替代 head|grep '#!/bin/bash')
- install.sh: install(1) 改为 cp + mv 原子覆盖,规避 SELinux/dnf 事务下偶发写入异常
- install.sh: 失败时打印强诊断(首 16 字节 od、file 类型),不再静默自爆还原
- spec %post: 去掉 || :,让 install 失败硬退出,避免被 dnf 吞掉
- spec %posttrans: 兜底判定改为二进制安全字节比对
* Wed May 20 2026 jiaxinyyang <jiaxinyyang@tencent.com> - 1.0.0-1
- Initial helper for dotnet 9.0.x build on OC9 (OpenSSL 1.1/3.0 ABI dispatch)
|