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
  • !3854

i#3850 private loader: Add a client library's rpath + runpath to search path.

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Hendrik Greving requested to merge i3850-remember-client-rpath into master Sep 26, 2019
  • Overview 49
  • Commits 16
  • Pipelines 0
  • Changes 4

This patch makes DynamoRIO's private loader add a client library's rpath + runpath to the global search path. This is considered a work around for issues stemming from the fact that currently, DynamoRIO's private loader is traversing library dependencies depth-first instead of breadth-first. From experiments it looks like the native Linux loader does the latter.

This resulted into some cases where DynamoRIO's loader couldn't find libraries that can only be found by considering the client's rpath + runpath. In those cases, the C++ toolchain was adding multiple system dependencies to the client library including a valid rpath, but the system libraries itself did not reflect the same rpath.

The drawback of this workaround is the unability to handle potential corner cases with libraries of the same name in different locations.

Includes a fix for a latent bug that caused overrunning the rpath + runpath string if the path was a list.

Issue: #3850

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i3850-remember-client-rpath