parsers: dynamically register parsers
authorJeremy Kerr <jk@ozlabs.org>
Mon, 18 Mar 2013 06:23:23 +0000 (14:23 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Mon, 29 Apr 2013 04:41:04 +0000 (14:41 +1000)
commit45e92aa32a80fdbbf5ad3ad64e34b1ac872018ef
tree2753fb3912c07d23f3e2f622c05043f55c8f24c9
parent5444648fe1ff9b79f3db5ee6feadd51341f59d71
parsers: dynamically register parsers

Currently, we require all parsers to be defined in an array in
parsers.c.

This change removes this requirement, by introducting a
register_parser() macro, which adds a constructor to register the parser
with the core parser infrastructure.

Because each parser no longer resolves an undefined symbol, we need to
use a `ld -r` object for libparser, instead of using libtool, which
creates a .a (and hence has no parsers included).

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/Makefile.am
discover/grub2-parser.c
discover/kboot-parser.c
discover/parser-utils.h
discover/parser.c
discover/yaboot-parser.c
test/parser/Makefile.am