92aa527a1c
(CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove -fno-strict-aliasing. Say you have `(Foo*)x' and want to assign, pass, or return it as `(Bar*)'. If you simply say `x' or `(Bar*)x', then the C compiler would warn you that type casting incompatible pointer types breaks strict-aliasing. The solution is to cast to `(void*)' instead which is the generic pointer type, so the compiler knows that it should make no strict-aliasing assumption on `x'. But the problem with `(void*)x' is that seems like in C++, unlike C, `void*' is not a generic pointer type and assigning `void*' to `Bar*' without a cast causes an error. The solution is to cast to `Bar*' too, with `(Bar*)(void*)x' as the result -- this is what the patch does. * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove cast on lvalue, use a temporary pointer instead. Cast temporarily to (void*) to not break strict aliasing. * include/freetype/internal/ftmemory.h (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE), src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*) to not break strict aliasing. * src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information. * builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing. * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c -- it is currently loaded from ttsbit.c. Other formatting. |
||
---|---|---|
builds | ||
devel | ||
docs | ||
include | ||
objs | ||
src | ||
.cvsignore | ||
autogen.sh | ||
ChangeLog | ||
configure | ||
Jamfile | ||
Jamrules | ||
Makefile | ||
README | ||
README.CVS | ||
vms_make.com |
Special notes to Unix users =========================== Please read the file "docs/UPGRADE.UNX". It contains important information regarding the installation of FreeType on Unix systems, especially GNU based operating systems like GNU/Linux. FreeType 2's library is called `libfreetype', FreeType 1's library is called `libttf'. They are *not* compatible! FreeType 2.1.10 =============== Please read the docs/CHANGES file, it contains IMPORTANT INFORMATION. Read the files "docs/INSTALL" for installation instructions. Note that the FreeType 2 documentation is now available as a separate package from our sites. See: ftp://ftp.freetype.org/freetype/freetype2/ftdocs-2.1.10.tar.bz2 ftp://ftp.freetype.org/freetype/freetype2/ftdocs-2.1.10.tar.gz ftp://ftp.freetype.org/freetype/freetype2/ftdoc2110.zip Bugs ==== Please report bugs by e-mail to `devel@freetype.org'. Don't forget to send a detailed explanation of the problem -- there is nothing worse than receiving a terse message that only says "it doesn't work". Enjoy! The FreeType Team