diff options
| author | David Howells <dhowells@redhat.com> | 2012-11-19 17:21:03 -0500 |
|---|---|---|
| committer | David Howells <dhowells@redhat.com> | 2012-11-19 17:21:03 -0500 |
| commit | d2709c7ce4c513ab7f4ca9a106a930621811f2d3 (patch) | |
| tree | da6e14e27b02b2d234aad0eb1ccf5bbfa06d0cb8 /include/uapi/linux | |
| parent | f2d9cae9ea9e0228f6eb4d4c5ab4f548d0270d1a (diff) | |
perf: Make perf build for x86 with UAPI disintegration applied
Make perf build for x86 once the UAPI disintegration patches for that arch
have been applied by adding the appropriate -I flags - in the right order -
and then converting some #includes that use ../.. notation to find main kernel
headerfiles to use <asm/foo.h> and <linux/foo.h> instead.
Note that -Iarch/foo/include/uapi is present _before_ -Iarch/foo/include.
This makes sure we get the userspace version of the pt_regs struct. Ideally,
we wouldn't have the latter -I flag at all, but unfortunately we want
asm/svm.h and asm/vmx.h in builtin-kvm.c and these aren't part of the UAPI -
at least not for x86. I wonder if the bits outside of the __KERNEL__ guards
*should* be transferred there.
I note also that perf seems to do its dependency handling manually by listing
all the header files it might want to use in LIB_H in the Makefile. Can this
be changed to use -MD?
Note that to do make this work, we need to export and UAPI disintegrate
linux/hw_breakpoint.h, which I think should've been exported previously so that
perf can access the bits. We have to do this in the same patch to maintain
bisectability.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/Kbuild | 1 | ||||
| -rw-r--r-- | include/uapi/linux/hw_breakpoint.h | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index e194387ef784..19e765fbfef7 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild | |||
| @@ -415,3 +415,4 @@ header-y += wireless.h | |||
| 415 | header-y += x25.h | 415 | header-y += x25.h |
| 416 | header-y += xattr.h | 416 | header-y += xattr.h |
| 417 | header-y += xfrm.h | 417 | header-y += xfrm.h |
| 418 | header-y += hw_breakpoint.h | ||
diff --git a/include/uapi/linux/hw_breakpoint.h b/include/uapi/linux/hw_breakpoint.h new file mode 100644 index 000000000000..b04000a2296a --- /dev/null +++ b/include/uapi/linux/hw_breakpoint.h | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | #ifndef _UAPI_LINUX_HW_BREAKPOINT_H | ||
| 2 | #define _UAPI_LINUX_HW_BREAKPOINT_H | ||
| 3 | |||
| 4 | enum { | ||
| 5 | HW_BREAKPOINT_LEN_1 = 1, | ||
| 6 | HW_BREAKPOINT_LEN_2 = 2, | ||
| 7 | HW_BREAKPOINT_LEN_4 = 4, | ||
| 8 | HW_BREAKPOINT_LEN_8 = 8, | ||
| 9 | }; | ||
| 10 | |||
| 11 | enum { | ||
| 12 | HW_BREAKPOINT_EMPTY = 0, | ||
| 13 | HW_BREAKPOINT_R = 1, | ||
| 14 | HW_BREAKPOINT_W = 2, | ||
| 15 | HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W, | ||
| 16 | HW_BREAKPOINT_X = 4, | ||
| 17 | HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X, | ||
| 18 | }; | ||
| 19 | |||
| 20 | enum bp_type_idx { | ||
| 21 | TYPE_INST = 0, | ||
| 22 | #ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS | ||
| 23 | TYPE_DATA = 0, | ||
| 24 | #else | ||
| 25 | TYPE_DATA = 1, | ||
| 26 | #endif | ||
| 27 | TYPE_MAX | ||
| 28 | }; | ||
| 29 | |||
| 30 | #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */ | ||
