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