Linking the shared library FOO.la against the loadable module
Derek Atkins
warlord at MIT.EDU
Tue Sep 6 16:37:33 EDT 2005
Quoting Neil Williams <linux at codehelp.co.uk>:
> 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?
Honestly I don't know. I know it's an important condition on some
platforms. I
don't know which ones.
>> 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.
No, it's the same problem. Just putting a different spin on it.
> 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!)
> :-(
Sorry, which gtkthml problems?
> 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?
I dont know... It will probably not break the build. It may break the
application on some platforms, but I don't know for sure.
> 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.
Eh, that's the easy part.
>> 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).
PLEASE PLEASE PLEASE PLEASE PLEASE keep src/business SEPARATE. DO NOT require
src/business to get integrated into src/engine. It's a separate set of
modules
for a REASON. Please keep it that way. GnuCash (and Cashutil) should work
just fine WITHOUT the business objects loaded.
> 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.
Or it could be the -module vs. non .....
> One down, don't know how many more to go but I'll keep on at it.
-derek
--
Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
Member, MIT Student Information Processing Board (SIPB)
URL: http://web.mit.edu/warlord/ PP-ASEL-IA N1NWH
warlord at MIT.EDU PGP key available
More information about the gnucash-devel
mailing list