more info on G_INLINE_FUNC problem on OS X

David Reiser dbreiser at earthlink.net
Sat Nov 10 19:39:24 EST 2007


On Nov 10, 2007, at 7:22 PM, David Reiser wrote:

> If I  --disable-error-on-warning building gnucash against glib 2.12.12
> (slightly modified, grr) in Mac OS X 10.5, gnucash will crash. The
> errors in terminal are:
>
> dyld: lazy symbol binding failed: Symbol not found: _mark_split
>   Referenced from: /sw/lib/gnucash/libgncmod-engine.dylib
>   Expected in: dynamic lookup
>
> dyld: Symbol not found: _mark_split
>   Referenced from: /sw/lib/gnucash/libgncmod-engine.dylib
>   Expected in: dynamic lookup
>
> Trace/BPT trap
>
> The entire crash log is:
>
> Process:         gnucash-bin [324]
> Path:            /sw/bin/gnucash-bin
> Identifier:      gnucash-bin
> Version:         ??? (???)
> Code Type:       PPC (Native)
> Parent Process:  bash [147]
>
> Date/Time:       2007-11-10 13:32:52.837 -0500
> OS Version:      Mac OS X 10.5 (9A581)
> Report Version:  6
>
> Exception Type:  EXC_BREAKPOINT (SIGTRAP)
> Exception Codes: 0x0000000000000001, 0x000000008fe0105c
> Crashed Thread:  0
>
> Dyld Error Message:
>   Symbol not found: _mark_split
>   Referenced from: /sw/lib/gnucash/libgncmod-engine.dylib
>   Expected in: dynamic lookup
>
>
> The problem is coming from SplitP.h around line 150:
> ------------------------
> void  xaccFreeSplit (Split *split);    /* frees memory */
>
> Split * xaccSplitClone (const Split *s);
>
> Split *xaccDupeSplit (const Split *s);
> G_INLINE_FUNC void mark_split (Split *s);
>
> void xaccSplitVoid(Split *split);
> void xaccSplitUnvoid(Split *split);
> void xaccSplitCommitEdit(Split *s);
> void xaccSplitRollbackEdit(Split *s);
> -----------------------
>
> Mac OSX 10.5 build tools are having a problem with glib's  
> G_INLINE_FUNC.
>
> Is there any way to avoid using that function here without endangering
> the rest of gnucash's code?
>
> There are 14 other instances of G_INLINE_FUNC, but this is the only
> one I know at the moment to be causing a problem.
>
The warning message that stops the build is --enable-error-on-warning  
is set is:

  gcc -DHAVE_CONFIG_H -I. -I../.. -DG_LOG_DOMAIN=\"gnc.engine\" -I/usr/ 
X11R6/include -I/sw/lib/system-openssl/include -I/sw/include -I../../ 
lib/libc -I../../src/core-utils -I../../src -I../../src -I../../src/ 
gnc-module -I../../lib/libqof/qof -I../../lib/libqof/qof -I/sw/include/ 
glib-2.0 -I/sw/lib/glib-2.0/include -I/sw/include -Werror - 
Wdeclaration-after-statement -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -g - 
O2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno- 
unused -c Transaction.c  -fno-common -DPIC -o .libs/Transaction.o
cc1: warnings being treated as errors
SplitP.h:152: warning: 'mark_split' used but never defined
make[5]: *** [Transaction.lo] Error 1

Dave
--
David Reiser
dbreiser at earthlink.net






More information about the gnucash-devel mailing list