<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/scripts/genksyms, branch v4.9.69</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.9.69</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.9.69'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2016-08-25T18:03:51Z</updated>
<entry>
<title>kbuild: Regenerate genksyms lexer</title>
<updated>2016-08-25T18:03:51Z</updated>
<author>
<name>Michal Marek</name>
<email>mmarek@suse.com</email>
</author>
<published>2016-08-25T18:03:51Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5c6f3225d00d06b2ca91c74644a7bfcfe826a935'/>
<id>urn:sha1:5c6f3225d00d06b2ca91c74644a7bfcfe826a935</id>
<content type='text'>
Update the lexer after 4fab91605a6b ("kbuild: genksyms fix for typeof
handling").

Signed-off-by: Michal Marek &lt;mmarek@suse.com&gt;
</content>
</entry>
<entry>
<title>kbuild: genksyms fix for typeof handling</title>
<updated>2016-08-25T16:55:37Z</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2016-08-25T09:53:08Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4fab91605a6bcd0c303bcbc292a8bffcf27b3a27'/>
<id>urn:sha1:4fab91605a6bcd0c303bcbc292a8bffcf27b3a27</id>
<content type='text'>
The tokenizer misses counting an open-parenthesis when parsing a
non-trivial typeof beginning with an open-parenthesis. This function
in include/linux/ceph/libceph.h

static type *lookup_##name(struct rb_root *root,
                           typeof(((type *)0)-&gt;keyfld) key)

When instantiated in net/ceph/mon_client.c, causes subsequent symbols
including an EXPORT_SYMBOL in that file to be lost.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michal Marek &lt;mmarek@suse.com&gt;
</content>
</entry>
<entry>
<title>scripts: genksyms: fix resource leak</title>
<updated>2016-04-20T07:24:49Z</updated>
<author>
<name>Maxim Zhukov</name>
<email>mussitantesmortem@gmail.com</email>
</author>
<published>2016-04-12T20:54:59Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4deaaa4deb0f9c42452711aa0a4b9c27016ca2f0'/>
<id>urn:sha1:4deaaa4deb0f9c42452711aa0a4b9c27016ca2f0</id>
<content type='text'>
This commit fixed resource leak at func main

Signed-off-by: Maxim Zhukov &lt;mussitantesmortem@gmail.com&gt;
Signed-off-by: Michal Marek &lt;mmarek@suse.com&gt;
</content>
</entry>
<entry>
<title>genksyms: Handle string literals with spaces in reference files</title>
<updated>2015-12-09T14:19:23Z</updated>
<author>
<name>Michal Marek</name>
<email>mmarek@suse.com</email>
</author>
<published>2015-12-09T14:08:21Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=a78f70e8d65e88b9f631d073f68cb26dcd746298'/>
<id>urn:sha1:a78f70e8d65e88b9f631d073f68cb26dcd746298</id>
<content type='text'>
The reference files use spaces to separate tokens, however, we must
preserve spaces inside string literals. Currently the only case in the
tree is struct edac_raw_error_desc in &lt;linux/edac.h&gt;:

$ KBUILD_SYMTYPES=1 make -s drivers/edac/amd64_edac.symtypes
$ mv drivers/edac/amd64_edac.{symtypes,symref}
$ KBUILD_SYMTYPES=1 make -s drivers/edac/amd64_edac.symtypes
drivers/edac/amd64_edac.c:527: warning: amd64_get_dram_hole_info: modversion changed because of changes in struct edac_raw_error_desc

Signed-off-by: Michal Marek &lt;mmarek@suse.com&gt;
</content>
</entry>
<entry>
<title>genksyms: Regenerate parser</title>
<updated>2015-08-20T12:57:47Z</updated>
<author>
<name>Michal Marek</name>
<email>mmarek@suse.com</email>
</author>
<published>2015-08-20T12:13:35Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5b733faca671756dd41b7e24584374e2b1fc3c4d'/>
<id>urn:sha1:5b733faca671756dd41b7e24584374e2b1fc3c4d</id>
<content type='text'>
Rebuild the parser after commit 1c722503fa81 (genksyms: Duplicate
function pointer type definitions segfault), using bison 2.7.

Signed-off-by: Michal Marek &lt;mmarek@suse.com&gt;
</content>
</entry>
<entry>
<title>genksyms: Duplicate function pointer type definitions segfault</title>
<updated>2015-08-20T12:55:55Z</updated>
<author>
<name>Richard Yao</name>
<email>richard.yao@clusterhq.com</email>
</author>
<published>2015-07-20T23:52:48Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=1c722503fa81888c936a8d1a5052daec859f1a7c'/>
<id>urn:sha1:1c722503fa81888c936a8d1a5052daec859f1a7c</id>
<content type='text'>
I noticed that genksyms will segfault when it sees duplicate function
pointer type declaration when I placed the same function pointer
definition in two separate headers in a local branch as an intermediate
step of some refactoring. This can be reproduced by piping the following
minimal test case into `genksyms -r /dev/null` or alternatively, putting
it into a C file attempting a build:

typedef int (*f)();
typedef int (*f)();

Attaching gdb to genksyms to understand this failure is useless without
changing CFLAGS to emit debuginfo. Once you have debuginfo, you will
find that the failure is that `char *s` was NULL and the program
executed `while(*s)`. At which point, further debugging requires
familiarity with compiler front end / parser development.

What happens is that flex identifies the first instance of the token "f"
as IDENT and the yacc parser adds it to the symbol table. On the second
instance, flex will identify "f" as TYPE, which triggers an error case
in the yacc parser. Given that TYPE would have been IDENT had it not
been in the symbol table, the the segmentaion fault could be avoided by
treating TYPE as IDENT in the affected rule.

Some might consider placing identical function pointer type declarations
in different headers to be poor style might consider a failure to be
beneficial. However, failing through a segmentation fault makes the
cause non-obvious and can waste the time of anyone who encounters it.

Signed-off-by: Richard Yao &lt;richard.yao@clusterhq.com&gt;
Acked-by: Madhuri Yechuri &lt;madhuriyechuri@clusterhq.com&gt;
Signed-off-by: Michal Marek &lt;mmarek@suse.com&gt;
</content>
</entry>
<entry>
<title>genksyms: fix typeof() handling</title>
<updated>2014-04-03T23:20:52Z</updated>
<author>
<name>Jan Beulich</name>
<email>JBeulich@suse.com</email>
</author>
<published>2014-04-03T21:46:37Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=dc53324060f324e8af6867f57bf4891c13c6ef18'/>
<id>urn:sha1:dc53324060f324e8af6867f57bf4891c13c6ef18</id>
<content type='text'>
Recent increased use of typeof() throughout the tree resulted in a
number of symbols (25 in a typical distro config of ours) not getting a
proper CRC calculated for them anymore, due to the parser in genksyms
not coping with several of these uses (interestingly in the majority of
[if not all] cases the problem is due to the use of typeof() in code
preceding a certain export, not in the declaration/definition of the
exported function/object itself; I wasn't able to find a way to address
this more general parser shortcoming).

The use of parameter_declaration is a little more relaxed than would be
ideal (permitting not just a bare type specification, but also one with
identifier), but since the same code is being passed through an actual
compiler, there's no apparent risk of allowing through any broken code.

Otoh using parameter_declaration instead of the ad hoc
"decl_specifier_seq '*'" / "decl_specifier_seq" pair allows all types to
be handled rather than just plain ones and pointers to plain ones.

Signed-off-by: Jan Beulich &lt;jbeulich@suse.com&gt;
Cc: Michal Marek &lt;mmarek@suse.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>genksyms: pass symbol-prefix instead of arch</title>
<updated>2013-03-20T00:57:27Z</updated>
<author>
<name>James Hogan</name>
<email>james.hogan@imgtec.com</email>
</author>
<published>2013-03-18T09:08:56Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d70f82acf32affa78ae4957caa0fb2a550d2c6ea'/>
<id>urn:sha1:d70f82acf32affa78ae4957caa0fb2a550d2c6ea</id>
<content type='text'>
Pass symbol-prefix to genksyms instead of arch, so that the decision
what symbol prefix to use is kept in one place.

Basically genksyms used to take a -a $ARCH argument and it used that to
determine whether to add an underscore symbol prefix. It's now changed
to take a -s $SYMBOL_PREFIX argument so that the caller decides whether
a symbol prefix is required. The build system then uses
CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX to determine whether to pass the
argument.

Signed-off-by: James Hogan &lt;james.hogan@imgtec.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>genksyms: fix metag symbol prefix on crc symbols</title>
<updated>2013-03-02T20:11:13Z</updated>
<author>
<name>James Hogan</name>
<email>james.hogan@imgtec.com</email>
</author>
<published>2013-02-11T15:40:24Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=97c3ec63089fdcd2abf66619b913900909841dc0'/>
<id>urn:sha1:97c3ec63089fdcd2abf66619b913900909841dc0</id>
<content type='text'>
Meta uses symbol prefixes, so add "metag" to the list of architectures
to set the mod_prefix to "_" for. This fixes __crc_* symbols to add the
extra underscore to match _CRC_SYMBOL macro in &lt;linux/export.h&gt; and so
that modpost finds them.

Signed-off-by: James Hogan &lt;james.hogan@imgtec.com&gt;
</content>
</entry>
<entry>
<title>scripts/genksyms: clean lex/yacc generated files</title>
<updated>2012-01-08T13:48:15Z</updated>
<author>
<name>Fernando Luis Vázquez Cao</name>
<email>fernando@oss.ntt.co.jp</email>
</author>
<published>2011-12-12T03:17:21Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=603d8c0adb0f7576f92fc435c69be9406dc60762'/>
<id>urn:sha1:603d8c0adb0f7576f92fc435c69be9406dc60762</id>
<content type='text'>
Add "keywords.hash.c", "lex.lex.c", "parse.tab.c" and "parse.tab.h" to
clean-list so that they get automagically deleted at clean/mrproper
time.

Signed-off-by: Fernando Luis Vazquez Cao&lt;fernando@oss.ntt.co.jp&gt;
Signed-off-by: Michal Marek &lt;mmarek@suse.cz&gt;
</content>
</entry>
</feed>
