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

Derek Atkins warlord at MIT.EDU
Wed Mar 15 15:22:15 EST 2006


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.dylib 
> /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.dylib 
> /tools/gnucash-1.9/build/darwin/src/gnc-module/.libs/libgncmodule.dylib 
> /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-core.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
>
>
> --On March 15, 2006 11:58:12 AM -0500 Derek Atkins <warlord at MIT.EDU> wrote:
>
>> FYI,
>>
>> I /think/ that a better approach here would be to move the
>> gncBusGuile.[ch] from libgncmod_business_core to libgw_business_core
>>
>> That should remove the libgw-engine requirement.  I'll test that
>> change here first just to be sure.
>>
>> -derek
>>
>> Christian Stimming <cstim at cvs.gnucash.org> writes:
>>
>>> --- gnucash/trunk/src/business/business-core/Makefile.am	2006-03-15
>>> 12:31:51 UTC (rev 13636) +++
>>> gnucash/trunk/src/business/business-core/Makefile.am	2006-03-15
>>> 12:51:43 UTC (rev 13637) @@ -57,9 +57,14 @@
>>>    gw-business-core.h
>>>
>>>  libgncmod_business_core_la_LIBADD = \
>>> +  ${top_builddir}/src/gnc-module/libgncmodule.la \
>>> +  ${top_builddir}/src/backend/file/libgnc-backend-file.la \
>>> +  ${top_builddir}/src/engine/libgncmod-engine.la \
>>> +  ${top_builddir}/src/engine/libgw-engine.la \
>>> +  ${G_WRAP_LINK_ARGS} \
>>> +  ${QOF_LIBS} \
>>>    ${GUILE_LIBS} \
>>>    ${GLIB_LIBS} \
>>> -  ${QOF_LIBS} \
>>>    ${EFENCE_LIBS}
>>>
>>>  # business-core-helpers.c
>>> @@ -67,7 +72,10 @@
>>>  libgw_business_core_la_SOURCES = gw-business-core.c
>>>
>>>  libgw_business_core_la_LDFLAGS = ${G_WRAP_LINK_ARGS}
>>> -libgw_business_core_la_LIBADD  = libgncmod-business-core.la
>>> +libgw_business_core_la_LIBADD  = \
>>> +  libgncmod-business-core.la \
>>> +  ${top_builddir}/src/engine/libgw-engine.la \
>>> +  ${QOF_LIBS}
>>>
>>>  gncmoddir = ${GNC_SHAREDIR}/guile-modules/gnucash
>>>  gncmod_DATA = business-core.scm
>
>
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>



-- 
       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