Anyone have any thoughts on this? I've come back to this one and the macros don't seem to be doing the job of excluding everything appropriately. -Nathan On Wed, May 13, 2009 at 11:00 PM, Nathan Beyer wrote: > -build-native-common: >     [echo] Making "" in > /Users/nathan/Development/harmony/working_classlib/modules/awt/src/main/native/lcmm/unix >     [exec] cc -DMACOSX -DMACOSX_X86 -DHYX86 -DIPv6_FUNCTION_SUPPORT > -D_REENTRANT -I/opt/local/include > -I/Users/nathan/Development/harmony/working_classlib/deploy/include > -I/Users/nathan/Development/harmony/working_classlib/deploy/jdk/include > -I. -I../shared/ -Icommon -I../shared/include  -fPIC -fno-common -ggdb > -O0  -Werror   -c -o ../shared/cmmerror.o ../shared/cmmerror.c >     [exec] cc -DMACOSX -DMACOSX_X86 -DHYX86 -DIPv6_FUNCTION_SUPPORT > -D_REENTRANT -I/opt/local/include > -I/Users/nathan/Development/harmony/working_classlib/deploy/include > -I/Users/nathan/Development/harmony/working_classlib/deploy/jdk/include > -I. -I../shared/ -Icommon -I../shared/include  -fPIC -fno-common -ggdb > -O0  -Werror   -c -o ../shared/cmmio.o ../shared/cmmio.c >     [exec] cc -DMACOSX -DMACOSX_X86 -DHYX86 -DIPv6_FUNCTION_SUPPORT > -D_REENTRANT -I/opt/local/include > -I/Users/nathan/Development/harmony/working_classlib/deploy/include > -I/Users/nathan/Development/harmony/working_classlib/deploy/jdk/include > -I. -I../shared/ -Icommon -I../shared/include  -fPIC -fno-common -ggdb > -O0  -Werror   -c -o ../shared/cmmxforms.o ../shared/cmmxforms.c >     [exec] cc -DMACOSX -DMACOSX_X86 -DHYX86 -DIPv6_FUNCTION_SUPPORT > -D_REENTRANT -I/opt/local/include > -I/Users/nathan/Development/harmony/working_classlib/deploy/include > -I/Users/nathan/Development/harmony/working_classlib/deploy/jdk/include > -I. -I../shared/ -Icommon -I../shared/include  -fPIC -fno-common -ggdb > -O0  -Werror   -c -o ../shared/NativeCMM.o ../shared/NativeCMM.c >     [exec] cc -DMACOSX -DMACOSX_X86 -DHYX86 -DIPv6_FUNCTION_SUPPORT > -D_REENTRANT -I/opt/local/include > -I/Users/nathan/Development/harmony/working_classlib/deploy/include > -I/Users/nathan/Development/harmony/working_classlib/deploy/jdk/include > -I. -I../shared/ -Icommon -I../shared/include  -fPIC -fno-common -ggdb > -O0  -Werror   -c -o ../shared/NativeImageFormat.o > ../shared/NativeImageFormat.c >     [exec] echo "HYLCMM_0.1 {" >liblcmm.exp >     [exec] echo "  global :" >>liblcmm.exp >     [exec] sed -e's/^/    /;s/$/;/' >liblcmm.exp >     [exec] echo "  local : *;" >>liblcmm.exp >     [exec] echo "};" >>liblcmm.exp >     [exec] cc -dynamiclib -dynamic -install_name liblcmm.dylib   -o > ../liblcmm.dylib \ >     [exec]     ../shared/cmmerror.o ../shared/cmmio.o > ../shared/cmmxforms.o ../shared/NativeCMM.o > ../shared/NativeImageFormat.o > -L/Users/nathan/Development/harmony/working_classlib/deploy/lib/ > -L/Users/nathan/Development/harmony/working_classlib/deploy/jdk/jre/bin/ > /Users/nathan/Development/harmony/working_classlib/deploy/lib/libhycommon.a > -lhythr /Users/nathan/Development/harmony/working_classlib/deploy/lib/libhyzip.a > -lhyzlib /Users/nathan/Development/harmony/working_classlib/deploy/lib/libhypool.a > /Users/nathan/Development/harmony/working_classlib/deploy/lib/libhyfdlibm.a > -lvmi  -L/opt/local/lib -lc -lm -ldl -liconv -ldl -llcms >     [exec] ld: duplicate symbol _clr_NIF_cmmFormatID in > ../shared/NativeCMM.o and ../shared/cmmerror.o >     [exec] collect2: ld returned 1 exit status >     [exec] make: *** [../liblcmm.dylib] Error 1 > > > 2009/5/13 Tim Ellison : >> Alexey Petrenko wrote: >>> Does not standard way with if/define work here? >> >> Should do, both files have the equivalent of >> >> #ifndef _Included_NativeImageFormat >> #define _Included_NativeImageFormat >> >> at the start. >> >> Nathan, can you post the actual compiler output? >> >> Regards, >> Tim >> >> >>> 13.05.2009, в 6:21, Nathan Beyer написал(а): >>> >>>> While trying to compile the lcmms bit [1] of the awt module I'm >>>> getting several "ld: dupblicate symbol" errors from NativeCMM.o and >>>> NativeImageFormat.o on the 'jfield' variables defined in >>>> NativeImageFormat.h [2]. While looking at the header files, I noticed >>>> a circular include - NativeCMM.h includes NativeImageFormat.h and >>>> NativeImageFormat.h includes NativeCMM.h. >>>> >>>> Any thoughts on how to unwind this? >>>> >>>> -Nathan >>>> >>>> [1] >>>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/native/lcmm/shared/ >>>> >>>> [2] >>>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/native/lcmm/shared/NativeImageFormat.h?annotate=476395 >>>> >>>> line 22-34 >>> >> >