Skip to content

fix: Fix sw64 gcc not support pie by default - #33

Merged
deepin-bot[bot] merged 1 commit into
linuxdeepin:masterfrom
wangrong1069:pr0106
Jan 6, 2026
Merged

fix: Fix sw64 gcc not support pie by default#33
deepin-bot[bot] merged 1 commit into
linuxdeepin:masterfrom
wangrong1069:pr0106

Conversation

@wangrong1069

Copy link
Copy Markdown
Contributor

Add the -fPIE parameter via CMAKE_POSITION_INDEPENDENT_CODE.
Add the -pie parameter via target_link_options.

Log: Update compiler flags for security enhancements
Bug: https://pms.uniontech.com/bug-view-339563.html

Add the -fPIE parameter via CMAKE_POSITION_INDEPENDENT_CODE.
Add the -pie parameter via target_link_options.

Log: Update compiler flags for security enhancements
Bug: https://pms.uniontech.com/bug-view-339563.html
@deepin-ci-robot

Copy link
Copy Markdown

deepin pr auto review

我来对这段 CMake 配置的变更进行审查:

  1. 位置无关代码(PIC)的启用:
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

优点:

  • 提高安全性,支持地址空间布局随机化(ASLR)
  • 便于创建共享库

建议:

  • 这个设置是好的,但建议添加注释说明为什么需要 PIC
  • 可以考虑只在需要时启用,而不是全局启用
  1. PIE(位置无关可执行文件)的配置:
target_link_options(${PROJECT_NAME} PRIVATE "$<IF:$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>,-pie,>")

优点:

  • 使用生成器表达式确保只在 GNU/Clang 编译器下添加 -pie 选项
  • 使用 PRIVATE 范围,避免影响其他目标

建议:

  • 可以考虑将此配置放在更通用的位置,比如在编译选项配置区域
  • 建议添加更详细的注释说明 PIE 的作用和影响
  • 可以考虑添加对其他编译器的支持,如 MSVC
  1. 安全性考虑:
  • 启用 PIC 和 PIE 确实能提高安全性
  • 建议同时考虑其他安全相关的编译选项,如:
    • 栈保护(-fstack-protector-strong)
    • RELRO 保护(-Wl,-z,relro,-z,now)
    • FORTIFY_SOURCE
  1. 其他改进建议:
  • 建议将这些安全相关的配置集中管理,可以创建一个专门的函数或宏
  • 考虑添加编译选项的版本检查,确保使用的编译器版本支持这些特性
  • 可以添加一个 CMake 选项来控制是否启用这些安全特性,方便调试

总体来说,这些变更是积极的,提高了程序的安全性。但可以通过更好的组织和文档来使其更加完善。

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: lzwind, wangrong1069

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@wangrong1069

Copy link
Copy Markdown
Contributor Author

/merge

@deepin-bot
deepin-bot Bot merged commit 34c26d4 into linuxdeepin:master Jan 6, 2026
14 checks passed
@wangrong1069
wangrong1069 deleted the pr0106 branch January 6, 2026 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants