win32 trunk daily build runs again (was: still broken)
janssens-geert at telenet.be
Sun Apr 24 15:03:21 EDT 2011
On zaterdag 23 april 2011, Christian Stimming wrote:
> Am Samstag, 23. April 2011 schrieb Phil Longstaff:
> > > 762: undefined reference to `gnc_progress_dialog_set_primary'
> > > c:\soft\gnucash\build\src\import-export\qif-
> > > import/../../../../repos/src/import-export/qif-import/druid-qif-import.
> > > c: 763: undefined reference to `gnc_progress_dialog_set_secondary'
> > > [...]
> > >
> > > and some more undefined references, all of symbols that should be in
> > > src/gnome/libgnc-gnome.so but somehow cannot be found. There haven't
> > > been any changes in the qif-import/Makefile.am linker flags, so I have
> > > no idea why this shows up now.
> > Yes, I ran into this. I think my hack (since I didn't need bleeding
> > edge source) was to just back off to an earlier version. There was some
> > point at which this libgnc-gnome problem started. Maybe I can narrow
> > down what checkin it was.
> I got it; fix is committed with r20593.
Thanks for figuring this out.
> Recently some functions were introduces with the attribute G_MODULE_EXPORT
> (Geert in r20591 and r20533). In short: No good, please don't use that
> attribute inside gnucash. Why did you do this?
Because that's what the GtkBuilder documentation suggested . I'll admit I
just blindly followed the advice given. I had no idea this had such an impact
on the rest of the GnuCash library inter-dependencies.
> Here's the issue: In gnucash, our internally "downstream" libraries rely on
> *all* symbols being exported from the internally "upstream" libraries. This
> is done by mingw's linker if and *only* if no symbol at all was marked as
> being exported. As soon as at least one symbol is manually marked as
> export, nothing except those marked symbols are exported, which will
> immediately lead to "unresolved symbols" in the win32 build. As Geert has
> introduced at least one function with G_MODULE_EXPORT attribute in
> libgnc-gnome, all other symbols from libgnc-gnome were no longer being
> exported for e.g. the qif-import code, which ran into the above build
Is that a design issue in the GnuCash code ? I mean should we normally
explicitely decide which symbols to export an which not ? Or is this just bad
advice on the gtkbuilder documentation page ?
More information about the gnucash-devel