[Gnucash-changes] r13637 - gnucash/trunk - Add more linker flags for referenced libraries. Necessary when the

Mike Alexander mta at umich.edu
Thu Mar 16 01:57:50 EST 2006


I haven't been following the Windows port much (I get enough grief with 
Windows development in my day job), but it sounds like the idea is to 
treat everything like a shared library on Windows and not have any 
loadable modules.  Is that more or less correct?  And the main 
difference (from gnucash's point of view) is whether they are loaded 
with an explicit call to some system method or implicitly when 
referenced by something?

If this is correct then I don't think it's necessary.  You should be 
able to keep the idea of loadable modules on Windows.  We do that all 
the time in my day job.  It's true that having something be a shared 
library on one platform and a loadable module on another is going to 
give us lots of problems.

-- 
Mike Alexander           mta at umich.edu
Ann Arbor, MI            PGP key ID: BEA343A6


--On March 16, 2006 1:09:27 AM -0500 Derek Atkins <warlord at MIT.EDU> 
wrote:

> Yeah, I figured it would have moved the problem.  Unfortunately
> this is where the windows linker and the mac linker are....
> incompatible.   This is particularly an issue in that a
> "loadable module" != "shared library", but gnucash treats
> them the same.
>
> -derek
>
> Quoting Mike Alexander <mta at umich.edu>:
>
>> The change in r13642 moved the problem from libgncmod-business-core
>> to libgncmod-business-backend-file, but I still get the same build
>> errors there.  Removing the reference to
>> ${top_builddir}/src/backend/file/libgnc-backend-file.la from
>> business-core/file/Makefile.am solved the build problem (but will
>> probably break the Windows build).  The resulting gnucash seems to
>> run ok, but I haven't tried any of the business features, they may
>> not work.
>>
>>        Mike
>>
>>
>> --On March 15, 2006 3:22:15 PM -0500 Derek Atkins <warlord at MIT.EDU>
>> wrote:
>>
>>> Yeah, there's a MAJOR disconnect between "shared library" and
>>> "shared module" in the gnucash sources.  Unfortunately it's really
>>> confusing and we're kinda violating a few of the rules.   It's
>>> worked historically, but now with Christian's Win32 "everything
>>> linking" it's becoming more prominent.
>>>
>>> But... I missed this one.   There's no reason that the business-core
>>> library should require the file backend.  However the business-core
>>> XML backend does...
>>>
>>> -derek
>>>
>>> Quoting Mike Alexander <mta at umich.edu>:
>>>
>>>> I think a different approach may be required.  I'm getting these
>>>> build errors with this change:
>>>>
>>>> *** Warning: Linking the shared library libgncmod-business-core.la
>>>> against the loadable module
>>>> *** libgnc-backend-file.dylib is not portable!
>>>> ** Warning, lib libgnc-backend-file.dylib is a module, not a shared
>>>> library
>>>>
>>>> ** And there doesn't seem to be a static archive available
>>>> ** The link will probably fail, sorry
>>>>
>>>> gcc -dynamiclib ${wl}-undefined ${wl}dynamic_lookup -o
>>>> .libs/libgncmod-business-core.0.0.0.dylib  .libs/businessmod-core.o
>>>> .libs/gncAddress.o .libs/gncBillTerm.o .libs/gncBusiness.o
>>>> .libs/gncCustomer.o .libs/gncEmployee.o .libs/gncEntry.o
>>>> .libs/gncInvoice.o .libs/gncJob.o .libs/gncOrder.o .libs/gncOwner.o
>>>> .libs/gncTaxTable.o .libs/gncVendor.o  -L/sw/lib
>>>> ../../../src/gnc-module/.libs/libgncmodule.dylib
>>>> /tools/gnucash-1.9/build/darwin/src/core-utils/.libs/libcore-utils
>>>> .d ylib  /sw/lib/libgconf-2.dylib /sw/lib/libORBit-2.dylib
>>>> -L/usr/X11R6/lib  /sw/lib/libgtk-x11-2.0.dylib
>>>> /sw/lib/libgdk-x11-2.0.dylib
>>>> /sw/lib/libatk-1.0.dylib /sw/lib/libgdk_pixbuf-2.0.dylib
>>>> /sw/lib/libpangoxft-1.0.dylib /sw/lib/libpangox-1.0.dylib
>>>> /sw/lib/libpangoft2-1.0.dylib /sw/lib/libpango-1.0.dylib
>>>> -L/tools/g-wrap-1.9.6/install/darwin/lib /sw/lib/libltdl.dylib
>>>> ../../../src/backend/file/.libs/libgnc-backend-file.dylib
>>>> /sw/lib/libxml2.dylib
>>>> /tools/gnucash-1.9/build/darwin/src/engine/.libs/libgncmod-engine.
>>>> dy lib
>>>> /tools/gnucash-1.9/build/darwin/src/gnc-module/.libs/libgncmodule.
>>>> dy lib
>>>> /tools/gnucash-1.9/build/darwin/lib/libqof/qof/.libs/libqof.dylib
>>>> ../../../src/engine/.libs/libgncmod-engine.dylib
>>>> /tools/g-wrap-1.9.6/install/darwin/lib/libgwrap-guile-runtime.dylib
>>>> /tools/g-wrap-1.9.6/install/darwin/lib/libgwrap-core-runtime.dylib
>>>> /tools/g-wrap-1.9.6/install/darwin/lib/libffi.dylib
>>>> ../../../lib/libqof/qof/.libs/libqof.dylib /sw/lib/libguile.dylib
>>>> /sw/lib/libguile-ltdl.dylib /sw/lib/libgthread-2.0.dylib
>>>> /sw/lib/libgobject-2.0.dylib /sw/lib/libgmodule-2.0.dylib
>>>> /sw/lib/libglib-2.0.dylib /sw/lib/libintl.dylib
>>>> /sw/lib/libiconv.dylib /sw/lib/libpopt.dylib -lm  -install_name
>>>> /tools/gnucash-1.9/install/darwin/lib/gnucash/libgncmod-business-c
>>>> or e.0.dylib -Wl,-compatibility_version -Wl,1 -Wl,-current_version
>>>> -Wl,1.0
>>>>
>>>> ld: ../../../src/backend/file/.libs/libgnc-backend-file.dylib is
>>>> input for the dynamic link editor, is not relocatable by the static
>>>> link editor again
>>>>
>>>>
>>>> I don't know exactly what the problem is, but it appears to be
>>>> related to the change in r13637.
>>>>
>>>> --
>>>> Mike Alexander           mta at umich.edu
>>>> Ann Arbor, MI            PGP key ID: BEA343A6
>>>>
>>
>> _______________________________________________
>> gnucash-devel mailing list
>> gnucash-devel at gnucash.org
>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel




More information about the gnucash-devel mailing list