Re: freetype2 problems with cvs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Dawes wrote:
On Thu, Nov 20, 2003 at 01:29:13AM -0500, Ed Sweetman wrote:

David Dawes wrote:

On Wed, Nov 19, 2003 at 11:19:01PM -0500, Ed Sweetman wrote:




The patch I sent should fix that. If not, send the relevant build log info that shows the wrong ft2build.h file being used.

well i'm not sure what "wrong" would be because i dont know when it's


What you consider "wrong". :-)


supposed to use this local copy and when it's supposed to use the system and why it even needs the system one at all.


The system one is only used for the module freetype backend build.
In fact last night I committed a change that moves it (and some
other locally modified headers) to the module directory so they
can't be used by anything else.  In my build tests with the patch,
it only uses the local ft2build.h in that case.  That's why if you're
seeing something different I need some specific details in order to
follow it up.



So what's the point of having "#define freetype2" if we're going to build our own local copy of freetype2 anyway? Why link to any external freetype2.


So because one out of the 4 or 5 things that reference freetype2 ignores
the external one, we shouldn't allow the external one at all?


But why does xfree86 need to have it's own build of freetype2 when every other userspace programs that use freetype2 just use the library interface like they're supposed to? For instance, freedesktop.org's Xserver links to freetype and doesn't require a build of it's own freetype2 library locally, it links to the system one.


If you build a non-modular XFree86 server, then you get exactly that.
Add '#define DoLoadableServer NO' to you host.def.

You don't get that for the (default) modular XFree86 server because
nobody has done the work necessary to build an XFree86 "freetype"
backend module that can request that an external freetype library
be loaded on demand.  Remember the backend font modules are loaded
optionally by the modular XFree86 server, so modules that use
specific external interfaces should cause those interface to get
loaded as required rather than requiring the core XFree86 binary
to be linked against all conceivable external interfaces in advance.

Until that work is done, the freetype backend module needs to contain
its own complete copy of libfreetype.

Feel free to do the work necessary to correct this obvious anomaly :-).

The ttobjs.h issue needs to be addressed one way or another too,
either by findind an equivalent public interface, or creating an
equivalent public interface, so that this user-mode program can do
what it needs to do without knowing more about the freetype internals
than it has any right to :-)

David


Ok, so the module responsible for the actual rendering in Xfree86 is compiling against the local copy of freetype2 right? The reason why I thought there was no reason to link to a local source tree because you're building it into a module, is that there are plenty of examples of programs with plugins that link to libraries like gtk and such without having local copies of such libraries. I take it this is very difficult to do with XFree86 since it was originally written in a non-modular form.

Are there flags i can override in host.cf that will let me point xfree86 to a different source tree or can i just dump the system freetype2 source tree into xc/extras and do things that way? Otherwise i'll just compile it non-modular, as I'm still getting freetype2 errors related to headers not correctly being used.



missed this one. and several others in the same directory.


Here's the latest error after your ftnew.diff


make[4]: Entering directory `/usr/src/userspace/xc-new/xc/programs/fonttosfnt'
gcc -O2 -ansi -pedantic -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Wundef -I../../exports/include/X11/fonts -I/usr/local/include -I/usr/local/include/freetype2/include -I/usr/local/include -I/usr/local/include/freetype2 -I../../exports/include/X11 -I../.. -I../../exports/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -DXFREE86_FT2 -c -o fonttosfnt.o fonttosfnt.c
In file included from fonttosfnt.h:28,
from fonttosfnt.c:27:
/usr/local/include/freetype2/freetype/freetype.h:20:2: #error "`ft2build.h' hasn't been included yet!"


It uses quotes in the source file but doesn't appear to need to use the local copy of the source tree so i changed them to use the system copy headers. Of course this doesn't mean it'll be linked to the system library. :-/ it compiled though.

make[3]: Leaving directory `/usr/src/userspace/xc-new/xc/programs/mkfontscale'

this directory also has files that try including freetype/freetype and this time it's not done in quotes. So unlike the top one which is some kind of missing -I to the local source tree, this one is just outdated.



_______________________________________________
XFree86 mailing list
XFree86@xxxxxxxxxxx
http://XFree86.Org/mailman/listinfo/xfree86

[Index of Archives]     [X Forum]     [Xorg]     [XFree86 Newbie]     [IETF Announce]     [Security]     [Font Config]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux Kernel]

  Powered by Linux