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

i#1979 Mac64: small app support on Mojave

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Derek Bruening requested to merge i1979-mac64-mojave into master Sep 16, 2019
  • Overview 2
  • Commits 1
  • Pipelines 0
  • Changes 14

Fixes several issues to get small 64-bit apps to run on Mojave:

  • Fixes library discovery problems with the dyld shared cache. On Mojave, SYS_shared_region_check_np returns the whole lib region, while the existing code assumed its return value was the shared __LINKEDIT segment.

  • Demotes a DOCHECK at level 1 in check_thread_vm_area to 3 for Mac64 as it shows up as a large performance hit apparently due to slow memory queries.

  • Segment fixes: fixes two issues hit due to DR and lib segments being equal: a bb building assert for -no_mangle_app_seg and a dr_insert_get_seg_base() assert.

  • Attempts to reduce overhead in memquery_from_os() where it needs extra iterations to find the surrounding bounds of a free area, by walking backward instead of starting from 0.

  • Uses SYS_stat64 and SYS_fstat64 for stat syscalls.

  • Basic signal support:

    • dynamorio_sigreturn() syscall number.
    • master_signal_handler() setup to invoke sigreturn with the proper arguments.
    • Accessing the frame within master_signal_handler_C().
    • No support yet for AVX512 but put some pieces in place and comments for future work.
    • fixup_rtframe_pointers() and copy_frame_to_stack().
    • execute_handler_from_dispatch(): set up arguments for app handler, including the style.
    • handle_sigreturn(): obtain signal number from siginfo.

Issue: #1979

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: i1979-mac64-mojave