MacIntel trunk build failure

Peter McAlpine peter at aoeu.ca
Tue Feb 13 01:48:01 EST 2007


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: macintel-linkhack-trunk-r15574.diff
Type: application/octet-stream
Size: 3699 bytes
Desc: not available
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20070213/34332043/attachment.obj 
-------------- next part --------------

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 at gnucash.org
>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20070213/34332043/attachment.bin 


More information about the gnucash-devel mailing list