[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