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
  • Issues
  • #3170
Closed
Open
Issue created Sep 17, 2018 by Administrator@rootContributor

Use C++11 definitions for [u]int64, when compiling on 64 bit

Created by: mtrofin

Currently, uint64 is defined as unsigned long int. That type is 64 bit if we compile with -m64, however, it's not the same type as unsigned long long: the former is "guaranteed to be at least 32 bits" (and happens to be 64 if -m64), the latter is 64 bits.

This causes linking problems in 64-bit projects linking a DR library exposing a function typed with uint64, if also the importing projects uses -DDR_DO_NOT_DEFINE_uint64: the importing project will compile the DR headers with their own (presumably, unsigned long long) uint64, and the mangled name of the import will differ from the mangled name of the definition.

Assignee
Assign to
Time tracking