Files
android_kernel_xiaomi_sm8450/scripts
Michal Marek e37ddb8250 genksyms: Track changes to enum constants
Enum constants can be used as array sizes; if the enum itself does not
appear in the symbol expansion, a change in the enum constant will go
unnoticed. Example patch that changes the ABI but does not change the
checksum with current genksyms:

| enum e {
|	E1,
|	E2,
|+	E3,
|	E_MAX
| };
|
| struct s {
|	int a[E_MAX];
| }
|
| int f(struct s *s) { ... }
| EXPORT_SYMBOL(f)

Therefore, remember the value of each enum constant and
expand each occurence to <constant> <value>. The value is not actually
computed, but instead an expression in the form
(last explicitly assigned value) + N
is used. This avoids having to parse and semantically understand whole
of C.

Note: The changes won't take effect until the lexer and parser are
rebuilt by the next patch.

Signed-off-by: Michal Marek <mmarek@suse.cz>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
2011-03-17 15:13:56 +01:00
..
2005-04-16 15:20:36 -07:00
2010-11-25 15:49:50 +01:00
2005-04-16 15:20:36 -07:00
2007-12-17 19:28:17 -08:00
2010-03-07 21:19:09 +01:00
2010-03-07 21:22:56 +01:00
2010-10-28 00:32:23 +02:00
2008-07-25 22:12:41 +02:00
2009-06-09 22:37:54 +02:00
2010-03-23 12:26:38 +01:00
2011-01-06 09:59:38 -08:00
2010-11-18 17:16:05 -05:00
2008-04-25 20:18:48 +02:00
2010-08-17 11:47:40 +02:00
2005-04-16 15:20:36 -07:00
2009-06-09 22:37:54 +02:00