Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Merge requests
  • !3374

i#3315: avoid conflicts with memset and memcpy

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Derek Bruening requested to merge i3315-shared-memset into master Feb 12, 2019
  • Overview 5
  • Commits 1
  • Pipelines 0
  • Changes 4

Core DR's copies of memset and memcpy were placed into drhelper to avoid glibc-versioned symbols in our shipped binaries (#1504 (closed)). They are linked into the static drfrontendlib and drinjectlib libraries. They are also in core DR when built as a static library. In these static library cases they can conflict with symbols of the same name elsewhere in the linking application.

To solve this, we first separate memset and memcpy from drhelper into their own library, drmemfuncs. We simply avoid linking it into static core DR, and into drdecode. For static core DR we assume that whatever versions the application or glibc provides will be re-entrant.

We can't avoid linking it into drfrontendlib and drinjectlib (we hit the glibc versioning problem), but we reduce the chance of conflicts with these libraries by marking memset and memcpy as weak.

Fixes #3315 (closed)

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i3315-shared-memset