Go to file
Werner Lemberg ce33a312da FT_USE_MODULE declares things as:
extern const FT_Module_Class

(or similar for C++).  However, the actual types of the variables
being declared are often different, e.g., FT_Driver_ClassRec or
FT_Renderer_Class.  (Some are, indeed, FT_Module_Class.)

This works with most C compilers (since those structs begin with an
FT_Module_Class struct), but technically it's undefined behavior.

To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
paragraph 2:

  All declarations that refer to the same object or function shall
  have compatible type; otherwise, the behavior is undefined.

(And they are not compatible types.)

Most C compilers don't reject (or even detect!) code which has this
issue, but the GCC LTO development branch compiler does.  (It
outputs the types of the objects while generating .o files, along
with a bunch of other information, then compares them when doing the
final link-time code generation pass.)

Patch from Savannah bug #25133.

* src/base/ftinit.c (FT_USE_MODULE): Include variable type.

* builds/amiga/include/freetype/config/ftmodule.h,
include/freetype/config/ftmodule.h, */module.mk: Updated to declare
pass correct types to FT_USE_MODULE.
2008-12-21 10:29:30 +00:00
builds FT_USE_MODULE declares things as: 2008-12-21 10:29:30 +00:00
devel * devel/ftoption.h, include/freetype/config/ftoption.h 2008-11-05 14:34:29 +00:00
docs * docs/CHANGES: Updated. 2008-12-18 06:32:10 +00:00
include FT_USE_MODULE declares things as: 2008-12-21 10:29:30 +00:00
objs Minor change for testing purposes. 2006-05-09 08:31:39 +00:00
src FT_USE_MODULE declares things as: 2008-12-21 10:29:30 +00:00
.cvsignore Formatting. 2000-10-31 19:42:53 +00:00
ChangeLog FT_USE_MODULE declares things as: 2008-12-21 10:29:30 +00:00
ChangeLog.20 Add one more example to the documentation of FT_Glyph_To_Bitmap. 2008-08-06 09:09:41 +00:00
ChangeLog.21 Formatting, copyright years. 2008-07-27 06:27:21 +00:00
ChangeLog.22 Formatting, copyright years. 2008-07-27 06:27:21 +00:00
Jamfile * Version 2.3.7 released. 2008-06-29 07:43:41 +00:00
Jamrules Add license. 2005-06-04 23:04:30 +00:00
Makefile * Makefile, *.mk: Use `?=' where appropriate. 2006-02-01 07:52:11 +00:00
README * Version 2.3.7 released. 2008-06-29 07:43:41 +00:00
README.CVS * autogen.sh, builds/unix/configure.raw, 2008-09-12 16:27:48 +00:00
autogen.sh * autogen.sh, builds/unix/configure.raw, 2008-09-12 16:27:48 +00:00
configure Since FreeType uses `$(value ...)', we now need GNU make 3.80 or 2008-07-05 06:35:28 +00:00
modules.cfg * docs/CHANGES: Updated. 2007-07-16 20:46:05 +00:00
version.sed Put version information into the configure script. Reported by Paul 2006-05-08 07:10:29 +00:00
vms_make.com typo 2007-02-12 14:35:15 +00:00

README

  Special notes to Unix users
  ===========================

  Please  read  the file  `docs/UPGRADE.UNIX'.  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.3.7
  ==============

  Please   read   the  docs/CHANGES   file,   it  contains   IMPORTANT
  INFORMATION.

  Read the files `docs/INSTALL' for installation instructions.

  The FreeType 2 API reference is located in `docs/reference'; use the
  file   `ft2-doc.html'   as   the   top  entry   point.    Additional
  documentation is available as a separate package from our sites.  Go
  to

    http://download.savannah.gnu.org/releases/freetype/

  and download one of the following files.

    freetype-doc-2.3.7.tar.bz2
    freetype-doc-2.3.7.tar.gz
    ftdoc237.zip


  Bugs
  ====

  Please report bugs  by e-mail to `freetype-devel@nongnu.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'.

  Alternatively, you may submit a bug report at

    https://savannah.nongnu.org/bugs/?group=freetype


  Enjoy!


    The FreeType Team

----------------------------------------------------------------------

Copyright 2006, 2007, 2008 by
David Turner, Robert Wilhelm, and Werner Lemberg.

This  file is  part of  the FreeType  project, and  may only  be used,
modified,  and distributed  under the  terms of  the  FreeType project
license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
this file you  indicate that you have read  the license and understand
and accept it fully.


--- end of README ---