Skip to content

Commit

Permalink
Don't attempt to use mpx registers on unsupported platforms
Browse files Browse the repository at this point in the history
Summary:
The existing cpp-level checks using PR_MPX_ENABLE_MANAGEMENT aren't sufficient,
as this isn't defined for linux kernel versions below 3.19.

Reviewers: valentinagiusti, zturner, labath

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D32719

llvm-svn: 302027
  • Loading branch information
fjricci committed May 3, 2017
1 parent d6f39dd commit decd2d7
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
Expand Up @@ -14,6 +14,11 @@
int
main(int argc, char const *argv[])
{
// PR_MPX_ENABLE_MANAGEMENT won't be defined on linux kernel versions below 3.19
#ifndef PR_MPX_ENABLE_MANAGEMENT
return -1;
#endif

// This call returns 0 only if the CPU and the kernel support Intel(R) MPX.
if (prctl(PR_MPX_ENABLE_MANAGEMENT, 0, 0, 0, 0) != 0)
return -1;
Expand Down
Expand Up @@ -29,6 +29,11 @@ main(int argc, char const *argv[])
unsigned int rax, rbx, rcx, rdx;
int array[5];

// PR_MPX_ENABLE_MANAGEMENT won't be defined on linux kernel versions below 3.19
#ifndef PR_MPX_ENABLE_MANAGEMENT
return -1;
#endif

// This call returns 0 only if the CPU and the kernel support Intel(R) MPX.
if (prctl(PR_MPX_ENABLE_MANAGEMENT, 0, 0, 0, 0) != 0)
return -1;
Expand Down

0 comments on commit decd2d7

Please sign in to comment.