Thread (18 messages) flat view 18 messages, 6 authors, 2017-11-08

Re: [RFC PATCH] bpf: Add helpers to read useful task_struct members

From: Naveen N. Rao <hidden>
Date: 2017-11-07 08:37:44
Also in: lkml

Alexei Starovoitov wrote:
On 11/7/17 12:55 AM, Naveen N. Rao wrote:
quoted
quoted
I thought such struct shouldn't change layout.
If it is we need to fix include/linux/compiler-clang.h to do that
anon struct as well.
We considered that, but it looked to be very dependent on the version of
gcc used to build the kernel. But, this may be a simpler approach for
the shorter term.
why it would depend on version of gcc?
From what I can see, randomized_struct_fields_start is defined only for 
gcc >= 4.6. For older versions, it does not get mapped to an anonymous 
structure. We may not care for older gcc versions, but..

The other issue was that __randomize_layout maps to __designated_init 
when randstruct plugin is not enabled, which is in turn an attribute on 
gcc >= v5.1, but not otherwise.
quoted hunk ↗ jump to hunk
We just need this, no?
diff --git a/include/linux/compiler-clang.h b/include/linux/compiler-clang.h
index de179993e039..4e29ab6187cb 100644
--- a/include/linux/compiler-clang.h
+++ b/include/linux/compiler-clang.h
@@ -15,3 +15,6 @@
   * with any version that can compile the kernel
   */
  #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), 
__COUNTER__)
+
+#define randomized_struct_fields_start struct {
+#define randomized_struct_fields_end   };

since offsets are mandated by C standard.
Yes, this is what we're testing with and is probably sufficient for our 
purposes.

- Naveen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help