On Sun, 2007-10-28 at 18:27 +0100, Daniel Poelzleithner wrote:
[...] 
> Bernd Petrovitsch wrote:
> > Hi all!
> > 
> > Just to reduce the surprise on the first build of CVS-HEAD:
> > 
> > I introduced a new higher level configuration layer to enable or disable
> > features/configuration options:
> 
> i wanted to update from 0.5.2 to 0.5.4 but quagga seems to be broken.
> even that i compiled with old plugin support, a unresolved symbol error
> occured.
> 
> - ---------- LOADING LIBRARY olsrd_quagga.so.0.2.2 ----------
> Checking plugin interface version:  5 - OK
> Trying to fetch plugin init function: OK
> Trying to fetch parameter table and it's size...
> Trying to fetch param function: FAILED: "/usr/lib/olsrd_quagga.so.0.2.2:
> undefined symbol: olsrd_plugin_register_param"
> - ---------- LIBRARY olsrd_quagga.so.0.2.2 FAILED ----------

Strange.

> trying cvs trunk didn't even start. problem is in the cfg parser,
> yyparse() part. the first expression causes a segfault, trying to set a

Thanks for the report. Yes, I noticed that too. The supposed fix was
somewhere and I was busy 2 days with offline stuff and I'm now ill the
3rd day. I just committed it.

Background: We have a globally used "olsr_cnf" pointer used (almost)
everywhere/available (declared in src/defs.h - why not in src/available
BTW?). Only in the config corner, we have also the globally
defined/available "cnf" (declared in src/cfgparser/olsrd_conf.h) as it
is needed by yacc/bison that way. The value of "cnf" was (as seen from,
CVS-HEAD) initialized in olsrd_parse_cnf() and also returned as value
which is used to initialize "olsr_cnf" (in the main function).

Apart from the trivial fix (restoring the old value) we/I can either
simply merge both of them or - IMHO better/nicer simpler - kill the
pointer and make a globally defined struct out of it.
Is there any reason to keep that a one-time malloc()ed pointer?

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services



