Skip to content

Conversation

@wangrong1069
Copy link
Contributor

@wangrong1069 wangrong1069 commented Jan 4, 2026

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

Summary by Sourcery

Enable position-independent code and PIE linking for all targets to address sw64 GCC default PIE support issues.

Build:

  • Enable global position-independent code generation via CMAKE_POSITION_INDEPENDENT_CODE.
  • Add -pie linker options for daemon, logger, searcher, and server targets to produce PIE binaries.

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
@sourcery-ai
Copy link

sourcery-ai bot commented Jan 4, 2026

Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Enables position-independent code globally and links all main executables with PIE on sw64 by setting CMake’s global PIC flag and adding -pie link options to core targets.

File-Level Changes

Change Details Files
Enable global position-independent code generation for all targets.
  • Turn on CMAKE_POSITION_INDEPENDENT_CODE so compiled objects are built with -fPIE/-fPIC as appropriate.
  • Rely on CMake’s built-in handling to propagate PIC/PIE to supported languages and platforms instead of manually adding -fPIE flags.
CMakeLists.txt
Link primary binaries as PIE executables for improved security and sw64 compatibility.
  • Add -pie link option to the daemon target via target_link_options.
  • Add -pie link option to the logger executable target via target_link_options.
  • Add -pie link option to the searcher executable target via target_link_options.
  • Add -pie link option to the server executable target via target_link_options.
src/daemon/CMakeLists.txt
src/logger/CMakeLists.txt
src/searcher/CMakeLists.txt
src/server/CMakeLists.txt

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • Enabling CMAKE_POSITION_INDEPENDENT_CODE globally may affect all targets (including shared libraries); consider restricting this to the specific executables or to the sw64 toolchain via appropriate CMake conditionals.
  • The use of target_link_options requires a newer CMake version than the current cmake_minimum_required(VERSION 3.1.0); either bump the minimum required version or gate this behind a version check and use a fallback for older CMake.
  • The -pie link option is added unconditionally; consider applying it only when using GCC on sw64 (or when the compiler/linker supports PIE) to avoid build issues on other platforms/toolchains.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Enabling `CMAKE_POSITION_INDEPENDENT_CODE` globally may affect all targets (including shared libraries); consider restricting this to the specific executables or to the sw64 toolchain via appropriate CMake conditionals.
- The use of `target_link_options` requires a newer CMake version than the current `cmake_minimum_required(VERSION 3.1.0)`; either bump the minimum required version or gate this behind a version check and use a fallback for older CMake.
- The `-pie` link option is added unconditionally; consider applying it only when using GCC on sw64 (or when the compiler/linker supports PIE) to avoid build issues on other platforms/toolchains.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@deepin-ci-robot
Copy link

[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
Contributor Author

/merge

@deepin-bot deepin-bot bot merged commit e16153e into linuxdeepin:develop/snipe Jan 4, 2026
15 checks passed
@wangrong1069 wangrong1069 deleted the pr0104 branch January 4, 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