You're correct: our errors are the same. I skipped reading over your entire thread because the error you pasted on your first post didn't match my own.

I spent some time over the last couple days investigating this. A number of modules are telling libtool (in their respective Makefile.am's) to link against other modules. It's obvious that the MacIntel's linker is behaving differently than on other platforms (even PPC Mac's, as Derek has no problems compiling on his PPC powerbook). I suspect that the MacIntel linker is being less forgiving due to its namespace implementation.

While I certainly don't claim to be an expert on the autotools, I couldn't grasp why the modules' shared libraries should want to (statically) link against each other, so I removed the offending libraries from the Makefile.am's and eventually got a clean build. I've attached the patch to actually get it to built but haven't done more than launch and load my data file for testing. If it's agreed to by they-who-are-more-knowledgable-than-myself then I think a more thorough cleanup of the Makefile.am files is in order.

As an aside, I eventually run into a wall on one module and on a lark did a fresh checkout and applied my diff and (yay) it finally built. I don't think a clean tree should be necessary to get a good build though...


-Peter

Attachment: macintel-linkhack-trunk-r15574.diff
Description: Binary data


On 11-Feb-07, at 11:28 AM, Jeff Carneal wrote:

Hey Peter,

You didn't include all the output, but this looks suspiciously like what I encountered under the thread 'libtool problem on OS X'. I documented there my efforts to try forcing OS X to use gnu libtool, but I still can't get it to work. Really wishing I had some experience with libtool about now... grr.

Jeff

On Feb 10, 2007, at 11:07 PM, Peter McAlpine wrote:

Hello,

I'm having trouble building trunk on my MacIntel. I can build 2.0.4 source fine.
...
gcc -dynamiclib ${wl}-flat_namespace ${wl}-undefined ${wl}suppress -o .libs/libgncmod-register-gnome.dylib .libs/gncmod-register- gnome.o .libs/combocell-gnome.o .libs/datecell-gnome.o .libs/ formulacell-gnome.o .libs/gnucash-color.o .libs/gnucash- cursor.o .libs/gnucash-date-picker.o .libs/gnucash-grid.o .libs/ gnucash-header.o .libs/gnucash-item-edit.o .libs/gnucash-item- list.o .libs/gnucash-scrolled-window.o .libs/gnucash-sheet.o .libs/ gnucash-style.o .libs/pricecell-gnome.o .libs/quickfillcell- gnome.o .libs/table-gnome.o -L/opt/local/lib ../../../src/ register/register-core/.libs/libgncmod-register-core.dylib -L/usr/ X11R6/lib /Users/prock/src/gnucash/local_wc/sx-projection/trunk/ src/gnome-utils/.libs/libgncmod-gnome-utils.dylib /Users/prock/src/ gnucash/local_wc/sx-projection/trunk/src/backend/file/.libs/libgnc- backend-file-utils.dylib /Users/prock/src/gnucash/local_wc/sx- projection/trunk/src/network-utils/.libs/libgncmod-network- utils.dylib /Users/prock/src/gnucash/local_wc/sx-projection/trunk/ src/app-utils/.libs/libgncmod-app-utils.dylib /Users/prock/src/ gnucash/local_wc/sx-projection/trunk/src/engine/.libs/libgncmod- engine.dylib /Users/prock/src/gnucash/local_wc/sx-projection/trunk/ src/gnc-module/.libs/libgnc-module.dylib /Users/prock/src/gnucash/ local_wc/sx-projection/trunk/src/calculation/.libs/libgncmod- calculation.dylib /Users/prock/src/gnucash/local_wc/sx-projection/ trunk/src/core-utils/.libs/libgnc-core-utils.dylib /opt/local/lib/ libgtkhtml-3.8.dylib -L/usr/lib /opt/local/lib/libgailutil.dylib / opt/local/lib/libgnomeprintui-2-2.dylib /opt/local/lib/ libgoffice-1.dylib /opt/local/lib/libesd.dylib /opt/local/lib/ libaudiofile.dylib /opt/local/lib/libgsf-gnome-1.dylib /opt/local/ lib/libdbus-glib-1.dylib /opt/local/lib/libdbus-1.dylib /opt/local/ lib/libssl.dylib /opt/local/lib/libcrypto.dylib /opt/local/lib/ libhowl.dylib /opt/local/lib/libORBitCosNaming-2.dylib /opt/local/ lib/libgsf-1.dylib /opt/local/lib/libbz2.dylib /opt/local/lib/ libglade-2.0.dylib /opt/local/lib/libgnomeprint-2-2.dylib /opt/ local/lib/libexpat.dylib /opt/local/lib/libz.dylib /opt/local/lib/ libguile.dylib /opt/local/lib/libguile-ltdl.dylib /Users/prock/src/ gnucash/local_wc/sx-projection/trunk/lib/libqof/qof/.libs/libgnc- qof.dylib /usr/lib/libiconv.dylib /usr/lib/libm.dylib ../../../src/ core-utils/.libs/libgnc-core-utils.dylib /usr/lib/libdl.dylib /usr/ lib/libresolv.dylib /usr/lib/libc.dylib ../../../src/gnc- module/.libs/libgnc-module.dylib ../../../src/engine/.libs/ libgncmod-engine.dylib ../../../src/app-utils/.libs/libgncmod-app- utils.dylib ../../../src/gnome-utils/.libs/libgncmod-gnome- utils.dylib /usr/lib/libpthread.dylib ../../../lib/libqof/ qof/.libs/libgnc-qof.dylib /opt/local/lib/libgnomeui-2.dylib /usr/ X11R6/lib/libX11.dylib /usr/X11R6/lib/libSM.dylib /usr/X11R6/lib/ libICE.dylib /opt/local/lib/libbonoboui-2.dylib /opt/local/lib/ libgnome-keyring.dylib /opt/local/lib/libxml2.dylib -lpthread /opt/ local/lib/libgnomecanvas-2.dylib /opt/local/lib/libgnome-2.dylib / opt/local/lib/libart_lgpl_2.dylib /opt/local/lib/ libpangoft2-1.0.dylib /opt/local/lib/libgtk-x11-2.0.dylib /opt/ local/lib/libgdk-x11-2.0.dylib /opt/local/lib/libatk-1.0.dylib / opt/local/lib/libgdk_pixbuf-2.0.dylib /opt/local/lib/ libtiff.dylib /opt/local/lib/libjpeg.dylib /opt/local/lib/ libpangocairo-1.0.dylib /opt/local/lib/libpango-1.0.dylib /opt/ local/lib/libcairo.dylib -lSM -lICE /opt/local/lib/ libfreetype.dylib -lz /opt/local/lib/libfontconfig.dylib /opt/ local/lib/libpng12.dylib /opt/local/lib/libXrender.dylib -lX11 / opt/local/lib/libbonobo-2.dylib /opt/local/lib/ libgnomevfs-2.dylib /opt/local/lib/libbonobo-activation.dylib /opt/ local/lib/libgconf-2.dylib /opt/local/lib/libgobject-2.0.dylib / opt/local/lib/libORBit-2.dylib /opt/local/lib/ libgmodule-2.0.dylib /opt/local/lib/libgthread-2.0.dylib /opt/ local/lib/libglib-2.0.dylib /opt/local/lib/libintl.dylib /opt/ local/lib/libiconv.dylib /opt/local/lib/libpopt.dylib -lm - install_name /Users/prock/src/gnucash/local_wc/sx-projection/ trunk/local/lib/gnucash/libgncmod-register-gnome.dylib
ld: multiple definitions of symbol _gnc_module_current
.libs/gncmod-register-gnome.o definition of _gnc_module_current in section (__DATA,__data) ../../../src/register/register-core/.libs/libgncmod-register- core.dylib(gncmod-register-core.o) definition of _gnc_module_current
...

I have similar errors for _gnc_module_init, _gnc_module_path, _gnc_module_revision, _gnc_module_system_interface, _gnc_module_age, and _gnc_module_description.

On trunk: 0register/register-core/gncmod-register-core.c and register/register-gnome/gncmod-register-gnome.c both define gnc_module_current (and others) outside of any block.

2.0 branch: defines then with unique names (eg - "libgncmod_register_core_LTX_gnc_module_current").

Any input in solving this problem would be appreciated.
-Peter

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


Attachment: PGP.sig
Description: This is a digitally signed message part

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

Reply via email to