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           [EMAIL PROTECTED]
Ann Arbor, MI            PGP key ID: BEA343A6


--On March 16, 2006 1:09:27 AM -0500 Derek Atkins <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>:

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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>:

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           [EMAIL PROTECTED]
Ann Arbor, MI            PGP key ID: BEA343A6


_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to