Linking the shared library FOO.la against the loadable module

Neil Williams linux at codehelp.co.uk
Tue Sep 6 16:27:10 EDT 2005


On Tuesday 06 September 2005 7:00 pm, Derek Atkins wrote:
> Yea, GnuCash's previous developers wanted gnucash to be a bunch of Loadable
> Modules..  But they never finished the modularlization, and they didn't
> understand the difference between a Shared Library and a Loadable Module.

Is that just a Mac OSX thing or is that difference important for GNU/Linux 
too?

i.e. When I eventually get CVS G2 to compile on OSX without -module, would the 
linux tree build with the same change?

> It's part of the brokenness of the current gnucash module architecture. 
> There is no simple fix.  It's unclear whether just removing the -module
> will actually
> solve the problem.  It may be a short-term fix...

Are we talking of different problems here - the limited problem of a CVS Mac 
OSX build does look like it will be solved by removing the -module LDFLAG. 

I also appear to have solved the GTKHTML problems of earlier (principally by 
removing an old 1.8 package - so the environment variable hack was a waste of 
effort!)
:-(

I appreciate removing the flag won't undo the work that required the flag to 
be set, but will it break the build or break the application?

The important thing is that if this is ever committed, everyone needs to do a 
make clean, not just a make or even ./autogen.sh && make. It is limited to 
the directories involved but I've found another half dozen or so later in the 
build that would also need a make clean.

> In the end, we really need to rethink the modularization effort, and how we
> build our application.  What parts REALLY need to be modules, and how do
> they link against the core code?

I can help as far as I can - but that's only the non-GUI stuff as it relates 
to ancillary logic, objects, backends and CashUtil.

So that would make:
libqof1, libcashobjects.la, libgnc-backend-file.la, libcashlogic.la (a new 
one).
That would replace the entire contents of:
src/engine/
src/backend/file/
src/business/business-core/

and various, as yet undetermined, sections of the GUI code into a shared logic 
library (shared between GnuCash-GUI and CashUtil).

Well, the build gets a LOT further than ever before now. I'm getting some 
different linker errors about multiple definitions which could again be down 
to spurious packages.

One down, don't know how many more to go but I'll keep on at it.

-- 

Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20050906/47f57610/attachment.bin


More information about the gnucash-devel mailing list