Hi Rene,

thanks for the feedback on the CWS, I hadn't seen the build problems with the internal graphite module on Ubuntu Intrepid, because I didn't have system graphite installed. Please see comments below on the specific errors.

Rene Engelhard wrote:
I can't build cws graphite01 completely with either internal or external 
silgraphite:

with internal, the graphite build itself fails with:

mkdir .libs
g++ -I. -I./unxlngppc.pro/inc/so_graphite -I../inc -I./inc/pch -I./inc 
-I./unx/inc -I./unxlngppc.pro/inc -I. 
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/stl 
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/external
 -I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc 
-I/home/rene/OpenOffice.org/cws/graphite01/solenv/unxlngppc/inc 
-I/home/rene/OpenOffice.org/cws/graphite01/solenv/inc 
-I/home/rene/OpenOffice.org/cws/graphite01/res 
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/stl 
-I/home/rene/OpenOffice.org/cws/graphite01/solenv/inc/Xp31 
-INO_JAVA_HOME/include -INO_JAVA_HOME/include/linux 
-INO_JAVA_HOME/include/native_threads/include -I/usr/include 
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/offuh 
-I. -I./res -I. -fsigned-char -pipe -frtti -Wno-ctor-dtor-privacy -DLINUX -DUNX 
-DVCL -DGCC -DC300 -DPOWERPC -DCVER=C300 -DNPTL -DGLIBC=2 -D_PTHREADS 
-D_REENTRAN
T -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DPOWERPC -DPPC 
-DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 
-DGXX_INCLUDE_PATH=/usr/include/c++/4.3 -DSUPD=300 -DPRODUCT -DNDEBUG 
-DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DCUI -I. 
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/stl 
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/external
 -I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc 
-I/home/rene/OpenOffice.org/cws/graphite01/solenv/unxlngppc/inc 
-I/home/rene/OpenOffice.org/cws/graphite01/solenv/inc 
-I/home/rene/OpenOffice.org/cws/graphite01/res 
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/stl 
-I/home/rene/OpenOffice.org/cws/graphite01/solenv/inc/Xp31 
-INO_JAVA_HOME/include -INO_JAVA_HOME/include/linux 
-INO_JAVA_HOME/include/native_threads/include -I/usr/include 
-D_FILE_OFFSET_BITS=64 -fPIC -DNDEBUG -DTRACING -O3 -DNDEBUG -Wl,-Bdynamic -o 
profile-gr
aphite GrUtfTextSrc.o ProfileHarness.o -L../lib -L/home/rene/OpenOffice.org/cws/graphite01/solenv/unxlngppc/lib -L/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/lib -LNO_JAVA_HOME/lib -LNO_JAVA_HOME/jre/bin -LNO_JAVA_HOME/jre/bin/classic -L/usr/lib -ldl -lpthread -lm -lstlport_gcc -lstdc++ -L/home/rene/OpenOffice.org/cws/graphite01/graphite/unxlngppc.pro/misc/build/silgraphite-2.3/engine/src /usr/lib/libgraphite.so ProfileHarness.o: In function `runGraphite(Parameters)':
ProfileHarness.cpp:(.text+0xc68): undefined reference to 
`gr3ooo::FileFont::FileFont(_IO_FILE*, float, unsigned int, unsigned int)'
ProfileHarness.cpp:(.text+0xcd4): undefined reference to 
`gr3ooo::FileFont::fontHasGraphiteTables()'
ProfileHarness.cpp:(.text+0xd98): undefined reference to 
`gr3ooo::RangeSegment::RangeSegment(gr3ooo::Font*, gr3ooo::ITextSource*, 
gr3ooo::LayoutEnvironment*, unsigned int, unsigned int, gr3ooo::Segment*)'
ProfileHarness.cpp:(.text+0xda4): undefined reference to 
`gr3ooo::Segment::startCharacter()'
ProfileHarness.cpp:(.text+0xdb0): undefined reference to 
`gr3ooo::Segment::stopCharacter()'
ProfileHarness.cpp:(.text+0x11d4): undefined reference to 
`gr3ooo::LineFillSegment::LineFillSegment(gr3ooo::Font*, gr3ooo::ITextSource*, 
gr3ooo::LayoutEnvironment*, unsigned int, unsigned int, float, bool)'
ProfileHarness.cpp:(.text+0x11e0): undefined reference to 
`gr3ooo::Segment::startCharacter()'
ProfileHarness.cpp:(.text+0x11ec): undefined reference to 
`gr3ooo::Segment::stopCharacter()'
collect2: ld returned 1 exit status
make[2]: *** [profile-graphite] Error 1
make[2]: Leaving directory 
`/home/rene/OpenOffice.org/cws/graphite01/graphite/unxlngppc.pro/misc/build/silgraphite-2.3/engine/test/ProfileHarness'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory 
`/home/rene/OpenOffice.org/cws/graphite01/graphite/unxlngppc.pro/misc/build/silgraphite-2.3/engine/test'
make: *** [all-recursive] Error 1
dmake:  Error code 2, while making 
'./unxlngppc.pro/misc/build/so_built_so_graphite'

ProfileHarness.cpp should be picking up GrClient.h from the patched OOo version of graphite, which will in turn get GrCommon.h with the #define gr gr3ooo patch. It seems to be getting confused about which library to use at link time and was picking up the system version when I tried with system graphite installed, but internal graphite selected. I've got it to work for me by using a more select choice of LDFLAGS in the makefile.mk

--- makefile.mk    (revision 265518)
+++ makefile.mk    (revision 265520)
@@ -103,9 +103,8 @@
.ENDIF
EXTRA_GR_CXX_FLAGS=-fPIC

-CONFIGURE_ACTION=bash -c 'autoreconf -i -f; CXXFLAGS="$(INCLUDE) $(CFLAGSCXX) $(CFLAGSCOBJ) $(CDEFS) $(CDEFSOBJ) $(SOLARINC) $(SOLARDEF) $(LFS_CFLAGS) $(EXTRA_GR_CXX_FLAGS)" LDFLAGS="$(SOLARLIB) $(STDLIB)" ./configure $(CONFIGURE_FLAGS)' -#CONFIGURE_ACTION=bash -c 'autoreconf -i -f; CXXFLAGS="$(SOLARINC) $(SOLARDEF) $(LFS_CFLAGS)" LDFLAGS="$(SOLARLIB) $(STDLIB)" ./configure $(CONFIGURE_FLAGS)' -#CONFIGURE_ACTION+=CXXFLAGS="$(INCLUDE) $(CFLAGSCXX) $(CFLAGSCOBJ) $(CDEFS) $(CDEFSOBJ) $(SOLARINC) $(SOLARDEF) $(LFS_CFLAGS)" LDFLAGS="$(SOLARLIB) $(STDLIB)" ./configure +# don't use SOLARLIB for LDFLAGS because it pulls in system graphite so build will fail +CONFIGURE_ACTION=bash -c 'autoreconf -i -f && CXXFLAGS="$(INCLUDE) $(CFLAGSCXX) $(CFLAGSCOBJ) $(CDEFS) $(CDEFSOBJ) $(SOLARINC) $(LFS_CFLAGS) $(EXTRA_GR_CXX_FLAGS)" LDFLAGS="-L$(SOLARVERSION)/$(INPATH)/lib" ./configure $(CONFIGURE_FLAGS)'
.ENDIF

BUILD_DIR=$(CONFIGURE_DIR)

If there is a neater way of doing this, then feel free to change it.

The namespace redefine is necessary because OOo can be built with STLPort which is binary incompatible with the system STL. The graphite library uses STL in the public interface and graphite may be linked in through pango and pango-graphite at the same time as the internal OOo graphite causing a symbol clash. Hence, if you have both system and OOo graphite installed OOo will crash unless there is the namespace change. It could also crash if the OOo graphite and the system graphite are at different versions even with the same STL version.

with system-graphite it breaks in vcl:

Making: ../../unxlngppc.pro/slo/graphite_layout.obj
g++  -fsigned-char -fmessage-length=0 -c -Os -fno-strict-aliasing   
-fvisibility=hidden -I/usr/include/freetype2   -DUSE_FT_EMBOLDEN 
-DENABLE_GRAPHITE -I.  -I../../unxlngppc.pro/inc/glyphs -I../inc 
-I../../inc/pch -I../../inc -I../../unx/inc -I../../unxlngppc.pro/inc -I. 
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/stl 
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/external
 -I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc 
-I/home/rene/OpenOffice.org/cws/graphite01/solenv/unxlngppc/inc 
-I/home/rene/OpenOffice.org/cws/graphite01/solenv/inc 
-I/home/rene/OpenOffice.org/cws/graphite01/res 
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/stl 
-I/home/rene/OpenOffice.org/cws/graphite01/solenv/inc/Xp31 
-INO_JAVA_HOME/include -INO_JAVA_HOME/include/linux 
-INO_JAVA_HOME/include/native_threads/include -I/usr/include  
-I/home/rene/OpenOffice.org/cws/graphite01/solver/300/unxlngppc.pro/inc/off
uh -I. -I../../res -I. -fsigned-char -pipe -frtti   -Wno-ctor-dtor-privacy   
-fPIC -DLINUX -DUNX -DVCL -DGCC -DC300 -DPOWERPC -DCVER=C300 -DNPTL -DGLIBC=2 
-D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 
-DPOWERPC -DPPC -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 
-DGXX_INCLUDE_PATH=/usr/include/c++/4.3 -DSUPD=300 -DPRODUCT -DNDEBUG 
-DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DCUI -DUSE_BUILTIN_RASTERIZER  
-DVCL_DLLIMPLEMENTATION -DSHAREDLIB -D_DLL_   -fexceptions 
-fno-enforce-eh-specs -DEXCEPTIONS_ON  -o 
../../unxlngppc.pro/slo/graphite_layout.o 
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx:544:
 error: 'gr3ooo' has not been declared
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx:544:
 error: ISO C++ forbids declaration of 'Font' with no type
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx:544:
 error: 'Font' declared as a 'virtual' field
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx:544:
 error: expected ';' before '*' token
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx:547:
 error: 'getTable' declared as a 'virtual' field
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx:547:
 error: expected ';' before '(' token
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx:549:
 error: expected `;' before 'virtual'
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx: In 
member function 'gr::Segment* GraphiteLayout::CreateSegment(ImplLayoutArgs&, 
GrSegRecord**)':
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx:611:
 error: cannot declare variable 'hasher' to be of abstract type 'GrFontHasher'
/home/rene/OpenOffice.org/cws/graphite01/vcl/source/glyphs/graphite_layout.cxx:535:
 note:   because the following virtual functions are pure within 'GrFontHasher':
/usr/include/graphite/Font.h:226: note:         virtual gr::Font* 
gr::Font::copyThis()
/usr/include/graphite/Font.h:283: note:         virtual const void* 
gr::Font::getTable(gr::fontTableId32, size_t*)
dmake:  Error code 1, while making '../../unxlngppc.pro/slo/graphite_layout.obj'
The best way to fix this is to change the references in graphite_layout.cxx to use just gr and then it will work without any need for extra defines in vcl. I've now checked in graphite_layout.cxx without the gr3ooo references, so this should be fixed.

Please let me know if you still have trouble.

Regards,
Keith





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to