Closed Bug 183341 Opened 22 years ago Closed 22 years ago

nsFontMetricsXft.cpp fails to build due to a parse error on line 138

Categories

(SeaMonkey :: Build Config, defect)

Other Branch
x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 178128

People

(Reporter: fommil, Assigned: blizzard)

Details

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.0.1) Gecko/20021103
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.0.1) Gecko/20021103

i have reported another bug in this folder, but was able to fix it due to a lack
of a header, this one is not so easy to fix...

gfx/src/gtk/nsFontMetricsXft.cpp fails to build due to a parse error on line 138

gcc output :
"nsFontMetricsXft.cpp:138: syntax error before `[' token"

i dont know the fix.

gcc-3.2.1
mozilla-1.2.1
gtk-1.2.10

Sam

Reproducible: Always

Steps to Reproduce:
1.
2.
3.




make[1]: Entering directory `/home/LFS/TODO/mozilla/mozilla/gfx/src/gtk'
nsFontMetricsXft.cpp
g++ -s -o nsFontMetricsXft.o -c -DNATIVE_THEME_SUPPORT -DOSTYPE=\"Linux2.4\"
-DOSARCH=\"Linux\" -DOJI -D_BSD_SOURCE -DUSE_POSTSCRIPT -DUSE_XPRINT
-DUSE_MOZILLA_TYPES -DMOZ_ENABLE_FREETYPE2 -I./. -I./.. -I./../shared
-I./../x11shared  -I../../../dist/include/xpcom -I../../../dist/include/string
-I../../../dist/include/widget -I../../../dist/include/view
-I../../../dist/include/util -I../../../dist/include/pref
-I../../../dist/include/uconv -I../../../dist/include/unicharutil
-I../../../dist/include/locale -I../../../dist/include/necko
-I../../../dist/include/content -I../../../dist/include/layout
-I../../../dist/include/imglib2 -I../../../dist/include/gfx
-I../../../dist/include -I/home/LFS/TODO/mozilla/mozilla/dist/include/nspr     
-I/usr/X11R6/include/freetype2 -I/usr/X11R6/include   -fPIC 
-I/usr/X11R6/include -frtti -fno-exceptions -Wall -Wconversion -Wpointer-arith
-Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -pedantic
-Wno-long-long -O3 -march=i686 -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED
-ffunction-sections -I/opt/gnome/include -I/usr/X11R6/include/freetype2
-I/usr/X11R6/include   -I/opt/gnome/include/gtk-1.2
-I/opt/gnome/include/glib-1.2 -I/opt/gnome/lib/glib/include -I/usr/X11R6/include
  -I/usr/X11R6/include -DMOZILLA_CLIENT -include ../../../mozilla-config.h
-Wp,-MD,.deps/nsFontMetricsXft.pp nsFontMetricsXft.cpp
In file included from /opt/gnome/include/gdk/gdktypes.h:33,
                 from /opt/gnome/include/gdk/gdk.h:31,
                 from /opt/gnome/include/gtk/gtk.h:31,
                 from nsDrawingSurfaceGTK.h:48,
                 from nsIFontMetricsGTK.h:45,
                 from nsFontMetricsXft.h:45,
                 from nsFontMetricsXft.cpp:46:
/opt/gnome/include/glib.h:1308:23: warning: ISO C does not permit named variadic
macros
/opt/gnome/include/glib.h:1311:25: warning: ISO C does not permit named variadic
macros
/opt/gnome/include/glib.h:1314:26: warning: ISO C does not permit named variadic
macros
/opt/gnome/include/glib.h:1317:25: warning: ISO C does not permit named variadic
macros
nsFontMetricsXft.cpp:140: syntax error before `[' token
nsFontMetricsXft.cpp: In member function `virtual nsresult 
   nsFontMetricsXft::DrawString(const char*, unsigned int, int, int, const 
   nscoord*, nsRenderingContextGTK*, nsDrawingSurfaceGTK*)':
nsFontMetricsXft.cpp:537: `XftCharFontSpec' undeclared (first use this 
   function)
nsFontMetricsXft.cpp:537: (Each undeclared identifier is reported only once for 
   each function it appears in.)
nsFontMetricsXft.cpp:537: `specBuffer' undeclared (first use this function)
nsFontMetricsXft.cpp:537: `gFontSpecBuffer' undeclared (first use this 
   function)
nsFontMetricsXft.cpp:542: parse error before `[' token
nsFontMetricsXft.cpp:571: `XftDrawCharFontSpec' undeclared (first use this 
   function)
nsFontMetricsXft.cpp: In member function `virtual nsresult 
   nsFontMetricsXft::DrawString(const PRUnichar*, unsigned int, int, int, int, 
   const nscoord*, nsRenderingContextGTK*, nsDrawingSurfaceGTK*)':
nsFontMetricsXft.cpp:610: parse error before `[' token
nsFontMetricsXft.cpp: In member function `nsresult 
   nsFontMetricsXft::CacheFontMetrics()':
nsFontMetricsXft.cpp:763: `XftLockFace' undeclared (first use this function)
nsFontMetricsXft.cpp:867: `XftUnlockFace' undeclared (first use this function)
nsFontMetricsXft.cpp: In member function `void 
   nsFontMetricsXft::SetupFCPattern()':
nsFontMetricsXft.cpp:977: cannot convert `FcPattern*' to `XftPattern*' for 
   argument `3' to `void XftDefaultSubstitute(Display*, int, XftPattern*)'
nsFontMetricsXft.cpp: In member function `nsresult 
   nsFontMetricsXft::SetupMiniFont()':
nsFontMetricsXft.cpp:1138: cannot convert `FcPattern*' to `XftPattern*' for 
   argument `3' to `void XftDefaultSubstitute(Display*, int, XftPattern*)'
nsFontMetricsXft.cpp:1151: cannot convert `FcPattern*' to `XftPattern*' for 
   argument `2' to `XftFont* XftFontOpenPattern(Display*, XftPattern*)'
nsFontMetricsXft.cpp: In member function `XftFont* nsFontXft::GetXftFont()':
nsFontMetricsXft.cpp:1498: cannot convert `FcPattern*' to `XftPattern*' for 
   argument `2' to `XftFont* XftFontOpenPattern(Display*, XftPattern*)'
make[1]: *** [nsFontMetricsXft.o] Error 1
nsFontMetricsXft.cpp compiles for on trunk without even an error
Version: Trunk → Other Branch
Xft -> blizzard
Assignee: seawood → blizzard
Summary: builds fails badly in gfx/src/gtk/ → nsFontMetricsXft.cpp fails to build due to a parse error on line 138
You need to get Xft2, fontconfig+lib.
On debian this is easy:
> su -c 'echo deb http://verbum.org/~walters/debian/ local/$(ARCH)/ >>
/etc/apt/sources.list'
> apt-get update && apt-get install fontconfig libxft2 libxft2-dev libfontconfig1

Not sure about other distributions/packaging systems, but it looks like it would
be easy enough to build it from source (it does not conflict with older stuff in
general. Just that new stuff will build with xft2 instead of xft1)

Hope this helps.
You need Xft 2.0.

*** This bug has been marked as a duplicate of 178128 ***
Status: UNCONFIRMED → RESOLVED
Closed: 22 years ago
Resolution: --- → DUPLICATE
verified
Status: RESOLVED → VERIFIED
this bug should have been closed a long time ago.. its not mozilla's fault. it
is intirely due to a bad XFT2 install; apparently XFT2 has some conflicting
header file names with the standard libxft of XFree86.

XFT2 is now standard in XFree86 (as of 4.3), and everything seems to have been
cleared up. i also remember that at the time, a workaround, without upgrading to
4.3, was to install XFT2 into, say, /opt/xft2 and make sure the preprocessor was
looking in /opt/xft2/include BEFORE /usr/X11R6/include. i tested this on
GNU/Linux and FreeBSD. i think (again from memory) the best way to do this was
to redefine CC as CC="gcc -I/opt/xft2/include".

if that works for everyone, i think we should close this bug.
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.