bug 733512 - update freetype to v2.4.9. rs=dougt
authorJonathan Kew <jfkthame@gmail.com>
Fri, 09 Mar 2012 16:38:09 +0000
changeset 88655 52e691cfec84ad54dc016471f54783b324d07bc2
parent 88654 e51f21f21538d467be02570e8420c725109b4ffb
child 88656 4a1f94ebd3021c898197e6bb69b5ad72babc2384
push id1
push userroot
push dateMon, 20 Oct 2014 17:29:22 +0000
reviewersdougt
bugs733512
milestone13.0a1
bug 733512 - update freetype to v2.4.9. rs=dougt
modules/freetype2/ChangeLog
modules/freetype2/Jamfile
modules/freetype2/README
modules/freetype2/README.moz-patches
modules/freetype2/autogen.sh
modules/freetype2/builds/amiga/makefile
modules/freetype2/builds/amiga/makefile.os4
modules/freetype2/builds/amiga/smakefile
modules/freetype2/builds/amiga/src/base/ftsystem.c
modules/freetype2/builds/atari/gen-purec-patch.sh
modules/freetype2/builds/mac/FreeType.m68k_cfm.make.txt
modules/freetype2/builds/mac/FreeType.m68k_far.make.txt
modules/freetype2/builds/mac/FreeType.ppc_carbon.make.txt
modules/freetype2/builds/mac/FreeType.ppc_classic.make.txt
modules/freetype2/builds/mac/ascii2mpw.py
modules/freetype2/builds/mac/ftmac.c
modules/freetype2/builds/symbian/bld.inf
modules/freetype2/builds/symbian/freetype.mmp
modules/freetype2/builds/toplevel.mk
modules/freetype2/builds/unix/aclocal.m4
modules/freetype2/builds/unix/config.guess
modules/freetype2/builds/unix/config.sub
modules/freetype2/builds/unix/configure
modules/freetype2/builds/unix/configure.ac
modules/freetype2/builds/unix/configure.raw
modules/freetype2/builds/unix/detect.mk
modules/freetype2/builds/unix/freetype-config.in
modules/freetype2/builds/unix/freetype2.in
modules/freetype2/builds/unix/ftconfig.in
modules/freetype2/builds/unix/install-sh
modules/freetype2/builds/unix/ltmain.sh
modules/freetype2/builds/unix/mkinstalldirs
modules/freetype2/builds/vms/ftconfig.h
modules/freetype2/builds/vms/ftsystem.c
modules/freetype2/builds/win32/vc2005/freetype.vcproj
modules/freetype2/builds/win32/vc2005/index.html
modules/freetype2/builds/win32/vc2008/freetype.vcproj
modules/freetype2/builds/win32/vc2008/index.html
modules/freetype2/builds/win32/vc2010/freetype.sln
modules/freetype2/builds/win32/vc2010/freetype.vcxproj
modules/freetype2/builds/win32/vc2010/freetype.vcxproj.filters
modules/freetype2/builds/win32/vc2010/index.html
modules/freetype2/builds/win32/visualc/freetype.dsp
modules/freetype2/builds/win32/visualc/freetype.vcproj
modules/freetype2/builds/win32/visualc/index.html
modules/freetype2/builds/win32/visualce/freetype.dsp
modules/freetype2/builds/win32/visualce/freetype.vcproj
modules/freetype2/builds/win32/visualce/index.html
modules/freetype2/builds/wince/vc2005-ce/freetype.vcproj
modules/freetype2/builds/wince/vc2005-ce/index.html
modules/freetype2/builds/wince/vc2008-ce/freetype.vcproj
modules/freetype2/builds/wince/vc2008-ce/index.html
modules/freetype2/configure
modules/freetype2/devel/ftoption.h
modules/freetype2/docs/CHANGES
modules/freetype2/docs/GPL.TXT
modules/freetype2/docs/GPLv2.TXT
modules/freetype2/docs/INSTALL
modules/freetype2/docs/INSTALL.ANY
modules/freetype2/docs/INSTALL.UNIX
modules/freetype2/docs/LICENSE.TXT
modules/freetype2/docs/PATENTS
modules/freetype2/docs/PROBLEMS
modules/freetype2/docs/TRUETYPE
modules/freetype2/docs/UPGRADE.UNIX
modules/freetype2/docs/VERSION.DLL
modules/freetype2/docs/formats.txt
modules/freetype2/docs/reference/.gitignore
modules/freetype2/docs/reference/ft2-base_interface.html
modules/freetype2/docs/reference/ft2-basic_types.html
modules/freetype2/docs/reference/ft2-bdf_fonts.html
modules/freetype2/docs/reference/ft2-bitmap_handling.html
modules/freetype2/docs/reference/ft2-bzip2.html
modules/freetype2/docs/reference/ft2-cache_subsystem.html
modules/freetype2/docs/reference/ft2-cid_fonts.html
modules/freetype2/docs/reference/ft2-computations.html
modules/freetype2/docs/reference/ft2-font_formats.html
modules/freetype2/docs/reference/ft2-gasp_table.html
modules/freetype2/docs/reference/ft2-glyph_management.html
modules/freetype2/docs/reference/ft2-glyph_stroker.html
modules/freetype2/docs/reference/ft2-glyph_variants.html
modules/freetype2/docs/reference/ft2-gx_validation.html
modules/freetype2/docs/reference/ft2-gzip.html
modules/freetype2/docs/reference/ft2-header_file_macros.html
modules/freetype2/docs/reference/ft2-incremental.html
modules/freetype2/docs/reference/ft2-index.html
modules/freetype2/docs/reference/ft2-lcd_filtering.html
modules/freetype2/docs/reference/ft2-list_processing.html
modules/freetype2/docs/reference/ft2-lzw.html
modules/freetype2/docs/reference/ft2-mac_specific.html
modules/freetype2/docs/reference/ft2-module_management.html
modules/freetype2/docs/reference/ft2-multiple_masters.html
modules/freetype2/docs/reference/ft2-ot_validation.html
modules/freetype2/docs/reference/ft2-outline_processing.html
modules/freetype2/docs/reference/ft2-pfr_fonts.html
modules/freetype2/docs/reference/ft2-quick_advance.html
modules/freetype2/docs/reference/ft2-raster.html
modules/freetype2/docs/reference/ft2-sfnt_names.html
modules/freetype2/docs/reference/ft2-sizes_management.html
modules/freetype2/docs/reference/ft2-system_interface.html
modules/freetype2/docs/reference/ft2-toc.html
modules/freetype2/docs/reference/ft2-truetype_engine.html
modules/freetype2/docs/reference/ft2-truetype_tables.html
modules/freetype2/docs/reference/ft2-type1_tables.html
modules/freetype2/docs/reference/ft2-user_allocation.html
modules/freetype2/docs/reference/ft2-version.html
modules/freetype2/docs/reference/ft2-winfnt_fonts.html
modules/freetype2/docs/release
modules/freetype2/include/freetype/config/ftconfig.h
modules/freetype2/include/freetype/config/ftheader.h
modules/freetype2/include/freetype/config/ftoption.h
modules/freetype2/include/freetype/config/ftstdlib.h
modules/freetype2/include/freetype/freetype.h
modules/freetype2/include/freetype/ftbbox.h
modules/freetype2/include/freetype/ftbzip2.h
modules/freetype2/include/freetype/ftcache.h
modules/freetype2/include/freetype/ftchapters.h
modules/freetype2/include/freetype/fterrdef.h
modules/freetype2/include/freetype/fterrors.h
modules/freetype2/include/freetype/ftgasp.h
modules/freetype2/include/freetype/ftglyph.h
modules/freetype2/include/freetype/ftmoderr.h
modules/freetype2/include/freetype/ftoutln.h
modules/freetype2/include/freetype/ftrender.h
modules/freetype2/include/freetype/ftstroke.h
modules/freetype2/include/freetype/fttypes.h
modules/freetype2/include/freetype/internal/autohint.h
modules/freetype2/include/freetype/internal/ftdriver.h
modules/freetype2/include/freetype/internal/ftobjs.h
modules/freetype2/include/freetype/internal/ftpic.h
modules/freetype2/include/freetype/internal/ftrfork.h
modules/freetype2/include/freetype/internal/ftserv.h
modules/freetype2/include/freetype/internal/ftstream.h
modules/freetype2/include/freetype/internal/fttrace.h
modules/freetype2/include/freetype/internal/pcftypes.h
modules/freetype2/include/freetype/internal/pshints.h
modules/freetype2/include/freetype/internal/services/svbdf.h
modules/freetype2/include/freetype/internal/services/svcid.h
modules/freetype2/include/freetype/internal/services/svgldict.h
modules/freetype2/include/freetype/internal/services/svmm.h
modules/freetype2/include/freetype/internal/services/svpostnm.h
modules/freetype2/include/freetype/internal/services/svpscmap.h
modules/freetype2/include/freetype/internal/services/svpsinfo.h
modules/freetype2/include/freetype/internal/services/svsfnt.h
modules/freetype2/include/freetype/internal/services/svttcmap.h
modules/freetype2/include/freetype/internal/services/svttglyf.h
modules/freetype2/include/freetype/internal/sfnt.h
modules/freetype2/include/freetype/internal/t1types.h
modules/freetype2/include/freetype/internal/tttypes.h
modules/freetype2/include/freetype/t1tables.h
modules/freetype2/include/freetype/tttables.h
modules/freetype2/modules.cfg
modules/freetype2/moz_ft_shim.c
modules/freetype2/src/autofit/afangles.c
modules/freetype2/src/autofit/afcjk.c
modules/freetype2/src/autofit/afcjk.h
modules/freetype2/src/autofit/afdummy.c
modules/freetype2/src/autofit/afdummy.h
modules/freetype2/src/autofit/aferrors.h
modules/freetype2/src/autofit/afglobal.c
modules/freetype2/src/autofit/afglobal.h
modules/freetype2/src/autofit/afhints.c
modules/freetype2/src/autofit/afhints.h
modules/freetype2/src/autofit/afindic.c
modules/freetype2/src/autofit/aflatin.c
modules/freetype2/src/autofit/aflatin.h
modules/freetype2/src/autofit/aflatin2.c
modules/freetype2/src/autofit/afloader.c
modules/freetype2/src/autofit/afloader.h
modules/freetype2/src/autofit/afmodule.c
modules/freetype2/src/autofit/afpic.c
modules/freetype2/src/autofit/afpic.h
modules/freetype2/src/autofit/aftypes.h
modules/freetype2/src/autofit/afwarp.c
modules/freetype2/src/autofit/autofit.c
modules/freetype2/src/autofit/rules.mk
modules/freetype2/src/base/basepic.c
modules/freetype2/src/base/basepic.h
modules/freetype2/src/base/ftadvanc.c
modules/freetype2/src/base/ftbase.c
modules/freetype2/src/base/ftbase.h
modules/freetype2/src/base/ftbitmap.c
modules/freetype2/src/base/ftcalc.c
modules/freetype2/src/base/ftdbgmem.c
modules/freetype2/src/base/ftglyph.c
modules/freetype2/src/base/ftinit.c
modules/freetype2/src/base/ftmac.c
modules/freetype2/src/base/ftobjs.c
modules/freetype2/src/base/ftoutln.c
modules/freetype2/src/base/ftpatent.c
modules/freetype2/src/base/ftpic.c
modules/freetype2/src/base/ftrfork.c
modules/freetype2/src/base/ftstream.c
modules/freetype2/src/base/ftstroke.c
modules/freetype2/src/base/ftsystem.c
modules/freetype2/src/base/fttype1.c
modules/freetype2/src/bdf/README
modules/freetype2/src/bdf/bdf.h
modules/freetype2/src/bdf/bdfdrivr.c
modules/freetype2/src/bdf/bdfdrivr.h
modules/freetype2/src/bdf/bdferror.h
modules/freetype2/src/bdf/bdflib.c
modules/freetype2/src/bzip2/Jamfile
modules/freetype2/src/bzip2/ftbzip2.c
modules/freetype2/src/bzip2/rules.mk
modules/freetype2/src/cache/ftcbasic.c
modules/freetype2/src/cache/ftccache.c
modules/freetype2/src/cache/ftccache.h
modules/freetype2/src/cache/ftccback.h
modules/freetype2/src/cache/ftccmap.c
modules/freetype2/src/cache/ftcerror.h
modules/freetype2/src/cache/ftcglyph.c
modules/freetype2/src/cache/ftcglyph.h
modules/freetype2/src/cache/ftcmanag.c
modules/freetype2/src/cache/ftcmanag.h
modules/freetype2/src/cache/ftcmru.c
modules/freetype2/src/cache/ftcsbits.c
modules/freetype2/src/cache/ftcsbits.h
modules/freetype2/src/cff/cffdrivr.c
modules/freetype2/src/cff/cfferrs.h
modules/freetype2/src/cff/cffgload.c
modules/freetype2/src/cff/cffload.c
modules/freetype2/src/cff/cffload.h
modules/freetype2/src/cff/cffobjs.c
modules/freetype2/src/cff/cffparse.c
modules/freetype2/src/cff/cffparse.h
modules/freetype2/src/cff/cffpic.c
modules/freetype2/src/cff/cffpic.h
modules/freetype2/src/cff/cfftoken.h
modules/freetype2/src/cff/cfftypes.h
modules/freetype2/src/cff/rules.mk
modules/freetype2/src/cid/ciderrs.h
modules/freetype2/src/cid/cidgload.c
modules/freetype2/src/cid/cidload.c
modules/freetype2/src/cid/cidobjs.c
modules/freetype2/src/cid/cidparse.c
modules/freetype2/src/cid/cidriver.c
modules/freetype2/src/cid/cidriver.h
modules/freetype2/src/gxvalid/gxvcommn.c
modules/freetype2/src/gxvalid/gxvcommn.h
modules/freetype2/src/gxvalid/gxverror.h
modules/freetype2/src/gxvalid/gxvfeat.c
modules/freetype2/src/gxvalid/gxvjust.c
modules/freetype2/src/gxvalid/gxvkern.c
modules/freetype2/src/gxvalid/gxvmod.c
modules/freetype2/src/gxvalid/gxvmod.h
modules/freetype2/src/gxvalid/gxvmort.c
modules/freetype2/src/gxvalid/gxvmort0.c
modules/freetype2/src/gxvalid/gxvmort1.c
modules/freetype2/src/gxvalid/gxvmort2.c
modules/freetype2/src/gxvalid/gxvmort5.c
modules/freetype2/src/gxvalid/gxvmorx.c
modules/freetype2/src/gxvalid/gxvmorx0.c
modules/freetype2/src/gxvalid/gxvmorx1.c
modules/freetype2/src/gxvalid/gxvmorx2.c
modules/freetype2/src/gxvalid/gxvmorx5.c
modules/freetype2/src/gxvalid/gxvprop.c
modules/freetype2/src/gxvalid/gxvtrak.c
modules/freetype2/src/gzip/ChangeLog.moz
modules/freetype2/src/gzip/ftgzip.c
modules/freetype2/src/lzw/ftlzw.c
modules/freetype2/src/lzw/ftzopen.c
modules/freetype2/src/otvalid/otverror.h
modules/freetype2/src/otvalid/otvmod.c
modules/freetype2/src/otvalid/otvmod.h
modules/freetype2/src/pcf/README
modules/freetype2/src/pcf/pcf.h
modules/freetype2/src/pcf/pcfdrivr.c
modules/freetype2/src/pcf/pcfdrivr.h
modules/freetype2/src/pcf/pcferror.h
modules/freetype2/src/pcf/pcfread.c
modules/freetype2/src/pfr/pfrdrivr.c
modules/freetype2/src/pfr/pfrdrivr.h
modules/freetype2/src/pfr/pfrerror.h
modules/freetype2/src/pfr/pfrload.c
modules/freetype2/src/pfr/pfrobjs.c
modules/freetype2/src/psaux/afmparse.c
modules/freetype2/src/psaux/psauxerr.h
modules/freetype2/src/psaux/psauxmod.c
modules/freetype2/src/psaux/psauxmod.h
modules/freetype2/src/psaux/psconv.c
modules/freetype2/src/psaux/psobjs.c
modules/freetype2/src/psaux/t1cmap.c
modules/freetype2/src/psaux/t1decode.c
modules/freetype2/src/pshinter/pshnterr.h
modules/freetype2/src/pshinter/pshpic.c
modules/freetype2/src/pshinter/pshpic.h
modules/freetype2/src/pshinter/rules.mk
modules/freetype2/src/psnames/psmodule.c
modules/freetype2/src/psnames/psnamerr.h
modules/freetype2/src/psnames/pspic.c
modules/freetype2/src/psnames/pspic.h
modules/freetype2/src/psnames/pstables.h
modules/freetype2/src/psnames/rules.mk
modules/freetype2/src/raster/ftraster.c
modules/freetype2/src/raster/ftrend1.c
modules/freetype2/src/raster/rasterrs.h
modules/freetype2/src/raster/rastpic.c
modules/freetype2/src/raster/rastpic.h
modules/freetype2/src/raster/rules.mk
modules/freetype2/src/sfnt/rules.mk
modules/freetype2/src/sfnt/sfdriver.c
modules/freetype2/src/sfnt/sferrors.h
modules/freetype2/src/sfnt/sfntpic.c
modules/freetype2/src/sfnt/sfntpic.h
modules/freetype2/src/sfnt/sfobjs.c
modules/freetype2/src/sfnt/ttcmap.c
modules/freetype2/src/sfnt/ttcmap.h
modules/freetype2/src/sfnt/ttload.c
modules/freetype2/src/sfnt/ttmtx.c
modules/freetype2/src/sfnt/ttpost.c
modules/freetype2/src/sfnt/ttsbit.c
modules/freetype2/src/smooth/ftgrays.c
modules/freetype2/src/smooth/ftsmerrs.h
modules/freetype2/src/smooth/ftsmooth.c
modules/freetype2/src/smooth/ftspic.c
modules/freetype2/src/smooth/ftspic.h
modules/freetype2/src/smooth/rules.mk
modules/freetype2/src/tools/apinames.c
modules/freetype2/src/tools/chktrcmp.py
modules/freetype2/src/tools/glnames.py
modules/freetype2/src/truetype/rules.mk
modules/freetype2/src/truetype/ttdriver.c
modules/freetype2/src/truetype/tterrors.h
modules/freetype2/src/truetype/ttgload.c
modules/freetype2/src/truetype/ttgload.h
modules/freetype2/src/truetype/ttgxvar.c
modules/freetype2/src/truetype/ttinterp.c
modules/freetype2/src/truetype/ttinterp.h
modules/freetype2/src/truetype/ttobjs.c
modules/freetype2/src/truetype/ttobjs.h
modules/freetype2/src/truetype/ttpic.c
modules/freetype2/src/truetype/ttpic.h
modules/freetype2/src/truetype/ttpload.c
modules/freetype2/src/type1/t1afm.c
modules/freetype2/src/type1/t1driver.c
modules/freetype2/src/type1/t1driver.h
modules/freetype2/src/type1/t1errors.h
modules/freetype2/src/type1/t1gload.c
modules/freetype2/src/type1/t1gload.h
modules/freetype2/src/type1/t1load.c
modules/freetype2/src/type1/t1objs.c
modules/freetype2/src/type1/t1objs.h
modules/freetype2/src/type1/t1parse.c
modules/freetype2/src/type1/t1tokens.h
modules/freetype2/src/type42/t42drivr.c
modules/freetype2/src/type42/t42drivr.h
modules/freetype2/src/type42/t42error.h
modules/freetype2/src/type42/t42objs.c
modules/freetype2/src/type42/t42objs.h
modules/freetype2/src/type42/t42parse.c
modules/freetype2/src/winfonts/fnterrs.h
modules/freetype2/src/winfonts/winfnt.c
modules/freetype2/src/winfonts/winfnt.h
toolkit/content/license.html
--- a/modules/freetype2/ChangeLog
+++ b/modules/freetype2/ChangeLog
@@ -1,22 +1,2858 @@
+2012-03-08  Werner Lemberg  <wl@gnu.org>
+
+	* Version 2.4.9 released.
+	=========================
+
+
+	Tag sources with `VER-2-4-9'.
+
+	* docs/CHANGES: Updated.
+
+	* docs/VERSION.DLL: Update documentation and bump version number to
+	2.4.9.
+
+	* README, Jamfile (RefDoc),
+	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
+	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
+	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
+	builds/win32/visualc/freetype.dsp,
+	builds/win32/visualc/freetype.vcproj,
+	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
+	builds/win32/visualce/freetype.vcproj,
+	builds/win32/visualce/index.html,
+	builds/wince/vc2005-ce/freetype.vcproj,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/freetype.vcproj,
+	builds/wince/vc2008-ce/index.html: s/2.4.8/2.4.9/, s/248/249/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 9.
+
+	* builds/unix/configure.raw (version_info): Set to 14:1:8.
+
+2012-03-08  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Add missing overflow check.
+
+	* src/bdf/bdflib.c (_bdf_parse_glyphs) <BITMAP>: Add threshold for
+	`glyph->bpr'.
+
+2012-03-07  Vinnie Falco  <vinnie.falco@gmail.com>
+
+	Prepare source code for amalgamation.
+
+	* src\autofit\aferrors.h, src\bdf\bdferror.h, src\bzip2\ftbzip2.c,
+	src\cache\ftcerror.h, src\cff\cfferrs.h, src\cid\ciderrs.h,
+	src\gxvalid\gxverror.h, src\gzip\ftgzip.c, src\lzw\ftlzw.c,
+	src\otvalid\otverror.h, src\pcf\pcferror.h, src\pfr\pfrerror.h,
+	src\psaux\psauxerr.h, src\pshinter\pshnterr.h,
+	src\psnames\psnamerr.h, src\raster\rasterrs.h, src\sfnt\sferrors.h,
+	src\smooth\ftsmerrs.h, src\truetype\tterrors.h,
+	src\type1\t1errors.h, src\type42\t42error.h, src\winfonts\fnterrs.h:
+	Add #undef FT_ERR_PREFIX before #define FT_ERR_PREFIX.
+
+2012-03-03  Werner Lemberg  <wl@gnu.org>
+
+	Fix Savannah bug #35660.
+
+	For some divisions, we use casts to 32bit entities.  Always guard
+	against division by zero with these casts also.
+
+	* src/base/ftcalc.c (ft_div64by32): Remove redundant cast.
+	(FT_MulDiv, FT_MulDiv_No_Round): Add 32bit cast.
+	(FT_DivFix): Add 32bit cast (this omission triggered the bug).
+
+2012-03-03  Werner Lemberg  <wl@gnu.org>
+
+	[psaux] Fix handling of track kerning.
+
+	* src/psaux/afmparse.c (afm_parse_track_kern): Don't inverse sign
+	for `min_kern'.  It is indeed quite common that track kerning
+	*increases* spacing for very small sizes.
+
+2012-03-02  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Fix Savannah bug #35689.
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check first outline
+	point.
+
+2012-03-01  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Fix Savannah bug #35656.
+
+	* src/bdf/bdflib.c (_bdf_parse_glyphs) <_BDF_BITMAP>: Check validity
+	of nibble characters instead of accessing `a2i' array.
+
+2012-03-01  Werner Lemberg  <wl@gnu.org>
+
+	[winfonts] Fix Savannah bug #35659.
+
+	* src/winfonts/winfnt.c (FNT_Face_Init): Check number of glyphs.
+
+2012-03-01  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Fix Savannah bug #35658.
+
+	* src/bdf/bdflib.c (_bdf_list_split): Initialize `field' elements
+	properly.
+
+2012-03-01  Werner Lemberg  <wl@gnu.org>
+
+	[psaux] Fix Savannah bug #35657.
+
+	If in function `skip_spaces' the routine `skip_comment' comes to the
+	end of buffer, `cur' is still increased by one, so we need to check
+	for `p >= limit' and not `p == limit'.
+
+	* src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed,
+	PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Fix boundary checking.
+
+2012-03-01  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Fix Savannah bug #35646.
+
+	* src/truetype/ttinterp.c (Ins_MIRP): Typo, present since ages.  The
+	code is now in sync with the other operators (e.g. MSIRP) which
+	modify twilight points.
+
+2012-03-01  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Fix Savannah bug #35643.
+
+	* src/bdf/bdflib.c (_bdf_list_ensure): Bring code in sync with
+	comment before `_bdf_list_split', this is, really allocate at least
+	five `field' elements.
+
+2012-03-01  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Fix Savannah bug #35641.
+
+	* src/bdf/bdflib.c (_bdf_parse_glyphs) <DWIDTH, BBX>: Abort if
+	_BDF_ENCODING isn't set.  We need this because access to the `glyph'
+	variable might be undefined otherwise.
+
+2012-03-01  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Fix Savannah bug #35640.
+
+	* src/truetype/ttinterp.c (SkipCode, TT_RunIns): Fix boundary check
+	for NPUSHB and NPUSHW instructions.
+
+2012-02-29  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Fix Savannah bug #35601.
+
+	* src/truetype/ttinterp.c (Ins_SHZ): Use number of points instead of
+	last point for loop.
+	Also remove redundant boundary check.
+
+2012-02-29  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Remove redundant check.
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
+	second check for ordered contour start points.
+
+2012-02-29  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Make SHC instruction behave similar to MS rasterizer.
+
+	* src/truetype/ttinterp.c (Ins_SHC): Handle virtual contour in
+	twilight zone.
+
+2012-02-29  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	Avoid modulo operators against a power-of-two denominator.
+
+	* src/afcjk.c (af_hint_normal_stem), src/base/ftoutln.c
+	(ft_contour_has), src/cff/cffgload.c (cff_decoder_parse_charstrings)
+	<cff_op_vvcurveto, cff_op_hhcurveto, cff_op_hvcurveto>,
+	src/gxvalid/gxvcommn.c (GXV_32BIT_ALIGNMENT_VALIDATE),
+	src/gxvalid/gxvfeat.c (gxv_feat_setting_validate): Replace `%' with
+	`&' operator.
+
+2012-02-29  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Don't synchronize digit widths for light rendering mode.
+
+	We don't hint horizontally in this mode.
+
+	* src/autofit/afloader.c (af_loader_load_g) <Hint_Metrics>:
+	Implement it.
+
+2012-02-26  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	[type42] Minor code optimization (again).
+
+	* src/type42/t42parse.c (t42_parse_sfnts): Simplify previous change.
+
+2012-02-26  Mateusz Jurczyk  <mjurczyk@google.com>
+	    Werner Lemberg  <wl@gnu.org>
+
+	[smooth] Fix Savannah bug #35604.
+
+	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `FT_Pos'
+	instead of `FT_UInt' for some variables and update comparisons
+	accordingly.  A detailed analysis can be found in the bug report.
+
+2012-02-26  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	[type42] Minor code optimization.
+
+	* src/type42/t42parse.c (t42_parse_sfnts): Use bitmask instead of
+	modulo operator.
+
+2012-02-26  Werner Lemberg  <wl@gnu.org>
+
+	* docs/CHANGES: Updated.
+
+2012-02-26  Werner Lemberg  <wl@gnu.org>
+
+	[type1] Fix Savannah bug #35608.
+
+	* src/type1/t1parse.c (T1_Get_Private_Dict): Reject too short
+	dictionaries.
+
+2012-02-26  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Support `ENCODING -1 <n>' format.
+
+	* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Implement it.
+
+2012-02-26  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Fix Savannah bug #35607.
+
+	* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize
+	negative encoding values.
+
+2012-02-26  Werner Lemberg  <wl@gnu.org>
+
+	[type1] Fix Savannah bug #35606.
+
+	* src/type1/t1load.c (parse_subrs): Add proper guards for `strncmp'.
+
+	* src/psaux/psobjs.c (ps_parser_skip_PS_token): Emit error message
+	only if cur < limit.
+
+2012-02-25  Werner Lemberg  <wl@gnu.org>
+
+	[pcf] Fix Savannah bug #35603.
+
+	* src/pcf/pcfread.c (pcf_get_properties): Assure final zero byte in
+	`strings' array.
+
+2012-02-25  Werner Lemberg  <wl@gnu.org>
+
+	[type42] Fix Savannah bug #35602.
+
+	* src/type42/t42parse.c (t42_parse_sfnts): Check `string_size' more
+	thoroughly.
+
+2012-02-25  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Fix Savannah bugs #35599 and #35600.
+
+	* src/bdf/bdflib.c (ACMSG16): New warning message.
+	(_bdf_parse_glyphs) <_BDF_BITMAP>: Check line length.
+
+2012-02-24  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Fix Savannah bugs #35597 and #35598.
+
+	* src/bdf/bdflib.c (_bdf_is_atom): Fix handling of property value.
+
+2012-02-24  Vinnie Falco  <vinnie.falco@gmail.com>
+
+	Prepare source code for amalgamation (6/6).
+
+	* src/cff/cffdrivr.c: s/Load_Glyph/cff_glyph_load/.
+
+	* src/cid/cidload.c: s/parse_font_matrix/cid_parse_font_matrix/.
+	s/t1_init_loader/cid_init_loader/.
+	s/t1_done_loader/cid_done_loader/.
+
+	* src/pxaux/t1cmap.c: s/t1_get_glyph_name/psaux_get_glyph_name/.
+
+	* src/truetype/ttdriver.c: s/Load_Glyph/tt_glyph_load/.
+
+	* src/type1/t1load.c: s/parse_font_matrix/t1_parse_font_matrix/.
+
+2012-02-24  Vinnie Falco  <vinnie.falco@gmail.com>
+
+	Prepare source code for amalgamation (5/6).
+
+	* include/freetype/fterrors.h: Undefine FT_KEEP_ERR_PREFIX after
+	using it.
+
+2012-02-22  Vinnie Falco  <vinnie.falco@gmail.com>
+
+	Prepare source code for amalgamation (4/6).
+
+	* src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine RAS_ARG,
+	RAS_ARGS, RAS_VAR, and RAS_VARS before defining it.
+
+	* src/smooth/ftgrays.c: s/TRaster/black_TRaster/,
+	s/PRaster/black_PRaster/.
+	* src/raster/ftraster.c: s/TRaster/gray_TRaster/,
+	s/PRaster/gray_PRaster/.
+
+2012-02-20  Vinnie Falco  <vinnie.falco@gmail.com>
+
+	Prepare source code for amalgamation (3/6).
+
+	* src/smooth/ftgrays.c: s/TWorker/black_TWorker/,
+	s/PWorker/black_PWorker/.
+	* src/raster/ftraster.c: s/TWorker/gray_TWorker/,
+	s/PWorker/gray_PWorker/.
+
+2012-02-20  Vinnie Falco  <vinnie.falco@gmail.com>
+
+	Prepare source code for amalgamation (2/6).
+
+	* src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine FLOOR,
+	CEILING, TRUNC, and SCALED before defining it.
+
+2012-02-20  Vinnie Falco  <vinnie.falco@gmail.com>
+
+	Prepare source code for amalgamation (1/6).
+
+	See discussion starting at
+
+	  http://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00037.html
+
+	* src/smooth/ftgrays.c: s/TBand/gray_TBand/.
+	* src/raster/ftraster.c: s/TBand/black_TBand/.
+
+2012-02-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	[autofit] Fix outline flags.
+
+	* src/autofit/afloader.c (af_loader_load_g): Don't reassign
+	`outline.flags' so that this information is preserved.  See
+	discussion starting at
+
+	  http://lists.gnu.org/archive/html/freetype-devel/2012-02/msg00046.html
+
+2012-02-11  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Fix Savannah bug #35466.
+
+	Jump instructions are now bound to the current function.  The MS
+	Windows rasterizer behaves the same, as confirmed by Greg Hitchcock.
+
+	* src/truetype/ttinterp.h (TT_CallRec): Add `Cur_End' element.
+	* src/truetype/ttobjs.h (TT_DefRecord): Add `end' element.
+
+	* src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Check upper
+	bound of jump address.
+	(Ins_FDEF, Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns): Updated.
+
+2012-02-11  Werner Lemberg  <wl@gnu.org>
+
+	We don't use `extensions'.
+
+	* include/freetype/internal/ftobjs.h (FT_DriverRec): Remove
+	`extensions' field.
+
+2012-02-11  Werner Lemberg  <wl@gnu.org>
+
+	Clean up `generic' fields.
+
+	* include/freetype/internal/ftobjs.h (FT_ModuleRec, FT_LibraryRec):
+	Remove `generic' field since users can't access it.
+
+	* src/base/ftobjs.c (FT_Done_GlyphSlot): Call `generic.finalizer' as
+	advertised in the documentation of FT_Generic.
+	(Destroy_Module, FT_Done_Library): Updated to changes in `ftobjs.h'.
+
+2012-02-07  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Harmonize function arguments.
+
+	* src/autofit/afloader.c, src/autofit/afloader.h: Use `FT_Int32' for
+	`load_flags'.
+
+2012-02-07  Werner Lemberg  <wl@gnu.org>
+
+	* src/cff/cffobjs.c (cff_face_init): Remove unnecessary casts.
+
+2012-01-17  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[gxvalid] Fix Savannah bug #35286.
+
+	Patch submitted by anonymous reporter.
+
+	* src/gxvalid/gxvcommn.c (gxv_XStateTable_subtable_setup):
+	gxv_set_length_by_ulong_offset() must be called with 3, not 4,
+	the number of the subtables in the state tables; classTable,
+	stateArray, entryTable.
+
+2012-01-17  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[raccess] Modify for PIC build.
+
+	Based on the patch provided by Erik Dahlstrom <ed@opera.com>,
+	http://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00010.html
+
+	Also `raccess_guess_table[]' and `raccess_rule_by_darwin_vfs()'
+	are renamed with `ft_' suffixes.
+
+	* src/base/ftbase.h: `raccess_rule_by_darwin_vfs()' is renamed
+	to `ft_raccess_rule_by_darwin_vfs()'.
+	* src/base/ftobjs.c: Ditto.
+
+	* src/base/ftrfork.c: Declarations of FT_RFork_Rule,
+	raccess_guess_rec, are moved to...
+	* include/freetype/internal/ftrfork.h: Here.
+
+	* include/freetype/internal/ftrfork.h:
+	FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END} macros are defined
+	to replace raccess_guess_table[] in both of PIC and non-PIC
+	modes.
+	* src/base/ftrfork.c: raccess_guess_table[] array is rewritten
+	by FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END}.
+
+	* src/base/basepic.h (BasePIC): Add `ft_raccess_guess_table'
+	storage.  (FT_RACCESS_GUESS_TABLE_GET): New macro to retrieve
+	the function pointer from `ft_raccess_guess_table' storage in
+	`BasePIC' structure.
+	* src/base/ftrfork.c (FT_Raccess_Guess): Rewritten with
+	FT_RACCESS_GUESS_TABLE_GET.
+	(raccess_get_rule_type_from_rule_index): Add `library' as the
+	first argument to the function, to retrieve the storage of
+	`ft_raccess_guess_table' from it.  Also `raccess_guess_table'
+	is replaced by FT_RACCESS_GUESS_TABLE_GET.
+	(ft_raccess_rule_by_darwin_vfs): Ditto.
+
+2012-01-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Remove trailing spaces.
+
+2012-01-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Formatting PIC related sources.
+
+	* src/autofit/afpic.c: Harmonize to FT2 coding conventions.
+	* src/base/basepic.c: Ditto.
+	* src/base/ftpic.c: Ditto.
+	* src/cff/cffpic.c: Ditto.
+	* src/pshinter/pshpic.c: Ditto.
+	* src/psnames/pspic.c: Ditto.
+	* src/raster/rastpic.c: Ditto.
+	* src/sfnt/sfntpic.c: Ditto.
+	* src/smooth/ftspic.c: Ditto.
+	* src/truetype/ttpic.c: Ditto.
+
+2012-01-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[autofit] Fix the inclusion of `aflatin2.h' in PIC file.
+
+	* src/autofit/afpic.c: Include `aflatin2.h' when
+	FT_OPTION_AUTOFIT2 is defined, as afglobal.c does so.
+	Unconditionally inclusion causes declared but unimplemented
+	warning by GCC 4.6.
+
+2012-01-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[cff] Remove redundant declarations of cff_cmap_XXX_class_rec.
+
+	* src/cff/cffpic.c: The declarations of
+	FT_Init_Class_cff_cmap_encoding_class_rec() and
+	FT_Init_Class_cff_cmap_unicode_class_rec() are removed.
+	They can be obtained by the inclusion of cffcmap.h.
+	cffcmap.h invokes FT_DECLARE_CMAP_CLASS() and it declares
+	FT_Init_Class_cff_cmap_encoding_class_rec() etc in PIC mode.
+
+2012-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Fix redundant declaration warning in PIC mode.
+
+	Originally FT_DEFINE_{DRIVER,MODULE,RENDERER}() macros were
+	designed to declare xxx_pic_{free,init} by themselves.
+	Because these macros are used at the end of the module
+	interface (e.g. ttdriver.c) and the wrapper source to build
+	a module as a single object (e.g. truetype.c) includes
+	the PIC file (e.g. ttpic.c) before the module interface,
+	these macros are expanded AFTER xxx_pic_{free,init} body
+	when the modules are built as single object.
+	The declaration after the implementation causes the redundant
+	declaration warnings, so the declarations are moved to module
+	PIC headers (e.g. ttpic.h).  Separating to other header files
+	are needed for multi build.
+
+	* include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER):
+	Remove class_##_pic_free and class_##_pic_init declarations.
+	* include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER,
+	FT_DEFINE_MODULE): Ditto.
+
+	* src/base/basepic.h: Insert a comment and fix coding style.
+	* src/autofit/afpic.h: Declare autofit_module_class_pic_{free,
+	init}.
+	* src/cff/cffpic.h: Declare cff_driver_class_pic_{free,init}.
+	* src/pshinter/pshpic.h: Declare pshinter_module_class_pic_{free,
+	init}.
+	* src/psnames/pspic.h: Declare psnames_module_class_pic_{free,
+	init}.
+	* src/raster/rastpic.h: Declare
+	ft_raster{1,5}_renderer_class_pic_{free,init}
+	* src/sfnt/sfntpic.h: Declare sfnt_module_class_pic_{free,init}.
+	* src/smooth/ftspic.h: Declare
+	ft_smooth_{,lcd_,lcdv_}renderer_class_pic_{free,init}.
+	* src/truetype/ttpic.h: Declare tt_driver_class_pic_{free,init}.
+
+2012-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Make pspic.c to include module error header to fix multi build.
+
+	* src/psnames/pspic.c: Include `psnamerr.h'.
+
+2012-01-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[base] Fix a dereference of uninitialized variable in PIC mode.
+
+	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): `glyph' must be
+	set before derefering to obtain `library'.  The initialization
+	of `clazz', `glyph', `library' and NULL pointer check are
+	reordered to minimize PIC conditonals.
+
+2012-01-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[base] Insert explicit cast for GCC 4.6 in PIC mode.
+
+	* src/base/ftinit.c (FT_Add_Default_Modules): Under PIC
+	configuration, FT_DEFAULT_MODULES_GET returns
+	FT_Module_Class** pointer, GCC 4.6 warns that
+	const FT_Module_Class* const* variable is warned as
+	inappropriate to store it.  To calm it, explicit cast is
+	inserted.  Also `library' is checked to prevent the NULL
+	pointer dereference in FT_DEFAULT_MODULES_GET.
+
+2012-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Fix PIC build broken by d9145241fe378104ba4c12a42534549faacc92e6.
+
+	Under PIC configuration, FT_{CFF,PSCMAPS,SFNT,TT}_SERVICES_GET
+	take no arguments but derefer the variable named `library'
+	internally.
+
+	* src/cff/cffdrivr.c (cff_get_interface): Declare `library' and
+	set it if non-NULL driver is passed.
+	* src/truetype/ttdriver.c (tt_get_interface): Ditto.
+
+	* src/sfnt/sfdriver.c (sfnt_get_interface): Declare `library'
+	under PIC configuration, and set it if non-NULL module is given.
+	* src/psnames/psmodule.c (psnames_get_interface): Ditto.
+
+2012-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Make PIC files include module error headers, to use the error codes
+	with per-module prefix.
+
+	* src/autofit/afpic.c: Include `aferrors.h'.
+	* src/cff/cffpic.c: Include `cfferrs.h'.
+	* src/pshinter/pshpic.c: Include `pshnterr.h'.
+	* src/raster/rastpic.c: Include `rasterrs.h'.
+	* src/sfnt/sfntpic.c: Include `sferrors.h'.
+	* src/smooth/ftspic.c: Include `ftsmerrs.h'.
+	* src/truetype/ttpic.c: Include `tterrors.h'.
+
+2012-01-04  Tobias Ringström  <tobias@ringis.se>
+
+	[truetype] Fix IP instruction if x_ppem != y_ppem.
+
+	* src/truetype/ttinterp.c (Ins_IP): Scale `orus' coordinates
+	properly.
+
+2012-01-02  Werner Lemberg  <wl@gnu.org>
+
+	Fix tracing message for `loca' table.
+
+	* src/truetype/ttpload.c (tt_face_get_location): Don't emit a
+	warning message if the last `loca' entry references an empty glyph.
+
+2011-12-10  Werner Lemberg  <wl@gnu.org>
+
+	Add some variable initializations.
+	Reported by Richard COOK <rscook@unicode.org>.
+
+	* src/type1/t1driver.c (t1_ps_get_font_value): Initialize `val'.
+	* src/smooth/ftgrays.c (gray_render_conic): Initialize `levels'
+	earlier.
+
+2011-12-08  Werner Lemberg  <wl@gnu.org>
+
+	Fix serious scaling bug in `FT_Get_Advances'.
+
+	* src/base/ftadvanc.c (FT_Get_Advances): Advance values returned by
+	`FT_Load_Glyph' must be simply multiplied by 1024.
+
+2011-12-08  Werner Lemberg  <wl@gnu.org>
+
+	* src/bdf/bdflib.c (_bdf_parse_start): Drop redundant error tracing.
+
+2011-12-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[mac] Unify DARWIN_NO_CARBON with FT_MACINTOSH.
+
+	Originally FT_MACINTOSH was a pure auto macro and DARWIN_NO_CARBON
+	was a configurable macro to disable Carbon-dependent code.  Because
+	now configure script sets DARWIN_NO_CARBON by default and disables
+	Darwin & Carbon-dependent codes, these macros can be unified.
+	FT_MACINTOSH (undefined by default) is kept and DARWIN_NO_CARBON
+	(defined by default) is removed, because DARWIN_NO_CARBON violates
+	FT_XXX naming convention of public macros, and a macro configured by
+	default is not portable for the building without configure (e.g.
+	make devel).
+
+	* builds/unix/configure.raw: Define FT_MACINTOSH if Carbon-based
+	old Mac font support is requested and Carbon is available.
+	* builds/unix/ftconfig.in: Undefine FT_MACINTOSH when the support
+	for Mac OS X without Carbon (e.g.  Mac OS X 10.4 for ppc64) is
+	requested.
+	* include/freetype/config/ftconfig.in: Ditto.
+	* builds/vms/ftconfig.h: Ditto.
+
+	* src/base/ftbase.h: Remove DARWIN_NO_CARBON.
+	* src/base/ftbase.c: Ditto.
+	* src/base/ftobjs.c: Ditto.
+	* src/base/ftrfork.c: Ditto.
+
+	* src/base/ftmac.c: Compile the body if FT_MACINTOSH is defined
+	(same with TT_USE_BYTECODE_INTERPRETER in ttinterp.c).
+	* builds/mac/ftmac.c: Ditto.
+
+	* builds/mac/FreeType.m68k_cfm.make.txt: Define FT_MACINTOSH.
+	* builds/mac/FreeType.m68k_far.make.txt: Ditto.
+	* builds/mac/FreeType.ppc_classic.make.txt: Ditto.
+	* builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
+
+2011-11-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Fix Savannah bug #34728 (`make devel' on Mac OS X).
+
+	* builds/toplevel.mk: Check `/dev/null' to identify the Unix-
+	like systems without `init' nor `hurd' (e.g. Mac OS X >= 10.4).
+	* builds/unix/detect.mk: Ditto.
+
+2011-11-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[apinames] Fix the overflow of signed integer hash.
+
+	* src/tools/apinames.c (names_add): Change the type of `h' from
+	int to unsigned int, to prevent undefined behaviour in the
+	overflow of signed integers (overflow of unsigned int is defined
+	to be wrap around).  Found by clang test suggested by Sean
+	McBride.
+
+2011-11-30  Werner Lemberg  <wl@gnu.org>
+
+	[winfonts] Remove casts.
+
+	* src/winfonts/winfnt.c (winfnt_driver_class): Remove all casts and
+	update affected functions.
+	(FNT_Size_Select): Fix number of arguments.
+
+2011-11-30  Werner Lemberg  <wl@gnu.org>
+
+	[type42] Remove casts.
+
+	* src/type42/t42driver.c (t42_driver_class): Remove all casts and
+	update affected functions.
+
+	* src/type42/t42objs.c, src/type42/t42objs.h: Updated for t42driver
+	changes.
+
+2011-11-30  Werner Lemberg  <wl@gnu.org>
+
+	[type1] Remove casts.
+
+	* src/type1/t1driver.c (t1_driver_class): Remove all casts and
+	update affected functions.
+
+	* src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1objs.c:
+	Updated for t1driver changes.
+	src/type1/t1objs.h (T1_Driver): Remove unused typedef.
+	Updated for t1driver changes.
+
+2011-11-27  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Fix Savannah bug #34896.
+
+	ENCODING now covers the whole Unicode range.
+
+	Note, however, that this change is quite expensive since it
+	increases the size of three arrays by almost 400kByte in total.  The
+	right fix is to replace the logic with something smarter.
+	Additionally, there exist very old BDFs for three-byte CCCII
+	encoding which exceeds the range of Unicode (another reason to have
+	a smarter logic).
+
+	* src/bdf/bdf.h (bdf_font_t): Increase size of `nmod' and `umod'
+	arrays.
+	* src/bdf/bdflib.c (bdf_parse_t): Increase size of `have' array.
+
+2011-11-27  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Improve tracing.
+
+	* src/bdf/bdflib.c (DBGMSG1, DBGMSG2): New macros.
+	(_bdf_parse_glyphs): Use them.
+
+2011-11-26  Werner Lemberg  <wl@gnu.org>
+
+	Improve tracing.
+
+	* src/bdf/bdfdrivr.c (BDF_Face_Done), src/pcf/pcfdrivr.c
+	(PCF_Face_Done): Remove tracing message.
+
+	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/cff/cffobjs.c
+	(cff_face_init), src/cid/cidobjs.c (cid_face_init),
+	src/pfr/pfrobjs.c (pfr_face_init), src/sfnt/sfobjs.c
+	(sfnt_init_face), src/truetype/ttobjs.c (tt_face_init),
+	src/type1/t1objs.c (T1_Face_Init), src/type42/t42objs.c
+	(T42_Face_Init), src/winfonts/winfnt.c (FNT_Face_Init): Add
+	`greeting' message.
+
+	* src/sfnt/sfobjs.c (sfnt_open_font), src/type42/t42objs.c
+	(T42_Open_Face): Improve tracing.
+
+2011-11-26  Werner Lemberg  <wl@gnu.org>
+
+	[cid] Fix error code.
+
+	* src/cid/cidparse.c (cid_parser_new): Do it.
+
+2011-11-26  Werner Lemberg  <wl@gnu.org>
+
+	[cff] Fix error code.
+
+	* src/cff/cffload.c (cff_font_load): Do it.
+
+2011-11-26  Werner Lemberg  <wl@gnu.org>
+
+	Add new error code FT_Err_Missing_Module.
+
+	Previously, FreeType misleadingly returned
+	FT_Err_Unknown_File_Format if a module was missing (or a test was
+	missing completely).
+
+	* include/freetype/fterrdef.h (FT_Err_Missing_Module): Define.
+
+	* src/cff/cffobjs.c (cff_face_init), src/cff/cffdrivr.c
+	(cff_get_glyph_name), src/cid/cidobjs.c (cid_face_init),
+	src/sfnt/sfobjs.c (sfnt_init_face), src/truetype/ttobjs.c
+	(tt_face_init), src/type1/t1objs.c (T1_Face_Init),
+	src/type42/t42objs.c (T42_Face_Init, T42_Driver_Init): Updated.
+
+	* src/type1/t1afm.c (T1_Read_Metrics), src/type/t1objs.c
+	(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Remove now
+	redundant test for `psaux'.
+
+2011-11-25  Werner Lemberg  <wl@gnu.org>
+
+	[bdf] Add more error messages.
+
+	* src/bdf/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
+	Add line number argument.
+	Update all callers.
+	(ERRMSG5, ERRMSG6, ERRMSG7, ERRMSG8, ERRMSG9): New macros.
+	(_bdf_readstream, _bdf_set_default_spacing, _bdf_add_property,
+	_bdf_parse_glyphs, _bdf_parse_start): Add error messages.
+
+2011-11-24  Werner Lemberg  <wl@gnu.org>
+
+	* include/freetype/fterrors.h: Remove dead code.
+
+2011-11-15  Werner Lemberg  <wl@gnu.org>
+
+	* docs/releases: Updated.
+
+2011-11-15  Werner Lemberg  <wl@gnu.org>
+
+	* Version 2.4.8 released.
+	=========================
+
+
+	Tag sources with `VER-2-4-8'.
+
+	* docs/CHANGES: Updated.
+
+	* docs/VERSION.DLL: Update documentation and bump version number to
+	2.4.8.
+
+	* README, Jamfile (RefDoc),
+	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
+	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
+	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
+	builds/win32/visualc/freetype.dsp,
+	builds/win32/visualc/freetype.vcproj,
+	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
+	builds/win32/visualce/freetype.vcproj,
+	builds/win32/visualce/index.html,
+	builds/wince/vc2005-ce/freetype.vcproj,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/freetype.vcproj,
+	builds/wince/vc2008-ce/index.html: s/2.4.7/2.4.8/, s/247/248/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
+
+	* builds/unix/configure.raw (version_info): Set to 14:0:8.
+
+2011-11-13  Chris Liddell  <chris.liddell@artifex.com>
+
+	Add FT_Get_PS_Font_Value() API.
+
+	This allows a Type 1 font face to be interrogated to retrieve most
+	of the dictionary keys (keys not relevant to FreeType's Type 1
+	interpreter are not available).
+
+	* include/freetype/internal/services/svpsinfo.h
+	(PS_GetFontValueFunc): New typedef.
+	(PSInfo): Add `ps_get_font_value'.
+	(FT_DEFINE_SERVICE_PSINFOREC): Updated.
+
+	* include/freetype/internal/t1types.h (T1_EncodingType): Moved to...
+	* include/freetype/t1tables.h: Here.
+	(PS_Dict_Keys): New enumeration.
+	(FT_Get_PS_Font_Value): New declaration.
+
+	* src/base/fttype1.c (FT_Get_PS_Font_Value): New function.
+
+	* src/type1/t1driver.c (t1_ps_get_font_value): This new function
+	does the real job.
+	(t1_service_ps_info): Add it.
+
+	* src/cff/cffdrivr.c (cff_service_ps_info), src/cid/cidriver.c
+	(cid_service_ps_info), src/type42/t42drivr.c (t42_service_ps_info):
+	Updated.
+
+2011-11-08  Braden Thomas  <bthomas@apple.com>
+
+	[cid] Various loading fixes.
+
+	* src/cid/cidload.c (cid_load_keyword) <default>,
+	(parse_font_matrix, parse_expansion_factor): Correctly check number
+	of dictionaries.
+	(cid_read_subrs): Protect against invalid values of `num_subrs'.
+	Assure that the elements of the `offsets' array are ascending.
+
+2011-11-05  Werner Lemberg  <wl@gnu.org>
+
+	* README: We use copyright ranges also.
+
+	According to
+
+	  http://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html
+
+	this should be mentioned explicitly.
+
+2011-10-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[raccess] Supplement for previous fix.
+
+	* src/base/ftbase.h (raccess_rule_by_darwin_vfs): Do not declare
+	it on native Mac OS X.
+	* src/base/ftrfork.c (raccess_get_rule_type_from_rule_index):
+	Hide raccess_get_rule_type_from_rule_index() on native Mac OS X
+	too.
+
+2011-10-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[raccess] Hide raccess_rule_by_darwin_vfs() on native Mac OS X.
+
+	* src/base/ftrfork.c (raccess_rule_by_darwin_vfs): Do not
+	compile on native Mac OS X because it is not used.
+
+2011-10-25  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Fix MD instruction for twilight zone.
+
+	* src/truetype/ttinterp.c (Ins_MD): Without this fix, the MD
+	instruction applied to original coordinates of twilight points
+	always returns zero.
+
+2011-10-18  Werner Lemberg  <wl@gnu.org>
+
+	* Version 2.4.7 released.
+	=========================
+
+
+	Tag sources with `VER-2-4-7'.
+
+	* docs/CHANGES: Updated.
+
+	* docs/VERSION.DLL: Update documentation and bump version number to
+	2.4.7.
+
+	* README, Jamfile (RefDoc),
+	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
+	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
+	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
+	builds/win32/visualc/freetype.dsp,
+	builds/win32/visualc/freetype.vcproj,
+	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
+	builds/win32/visualce/freetype.vcproj,
+	builds/win32/visualce/index.html,
+	builds/wince/vc2005-ce/freetype.vcproj,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/freetype.vcproj,
+	builds/wince/vc2008-ce/index.html: s/2.4.6/2.4.7/, s/246/247/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
+
+	* builds/unix/configure.raw (version_info): Set to 13:2:7.
+
+2011-10-15  Kal Conley  <kcconley@gmail.com>
+
+	Fix handling of transformations if no renderer is present.
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Thinko.
+
+2011-10-15  Kal Conley  <kcconley@gmail.com>
+
+	Fix conditions for autohinting.
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Handle
+	FT_LOAD_IGNORE_TRANSFORM.
+
+2011-10-07  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[gxvalid] Fix a bug to detect too large offset in morx table.
+
+	* src/gxvalid/gxvmorx2.c
+	(gxv_morx_subtable_type2_ligActionIndex_validate): Fix a bug
+	that too large positive offset cannot be detected.
+
+2011-10-01  Braden Thomas  <bthomas@apple.com>
+
+	Handle some border cases.
+
+	* include/freetype/config/ftstdlib.h (FT_USHORT_MAX): New macro.
+
+	* src/base/ftbitmap.c (FT_Bitmap_Convert): Protect against invalid
+	value of `target->rows'.
+
+	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add check for
+	flex start.
+
+	* src/raster/ftrend1.c (ft_raster1_render): Check `width' and
+	`height'.
+
+	* src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Protect against
+	invalid values in `localpoints' array.
+
+2011-10-01  Werner Lemberg  <wl@gnu.org>
+
+	[psnames] Handle zapfdingbats.
+	Problem reported by Nicolas Rougier <Nicolas.Rougier@inria.fr>.
+
+	* src/tools/glnames.py (adobe_glyph_list): Add data from AGL's
+	`zapfdingbats.txt' file.
+
+	* src/psnames/pstables.h: Regenerated.
+
+2011-09-27  Simon Bünzli  <zeniko@gmail.com>
+
+	Fix Savannah bug #34189.
+
+	* src/type1/t1load.c (T1_Open_Face): Initialize
+	`face->len_buildchar'.
+
+2011-09-26  Werner Lemberg  <wl@gnu.org>
+
+	[cff] Dump SIDs while tracing.
+
+	* src/cff/cffobjs.c (cff_face_init): Do it.
+
+	* src/cff/cffparse.c (cff_parser_run) [FT_DEBUG_LEVEL_TRACE]
+	<cff_kind_string>: Identify as SID.
+
+2011-09-17  Werner Lemberg  <wl@gnu.org>
+
+	Remove unused FT_ALIGNMENT macro.
+
+	* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
+	include/freetype/config/ftconfig.h: Do it.
+
+2011-09-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	[smooth] Slightly optimize conic and cubic flatterners.
+
+	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
+	out some code from the main loop to speed it up.
+
+2011-09-11  Tomas Hoger  <thoger@redhat.com>
+
+	Slightly improve LZW_CLEAR handling.
+
+	* src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_CODE>:
+	Ensure that subsequent (modulo garbage byte(s)) LZW_CLEAR codes are
+	handled as clear codes.  This also re-sets old_code and old_char to
+	predictable values, which is a little better than using `random'
+	ones if the code following LZW_CLEAR is invalid.
+
+2011-09-11  Tomas Hoger  <thoger@redhat.com>
+
+	Add explicit LZW decompression stack size limit.
+
+	Stack larger than 1<<LZW_MAX_BITS is never needed if prefix table is
+	constructed correctly.  It's even less than that, see e.g.
+	libarchive code comment for a better size upper bound:
+
+	  http://code.google.com/p/libarchive/source/browse/trunk/libarchive/archive_read_support_filter_compress.c?r=3635#121
+
+	This patch adds explicit stack size limit, enforced when stack is
+	realloced.
+
+	An alternative is to ensure that code < state->prefix[code - 256]
+	when traversing prefix table.  Such check is less efficient and
+	should not be required if prefix table is constructed correctly in
+	the first place.
+
+	* src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Implement it.
+
+2011-09-11  Tomas Hoger  <thoger@redhat.com>
+
+	Protect against loops in the prefix table.
+
+	LZW decompressor did not sufficiently check codes read from the
+	input LZW stream.  A specially-crafted or corrupted input could
+	create a loop in the prefix table, which leads to memory usage
+	spikes, as there's no decompression stack size limit.
+
+	* src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_START>: First
+	code in valid LZW stream must be 0..255.
+	<FT_LZW_PHASE_CODE>: In the special KwKwK case, code == free_ent,
+	code > free_ent is invalid.
+
+2011-09-09  Werner Lemberg  <wl@gnu.org>
+
+	Better tracing of metrics.
+
+	* src/base/ftobjs.c (FT_Request_Size, FT_Select_Size): Decorate with
+	FT_TRACE.
+
+2011-09-07  Werner Lemberg  <wl@gnu.org>
+
+	Fix Savannah bug #33816.
+
+	* src/cff/cfftypes.h (CFF_FontRecDictRec): New member
+	`has_font_matrix'.
+	* src/cff/cffparse.c (cff_parse_font_matrix): Set it.
+	Update tracing output.
+	* src/cff/cffobjs.c (cff_face_init): Use it so that the heuristics
+	can be removed.
+
+2011-08-30  Werner Lemberg  <wl@gnu.org>
+
+	Better tracing of metrics.
+
+	* src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics):
+	Decorate with FT_TRACE.
+
+2011-08-25  Werner Lemberg  <wl@gnu.org>
+
+	[cff] Better tracing of the parsing process.
+
+	* src/cff/cffload.c (cff_subfont_load, cff_font_load): Decorate with
+	FT_TRACE.
+
+	* src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox,
+	cff_parse_private_dict, cff_parse_cid_ros): Updated.
+	(CFF_FIELD_NUM, CFF_FIELD_FIXED, CFF_FIELD_FIXED_1000,
+	CFF_FIELD_STRING, CFF_FIELD_BOOL, CFF_FIELD_CALLBACK, CFF_FIELD,
+	CFF_FIELD_DELTA): Add argument for ID.
+	(cff_parser_run): Decorate with FT_TRACE.
+
+	* src/cff/cffparse.h (CFF_Field_Handler) [FT_DEBUG_LEVEL_TRACE]: Add
+	`id' member.
+
+	* src/cff/cfftoken.h: Add IDs to all fields.
+
+2011-08-16  Werner Lemberg  <wl@gnu.org>
+
+	Fix Savannah bug #34022.
+
+	* README, docs/INSTALL: Remove references to UPGRADE.UNIX.
+
+2011-08-15  Werner Lemberg  <wl@gnu.org>
+
+	Fix Savannah bug #34018.
+
+	* docs/UPGRADE.UNIX: Removed.  Obsolete.
+
+2011-08-15  David Bevan  <david.bevan@pb.com>
+
+	Fix Savannah bug #33992.
+
+	* src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix border case.
+
+2011-08-12  Werner Lemberg  <wl@gnu.org
+
+	[truetype] Fix degenerate case in S{P,F,DP}VTL opcodes.
+
+	* src/truetype/ttinterp.c (Ins_SxVTL): Handle p1 == p2 specially.
+	(Ins_SDPVTL): Handle v1 == v2 specially.
+
+2011-08-09  Werner Lemberg  <wl@gnu.org>
+
+	Fix Savannah bug #33975.
+
+	* src/cff/cffparse.c (cff_parse_font_matrix): Fix typo.
+
+2011-07-29  Werner Lemberg  <wl@gnu.org>
+
+	* Version 2.4.6 released.
+	=========================
+
+
+	Tag sources with `VER-2-4-6'.
+
+	* docs/CHANGES: Updated.
+
+	* docs/VERSION.DLL: Update documentation and bump version number to
+	2.4.6.
+
+	* README, Jamfile (RefDoc),
+	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
+	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
+	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
+	builds/win32/visualc/freetype.dsp,
+	builds/win32/visualc/freetype.vcproj,
+	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
+	builds/win32/visualce/freetype.vcproj,
+	builds/win32/visualce/index.html,
+	builds/wince/vc2005-ce/freetype.vcproj,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/freetype.vcproj,
+	builds/wince/vc2008-ce/index.html: s/2.4.5/2.4.6/, s/245/246/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
+
+	* builds/unix/configure.raw (version_info): Set to 13:1:7.
+
+2011-07-29  Werner Lemberg  <wl@gnu.org>
+
+	[cff] Add some more tracing infos.
+
+	* src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox,
+	cff_parse_cid_ros): Add tracing.
+
+2011-07-22  Dirk Müller  <dmueller@suse.de>
+
+	[psaux, type1] Fix null pointer dereferences.
+
+	Found with font fuzzying.
+
+	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Check
+	`decoder->buildchar'.
+
+	* src/type1/t1load.c (t1_load_keyword): Check `blend->num_designs'.
+
+2011-07-20  Chris Morgan  <cmorgan@cybexintl.com>
+
+	Add FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT.
+
+	Useful for embedded systems which don't need file stream support.
+
+	* src/base/ftsystem.c, src/base/ftobjs.c (FT_Stream_New): Implement
+	it.
+
+2011-07-20  Elton Chung  <elton328@gmail.com>
+
+	* src/base/ftpatent.c (FT_Face_SetUnpatentedHinting): Fix typo.
+
+2011-07-16  Steven Chu  <steven.f.chu@gmail.com>
+
+	[truetype] Fix metrics on size request for scalable fonts.
+
+	* src/truetype/ttdriver.c (tt_size_request): Fix copying metrics
+	from TT_Size to FT_Size if scalable font.
+
+	See
+
+	  http://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00049.html
+
+	for some comparison images.
+
+2011-07-14  Matthias Drochner  <M.Drochner@fz-juelich.de>.
+
+	[psaux] Fix potential sign extension problems.
+
+	When shifting right a signed value, it is not defined by the
+	C standard whether one gets a sign extension or not.  Use a macro to
+	do an explicit cast from a signed short (assuming that this is
+	16bit) to an int.
+
+	* src/psaux/t1decode.c (Fix2Int): New macro.
+	Use it where appropriate.
+
+2011-07-14  Werner Lemberg  <wl@gnu.org>
+
+	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
+	<op_callothersubr>: Better handling of subroutine index 0.
+	From Matthias Drochner <M.Drochner@fz-juelich.de>.
+
+2011-07-10  Алексей Подтележников  <apodtele@gmail.com>
+
+	[psaux] Optimize previous commit.
+
+	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
+	<op_callothersubr>: Move error check down to avoid testing twice for
+	good cases.
+
+2011-07-08  Werner Lemberg  <wl@gnu.org>
+
+	[psaux] Add better argument check for `callothersubr'.
+
+	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
+	<op_callothersubr>: Reject negative arguments.
+
+2011-07-07  Werner Lemberg  <wl@gnu.org>
+
+	[sfnt] Try harder to find non-zero values for ascender and descender.
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Consult `OS/2' table in case
+	the `hhea' table's values are zero.
+
+2011-07-03  Werner Lemberg  <wl@gnu.org>
+
+	Fix previous commit.
+
+	We want to unset FT_FACE_FLAG_SCALABLE only if there are bitmap
+	strikes in the font.
+
+	* src/truetype/ttobjs.c (tt_face_init): Implement it.
+
+	* docs/CHANGES: Updated.
+
+2011-07-02  Just Fill Bugs  <mozbugbox@yahoo.com.au>
+
+	Fix Savannah bug #33246.
+
+	* src/truetype/ttobjs.c (tt_check_single_notdef): New function.
+	(tt_face_init): Use it to test FT_FACE_FLAG_SCALABLE.
+
+2011-07-02  Werner Lemberg  <wl@gnu.org>
+
+	* docs/CHANGES: Updated.
+
+2011-07-02  David Bevan  <david.bevan@pb.com>
+
+	[ftstroke] Major revision.
+
+	The main problems
+	-----------------
+
+	  o If FT_STROKER_LINEJOIN_BEVEL was specified, unlimited miter
+	    joins (not bevel joins) were generated.  Indeed, the meanings of
+	    `miter' and `bevel' were incorrectly reversed (consistently) in
+	    both the code and comments.
+
+	  o The way bevel joins were constructed (whether specified
+	    explicitly, or created as a result of exceeding the miter limit)
+	    did not match what is required for stroked text in PostScript or
+	    PDF.
+
+	The main fixes
+	--------------
+
+	  o The behaviour of FT_STROKER_LINEJOIN_BEVEL has been corrected.
+
+	  o A new line join style, FT_STROKER_LINEJOIN_MITER_FIXED, has been
+	    introduced to support PostScript and PDF miter joins.
+
+	  o FT_STROKER_LINEJOIN_MITER_VARIABLE has been introduced as an
+	    alias for FT_STROKER_LINEJOIN_MITER.
+
+	Additionally, a variety of stroking errors have been fixed.  These
+	would cause various artifacts (including points `at infinity'),
+	especially when stroking poor quality fonts.
+
+	See
+
+	  http://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00001.html
+
+	for example documents.  The FreeType stroker now produces results
+	very similar to that produced by GhostScript and Distiller for these
+	fonts.
+
+	Other problems
+	--------------
+
+	The following problems have been resolved:
+
+	  o Inside corners could be generated incorrectly.  Intersecting the
+	    inside corner could cause a missing triangular area and other
+	    effects.
+
+	    The intersection point can only be used if the join is between
+	    two lines and both lines are long enough.  The `optimization'
+	    condition in `ft_stroker_inside' has been corrected; this
+	    requires the line length to be passed into various functions and
+	    stored in `FT_StrokerRec'.
+
+	  o Incorrect cubic curves could be generated.  The angle
+	    calculations in `FT_Stroker_CubicTo' have been corrected to
+	    handle the case of the curve crossing the +/-PI direction.
+
+	  o If the border radius was greater than the radius of curvature of
+	    a curve, then the negative sector would end up outside (not
+	    inside) the border.  This situation is now recognized and the
+	    negative sector is circumnavigated in the opposite direction.
+	    (If round line joins are being used, this code is disabled
+	    because the line join will always cover the negative sector.)
+
+	  o When a curve is split, the arcs may not join smoothly (especially
+	    if the curve turns sharply back on itself).  Changes in
+	    direction between adjacent arcs were not handled.  A round
+	    corner is now added if the deviation from one arc to the next is
+	    greater than a suitable threshold.
+
+	  o The current direction wasn't retained if a the outline contained
+	    a zero length lineto or a curve that was determined to be
+	    `basically a point'.  This could cause a spurious join to be
+	    added.
+
+	  o Cubics with close control points could be mishandled.  All eight
+	    cases are now distinguished correctly.
+
+	Other improvements
+	------------------
+
+	o Borders for cubic curves could be too `flat'.
+	  FT_SMALL_CUBIC_THRESHOLD has been reduced a little to prevent
+	  this.
+
+	o The handling and use of movable points has been simplified a
+	  little.
+
+	o Various values are now computed only if the results are actually
+	  needed.
+
+	o The directions of the outer and inner borders have been swapped,
+	  as recommended by Graham Asher.
+
+	* src/base/ftstroke.c: Revised.
+	* include/freetype/ftstroke.h: Updated.
+
+2011-06-30  İsmail Dönmez <ismail@namtrac.org>
+
+	* builds/toplevel.mk: We use git, not CVS, thus skip `.gitignore'.
+
+2011-06-29  Werner Lemberg  <wl@gnu.org>
+
+	Fix Savannah bug #33663.
+
+	* src/bdf/bdflib.c (_bdf_parse_glyphs): Handle negative values for
+	ENCODING correctly.
+
+	* docs/CHANGES: Document it.
+
+2011-06-24  Werner Lemberg  <wl@gnu.org>
+
+	* Version 2.4.5 released.
+	=========================
+
+
+	Tag sources with `VER-2-4-5'.
+
+	* docs/CHANGES: Updated.
+
+	* docs/VERSION.DLL: Update documentation and bump version number to
+	2.4.5
+
+	* README, Jamfile (RefDoc),
+	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
+	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
+	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
+	builds/win32/visualc/freetype.dsp,
+	builds/win32/visualc/freetype.vcproj,
+	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
+	builds/win32/visualce/freetype.vcproj,
+	builds/win32/visualce/index.html,
+	builds/wince/vc2005-ce/freetype.vcproj,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/freetype.vcproj,
+	builds/wince/vc2008-ce/index.html: s/2.4.4/2.4.5/, s/244/245/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
+
+	* builds/unix/configure.raw (version_info): Set to 13:0:7.
+
+2011-06-20  Werner Lemberg  <wl@gnu.org>
+
+	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix change
+	from 2011-05-04.
+
+2011-06-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[gxvalid] make the `prop' validation tracing verbose.
+
+	* src/gxvalid/gxvprop.c: Add tracing messages for errors.
+
+2011-06-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[autogen.sh] Reflect environment variable LIBTOOLIZE.
+
+2011-06-18  Werner Lemberg <wl@gnu.org>
+
+	Update license documentation.
+
+	* docs/GPL.TXT: Renamed to...
+	* docs/GPLv2.TXT: This.
+
+	* docs/LICENSE.TXT: Updated.
+
+2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Fix g++4.6 compiler warnings in module drivers.
+
+	The background is same with previous commit.
+
+	* src/truetype/ttgxvar.c (ft_var_readpackedpoints):
+	Init `points'.  (TT_Vary_Get_Glyph_Deltas): Init
+	`delta_xy'.  (TT_Get_MM_Var): Init `mmvar'.
+	* src/type1/t1load.c (T1_Get_MM_Var): Ditto.
+	* src/cff/cffdrivr.c (cff_ps_get_font_info): Init
+	`font_info'.
+	* src/cff/cffload.c (cff_index_get_pointers): Init `t'.
+	(cff_font_load): Init `sub'.
+	* src/cff/cffobjs.c (cff_size_init): Init `internal'.
+	(cff_face_init): Init `cff'.
+	* src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps):
+	Init `snaps'.
+	* src/pcf/pcfread.c (pcf_get_properties): Init `properties'.
+	(pcf_get_bitmaps): Init `offsets'.  (pcf_get_encodings):
+	Init `tmpEncoding'.
+	* src/sfnt/ttload.c (tt_face_load_gasp): Init `gaspranges'.
+	* src/sfnt/ttsbit.c (Load_SBit_Image): Init `components'.
+	* src/cache/ftcmru.c (FTC_MruList_New): Init `node'.
+	* src/gzip/ftgzip.c (FT_Stream_OpenGzip): Init `zip' and
+	`zip_buff'.
+	* src/lzw/ftlzw.c (FT_Stream_OpenLZW): Init `zip'.
+	* src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Init `zip'.
+
+2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[base] Fix g++4.6 compiler warnings in src/base/*.c.
+
+	Passing uninitialized pointer to FT_NEW() families is
+	not problematic theoretically (as far as the returned
+	pointer is checked before writing), but g++4.6 dislikes
+	it and warns by -Wuninitialized.  Initialize them by NULL.
+
+	* src/base/ftobjs.c (FT_Stream_New): Init `stream'.
+	(new_memory_stream): Ditto.
+	(FT_New_GlyphSlot): Init `slot'.
+	(FT_CMap_New): Init `cmap'.
+	(open_face_PS_from_sfnt_stream): Init `sfnt_ps'.
+	(Mac_Read_POST_Resource): Init `pfb_data'.
+	(Mac_Read_sfnt_Resource): Init `sfnt_data'.
+	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets):
+	Init `offsets_internal' and `ref'.
+	(raccess_guess_darwin_hfsplus): Init `newpath'.
+	(raccess_guess_darwin_newvfs): Ditto.
+	* src/base/ftbitmap.c (ft_bitmap_assure_buffer):
+	Init `buffer'.
+	* src/base/ftstroke.c (FT_Stroker_New): Init `stroker'.
+
+2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[gxvalid] Cleanup.
+
+	Some invalid, overrunning, unrecommended non-zero values
+	are cared in paranoid validation mode only.  There are
+	many lines looking like:
+
+	  if ( valid->root->level >= FT_VALIDATE_PARANOID )
+	    FT_INVALID_xxx;
+
+	To simplify them, GXV_SET_ERR_IF_PARANOID( err ) is
+	introduced for more paranoid validation in future.
+
+	* src/gxvalid/gxvcommn.h (IS_PARANOID_VALIDATION):
+	New macro to assure valid->root->level is more or
+	equal to FT_VALIDATE_PARANOID.  (GXV_SET_ERR_IF_PARANOID):
+	New macro to raise an error if in paranoid validation.
+	* src/gxvalid/gxvcommn.c: Use GXV_SET_ERR_IF_PARANOID().
+	* src/gxvalid/gxvfeat.c: Ditto.
+	* src/gxvalid/gxvjust.c: Ditto.
+	* src/gxvalid/gxvkern.c: Ditto.
+	* src/gxvalid/gxvmort.c: Ditto.
+	* src/gxvalid/gxvmort0.c: Ditto.
+	* src/gxvalid/gxvmort1.c: Ditto.
+	* src/gxvalid/gxvmort2.c: Ditto.
+	* src/gxvalid/gxvmorx1.c: Ditto.
+	* src/gxvalid/gxvmorx2.c: Ditto.
+
+2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[gxvalid] Fix gcc4.6 compiler warnings in gxvtrak.c.
+
+	* src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate):
+	Check different entries pointing same traking value.
+	(gxv_trak_validate): Remove unused variable `table_size'.
+
+2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[gxvalid] Fix gcc4.6 compiler warnings in gxvmorx*.c.
+
+	* src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
+	Conditionalize unvalidated variable `subFeatureFlags'.
+	(gxv_morx_chain_validate): Conditionalize unvalidated
+	variable `defaultFlags'.
+
+	* src/gxvalid/gxmorx0.c
+	(gxv_morx_subtable_type0_entry_validate):
+	Conditionalize unvalidated variables; `markFirst',
+	`dontAdvance', `markLast', `verb'.
+
+	* src/gxvalid/gxmorx1.c
+	(gxv_morx_subtable_type1_entry_validate): Conditionalize
+	unvalidated variables; `setMark', `dontAdvance'.
+
+	* src/gxvalid/gxvmorx2.c
+	(gxv_morx_subtable_type2_ligActionOffset_validate):
+	Conditionalize unvalidated variables; `last', `store'.
+	Checking for overrunning offset is added.
+	(gxv_morx_subtable_type2_entry_validate):
+	Conditionalize unvalidated variables; `setComponent',
+	`dontAdvance', `performAction'.
+	(gxv_morx_subtable_type2_ligatureTable_validate):
+	Check if the GID for ligature does not exceed the
+	max GID in `maxp' table.
+
+	* src/gxvalid/gxvmort5.c
+	(gxv_morx_subtable_type5_InsertList_validate):
+	Conditionalize unvalidated loading of `insert_glyphID'
+	array.  (gxv_morx_subtable_type5_entry_validate):
+	Conditionalize unvalidated variables; `setMark',
+	`dontAdvance', `currentIsKashidaLike',
+	`markedIsKashidaLike', `currentInsertBefore',
+	`markedInsertBefore'.
+
+2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[gxvalid] Fix gcc4.6 compiler warnings in gxvmort*.c.
+
+	* src/gxvalid/gxvmort.c (gxv_mort_subtables_validate):
+	Conditionalize unvalidated variable `subFeatureFlags'.
+	(gxv_mort_chain_validate): Conditionalize unvalidated
+	variable `defaultFlags'.
+
+	* src/gxvalid/gxmort0.c
+	(gxv_mort_subtable_type0_entry_validate): Check the
+	conflict of the marks for the glyphs.
+
+	* src/gxvalid/gxmort1.c
+	(gxv_mort_subtable_type1_offset_to_subst_validate):
+	Local variables `min_gid', `max_gid' are replaced by
+	variables in the validator.
+	(gxv_mort_subtable_type1_entry_validate): Conditionalize
+	unvalidated variables; `setMark', `dontAdvance'.
+	(gxv_mort_subtable_type1_substTable_validate):
+	Validate the GID by the min/max GIDs in the validator.
+
+	* src/gxvalid/gxvmort2.c
+	(gxv_mort_subtable_type2_ligActionOffset_validate):
+	Conditionalize unvalidated variables; `last', `store'.
+	Checking for overrunning offset is added.
+	(gxv_mort_subtable_type2_entry_validate):
+	Conditionalize unvalidated variables; `setComponent',
+	`dontAdvance'.
+	(gxv_mort_subtable_type2_ligatureTable_validate):
+	Check if the GID for ligature does not exceed the
+	max GID in `maxp' table.
+
+	* src/gxvalid/gxvmort5.c
+	(gxv_mort_subtable_type5_InsertList_validate):
+	Conditionalize unvalidated loading of `insert_glyphID'
+	array.  (gxv_mort_subtable_type5_entry_validate):
+	Conditionalize unvalidated variables; `setMark',
+	`dontAdvance', `currentIsKashidaLike',
+	`markedIsKashidaLike', `currentInsertBefore',
+	`markedInsertBefore'.
+
+2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[gxvalid] Fix gcc4.6 compiler warnings in gxvkern.c.
+
+	* src/gxvalid/gxvkern.c
+	(gxv_kern_subtable_fmt0_pairs_validate): Conditionalize
+	unvalidated variable `kernValue'.
+	(gxv_kern_subtable_fmt1_entry_validate): Conditionalize
+	unvalidated variables; `push', `dontAdvance', `kernAction',
+	`kernValue'.
+	(gxv_kern_coverage_new_apple_validate): Conditionalize
+	trace-only variables; `kernVertical', `kernCrossStream',
+	`kernVariation'.
+	(gxv_kern_coverage_classic_apple_validate): Conditionalize
+	trace-only variables; `horizontal', `cross_stream'.
+	(gxv_kern_coverage_classic_microsoft_validate):
+	Conditionalize trace-only variables; `horizontal',
+	`minimum', `cross_stream', `override'.
+	(gxv_kern_subtable_validate): Conditionalize trace-only
+	variables; `version', `tupleIndex'.
+
+2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[gxvalid] Fix gcc4.6 compiler warnings in gxvjust.c.
+
+	* src/gxvalid/gxvjust.c (gxv_just_check_max_gid):
+	New function to unify the checks of too large GID.
+	(gxv_just_wdp_entry_validate): Conditionalize unvalidated
+	variables; `beforeGrowLimit', `beforeShrinkGrowLimit',
+	`afterGrowLimit', `afterShrinkGrowLimit', `growFlags',
+	`shrinkFlags'.  Additional check for non-zero values in
+	unused storage `justClass' is added.
+	(gxv_just_actSubrecord_type0_validate): Conditionalize
+	unvalidated variable `order'.  GID is checked by
+	gxv_just_check_max_gid().  Additional check for upside-down
+	relationship between `lowerLimit' and `upperLimit' is added.
+	(gxv_just_actSubrecord_type1_validate): GID is checked by
+	gxv_just_check_max_gid().
+	(gxv_just_actSubrecord_type2_validate): Conditionalize
+	unvalidated variable `substThreshhold'.  GID is checked by
+	gxv_just_check_max_gid().
+	(gxv_just_actSubrecord_type5_validate): GID is checked by
+	gxv_just_check_max_gid().
+	(gxv_just_classTable_entry_validate): Conditionalize
+	unvalidated variables; `setMark', `dontAdvance',
+	`markClass', `currentClass'.
+
+2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[gxvalid] Preparation to fix gcc4.6 compiler warnings.
+
+	* src/gxvalid/gxvcommn.h (GXV_LOAD_TRACE_VARS): New macro to
+	conditionalize the variable which is only used for trace messages.
+	Automatically set by FT_DEBUG_LEVEL_TRACE.
+	(GXV_LOAD_UNUSED_VARS): New macro to conditionalize the loading of
+	unvalidated variables.  Undefined by default to calm gcc4.6 warning.
+	(GXV_ValidatorRec.{min_gid,max_gid}): New variables to hold defined
+	GID ranges, for the comparison of GID ranges in different subtables.
+
+2011-06-08  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Remove unused structure member.
+
+	* src/autofit/afhints.h (AF_SegmentRec): Remove `contour'.
+	* src/autofit/aflatin.c (af_latin_hints_compute_segments),
+	src/autofit/aflatin2.c (af_latin2_hints_compute_segments): Updated.
+
+2011-05-30  Werner Lemberg  <wl@gnu.org>
+
+	Fix g++ 4.6 compilation.
+
+	* src/autofit/afhints.c (af_glyph_hints_dump_segments,
+	af_glyph_hints_dump_edges): Use cast.
+
+2011-05-30  Werner Lemberg  <wl@gnu.org>
+
+	Fix gcc 4.6 compiler warnings.
+
+	* src/autofit/afcjk.c (af_cjk_metrics_init_blues): Use casts and
+	remove unused variables.
+	* src/autofit/aflatin.c (af_latin_hints_compute_edges): Comment out
+	`up_dir'.
+	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `height_org'
+	and `width_org' conditionalized.
+
+2011-05-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[mac] Conditionalize the inclusion of `AvailabilityMacros.h'.
+
+	The native SDK on earliest Mac OS X (10.0-10.1) did not have
+	`AvailabilityMacros.h'.  To prevent the inclusion of missing
+	header file, ECANCELED (introduced in 10.2) in POSIX header
+	file <errno.h> is checked to detect the system version.
+
+	* include/freetype/config/ftconfig.h: Conditionalize the
+	inclusion of `AvailabilityMacros.h'.
+	* builds/unix/ftconfig.in: Ditto.
+	* builds/vms/ftconfig.h: Ditto.
+
+2011-05-27  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Improve tracing of hinting process.
+
+	* src/autofit/aflatin.c (af_latin_hint_edges): Add tracing message
+	`ADJUST'.
+
+2011-05-26  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Fix trace message.
+
+	* src/autofit/aflatin.c (af_latin_hint_edges): Show correct value in
+	tracing message.
+
+2011-05-24  Daniel Zimmermann  <netzimme@googlemail.com>
+
+	Reduce warnings for MS Visual Studio 2010.
+
+	* src/autofit/afhints.c (af_glyph_hints_get_num_segments,
+	af_glyph_hints_get_segment_offset) [!FT_DEBUG_AUTOFIT]: Provide
+	return value.
+	* src/cff/cffgload.c (cff_slot_load): Add cast.
+	* src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): Use proper
+	loop variable type.
+
+2011-05-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Automake component `builds/unix/install-sh' is removed.
+
+	* builds/unix/install-sh: Removed.  It is not needed to
+	include repository, because autogen.sh installs it.
+	* builds/unix/.gitignore: Register install-sh.
+
+2011-05-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[autofit] Make trace message for CJK bluezone more verbose.
+
+2011-05-08  Just Fill Bugs  <mozbugbox@yahoo.com.au>
+            suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[autofit] Add bluezones for CJK Ideographs.
+
+	To remove extremas of vertical strokes of CJK Ideographs at
+	low resolution and make the top and bottom horizontal stems
+	aligned, bluezones for CJK Ideographs are calculated from
+	sample glyphs.  At present, vertical bluezones (bluezones
+	to align vertical stems) are disabled by default.  For detail, see
+	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00070.html
+	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00092.html
+	http://lists.gnu.org/archive/html/freetype-devel/2011-05/msg00001.html
+
+	* include/freetype/internal/fttrace.h: New trace component `afcjk'.
+	* src/autofit/afcjk.h (AF_CJK{Blue,Axis,Metric}Rec): Add CJK version
+	for AF_Latin{Blue,Axis,Metric}Rec.
+	(af_cjk_metrics_check_digits): Ditto, shared with Indic module.
+	(af_cjk_metrics_init_widths): Ditto.
+	(af_cjk_metrics_init): Take AF_CJKMetric instead of AF_LatinMetric.
+	(af_cjk_metrics_scale): Ditto (declaration).
+	(af_cjk_hints_init): Ditto (declaration).
+	(af_cjk_hints_apply): Ditto (declaration).
+	* src/autofit/afcjk.c (af_cjk_metrics_scale): Ditto (body).
+	(af_cjk_hints_init): Ditto (body).
+	(af_cjk_hints_apply): Ditto (body).
+	(af_cjk_metrics_init_widths): Duplicate af_latin_metrics_init_widths.
+	(af_cjk_metrics_check_digits): Duplicate af_latin_metrics_check_digits.
+	(af_cjk_metrics_init): Call CJK bluezone initializer.
+	(af_cjk_metrics_scale_dim): Add code to scale bluezones.
+	(af_cjk_hints_compute_blue_edges): New function, CJK version of
+	af_latin_hints_compute_blue_edges.
+	(af_cjk_metrics_init_blues): New function, CJK version of
+	af_latin_metrics_init_blues.
+	(af_cjk_hints_edges): Add code to align the edge stems to blue zones.
+
+	* src/autofit/afindic.c (af_indic_metrics_init): Take AF_CJKMetric
+	instead of AF_LatinMetric, and initialize as af_cjk_metrics_init.
+	However bluezones are not initialized.
+	(af_indic_metrics_scale): Take AF_CJKMetric instead of AF_LatinMetric.
+	(af_indic_hints_init): Ditto.
+	(af_indic_hints_apply): Ditto.
+
+	* docs/CHANGES: Note about CJK bluezone support.
+
+2011-05-06  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Remove unused struct member.
+
+	* src/autofit/aflatin.h (AF_LatinAxis): Remove `control_overshoot'.
+
+2011-05-04  Werner Lemberg  <wl@gnu.org>
+
+	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Simplify.
+
+2011-05-01  Just Fill Bugs  <mozbugbox@yahoo.com.au>
+            Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Add more debugging functions.
+
+	* src/autofit/afhints.c (af_glyph_hints_get_num_segments,
+	af_glyph_hints_get_segment_offset): New functions.
+
+2011-05-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Add new option `--disable-mmap' to configure script.
+
+	* builds/unix/configure.raw: New option `--disable-mmap'
+	is added.  It is for the developers to simulate the systems
+	without mmap() (like 4.3BSD, minix etc) on POSIX systems.
+
+2011-04-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[truetype] Always recalculate the sfnt table checksum.
+
+	* src/truetype/ttobjs.c (tt_get_sfnt_checksum): Recalculate
+	the sfnt table checksum even if non-zero value is written in
+	the TrueType font header.  Some bad PDF generators write
+	wrong values.  For details see examples and benchmark tests
+	of the latency by recalculation:
+	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00091.html
+	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00096.html
+
+2011-04-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[truetype] Register a set of tricky fonts, NEC FA family.
+
+	* src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids):
+	Add 8 checksum sets for NEC FA family.  For the tricky fonts
+	without some tables (e.g. NEC FA fonts lack cvt table),
+	extra check is added to assure that a zero-length table in the
+	registry is not included in the font.
+
+2011-04-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[truetype] Fix a bug in the sfnt table checksum getter.
+
+	* src/truetype/ttobjs.c (tt_get_sfnt_checksum): Check the
+	return value of face->goto_table() correctly.
+
+2011-04-28  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Improve tracing messages.
+
+	* src/autofit/aflatin.c (af_latin_metrics_init_blues,
+	af_latin_align_linked_edge, af_latin_hint_edges): Do it.
+
+2011-04-25  Kan-Ru Chen  <kanru@kanru.info>
+
+	[truetype] Always check the checksum to identify tricky fonts.
+
+	Because some PDF generators mangle the family name badly,
+	the trickyness check by the checksum should be invoked always.
+	For sample PDF, see
+	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html
+
+	* src/truetype/ttobjs.c (tt_check_trickyness): Even when
+	tt_check_trickyness_family() finds no trickyness,
+	tt_check_trickyness_sfnt_ids() is invoked.
+
+2011-04-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[autofit] Add more Indic scripts with hanging baseline.
+
+	* src/autofit/afindic.c (af_indic_uniranges): Tibetan, Limbu,
+	Sundanese, Meetei Mayak, Syloti Nagri and Sharada scripts are
+	added.
+
+2011-04-21  Behdad Esfahbod  <behdad@behdad.org>
+
+	Always ignore global advance.
+
+	This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant,
+	deprecated, and ignored.  The new behavior is what every major user
+	of FreeType has been requesting.  Global advance is broken in many
+	CJK fonts.  Just ignoring it by default makes most sense.
+
+	* src/truetype/ttdriver.c (tt_get_advances),
+	src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics,
+	tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph),
+	src/truetype/ttgload.h: Implement it.
+
+	* docs/CHANGES: Updated.
+
+2011-04-21  rainy6144  <rainy6144@gmail.com>
+
+	[autofit] Blur CJK stems if too many to preserve their gaps.
+
+	When there are too many stems to preserve their gaps in the
+	rasterization of CJK Ideographs at a low resolution, blur the
+	stems instead of showing clumped stems.  See
+	http://lists.gnu.org/archive/html/freetype-devel/2011-02/msg00011.html
+	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00046.html
+	for details.
+
+	* src/autofit/afcjk.c (af_cjk_hint_edges): Store the position of
+	the previous stem by `has_last_stem' and `last_stem_pos', and skip
+	a stem if the current and previous stem are too near to preserve
+	the gap.
+
+2011-04-18  Werner Lemberg  <wl@gnu.org>
+
+	Integrate autofitter debugging stuff.
+
+	* devel/ftoption.h, include/freetype/config/ftoption.h
+	(FT_DEBUG_AUTOFIT): New macro.
+
+	* include/freetype/internal/fttrace.h: Add trace components for
+	autofitter.
+
+	* src/autofit/aftypes.h (AF_LOG): Removed.
+	(_af_debug): Removed.
+
+	* src/autofit/*: s/AF_DEBUG/FT_DEBUG_AUTOFIT/.
+	s/AF_LOG/FT_TRACE5/.
+	Define FT_COMPONENT where necessary.
+
+2011-04-18  Werner Lemberg  <wl@gnu.org>
+
+	Synchronize config files.
+
+	* builds/unix/ftconfig.in: Copy missing assembler routines from
+	include/freetype/config/ftconfig.h.
+
+2011-04-13  Werner Lemberg  <wl@gnu.org>
+
+	Fix Savannah bug #33047.
+
+	Patch submitted by anonymous reporter.
+
+	* src/psaux/psobjs.c (ps_table_add): Use FT_PtrDist for pointer
+	difference.
+
+2011-04-11  Kan-Ru Chen  <kanru@kanru.info>
+
+	Fix reading of signed integers from files on 64bit platforms.
+
+	Previously, signed integers were converted to unsigned integers, but
+	this can fail because of sign extension.  For example, 0xa344a1eb
+	becomes 0xffffffffa344a1eb.
+
+	We now do the reverse which is always correct because the integer
+	size is the same during the cast from unsigned to signed.
+
+	* include/freetype/internal/ftstream.h, src/base/ftstream.c
+	(FT_Stream_Get*): Replace with...
+	(FT_Stream_GetU*): Functions which read unsigned integers.
+	Update all macros accordingly.
+
+	* src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Updated.
+
+2011-04-07  Werner Lemberg  <wl@gnu.org>
+
+	Update Unicode ranges for CJK autofitter; in particular, add Hangul.
+
+	* src/autofit/afcjk.c (af_cjk_uniranges): Update to Unicode 6.0.
+
+2011-04-04  Werner Lemberg  <wl@gnu.org>
+
+	Fix formatting of autofit debug dumps.
+
+	* src/autofit/afhints.c (af_glyph_hints_dump_points,
+	af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Adjust
+	column widths.
+
+2011-03-30  Werner Lemberg  <wl@gnu.org>
+
+	* src/autofit/aftypes.h (AF_OutlineRec): Removed, unused.
+
+2011-03-24  Werner Lemberg  <wl@gnu.org>
+
+	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 256.
+	This limit is given on p. 37 of Adobe Technical Note #5014.
+
+2011-03-23  Werner Lemberg  <wl@gnu.org>
+
+	* src/truetype/ttpload.c (tt_face_load_loca): Fix mismatch warning.
+
+2011-03-20  Werner Lemberg  <wl@gnu.org>
+
+	* src/sfnt/sfobjs.c (sfnt_open_font): Check number of TTC subfonts.
+
+2011-03-19  Werner Lemberg  <wl@gnu.org>
+
+	More C++ compilation fixes.
+
+	* src/autofit/afhints.c (af_glyph_hints_dump_points,
+	af_glyph_hints_dump_segments, af_glyph_hints_dump_edges)
+	[__cplusplus]: Protect with `extern "C"'.
+
+2011-03-18  Werner Lemberg  <wl@gnu.org>
+
+	C++ compilation fixes.
+
+	* src/autofit/aflatin.c (af_latin_hints_apply), src/autofit/afcjk.c
+	(af_cjk_hints_apply): Use cast for `dim'.
+
+2011-03-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	A better fix for Savannah bug #32671.
+
+	* src/smooth/ftgrays.c (gray_render_conic): Clean up code and
+	replace WHILE loop with a more natural DO-WHILE construct.
+
+2011-03-16  Werner Lemberg  <wl@gnu.org>.
+
+	* src/base/ftstroke.c (FT_StrokerRec): Remove unused `valid' field.
+	Suggested by Graham Asher.
+
+2011-03-09  Werner Lemberg  <wl@gnu.org>
+
+	Make FT_Sfnt_Table_Info return the number of SFNT tables.
+
+	* src/sfnt/sfdriver.c (sfnt_table_info): Implement it.
+	* include/freetype/tttables.h: Update documentation.
+	* docs/CHANGES: Updated.
+
+2011-03-07  Bram Tassyns  <bramt@enfocus.be>
+
+	Fix Savannah bug #27988.
+
+	* src/cff/cffobjs.c (remove_style): New function.
+	(cff_face_init): Use it to strip off the style part of the family
+	name.
+
+2011-03-07  Werner Lemberg  <wl@gnu.org>
+
+	* docs/CHANGES: Updated.
+
+2011-03-07  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	Quick fix for Savannah bug #32671.
+
+	This isn't the optimal solution yet, but it restores the previous
+	rendering quality (more or less).
+
+	* src/smooth/ftgrays.c (gray_render_conic): Do more splitting.
+
+2011-03-06  Werner Lemberg  <wl@gnu.org>
+
+	Fix autohinting fallback.
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Assure that we only check TTFs,
+	ignoring CFF-based OTFs.
+
+2011-02-27  Werner Lemberg  <wl@gnu.org>
+
+	Add AF_CONFIG_OPTION_USE_WARPER to control the autofit warper.
+
+	* devel/ftoption.h, include/freetype/config/ftoption.h
+	(AF_CONFIG_OPTION_USE_WARPER): New macro.
+	* src/autofit/aftypes.h (AF_USE_WARPER): Remove.
+
+	* src/autofit/*: s/AF_USE_WARPER/AF_CONFIG_OPTION_USE_WARPER/.
+
+	* src/autofit/afwarp.c [!AF_CONFIG_OPTION_USE_WARPER]: Replace dummy
+	variable assignment with a typedef.
+
+2011-02-26  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Slight simplifications.
+
+	* src/autofit/aflatin.c (af_latin_hints_link_segments): Remove
+	test which always returns false.
+	(af_latin_hints_compute_blue_edges): Remove redundant assignment.
+
+2011-02-24  Werner Lemberg  <wl@gnu.org>
+
+	* docs/PROBLEMS: Mention rendering differences on different
+	platforms.
+	Suggested and worded by Jason Owen <jason.a.owen@gmail.com>.
+
+2011-02-24  Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Comment out unused code.
+
+	* src/autofit/aflatin.c, src/autofit/aflatin2.c
+	(af_latin_hints_compute_edges): Do it.
+
+2011-02-24  Werner Lemberg  <wl@gnu.org>
+
+	* src/autofit/afhints.h (AF_GlyphHints): Remove unused field.
+
+2011-02-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[cache] Fix an off-by-one bug in `FTC_Manager_RemoveFaceID'.
+	Found by <ychen1392001@yahoo.com.cn>, see detail in
+
+	  http://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html
+
+	* src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Check the node
+	buckets[cache->p + cache->mask] too.
+
+2011-02-19  Kevin Kofler  <kevin.kofler@chello.at>
+
+	Fall back to autohinting if a TTF/OTF doesn't contain any bytecode.
+	This is Savannah patch #7471.
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Implement it.
+
+2011-02-19  John Tytgat  <John.Tytgat@esko.com>
+
+	[cff] Fix subset prefix removal.
+	This is Savannah patch #7465.
+
+	* src/cff/cffobjs.c (remove_subset_prefix): Update length after
+	subset prefix removal.
+
+2011-02-13  Bradley Grainger  <bgrainger@logos.com>
+
+	Add inline assembly version of FT_MulFix for MSVC.
+
+	* include/freetype/config/ftconfig.h: Ported the FT_MulFix_i386
+	function from GNU inline assembly syntax (see #ifdef __GNUC__ block
+	above) to MASM syntax for Microsoft Visual C++.
+
+2011-02-13  Bradley Grainger  <bgrainger@logos.com>
+
+	Add project and solution files in Visual Studio 2010 format.
+
+	* builds/win32/.gitignore: Ignore user-specific cache files.
+	* builds/win32/vc2010/: Add VS2010 project & solution files, created
+	by upgrading builds/win32/vc2008/freetype.vcproj.
+	* objs/.gitignore: Ignore Visual Studio output files.
+
+2011-02-01  Werner Lemberg  <wl@gnu.org>
+
+	* src/autofit/afdummy.c: Include `aferrors.h'.
+	Problem reported by Chris Liddell <chris.liddell@artifex.com>.
+
+2011-02-01  Werner Lemberg  <wl@gnu.org>
+
+	[cff] Ignore unknown operators in charstrings.
+	Patch suggested by Miles.Lau <sunliang_liu@foxitsoftware.com>.
+
+	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Emit tracing
+	message for unknown operators and continue instead of exiting with a
+	syntax error.
+
+2011-02-01  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] FT_LOAD_PEDANTIC now affects `prep' and `fpgm' also.
+
+	* src/truetype/ttgload.c (tt_loader_init): Handle
+	`FT_LOAD_PEDANTIC'.
+	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
+	tt_size_init_bytecode, tt_size_ready_bytecode): New argument to
+	handle pedantic mode.
+	* src/truetype/ttobjs.h: Updated.
+
+2011-01-31  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Protect jump instructions against endless loops.
+
+	* src/truetype/interp.c (DO_JROT, DO_JMPR, DO_JROF): Exit with error
+	if offset is zero.
+
+2011-01-31  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Improve handling of invalid references.
+
+	* src/truetype/interp.c: Set even more TT_Err_Invalid_Reference
+	error codes only if pedantic hinting is active.  At the same time,
+	try to provide sane values which hopefully allow useful
+	continuation.  Exception to this is CALL and LOOPCALL – due to
+	possible stack corruption it is necessary to bail out.
+
+2011-01-31  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Improve handling of stack underflow.
+
+	* src/truetype/ttinterp.c (TT_RunIns, Ins_FLIPPT, Ins_DELTAP,
+	Ins_DELTAC): Exit with error only if `pedantic_hinting' is set.
+	Otherwise, try to do something sane.
+
+2011-01-30  Werner Lemberg  <wl@gnu.org>
+
+	* src/sfnt/ttmtx.c (tt_face_load_hmtx): Fix tracing message.
+
+2011-01-30  LIU Sun-Liang  <sunliang_liu@foxitsoftware.com>
+
+	[truetype]: Fix behaviour of MIAP for invalid arguments.
+
+	* src/truetype/ttinterp.c (Ins_MIAP): Set reference points even in
+	case of error.
+
+2011-01-18  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Fix handling of MIRP instruction.
+
+	Thanks to Greg Hitchcock who explained the issue.
+
+	* src/truetype/ttinterp.c (Ins_MIRP): Replace a `>=' operator with
+	`>' since the description in the specification is incorrect.
+	This fixes, for example, glyph `two' in font `Helvetica Neue LT Com
+	65 medium' at 15ppem.
+
+2011-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Fix ARM assembly code in include/freetype/config/ftconfig.h.
+
+	* include/freetype/config/ftconfig.h (FT_MulFix_arm):
+	Copy the maintained code from builds/unix/ftconfig.in.
+	Old GNU binutils could not accept the reduced syntax
+	`orr %0, %2, lsl #16'.  Un-omitted syntax like RVCT,
+	`orr %0, %0, %2, lsl #16' is better.  Reported by
+	Johnson Y. Yan.  The bug report by Qt developers is
+	considered too.
+
+	http://bugreports.qt.nokia.com/browse/QTBUG-6521
+
+2011-01-15  Werner Lemberg  <wl@gnu.org>
+
+	[raster] Make bbox handling the same as with Microsoft's rasterizer.
+
+	Right before B/W rasterizing, the bbox gets simply rounded to
+	integers.  This fixes, for example, glyph `three' in font `Helvetica
+	Neue LT Com 65 Medium' at 11ppem.
+
+	Thanks to Greg Hitchcock who explained this behaviour.
+
+	* src/raster/ftrend1.c (ft_raster1_render): Implement it.
+
+2011-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Copy -mcpu=* & -march=* options from CFLAGS to LDFLAGS.
+
+	* builds/unix/configure.raw: Consider recent gcc-standard
+	flags to specify architecture in CFLAGS & LDFLAGS
+	harmonization.  Requested by Savannah bug #32114, to
+	support multilib feature of BuildRoot SDK correctly.
+
+2011-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Fix off-by-one bug in CFLAGS & LDFLAGS harmonizer.
+
+	* builds/unix/configure.raw: Some important options that
+	included in CFLAGS but not in LDFLAGS are copied to
+	LDFLAGS, but the last option in CFLAGS was not checked.
+
+2011-01-13  Werner Lemberg  <wl@gnu.org>
+
+	[raster] Add undocumented drop-out rule to the other bbox side also.
+
+	* src/raster/ftraster.c (Vertical_Sweep_Drop,
+	Horizontal_Sweep_Drop): Implement it.
+
+2011-01-13  Werner Lemberg  <wl@gnu.org>
+
+	[raster] Reduce jitter value.
+
+	This catches a rendering problem with glyph `x' from Tahoma at
+	10ppem.  It seems that the increase of the precision in the change
+	from 2009-06-11 makes a larger jitter value unnecessary.
+
+	* src/raster/ftraster.c (Set_High_Precision): Implement it.
+
+2011-01-13  Werner Lemberg  <wl@gnu.org>
+
+	[raster] Handle drop-outs at glyph borders according to Microsoft.
+
+	If a drop-out rule would switch on a pixel outside of the glyph's
+	bounding box, use the right (or top) pixel instead.  This is an
+	undocumented feature, but some fonts like `Helvetica Neue LT Com 65
+	Medium' heavily rely on it.
+
+	Thanks to Greg Hitchcock who explained this behaviour.
+
+	* src/raster/ftraster.c (Vertical_Sweep_Drop,
+	Horizontal_Sweep_Drop): Implement it.
+
+2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[cache] Fix Savannah bug #31923, patch drafted by Harsha.
+
+	When a node comparator changes the cached nodes during the
+	search of a node matching with queried properties, the
+	pointers obtained before the function should be updated to
+	prevent the dereference to freed or reallocated nodes.
+	To minimize the rescan of the linked list, the update is
+	executed when the comparator notifies the change of cached
+	nodes. This change depends previous change:
+	38b272ffbbdaae276d636aec4ef84af407d16181
+
+	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Rescan the
+	top node if the cached nodes are changed.
+	* src/cache/ftccache.c (FTC_Cache_Lookup): Ditto.
+
+2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[cache] Notice if a cache query induced the node list change.
+
+	Some node comparators (comparing the cache node contents and the
+	properties specified by the query) can flush the cache node to
+	prevent the cache inflation.  The change may invalidate the pointers
+	to the node obtained before the node comparison, so it should be
+	noticed to the caller.  The problem caused by the cache node
+	changing is reported by Harsha, see Savannah bug #31923.
+
+	* src/cache/ftccache.h (FTC_Node_CompareFunc): Add new argument
+	`FT_Bool* list_changed' to indicate the change of the cached nodes
+	to the caller.
+	(FTC_CACHE_LOOKUP_CMP): Watch the change of the cached nodes by
+	`_list_changed'.
+	(FTC_CACHE_TRYLOOP_END): Take new macro argument `_list_changed'
+	and update it when `FTC_Manager_FlushN' flushes any nodes.
+
+	* src/cache/ftccback.h (ftc_snode_compare): Updated to fit with new
+	FTC_Node_CompareFunc type.
+	(ftc_gnode_compare): Ditto.
+
+	* src/cache/ftcbasic.c: Include FT_INTERNAL_OBJECTS_H to use
+	TRUE/FALSE macros.
+	(ftc_basic_gnode_compare_faceid): New argument `FT_Bool*
+	list_changed' to indicate the change of the cache nodes (anyway, it
+	is always FALSE).
+
+	* src/cache/ftccmap.c: Include FT_INTERNAL_OBJECTS_H to use
+	TRUE/FALSE macros.
+	(ftc_cmap_node_compare): New argument `FT_Bool* list_changed' to
+	indicate the change of the cache nodes (anyway, it is always FALSE).
+	(ftc_cmap_node_remove_faceid): Ditto.
+
+	* src/cache/ftccache.c (FTC_Cache_NewNode): Pass a NULL pointer to
+	`FTC_CACHE_TRYLOOP_END', because the result is not needed.
+	(FTC_Cache_Lookup): Watch the change of the cache nodes by
+	`list_changed'.
+	(FTC_Cache_RemoveFaceID): Ditto.
+
+	* src/cache/ftcglyph.c: Include FT_INTERNAL_OBJECTS_H to use
+	TRUE/FALSE macros.
+	(ftc_gnode_compare): New argument `FT_Bool* list_changed' to
+	indicate the change of the cache nodes (anyway, it is always FALSE).
+	(FTC_GNode_Compare): New argument `FT_Bool* list_changed' to be
+	passed to `ftc_gnode_compare'.
+	* src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto.
+
+	* src/cache/ftcsbits.c (ftc_snode_compare): New argument `FT_Bool*
+	list_changed' to indicate the change of the cache nodes, anyway.  It
+	is updated by `FTC_CACHE_TRYLOOP'.
+	(FTC_SNode_Compare): New argument `FT_Bool* list_changed' to be
+	passed to `ftc_snode_compare'.
+	* src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto.
+
+2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[cache] Fit `FTC_GNode_Compare' to `FTC_Node_CompareFunc'.
+
+	* src/cache/ftcglyph.h (FTC_GNode_Compare): Add the 3rd
+	argument `FTC_Cache  cache' to fit FTC_Node_CompareFunc
+	prototype.
+	* src/cache/ftcglyph.c (FTC_GNode_Compare): Ditto. Anyway,
+	`cache' is not used by its child `ftc_gnode_compare'.
+
+2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[cache] Deduplicate the code to get the top node by a hash.
+
+	There are several duplicated code fragments getting the top node
+	from a cache by a given hash, like:
+
+	    idx = hash & cache->mask;
+	    if ( idx < cache->p )
+	      idx = hash & ( cache->mask * 2 + 1 );
+	    pnode = cache->buckets + idx;
+
+	To remove duplication, a cpp-macro to do same work
+	`FTC_NODE__TOP_FOR_HASH' is introduced.  For non-inlined
+	configuration, non-`ftc_get_top_node_for_hash' is also introduced.
+
+	* src/cache/ftccache.h (FTC_NODE__TOP_FOR_HASH): Declare
+	and implement inlined version.
+	(FTC_CACHE_LOOKUP_CMP): Use `FTC_NODE__TOP_FOR_HASH'.
+	* src/cache/ftccache.c (ftc_get_top_node_for_hash): Non-inlined
+	version.
+	(ftc_node_hash_unlink): Use `FTC_NODE__TOP_FOR_HASH'.
+	(ftc_node_hash_link): Ditto.
+	(FTC_Cache_Lookup): Ditto.
+
+2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[cache] inline-specific functions are conditionalized.
+
+	* src/cache/ftcglyph.c (FTC_GNode_Compare): Conditionalized for
+	inlined configuration.  This function is a thin wrapper of
+	`ftc_gnode_compare' for inlined `FTC_CACHE_LOOKUP_CMP' (see
+	`nodecmp' argument).  Under non-inlined configuration,
+	`ftc_gnode_compare' is invoked by `FTC_Cache_Lookup', via
+	`FTC_Cache->clazz.node_compare'.
+
+	* src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto.
+	* src/cache/ftcsbits.c (FTC_SNode_Compare): Ditto, for
+	`ftc_snode_compare'.
+	* src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto.
+
+2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[cache] Correct a type mismatch under non-inlined config.
+
+	* src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): `FTC_GCache_Lookup'
+	takes the node via a pointer `FTC_Node*', differently from cpp-macro
+	`FTC_CACHE_LOOKUP_CMP'.
+
+2011-01-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Update Jamfile to include Bzip2 support.
+
+	* Jamfile: Include src/bzip2 to project.
+	Comments for lzw, gzip, bzip2 are changed to clarify that
+	they are for compressed PCF fonts, not others.
+	(e.g. compressed BDF fonts are not supported yet)
+
+2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Update Symbian project files to include Bzip2 support.
+
+	Currently, it provides `FT_Stream_OpenBzip2' that returns
+	unimplemented error always, to prevent unresolved symbol
+	error for the applications designed for Unix systems.
+
+	* builds/symbian/bld.inf: Include ftbzip2.h.
+	* builds/symbian/freetype.mmp: Include ftbzip2.c.
+
+2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Update classic MacOS makefiles to include Bzip2 support.
+
+	Currently, it provides `FT_Stream_OpenBzip2' that returns
+	unimplemented error always, to prevent unresolved symbol
+	error for the applications designed for Unix systems.
+
+	* builds/mac/FreeType.m68k_cfm.make.txt: Include ftbzip2.c.o.
+	* builds/mac/FreeType.m68k_far.make.txt: Ditto.
+	* builds/mac/FreeType.ppc_carbon.make.txt: Include ftbzip2.c.x.
+	* builds/mac/FreeType.ppc_classic.make.txt: Ditto.
+
+2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Update Amiga makefiles to include Bzip2 support.
+
+	Currently, it provides `FT_Stream_OpenBzip2' that returns
+	unimplemented error always, to prevent unresolved symbol
+	error for the applications designed for Unix systems.
+
+	* builds/amiga/makefile: Include bzip2.ppc.o built from ftbzip2.c.
+	* builds/amiga/makefile.os4: Include bzip2.o built from ftbzip2.c.
+	* builds/amiga/smakefile: Ditto.
+
+2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Update pkg-config tools to reflect Bzip2 support.
+
+	* builds/unix/freetype-config.in: Include `-lbz2' to
+	--libs output, if built with Bzip2 support.
+	* builds/unix/freetype2.in: Ditto.
+
+2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	* builds/unix/configure.raw: Remove `SYSTEM_BZ2LIB' macro.
+
+	SYSTEM_ZLIB is used to switch the builtin zlib source
+	or system zlib source out of FreeType2.  But ftbzip2
+	module has no builtin bzip2 library and always requires
+	system bzip2 library.  Thus SYSTEM_BZ2LIB is always yes,
+	it is not used.
+
+2011-01-03  Werner Lemberg  <wl@gnu.org>
+
+	*/rules.mk: Handle `*pic.c' files.
+
+2010-12-31  Werner Lemberg  <wl@gnu.org>
+
+	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 64.
+	Problem reported by Tom Bishop <wenlin@wenlin.com>.
+
+2010-12-31  Werner Lemberg  <wl@gnu.org>
+
+	Improve bzip2 support.
+
+	* include/freetype/ftmoderr.h: Add bzip2.
+
+	* docs/INSTALL.ANY, docs/CHANGES: Updated.
+
+	* src/pcf/README: Updated.
+	* include/freetype/internal/pcftypes.h: Obsolete, removed.
+
+2010-12-31  Joel Klinghed  <the_jk@yahoo.com>
+
+	Add bzip2 compression support to handle *.pcf.bz2 files.
+
+	* builds/unix/configure.raw: Test for libbz2 library.
+
+	* devel/ftoption.h, include/freetype/config/ftoption.h
+	(FT_CONFIG_OPTION_USE_BZIP2): Define.
+	* include/freetype/config/ftheader.h (FT_BZIP2_H): Define.
+
+	* include/freetype/ftbzip2.h: New file.
+
+	* src/bzip2/*: New files.
+
+	* src/pcf/pcf.h: s/gzip_/comp_/.
+	* src/pcf/pcfdrvr.c: Include FT_BZIP2_H.
+	s/gzip_/comp_/.
+	(PCF_Face_Init): Handle bzip2 compressed files.
+
+	* docs/formats.txt, modules.cfg: Updated.
+
+2010-12-25  Harsha  <mm.harsha@gmail.com>
+
+	Apply Savannah patch #7422.
+
+	If we encounter a space in a string then the sbit buffer is NULL,
+	height and width are 0s.  So the check in ftc_snode_compare will
+	always pass for spaces (comparision with 255).  Here the comments
+	above the condition are proper but the implementation is not.  When
+	we create an snode I think it is the proper way to initialize the
+	width to 255 and then put a check for being equal to 255 in snode
+	compare function.
+
+	* src/cache/ftcsbits.c (FTC_SNode_New): Initialize sbit widths with
+	value 255.
+	(ftc_snode_compare): Fix condition.
+
+2010-12-13  Werner Lemberg  <wl@gnu.org>
+
+	Fix parameter handling of `FT_Set_Renderer'.
+	Reported by Kirill Tishin <siege@bk.ru>.
+
+	* src/base/ftobjs.c (FT_Set_Renderer): Increment `parameters'.
+
+2010-12-09  Werner Lemberg  <wl@gnu.org>
+
+	[cff] Allow `hlineto' and `vlineto' without arguments.
+
+	We simply ignore such instructions.  This is invalid, but it doesn't
+	harm; and indeed, there exist such subsetted fonts in PDFs.
+
+	Reported by Albert Astals Cid <aacid@kde.org>.
+
+	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
+	[cff_op_hlineto]: Ignore instruction if there aren't any arguments
+	on the stack.
+
+2010-11-28  Werner Lemberg  <wl@gnu.org>
+
+	* Version 2.4.4 released.
+	=========================
+
+
+	Tag sources with `VER-2-4-4'.
+
+	* docs/CHANGES: Updated.
+
+	* docs/VERSION.DLL: Update documentation and bump version number to
+	2.4.4
+
+	* README, Jamfile (RefDoc),
+	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
+	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
+	builds/win32/visualc/freetype.dsp,
+	builds/win32/visualc/freetype.vcproj,
+	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
+	builds/win32/visualce/freetype.vcproj,
+	builds/win32/visualce/index.html,
+	builds/wince/vc2005-ce/freetype.vcproj,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/freetype.vcproj,
+	builds/wince/vc2008-ce/index.html: s/2.4.3/2.4.4/, s/243/244/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
+
+	* builds/unix/configure.raw (version_info): Set to 12:2:6.
+
+2010-11-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	[ftsmooth]: Minor code simplification.
+
+	* src/smooth/ftgrays (gray_render_cubic): Do only one comparison
+	instead of two.
+
+2010-11-26  Johnson Y. Yan  <yinsen_yan@foxitsoftware.com>
+
+	[truetype] Better multi-threading support.
+
+	* src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone
+	references.
+
+2010-11-23  John Tytgat  <John.Tytgat@esko.com>
+
+	* src/psaux/t1decode.c (t1_decoder_parse_charstring): Expand
+	start_point, check_points, add_point, add_point1, close_contour
+	macros.
+	Remove add_contour macro.
+	Return error code from t1_builder_start_point and
+	t1_builder_check_points when there was one (instead of returning 0).
+
+2010-11-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[truetype] Identify the tricky fonts by cvt/fpgm/prep checksums.
+	Some Latin TrueType fonts are still expected to be unhinted.
+	Fix Savannah bug #31645.
+
+	* src/truetype/ttobjs.c (tt_check_trickyness): Divided to...
+	(tt_check_trickyness_family): this checking family name, and
+	(tt_check_trickyness_sfnt_ids): this checking cvt/fpgm/prep.
+	(tt_get_sfnt_checksum): Function to retrieve the sfnt checksum
+	for specified subtable even if cleared by lazy PDF generators.
+	(tt_synth_sfnt_checksum): Function to calculate the checksum.
+
+2010-11-18  Werner Lemberg  <wl@gnu.org>
+
+	[truetype] Fix `loca' handling for inconsistent number of glyphs.
+	Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>.
+
+	* src/truetype/ttpload.c (tt_face_load_loca): While sanitizing,
+	handle case where `loca' is the last table in the font.
+
+2010-11-18  Werner Lemberg  <wl@gnu.org>
+
+	[sfnt] Ignore all errors while loading `OS/2' table.
+	Suggested by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>.
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Do it.
+
+2010-11-18  Johnson Y. Yan  <yinsen_yan@foxitsoftware.com>
+
+	[type1] Fix matrix normalization.
+
+	* src/type1/t1load.c (parse_font_matrix): Handle sign of scaling
+	factor.
+
+2010-11-18  Werner Lemberg  <wl@gnu.org>
+
+	[type1] Improve guard against malformed data.
+	Based on a patch submitted by Johnson Y. Yan
+	<yinsen_yan@foxitsoftware.com>
+
+	* src/type1/t1load.c (read_binary_data): Check `size'.
+
+2010-11-17  Werner Lemberg  <wl@gnu.org>
+
+	[sfnt] While tracing, output table checksums also.
+
+	* src/sfnt/ttload.c (tt_face_load_font_dir): Do it.
+
+2010-11-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[UVS] Fix `find_variant_selector_charmap', Savannah bug #31545.
+
+	Since 2010-07-04, `find_variant_selector_charmap' returns
+	the first cmap subtable always under rogue-compatible
+	configuration, it causes NULL pointer dereference and
+	make UVS-related functions crashed.
+
+	* src/base/ftobjs.c (Fix find_variant_selector_charmap):
+	Returns UVS cmap correctly.
+
+2010-11-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	[ftsmooth] Improve rendering.
+
+	* src/smooth/ftsmooth.c (gray_render_conic): Since version 2.4.3,
+	cubic deviations have been estimated _after_ UPSCALE, whereas
+	conic ones have been evaluated _before_ UPSCALE, which produces
+	inferior rendering results.  Fix this.
+	Partially undo change from 2010-10-15 by using ONE_PIXEL/4; this has
+	been tested with demo images sent to the mailing list.  See
+
+	  http://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html
+
+	and later mails in this thread.
+
+2010-10-28  Werner Lemberg  <wl@gnu.org>
+
+	[ftraster] Minor fixes.
+
+	Reported by Tom Bishop <wenlin@wenlin.com>.
+
+	* src/raster/ftraster.c (ULong): Remove unused typedef.
+	(TWorker): Remove unused variable `precision_mask'.
+
+2010-10-28  Werner Lemberg  <wl@gnu.org>
+
+	[ftraster] Fix rendering.
+
+	Problem reported by Tom Bishop <wenlin@wenlin.com>; see
+	thread starting with
+
+	  http://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html
+
+	* src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv
+	since the involved multiplication exceeds 32 bits.
+
+2010-10-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Revert a change of `_idx' type in `FTC_CACHE_LOOKUP_CMP'.
+
+	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Revert
+	the type of `_idx' from FT_PtrDist (by previous change)
+	to original FT_UFast, to match with FT_CacheRec.
+
+2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[cache] Change the hash types to FT_PtrDist.
+
+	On LLP64 platforms (e.g. Win64), FT_ULong (32-bit)
+	variables are inappropriate to calculate hash values
+	from the memory address (64-bit).  The hash variables
+	are extended from FT_ULong to FT_PtrDist and new
+	hashing macro functions are introduced.  The hash
+	values on 16-bit memory platforms are changed, but
+	ILP32 and LP64 are not changed.  The hash value in
+	the cache subsystem is not reverted to the memory
+	address, so using signed type FT_PtrDist is safe.
+
+	* src/cache/ftccache.h (_FTC_FACE_ID_HASH): New hash
+	function to replace `FTC_FACE_ID_HASH' for portability.
+	* src/cache/ftcmanag.h (FTC_SCALER_HASH): Replace
+	`FTC_FACE_ID_HASH' by `_FTC_FACE_ID_HASH'.
+	* src/cache/ftccmap.c (FTC_CMAP_HASH): Ditto.
+
+	* src/cache/ftccache.h (FTC_NodeRec): The type of the
+	member `hash' is changed from FT_UInt32 to FT_PtrDist.
+
+	* src/cache/ftccache.h (FTC_Cache_Lookup): The type of the
+	argument `hash' is changed from FT_UInt32 to FT_PtrDist.
+	(FTC_Cache_NewNode): Ditto.
+	* src/cache/ftccache.c (ftc_cache_add): Ditto.
+	(FTC_Cache_Lookup): Ditto.  (FTC_Cache_NewNode): Ditto.
+	* src/cache/ftcglyph.h (FTC_GCache_Lookup): Ditto.
+	* src/cache/ftcglyph.c (FTC_GCache_Lookup): Ditto.
+
+	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup): The type
+	of the internal variable `hash' is changed to FT_PtrDist
+	from FT_UInt32.  (FTC_ImageCache_LookupScaler): Ditto.
+	(FTC_SBitCache_Lookup): Ditto.
+	(FTC_SBitCache_LookupScaler): Ditto.
+	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Ditto.
+	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Ditto.
+	Also the type of the internal variable `_idx' is changed to
+	FT_PtrDist from FT_UFast for better pointer calculation.
+
+2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[cache] Hide internal macros incompatible with LLP64.
+
+	`FT_POINTER_TO_ULONG', `FTC_FACE_ID_HASH', and
+	`FTC_IMAGE_TYPE_HASH' are enclosed by
+	FT_CONFIG_OPTION_OLD_INTERNALS and hidden from
+	normal clients.
+
+	For the history of these macros, see the investigation:
+	http://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html
+
+2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Change the type of `FT_MEM_VAL' from FT_ULong to FT_PtrDist.
+
+	On LLP64 platforms (e.g. Win64), unsigned long (32-bit)
+	cannot cover the memory address (64-bit).  `FT_MEM_VAL' is
+	used for hashing only and not dereferred, so using signed
+	type FT_PtrDist is safe.
+
+	* src/base/ftdbgmem.c (FT_MEM_VAL): Change the type of the
+	return value from FT_ULong to FT_PtrDist.
+	(ft_mem_table_resize): The type of hash is changed to
+	FT_PtrDist.  (ft_mem_table_get_nodep): Ditto.
+
+2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Replace "%lx" for memory address by "%p", LLP64 platforms.
+
+	On LLP64 platforms (e.g. Win64), long (32-bit) cannot cover
+	the memory address (64-bit).  Also the casts from the pointer
+	type to long int should be removed to preserve the address
+	correctly.
+
+	* src/raster/ftraster.c (New_Profile): Replace "%lx" by "%p".
+	(End_Profile) Ditto.
+	* src/truetype/ttinterp.c (Init_Context): Ditto.
+
+2010-10-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+	Fix thinko in spline flattening.
+
+	FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL.
+
+	* src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and
+	replace it everywhere with ONE_PIXEL/8.
+
+2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[raccess] Skip unrequired resource access rules by Darwin VFS.
+
+	When a resource fork access rule by Darwin VFS could open the
+	resource fork but no font is found in it, the rest of rules
+	by Darwin VFS are skipped.  It reduces the warnings of the
+	deprecated resource fork access method by recent Darwin kernel.
+	Fix MacPorts ticket #18859:
+		http://trac.macports.org/ticket/18859
+
+	* src/base/ftobjs.c (load_face_in_embedded_rfork):
+	When `FT_Stream_New' returns FT_Err_Cannot_Open_Stream, it
+	means that the file is possible to be `fopen'-ed but zero-sized.
+	Also there is a case that the resource fork is not zero-sized,
+	but no supported font exists in it.  If a rule by Darwin VFS
+	falls into such cases, there is no need to try other Darwin VFS
+	rules anymore.  Such cases are marked by vfs_rfork_has_no_font.
+	If it is TRUE, the Darwin VFS rules are skipped.
+
+2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	[raccess] Grouping resource access rules based on Darwin VFS.
+
+	MacOS X/Darwin kernel supports a few tricky methods to access
+	a resource fork via ANSI C or POSIX interface.  Current resource
+	fork accessor tries all possible methods to support all kernels.
+	But if a method could open a resource fork but no font is found,
+	there is no need to try other methods older than tested method.
+	To determine whether the rule index is for Darwin VFS, a local
+	function `ftrfork.c::raccess_rule_by_darwin_vfs' is introduced.
+	To use this function in ftobjs.c etc but it should be inlined,
+	it is exposed by ftbase.h.
+
+	* src/base/ftrfork.c (FT_RFork_Rule): New enum type to identify
+	the rules to access the resource fork.
+	(raccess_guess_rec): New structure to bind the rule function and
+	rule enum type.
+	(FT_Raccess_Guess): The list of the rule functions is replaced by
+	(raccess_guess_table): This.  This is exposed to be used by other
+	intra module functions.
+	(raccess_rule_by_darwin_vfs): A function to return a boolean
+	if the rule specified by the rule index is based on Darwin VFS.
+
+2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+	Prevent to open a FT_Stream for zero-sized file on non-Unix.
+
+	builds/unix/ftsystem.c prevents to open an useless stream from
+	zero-sized file and returns FT_Err_Cannot_Open_Stream, but the
+	stream drivers for ANSI C, Amiga and VMS return useless streams.
+	For cross-platform consistency, all stream drivers should act
+	same.
+
+	* src/base/ftsystem.c (FT_Stream_Open): If the size of the opened
+	file is zero, FT_Err_Cannot_Open_Stream is returned.
+	* builds/amiga/src/base/ftsystem.c (FT_Stream_Open): Ditto.
+	* src/vms/ftsystem.c (FT_Stream_Open): Ditto.
+
 2010-10-12  Werner Lemberg  <wl@gnu.org>
 
 	Fix Savannah bug #31310.
 
 	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
 	invalid `runcnt' values.
 
+2010-10-08  Chris Liddell  <chris.liddell@artifex.com>
+
+	Fix Savannah bug #31275.
+
+	* src/sfnt/ttpost.c: Include FT_INTERNAL_DEBUG_H.
+
 2010-10-06  Werner Lemberg  <wl@gnu.org>
 
 	[truetype] Improve error handling of `SHZ' bytecode instruction.
 	Problem reported by Chris Evans <scarybeasts@gmail.com>.
 
 	* src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'.
 
+2010-10-05  Werner Lemberg  <wl@gnu.org>
+
+	Fix Savannah bug #31253.
+	Patch submitted by an anonymous reporter.
+
+	* configure: Use `awk' instead of `sed' to manipulate output of `ls
+	-id'.
+
 2010-10-03  Werner Lemberg  <wl@gnu.org>
 
 	* Version 2.4.3 released.
 	=========================
 
 
 	Tag sources with `VER-2-4-3'.
 
@@ -115,32 +2951,32 @@ 2010-09-19  Werner Lemberg  <wl@gnu.org>
 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
 	[cff] Truncate the element length at the end of the stream.
 	See Savannah bug #30975.
 
 	* src/cff/cffload.c (cff_index_access_element): `off2', the offset
 	to the next element is truncated at the end of the stream to prevent
 	invalid I/O.  As `off1', the offset to the requested element has
-	been checked by FT_STREAM_SEEK(), `off2' should be checked
+	been checked by `FT_STREAM_SEEK', `off2' should be checked
 	similarly.
 
 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
 	[cff] Ignore CID > 0xFFFFU.
 	See Savannah bug #30975.
 
 	* src/cff/cffload.c (cff_charset_compute_cids): Ignore CID if
 	greater than 0xFFFFU.  CFF font spec does not mention maximum CID in
 	the font, but PostScript and PDF spec define that maximum CID is
 	0xFFFFU.
 
 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-	[cff] Make trace message in cff_charset_load() verbose.
+	[cff] Make trace message in` cff_charset_load' verbose.
 	See Savannah bug #30975.
 
 	* src/cff/cffload.c (cff_charset_load): Report the original `nleft'
 	and truncated `nleft'.
 
 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
 	[cff] Correct `max_cid' from CID array length to max CID.
@@ -166,32 +3002,32 @@ 2010-09-19  suzuki toshiya  <mpsuzuki@hi
 	length at the end of `glyf' table.
 
 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
 	[sfnt] Prevent overrunning in `post' table parser.
 	See Savannah bug #31040.
 
 	* src/sfnt/ttpost.c (load_post_names): Get the length of `post'
-	table and pass the limit of `post' table to load_format_20() and
-	load_format_25().
+	table and pass the limit of `post' table to `load_format_20' and
+	`load_format_25'.
 	(load_format_20): Stop the parsing when we reached at the limit of
 	`post' table.  If more glyph names are required, they are filled by
 	NULL names.
 
 2010-09-17  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
 	[truetype] Don't duplicate size->twilight structure to be freed.
 	See Savannah bug #31040 for detail.
 
 	* src/truetype/ttinterp.c (free_buffer_in_size): Don't duplicate
 	FT_GlyphZoneRec size->twilight to be freed.  If duplicated,
-	FT_FREE() erases the duplicated pointers only and leave original
+	`FT_FREE' erases the duplicated pointers only and leave original
 	pointers.  They can cause the double-free crash when the burst
-	errors occur in TrueType interpreter and free_buffer_in_size() is
+	errors occur in TrueType interpreter and `free_buffer_in_size' is
 	invoked repeatedly.
 
 2010-09-15  Werner Lemberg  <wl@gnu.org>
 
 	Make bytecode debugging with FontForge work again.
 
 	* src/truetype/ttinterp.c (TT_RunIns): Don't call
 	`free_buffer_in_size' in case of error if a debugger is active.
@@ -238,17 +3074,17 @@ 2010-08-31  suzuki toshiya  <mpsuzuki@hi
 	FT_LIBTOOL_DIR is set to $(OBJ_DIR).
 
 2010-08-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
 	[truetype] Decrease the trace level catching the interpreter error.
 
 	* src/truetype/ttinterp.c (TT_RunIns): Decrease the trace level
 	showing the error when the interpreter returns with an error,
-	from FT_TRACE7() to FT_TRACE1().
+	from` FT_TRACE7' to `FT_TRACE1'.
 
 2010-08-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
 	[truetype] Prevent bytecode reuse after the interpretation error.
 
 	* src/truetype/ttinterp.c (free_buffer_in_size): New function to
 	free the buffer allocated during the interpretation of this glyph.
 	(TT_RunIns): Unset FT_Face->size->{cvt_ready,bytecode_ready} if
@@ -395,17 +3231,17 @@ 2010-08-05  Werner Lemberg  <wl@gnu.org>
 	string_size.
 	Fix comparison.
 
 2010-08-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
 	[cff] Don't use any values in decoder after parsing error.
 
 	* src/cff/cffgload.c (cff_slot_load): Skip the evaluations
-	of the values in decoder, if cff_decoder_parse_charstrings()
+	of the values in decoder, if `cff_decoder_parse_charstrings'
 	returns any error.
 
 2010-08-04  Werner Lemberg  <wl@gnu.org>
 
 	Fix Savannah bug #30644.
 
 	* src/base/ftstream.c (FT_Stream_EnterFrame): Fix comparison.
 
@@ -1219,17 +4055,17 @@ 2010-02-18  Chris Liddell  <chris.liddel
 	* src/truetype/ttgload.c (tt_get_metrics_incr_overrides)
 	[FT_CONFIG_OPTION_INCREMENTAL]: New function, split off from...
 	(tt_get_metrics): This.
 	Updated.
 	(load_truetype_glyph): Use tt_get_metrics_incr_overrides.
 
 ----------------------------------------------------------------------------
 
-Copyright 2010 by
+Copyright 2010-2012 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.
 
--- a/modules/freetype2/Jamfile
+++ b/modules/freetype2/Jamfile
@@ -1,11 +1,11 @@
 # FreeType 2 top Jamfile.
 #
-# Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 by
+# Copyright 2001-2011 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.
 
@@ -71,19 +71,20 @@ FT2_BUILD_INCLUDE ?= ;
 #            if you modify this list or provide your own.
 #
 FT2_COMPONENTS ?= autofit    # auto-fitter
                   base       # base component (public APIs)
                   bdf        # BDF font driver
                   cache      # cache sub-system
                   cff        # CFF/CEF font driver
                   cid        # PostScript CID-keyed font driver
-                  gzip       # support for gzip-compressed files
-                  lzw        # support for LZW-compressed files
                   pcf        # PCF font driver
+                  bzip2      # support for bzip2-compressed PCF font
+                  gzip       # support for gzip-compressed PCF font
+                  lzw        # support for LZW-compressed PCF font
                   pfr        # PFR/TrueDoc font driver
                   psaux      # common PostScript routines module
                   pshinter   # PostScript hinter module
                   psnames    # PostScript names handling
                   raster     # monochrome rasterizer
                   smooth     # anti-aliased rasterizer
                   sfnt       # SFNT-based format support routines
                   truetype   # TrueType font driver
@@ -189,15 +190,15 @@ rule RefDoc
 {
   Depends  $1 : all ;
   NotFile  $1 ;
   Always   $1 ;
 }
 
 actions RefDoc
 {
-  python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.4.3 --output=$(DOC_DIR) $(FT2_INCLUDE)/freetype/*.h $(FT2_INCLUDE)/freetype/config/*.h
+  python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.4.9 --output=$(DOC_DIR) $(FT2_INCLUDE)/freetype/*.h $(FT2_INCLUDE)/freetype/config/*.h
 }
 
 RefDoc  refdoc ;
 
 
 # end of top Jamfile
--- a/modules/freetype2/README
+++ b/modules/freetype2/README
@@ -1,39 +1,32 @@
-  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.4.3
+  FreeType 2.4.9
   ==============
 
   Please   read   the  docs/CHANGES   file,   it  contains   IMPORTANT
   INFORMATION.
 
   Read the files `docs/INSTALL' for installation instructions.
 
+  See the  file `docs/LICENSE.TXT'  for the available licenses.   Note
+  that we use ranges (`2008-2010') for copyright years also instead of
+  listing individual years (`2008, 2009, 2010').
+
   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.4.3.tar.bz2
-    freetype-doc-2.4.3.tar.gz
-    ftdoc243.zip
+    freetype-doc-2.4.9.tar.bz2
+    freetype-doc-2.4.9.tar.gz
+    ftdoc249.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
@@ -46,17 +39,17 @@
 
   Enjoy!
 
 
     The FreeType Team
 
 ----------------------------------------------------------------------
 
-Copyright 2006, 2007, 2008, 2009, 2010 by
+Copyright 2006-2011 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.
 
--- a/modules/freetype2/README.moz-patches
+++ b/modules/freetype2/README.moz-patches
@@ -1,6 +1,4 @@
-This directory contains freetype2 v2.4.3 downloaded from
+This directory contains freetype2 v2.4.9 downloaded from
 http://savannah.nongnu.org/download/freetype/
 
-Makefile.in is added for the mozilla build.
-
-Additional patch applied locally:
+There are currently no local changes applied the freetype tree.
old mode 100644
new mode 100755
--- a/modules/freetype2/autogen.sh
+++ b/modules/freetype2/autogen.sh
@@ -113,19 +113,22 @@ check_tool_version ()
 if test ! -f ./builds/unix/configure.raw; then
   echo "You must be in the same directory as \`autogen.sh'."
   echo "Bootstrapping doesn't work if srcdir != builddir."
   exit 1
 fi
 
 # On MacOS X, the GNU libtool is named `glibtool'.
 HOSTOS=`uname`
-LIBTOOLIZE=libtoolize
-if test "$HOSTOS"x = Darwinx; then
+if test "$LIBTOOLIZE"x != x; then
+  :
+elif test "$HOSTOS"x = Darwinx; then
   LIBTOOLIZE=glibtoolize
+else
+  LIBTOOLIZE=libtoolize
 fi
 
 if test "$ACLOCAL"x = x; then
   ACLOCAL=aclocal
 fi
 
 if test "$AUTOCONF"x = x; then
   AUTOCONF=autoconf
--- a/modules/freetype2/builds/amiga/makefile
+++ b/modules/freetype2/builds/amiga/makefile
@@ -229,16 +229,21 @@ pcf.ppc.o: $(FTSRC)/pcf/pcf.c
 	$(CC) -c $(CFLAGS) -o $@ $<
 
 #
 # FreeType2 library gzip support for compressed PCF bitmap fonts
 #
 gzip.ppc.o: $(FTSRC)/gzip/ftgzip.c
 	$(CC) -c $(CFLAGS) -o $@ $<
 
+# FreeType2 library bzip2 support for compressed PCF bitmap fonts
+#
+bzip2.ppc.o: $(FTSRC)/bzip2/ftbzip2.c
+	$(CC) -c $(CFLAGS) -o $@ $<
+
 #
 # FreeType2 library compress support for compressed PCF bitmap fonts
 #
 lzw.ppc.o: $(FTSRC)/lzw/ftlzw.c
 	$(CC) -c $(CFLAGS) -o $@ $<
 
 #
 # FreeType2 library PFR font driver
@@ -280,15 +285,15 @@ OTVPPC = otvalid.ppc.o
 
 PSPPC = psaux.ppc.o psnames.ppc.o pshinter.ppc.o
 
 RASTERPPC = raster.ppc.o smooth.ppc.o
 
 FONTDPPC = cff.ppc.o type1.ppc.o type42.ppc.o type1cid.ppc.o truetype.ppc.o\
 	   bdf.ppc.o pcf.ppc.o pfr.ppc.o winfnt.ppc.o
 
-libft2_ppc.a:    $(BASEPPC) $(AFITPPC) $(GXVPPC) $(OTVPPC) $(PSPPC) $(RASTERPPC) sfnt.ppc.o ftcache.ppc.o $(FONTDPPC) gzip.ppc.o lzw.ppc.o
-	$(AR) $@ $(BASEPPC) $(AFITPPC) $(GXVPPC) $(OTVPPC) $(PSPPC) $(RASTERPPC) sfnt.ppc.o ftcache.ppc.o $(FONTDPPC) gzip.ppc.o lzw.ppc.o
+libft2_ppc.a:    $(BASEPPC) $(AFITPPC) $(GXVPPC) $(OTVPPC) $(PSPPC) $(RASTERPPC) sfnt.ppc.o ftcache.ppc.o $(FONTDPPC) gzip.ppc.o bzip2.ppc.o lzw.ppc.o
+	$(AR) $@ $(BASEPPC) $(AFITPPC) $(GXVPPC) $(OTVPPC) $(PSPPC) $(RASTERPPC) sfnt.ppc.o ftcache.ppc.o $(FONTDPPC) gzip.ppc.o bzip2.ppc.o lzw.ppc.o
 	-@ ($(RANLIB) $@ || true) >/dev/null 2>&1
 
 #Local Variables:
 #coding: latin-1
 #End:
--- a/modules/freetype2/builds/amiga/makefile.os4
+++ b/modules/freetype2/builds/amiga/makefile.os4
@@ -233,16 +233,22 @@ pcf.ppc.o: FT:src/pcf/pcf.c
 
 #
 # FreeType2 library gzip support for compressed PCF bitmap fonts
 #
 gzip.ppc.o: FT:src/gzip/ftgzip.c
 	$(CC) -c $(CFLAGS) -o $@ /FT/src/gzip/ftgzip.c
 
 #
+# FreeType2 library bzip2 support for compressed PCF bitmap fonts
+#
+bzip2.ppc.o: FT:src/bzip2/ftbzip2.c
+	$(CC) -c $(CFLAGS) -o $@ /FT/src/bzip2/ftbzip2.c
+
+#
 # FreeType2 library compress support for compressed PCF bitmap fonts
 #
 lzw.ppc.o: FT:src/lzw/ftlzw.c
 	$(CC) -c $(CFLAGS) -o $@ /FT/src/lzw/ftlzw.c
 
 #
 # FreeType2 library PFR font driver
 #
--- a/modules/freetype2/builds/amiga/smakefile
+++ b/modules/freetype2/builds/amiga/smakefile
@@ -93,18 +93,18 @@ OPTS = link lib=$(LIB),lib:sc.lib,lib:am
 
 all:	$(LIB) $(OBJSYSTEM) $(OBJDEBUG)
 
 assign:
 	assign FT: //
 
 # uses separate object modules in lib to make for easier debugging
 # also, can make smaller programs if entire engine is not used
-ft2_$(CPU).lib:  $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o
-	oml $@ r $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o
+ft2_$(CPU).lib:  $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o bzip2.o
+	oml $@ r $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o bzip2.o
 
 clean:
 	-delete \#?.o
 
 realclean: clean
 	-delete ft2$(CPU).lib
 
 #
@@ -258,16 +258,22 @@ pcf.o: $(CORE)pcf/pcf.c
 
 #
 # freetype library gzip support for compressed PCF bitmap fonts
 #
 gzip.o: $(CORE)gzip/ftgzip.c
 	sc $(SCFLAGS) define FAR objname=$@ $<
 
 #
+# freetype library bzip2 support for compressed PCF bitmap fonts
+#
+bzip2.o: $(CORE)bzip2/ftbzip2.c
+	sc $(SCFLAGS) define FAR objname=$@ $<
+
+#
 # freetype library compress support for compressed PCF bitmap fonts
 #
 lzw.o: $(CORE)lzw/ftlzw.c
 	sc $(SCFLAGS) objname=$@ $<
 
 #
 # freetype library PFR font driver
 #
--- a/modules/freetype2/builds/amiga/src/base/ftsystem.c
+++ b/modules/freetype2/builds/amiga/src/base/ftsystem.c
@@ -1,15 +1,15 @@
 /***************************************************************************/
 /*                                                                         */
 /*  ftsystem.c                                                             */
 /*                                                                         */
 /*    Amiga-specific FreeType low-level system interface (body).           */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002, 2005, 2006, 2007 by                         */
+/*  Copyright 1996-2001, 2002, 2005, 2006, 2007, 2010 by                   */
 /*  David Turner, Robert Wilhelm, Werner Lemberg and Detlef Wrkner.       */
 /*                                                                         */
 /*  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.                                        */
 /*                                                                         */
@@ -437,16 +437,24 @@ Free_VecPooled( APTR  poolHeader,
     stream->pathname.pointer   = (char*)filepathname;
     sysfile->iobuf_start       = 0;
     sysfile->iobuf_end         = 0;
     stream->pos                = 0;
 
     stream->read  = ft_amiga_stream_io;
     stream->close = ft_amiga_stream_close;
 
+    if ( !stream->size )
+    {
+      ft_amiga_stream_close( stream );
+      FT_ERROR(( "FT_Stream_Open:" ));
+      FT_ERROR(( " opened `%s' but zero-sized\n", filepathname ));
+      return FT_Err_Cannot_Open_Stream;;
+    }
+
     FT_TRACE1(( "FT_Stream_Open:" ));
     FT_TRACE1(( " opened `%s' (%ld bytes) successfully\n",
                 filepathname, stream->size ));
 
     return FT_Err_Ok;
   }
 
 
old mode 100644
new mode 100755
--- a/modules/freetype2/builds/mac/FreeType.m68k_cfm.make.txt
+++ b/modules/freetype2/builds/mac/FreeType.m68k_cfm.make.txt
@@ -12,16 +12,17 @@ Includes        =  \xB6
 				  -includes unix \xB6
 				  -i :include: \xB6
 				  -i :src: \xB6
 				  -i :include:freetype:config:
 
 Sym-68K         = -sym off
 
 COptions        = \xB6
+			-d FT_MACINTOSH=1 \xB6
 			-d HAVE_FSSPEC=1 \xB6
 			-d HAVE_FSREF=0 \xB6
 			-d HAVE_QUICKDRAW_TOOLBOX=1 \xB6
 			-d HAVE_QUICKDRAW_CARBON=0 \xB6
 			-d HAVE_ATS=0 \xB6
 			-d FT2_BUILD_LIBRARY \xB6
 			-d FT_CONFIG_CONFIG_H="<ftconfig.h>" \xB6
 			-d FT_CONFIG_MODULES_H="<ftmodule.h>" \xB6
@@ -51,16 +52,17 @@ SrcFiles        =  \xB6
 				  :src:base:ftwinfnt.c \xB6
 				  :src:base:ftxf86.c \xB6
 				  :src:cache:ftcache.c \xB6
 				  :src:bdf:bdf.c \xB6
 				  :src:cff:cff.c \xB6
 				  :src:cid:type1cid.c \xB6
 #				  :src:gxvalid:gxvalid.c \xB6
 				  :src:gzip:ftgzip.c \xB6
+				  :src:bzip2:ftbzip2.c \xB6
 				  :src:lzw:ftlzw.c \xB6
 				  :src:otvalid:otvalid.c \xB6
 				  :src:pcf:pcf.c \xB6
 				  :src:pfr:pfr.c \xB6
 				  :src:psaux:psaux.c \xB6
 				  :src:pshinter:pshinter.c \xB6
 				  :src:psnames:psmodule.c \xB6
 				  :src:raster:raster.c \xB6
@@ -95,16 +97,17 @@ ObjFiles-68K    =  \xB6
 				  "{ObjDir}ftwinfnt.c.o" \xB6
 				  "{ObjDir}ftxf86.c.o" \xB6
 				  "{ObjDir}ftcache.c.o" \xB6
 				  "{ObjDir}bdf.c.o" \xB6
 				  "{ObjDir}cff.c.o" \xB6
 				  "{ObjDir}type1cid.c.o" \xB6
 #				  "{ObjDir}gxvalid.c.o" \xB6
 				  "{ObjDir}ftgzip.c.o" \xB6
+				  "{ObjDir}ftbzip2.c.o" \xB6
 				  "{ObjDir}ftlzw.c.o" \xB6
 				  "{ObjDir}otvalid.c.o" \xB6
 				  "{ObjDir}pcf.c.o" \xB6
 				  "{ObjDir}pfr.c.o" \xB6
 				  "{ObjDir}psaux.c.o" \xB6
 				  "{ObjDir}pshinter.c.o" \xB6
 				  "{ObjDir}psmodule.c.o" \xB6
 				  "{ObjDir}raster.c.o" \xB6
@@ -172,16 +175,17 @@ FreeType.m68k_cfm.o  \xC4\xC4  {ObjFiles
 "{ObjDir}ftwinfnt.c.o" \xC4 :src:base:ftwinfnt.c
 "{ObjDir}ftxf86.c.o" \xC4 :src:base:ftxf86.c
 "{ObjDir}ftcache.c.o" \xC4 :src:cache:ftcache.c
 "{ObjDir}bdf.c.o" \xC4 :src:bdf:bdf.c
 "{ObjDir}cff.c.o" \xC4 :src:cff:cff.c
 "{ObjDir}type1cid.c.o" \xC4 :src:cid:type1cid.c
 # "{ObjDir}gxvalid.c.o" \xC4 :src:gxvalid:gxvalid.c
 "{ObjDir}ftgzip.c.o" \xC4 :src:gzip:ftgzip.c
+"{ObjDir}ftbzip2.c.o" \xC4 :src:bzip2:ftbzip2.c
 "{ObjDir}ftlzw.c.o" \xC4 :src:lzw:ftlzw.c
 "{ObjDir}otvalid.c.o" \xC4 :src:otvalid:otvalid.c
 "{ObjDir}pcf.c.o" \xC4 :src:pcf:pcf.c
 "{ObjDir}pfr.c.o" \xC4 :src:pfr:pfr.c
 "{ObjDir}psaux.c.o" \xC4 :src:psaux:psaux.c
 "{ObjDir}pshinter.c.o" \xC4 :src:pshinter:pshinter.c
 "{ObjDir}psmodule.c.o" \xC4 :src:psnames:psmodule.c
 "{ObjDir}raster.c.o" \xC4 :src:raster:raster.c
--- a/modules/freetype2/builds/mac/FreeType.m68k_far.make.txt
+++ b/modules/freetype2/builds/mac/FreeType.m68k_far.make.txt
@@ -11,16 +11,17 @@ Includes        =  \xB6
 				  -includes unix \xB6
 				  -i :include: \xB6
 				  -i :src: \xB6
 				  -i :include:freetype:config:
 
 Sym-68K         = -sym off
 
 COptions        = \xB6
+			-d FT_MACINTOSH=1 \xB6
 			-d HAVE_FSSPEC=1 \xB6
 			-d HAVE_FSREF=0 \xB6
 			-d HAVE_QUICKDRAW_TOOLBOX=1 \xB6
 			-d HAVE_QUICKDRAW_CARBON=0 \xB6
 			-d HAVE_ATS=0 \xB6
 			-d FT2_BUILD_LIBRARY \xB6
 			-d FT_CONFIG_CONFIG_H="<ftconfig.h>" \xB6
 			-d FT_CONFIG_MODULES_H="<ftmodule.h>" \xB6
@@ -50,16 +51,17 @@ SrcFiles        =  \xB6
 				  :src:base:ftwinfnt.c \xB6
 				  :src:base:ftxf86.c \xB6
 				  :src:cache:ftcache.c \xB6
 				  :src:bdf:bdf.c \xB6
 				  :src:cff:cff.c \xB6
 				  :src:cid:type1cid.c \xB6
 				  :src:gxvalid:gxvalid.c \xB6
 				  :src:gzip:ftgzip.c \xB6
+				  :src:bzip2:ftbzip2.c \xB6
 				  :src:lzw:ftlzw.c \xB6
 				  :src:otvalid:otvalid.c \xB6
 				  :src:pcf:pcf.c \xB6
 				  :src:pfr:pfr.c \xB6
 				  :src:psaux:psaux.c \xB6
 				  :src:pshinter:pshinter.c \xB6
 				  :src:psnames:psmodule.c \xB6
 				  :src:raster:raster.c \xB6
@@ -94,16 +96,17 @@ ObjFiles-68K    =  \xB6
 				  "{ObjDir}ftwinfnt.c.o" \xB6
 				  "{ObjDir}ftxf86.c.o" \xB6
 				  "{ObjDir}ftcache.c.o" \xB6
 				  "{ObjDir}bdf.c.o" \xB6
 				  "{ObjDir}cff.c.o" \xB6
 				  "{ObjDir}type1cid.c.o" \xB6
 				  "{ObjDir}gxvalid.c.o" \xB6
 				  "{ObjDir}ftgzip.c.o" \xB6
+				  "{ObjDir}ftbzip2.c.o" \xB6
 				  "{ObjDir}ftlzw.c.o" \xB6
 				  "{ObjDir}otvalid.c.o" \xB6
 				  "{ObjDir}pcf.c.o" \xB6
 				  "{ObjDir}pfr.c.o" \xB6
 				  "{ObjDir}psaux.c.o" \xB6
 				  "{ObjDir}pshinter.c.o" \xB6
 				  "{ObjDir}psmodule.c.o" \xB6
 				  "{ObjDir}raster.c.o" \xB6
@@ -171,16 +174,17 @@ FreeType.m68k_far.o  \xC4\xC4  {ObjFiles
 "{ObjDir}ftwinfnt.c.o" \xC4 :src:base:ftwinfnt.c
 "{ObjDir}ftxf86.c.o" \xC4 :src:base:ftxf86.c
 "{ObjDir}ftcache.c.o" \xC4 :src:cache:ftcache.c
 "{ObjDir}bdf.c.o" \xC4 :src:bdf:bdf.c
 "{ObjDir}cff.c.o" \xC4 :src:cff:cff.c
 "{ObjDir}type1cid.c.o" \xC4 :src:cid:type1cid.c
 "{ObjDir}gxvalid.c.o" \xC4 :src:gxvalid:gxvalid.c
 "{ObjDir}ftgzip.c.o" \xC4 :src:gzip:ftgzip.c
+"{ObjDir}ftbzip2.c.o" \xC4 :src:bzip2:ftbzip2.c
 "{ObjDir}ftlzw.c.o" \xC4 :src:lzw:ftlzw.c
 "{ObjDir}otvalid.c.o" \xC4 :src:otvalid:otvalid.c
 "{ObjDir}pcf.c.o" \xC4 :src:pcf:pcf.c
 "{ObjDir}pfr.c.o" \xC4 :src:pfr:pfr.c
 "{ObjDir}psaux.c.o" \xC4 :src:psaux:psaux.c
 "{ObjDir}pshinter.c.o" \xC4 :src:pshinter:pshinter.c
 "{ObjDir}psmodule.c.o" \xC4 :src:psnames:psmodule.c
 "{ObjDir}raster.c.o" \xC4 :src:raster:raster.c
--- a/modules/freetype2/builds/mac/FreeType.ppc_carbon.make.txt
+++ b/modules/freetype2/builds/mac/FreeType.ppc_carbon.make.txt
@@ -12,16 +12,17 @@ Includes        =  \xB6
 				  -includes unix \xB6
 				  -i :include: \xB6
 				  -i :src: \xB6
 				  -i :include:freetype:config:
 
 Sym-PPC         = -sym off
 
 PPCCOptions     = \xB6
+			-d FT_MACINTOSH=1 \xB6
 			-d HAVE_FSSPEC=1 \xB6
                         -d HAVE_FSREF=1 \xB6
 			-d HAVE_QUICKDRAW_TOOLBOX=1 \xB6
 			-d HAVE_QUICKDRAW_CARBON=1 \xB6
                         -d HAVE_ATS=0 \xB6
 			-d FT2_BUILD_LIBRARY \xB6
 			-d FT_CONFIG_CONFIG_H="<ftconfig.h>" \xB6
 			-d FT_CONFIG_MODULES_H="<ftmodule.h>" \xB6
@@ -51,16 +52,17 @@ SrcFiles        =  \xB6
 				  :src:base:ftwinfnt.c \xB6
 				  :src:base:ftxf86.c \xB6
 				  :src:cache:ftcache.c \xB6
 				  :src:bdf:bdf.c \xB6
 				  :src:cff:cff.c \xB6
 				  :src:cid:type1cid.c \xB6
 				  :src:gxvalid:gxvalid.c \xB6
 				  :src:gzip:ftgzip.c \xB6
+				  :src:bzip2:ftbzip2.c \xB6
 				  :src:lzw:ftlzw.c \xB6
 				  :src:otvalid:otvalid.c \xB6
 				  :src:pcf:pcf.c \xB6
 				  :src:pfr:pfr.c \xB6
 				  :src:psaux:psaux.c \xB6
 				  :src:pshinter:pshinter.c \xB6
 				  :src:psnames:psmodule.c \xB6
 				  :src:raster:raster.c \xB6
@@ -95,16 +97,17 @@ ObjFiles-PPC    =  \xB6
 				  "{ObjDir}ftwinfnt.c.x" \xB6
 				  "{ObjDir}ftxf86.c.x" \xB6
 				  "{ObjDir}ftcache.c.x" \xB6
 				  "{ObjDir}bdf.c.x" \xB6
 				  "{ObjDir}cff.c.x" \xB6
 				  "{ObjDir}type1cid.c.x" \xB6
 				  "{ObjDir}gxvalid.c.x" \xB6
 				  "{ObjDir}ftgzip.c.x" \xB6
+				  "{ObjDir}ftbzip2.c.x" \xB6
 				  "{ObjDir}ftlzw.c.x" \xB6
 				  "{ObjDir}otvalid.c.x" \xB6
 				  "{ObjDir}pcf.c.x" \xB6
 				  "{ObjDir}pfr.c.x" \xB6
 				  "{ObjDir}psaux.c.x" \xB6
 				  "{ObjDir}pshinter.c.x" \xB6
 				  "{ObjDir}psmodule.c.x" \xB6
 				  "{ObjDir}raster.c.x" \xB6
@@ -175,16 +178,17 @@ FreeType.ppc_carbon.o  \xC4\xC4  {ObjFil
 "{ObjDir}ftwinfnt.c.x" \xC4 :src:base:ftwinfnt.c
 "{ObjDir}ftxf86.c.x" \xC4 :src:base:ftxf86.c
 "{ObjDir}ftcache.c.x" \xC4 :src:cache:ftcache.c
 "{ObjDir}bdf.c.x" \xC4 :src:bdf:bdf.c
 "{ObjDir}cff.c.x" \xC4 :src:cff:cff.c
 "{ObjDir}type1cid.c.x" \xC4 :src:cid:type1cid.c
 "{ObjDir}gxvalid.c.x" \xC4 :src:gxvalid:gxvalid.c
 "{ObjDir}ftgzip.c.x" \xC4 :src:gzip:ftgzip.c
+"{ObjDir}ftbzip2.c.x" \xC4 :src:bzip2:ftbzip2.c
 "{ObjDir}ftlzw.c.x" \xC4 :src:lzw:ftlzw.c
 "{ObjDir}otvalid.c.x" \xC4 :src:otvalid:otvalid.c
 "{ObjDir}pcf.c.x" \xC4 :src:pcf:pcf.c
 "{ObjDir}pfr.c.x" \xC4 :src:pfr:pfr.c
 "{ObjDir}psaux.c.x" \xC4 :src:psaux:psaux.c
 "{ObjDir}pshinter.c.x" \xC4 :src:pshinter:pshinter.c
 "{ObjDir}psmodule.c.x" \xC4 :src:psnames:psmodule.c
 "{ObjDir}raster.c.x" \xC4 :src:raster:raster.c
--- a/modules/freetype2/builds/mac/FreeType.ppc_classic.make.txt
+++ b/modules/freetype2/builds/mac/FreeType.ppc_classic.make.txt
@@ -12,16 +12,17 @@ Includes        =  \xB6
 				  -includes unix \xB6
 				  -i :include: \xB6
 				  -i :src: \xB6
 				  -i :include:freetype:config:
 
 Sym-PPC         = -sym off
 
 PPCCOptions     = \xB6
+                        -d FT_MACINTOSH=1 \xB6
                         -d HAVE_FSSPEC=1 \xB6
                         -d HAVE_FSREF=0 \xB6
                         -d HAVE_QUICKDRAW_TOOLBOX=1 \xB6
                         -d HAVE_QUICKDRAW_CARBON=0 \xB6
                         -d HAVE_ATS=0 \xB6
 			-d FT2_BUILD_LIBRARY \xB6
 			-d FT_CONFIG_CONFIG_H="<ftconfig.h>" \xB6
 			-d FT_CONFIG_MODULES_H="<ftmodule.h>" \xB6
@@ -51,16 +52,17 @@ SrcFiles        =  \xB6
 				  :src:base:ftwinfnt.c \xB6
 				  :src:base:ftxf86.c \xB6
 				  :src:cache:ftcache.c \xB6
 				  :src:bdf:bdf.c \xB6
 				  :src:cff:cff.c \xB6
 				  :src:cid:type1cid.c \xB6
 				  :src:gxvalid:gxvalid.c \xB6
 				  :src:gzip:ftgzip.c \xB6
+				  :src:bzip2:ftbzip2.c \xB6
 				  :src:lzw:ftlzw.c \xB6
 				  :src:otvalid:otvalid.c \xB6
 				  :src:pcf:pcf.c \xB6
 				  :src:pfr:pfr.c \xB6
 				  :src:psaux:psaux.c \xB6
 				  :src:pshinter:pshinter.c \xB6
 				  :src:psnames:psmodule.c \xB6
 				  :src:raster:raster.c \xB6
@@ -95,16 +97,17 @@ ObjFiles-PPC    =  \xB6
 				  "{ObjDir}ftwinfnt.c.x" \xB6
 				  "{ObjDir}ftxf86.c.x" \xB6
 				  "{ObjDir}ftcache.c.x" \xB6
 				  "{ObjDir}bdf.c.x" \xB6
 				  "{ObjDir}cff.c.x" \xB6
 				  "{ObjDir}type1cid.c.x" \xB6
 				  "{ObjDir}gxvalid.c.x" \xB6
 				  "{ObjDir}ftgzip.c.x" \xB6
+				  "{ObjDir}ftbzip2.c.x" \xB6
 				  "{ObjDir}ftlzw.c.x" \xB6
 				  "{ObjDir}otvalid.c.x" \xB6
 				  "{ObjDir}pcf.c.x" \xB6
 				  "{ObjDir}pfr.c.x" \xB6
 				  "{ObjDir}psaux.c.x" \xB6
 				  "{ObjDir}pshinter.c.x" \xB6
 				  "{ObjDir}psmodule.c.x" \xB6
 				  "{ObjDir}raster.c.x" \xB6
@@ -175,16 +178,17 @@ FreeType.ppc_classic.o  \xC4\xC4  {ObjFi
 "{ObjDir}ftwinfnt.c.x" \xC4 :src:base:ftwinfnt.c
 "{ObjDir}ftxf86.c.x" \xC4 :src:base:ftxf86.c
 "{ObjDir}ftcache.c.x" \xC4 :src:cache:ftcache.c
 "{ObjDir}bdf.c.x" \xC4 :src:bdf:bdf.c
 "{ObjDir}cff.c.x" \xC4 :src:cff:cff.c
 "{ObjDir}type1cid.c.x" \xC4 :src:cid:type1cid.c
 "{ObjDir}gxvalid.c.x" \xC4 :src:gxvalid:gxvalid.c
 "{ObjDir}ftgzip.c.x" \xC4 :src:gzip:ftgzip.c
+"{ObjDir}ftbzip2.c.x" \xC4 :src:bzip2:ftbzip2.c
 "{ObjDir}ftlzw.c.x" \xC4 :src:lzw:ftlzw.c
 "{ObjDir}otvalid.c.x" \xC4 :src:otvalid:otvalid.c
 "{ObjDir}pcf.c.x" \xC4 :src:pcf:pcf.c
 "{ObjDir}pfr.c.x" \xC4 :src:pfr:pfr.c
 "{ObjDir}psaux.c.x" \xC4 :src:psaux:psaux.c
 "{ObjDir}pshinter.c.x" \xC4 :src:pshinter:pshinter.c
 "{ObjDir}psmodule.c.x" \xC4 :src:psnames:psmodule.c
 "{ObjDir}raster.c.x" \xC4 :src:raster:raster.c
old mode 100644
new mode 100755
--- a/modules/freetype2/builds/mac/ftmac.c
+++ b/modules/freetype2/builds/mac/ftmac.c
@@ -166,16 +166,17 @@ typedef short ResourceIndex;
 
   /* Set PREFER_LWFN to 1 if LWFN (Type 1) is preferred over
      TrueType in case *both* are available (this is not common,
      but it *is* possible). */
 #ifndef PREFER_LWFN
 #define PREFER_LWFN  1
 #endif
 
+#ifdef FT_MACINTOSH
 
 #if !HAVE_QUICKDRAW_CARBON  /* QuickDraw is deprecated since Mac OS X 10.4 */
 
   FT_EXPORT_DEF( FT_Error )
   FT_GetFile_From_Mac_Name( const char*  fontName,
                             FSSpec*      pathSpec,
                             FT_Long*     face_index )
   {
@@ -1522,10 +1523,12 @@ typedef short ResourceIndex;
     FT_UNUSED( aface );
 
     return FT_Err_Unimplemented_Feature;
 
 #endif /* HAVE_FSREF, HAVE_FSSPEC */
 
   }
 
+#endif /* FT_MACINTOSH */
+
 
 /* END */
--- a/modules/freetype2/builds/symbian/bld.inf
+++ b/modules/freetype2/builds/symbian/bld.inf
@@ -31,16 +31,17 @@ PRJ_EXPORTS
 ../../include/freetype/ftcache.h		freetype/ftcache.h
 ../../include/freetype/ftcid.h			freetype/ftcid.h
 ../../include/freetype/fterrdef.h		freetype/fterrdef.h
 ../../include/freetype/fterrors.h		freetype/fterrors.h
 ../../include/freetype/ftgasp.h			freetype/ftgasp.h
 ../../include/freetype/ftglyph.h		freetype/ftglyph.h
 ../../include/freetype/ftgxval.h		freetype/ftgxval.h
 ../../include/freetype/ftgzip.h			freetype/ftgzip.h
+../../include/freetype/ftbzip2.h		freetype/ftbzip2.h
 ../../include/freetype/ftimage.h		freetype/ftimage.h
 ../../include/freetype/ftincrem.h		freetype/ftincrem.h
 ../../include/freetype/ftlcdfil.h		freetype/ftlcdfil.h
 ../../include/freetype/ftlist.h			freetype/ftlist.h
 ../../include/freetype/ftlzw.h			freetype/ftlzw.h
 ../../include/freetype/ftmac.h			freetype/ftmac.h
 ../../include/freetype/ftmm.h			freetype/ftmm.h
 ../../include/freetype/ftmodapi.h		freetype/ftmodapi.h
--- a/modules/freetype2/builds/symbian/freetype.mmp
+++ b/modules/freetype2/builds/symbian/freetype.mmp
@@ -59,16 +59,20 @@ source cff.c
 sourcepath ..\..\src\cid
 
 source type1cid.c
 
 sourcepath ..\..\src\gzip
 
 source ftgzip.c
 
+sourcepath ..\..\src\bzip2
+
+source ftbzip2.c
+
 sourcepath ..\..\src\lzw
 
 source ftlzw.c
 
 sourcepath ..\..\src\pcf
 
 source pcf.c
 
@@ -121,16 +125,17 @@ systeminclude		..\..\include
 systeminclude		\epoc32\include\stdapis
 userinclude		..\..\src\autofit
 userinclude		..\..\src\bdf
 userinclude		..\..\src\cache
 userinclude		..\..\src\cff
 userinclude		..\..\src\cid
 userinclude		..\..\src\gxvalid
 userinclude		..\..\src\gzip
+userinclude		..\..\src\bzip2
 userinclude		..\..\src\lzw
 userinclude		..\..\src\otvalid
 userinclude		..\..\src\pcf
 userinclude		..\..\src\pfr
 userinclude		..\..\src\psaux
 userinclude		..\..\src\pshinter
 userinclude		..\..\src\psnames
 userinclude		..\..\src\raster
--- a/modules/freetype2/builds/toplevel.mk
+++ b/modules/freetype2/builds/toplevel.mk
@@ -117,16 +117,17 @@ ifdef check_platform
   # `config.mk' has been created).  It uses the built-in $(RM) command of
   # GNU make.  Similarly, `nul' is created if e.g. `make setup win32' has
   # been erroneously used.
   #
   # Note: This test is duplicated in `builds/unix/detect.mk'.
   #
   is_unix := $(strip $(wildcard /sbin/init) \
                      $(wildcard /usr/sbin/init) \
+                     $(wildcard /dev/null) \
                      $(wildcard /hurd/auth))
   ifneq ($(is_unix),)
 
     distclean:
 	  $(RM) builds/unix/config.cache
 	  $(RM) builds/unix/config.log
 	  $(RM) builds/unix/config.status
 	  $(RM) builds/unix/unix-def.mk
@@ -194,17 +195,17 @@ dist:
 	for d in `find . -wholename '*/.git' -prune \
 	                 -o -type f \
 	                 -o -print` ; do \
 	  mkdir -p tmp/$$d ; \
 	done ;
 
 	currdir=`pwd` ; \
 	for f in `find . -wholename '*/.git' -prune \
-	                 -o -name .cvsignore \
+	                 -o -name .gitignore \
 	                 -o -type d \
 	                 -o -print` ; do \
 	  ln -s $$currdir/$$f tmp/$$f ; \
 	done
 
 	@# Prevent generation of .pyc files.  Python follows (soft) links if
 	@# the link's directory is write protected, so we have temporarily
 	@# disable write access here too.
--- a/modules/freetype2/builds/unix/aclocal.m4
+++ b/modules/freetype2/builds/unix/aclocal.m4
@@ -9,26 +9,28 @@
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
 #
 # GNU Libtool is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License as
 # published by the Free Software Foundation; either version 2 of
 # the License, or (at your option) any later version.
@@ -45,17 +47,17 @@ m4_define([_LT_COPYING], [dnl
 #
 # You should have received a copy of the GNU General Public License
 # along with GNU Libtool; see the file COPYING.  If not, a copy
 # can be downloaded from http://www.gnu.org/licenses/gpl.html, or
 # obtained by writing to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 ])
 
-# serial 56 LT_INIT
+# serial 57 LT_INIT
 
 
 # LT_PREREQ(VERSION)
 # ------------------
 # Complain and exit if this libtool version is less that VERSION.
 m4_defun([LT_PREREQ],
 [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
        [m4_default([$3],
@@ -74,32 +76,35 @@ m4_defun([_LT_CHECK_BUILDDIR],
 esac
 ])
 
 
 # LT_INIT([OPTIONS])
 # ------------------
 AC_DEFUN([LT_INIT],
 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
 AC_BEFORE([$0], [LTDL_INIT])dnl
 m4_require([_LT_CHECK_BUILDDIR])dnl
 
 dnl Autoconf doesn't catch unexpanded LT_ macros by default:
 m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
 m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
 dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
 dnl unless we require an AC_DEFUNed macro:
 AC_REQUIRE([LTOPTIONS_VERSION])dnl
 AC_REQUIRE([LTSUGAR_VERSION])dnl
 AC_REQUIRE([LTVERSION_VERSION])dnl
 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
 m4_require([_LT_PROG_LTMAIN])dnl
 
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
 dnl Parse OPTIONS
 _LT_SET_OPTIONS([$0], [$1])
 
 # This can be used to rebuild libtool when needed
 LIBTOOL_DEPS="$ltmain"
 
 # Always use our own libtool.
 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
@@ -126,17 +131,17 @@ m4_defun([_LT_CC_BASENAME],
 [for cc_temp in $1""; do
   case $cc_temp in
     compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
     distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
     \-*) ;;
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 ])
 
 
 # _LT_FILEUTILS_DEFAULTS
 # ----------------------
 # It is okay to use these file commands and assume they have been set
 # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
 m4_defun([_LT_FILEUTILS_DEFAULTS],
@@ -146,16 +151,21 @@ m4_defun([_LT_FILEUTILS_DEFAULTS],
 ])# _LT_FILEUTILS_DEFAULTS
 
 
 # _LT_SETUP
 # ---------
 m4_defun([_LT_SETUP],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
 dnl
 _LT_DECL([], [build_alias], [0], [The build system])dnl
 _LT_DECL([], [build], [0])dnl
 _LT_DECL([], [build_os], [0])dnl
 dnl
@@ -168,66 +178,51 @@ test -z "$LN_S" && LN_S="ln -s"
 _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
 dnl
 AC_REQUIRE([LT_CMD_MAX_LEN])dnl
 _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
 _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
 dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
 # See if we are running on zsh, and set the options which allow our
 # commands through without removal of \ escapes INIT.
 if test -n "\${ZSH_VERSION+set}" ; then
    setopt NO_GLOB_SUBST
 fi
 ])
 if test -n "${ZSH_VERSION+set}" ; then
    setopt NO_GLOB_SUBST
 fi
 
 _LT_CHECK_OBJDIR
 
 m4_require([_LT_TAG_COMPILER])dnl
-_LT_PROG_ECHO_BACKSLASH
 
 case $host_os in
 aix3*)
   # AIX sometimes has problems with the GCC collect2 program.  For some
   # reason, if we set the COLLECT_NAMES environment variable, the problems
   # vanish in a puff of smoke.
   if test "X${COLLECT_NAMES+set}" != Xset; then
     COLLECT_NAMES=
     export COLLECT_NAMES
   fi
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
 
 # All known linkers require a `.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 
@@ -258,16 +253,38 @@ esac
 # Use C for the default configuration in the libtool script
 LT_SUPPORTED_TAG([CC])
 _LT_LANG_C_CONFIG
 _LT_LANG_DEFAULT_CONFIG
 _LT_CONFIG_COMMANDS
 ])# _LT_SETUP
 
 
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
 # _LT_PROG_LTMAIN
 # ---------------
 # Note that this code is called both from `configure', and `config.status'
 # now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
 # `config.status' has no value for ac_aux_dir unless we are using Automake,
 # so we pass a copy along to make sure it has a sensible value anyway.
 m4_defun([_LT_PROG_LTMAIN],
 [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
@@ -410,27 +427,27 @@ m4_define([_lt_decl_all_varnames],
 
 
 # _LT_CONFIG_STATUS_DECLARE([VARNAME])
 # ------------------------------------
 # Quote a variable value, and forward it to `config.status' so that its
 # declaration there will have the same value as in `configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
 
 
 # _LT_CONFIG_STATUS_DECLARATIONS
 # ------------------------------
 # We delimit libtool config variables with single quotes, so when
 # we write them to config.status, we have to be sure to quote all
 # embedded single quotes properly.  In configure, this macro expands
 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
 #
-#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
     [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
 
 
 # _LT_LIBTOOL_TAGS
 # ----------------
 # Output comment and list of tags supported by the script
@@ -519,75 +536,96 @@ m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_I
 sed_quote_subst='$sed_quote_subst'
 double_quote_subst='$double_quote_subst'
 delay_variable_subst='$delay_variable_subst'
 _LT_CONFIG_STATUS_DECLARATIONS
 LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
       ;;
     esac
 done
 
 # Double-quote double-evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
       ;;
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\[$]0 --fallback-echo"')dnl "
-  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
-  ;;
-esac
-
 _LT_OUTPUT_LIBTOOL_INIT
 ])
 
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
 
 # LT_OUTPUT
 # ---------
 # This macro allows early generation of the libtool script (before
 # AC_OUTPUT is called), incase it is used in configure for compilation
 # tests.
 AC_DEFUN([LT_OUTPUT],
 [: ${CONFIG_LT=./config.lt}
 AC_MSG_NOTICE([creating $CONFIG_LT])
-cat >"$CONFIG_LT" <<_LTEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate a libtool stub with the current configuration.
-
-lt_cl_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_LTEOF
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
 
 cat >>"$CONFIG_LT" <<\_LTEOF
-AS_SHELL_SANITIZE
-_AS_PREPARE
-
-exec AS_MESSAGE_FD>&1
+lt_cl_silent=false
 exec AS_MESSAGE_LOG_FD>>config.log
 {
   echo
   AS_BOX([Running $as_me.])
 } >&AS_MESSAGE_LOG_FD
 
 lt_cl_help="\
 \`$as_me' creates a local libtool stub from the current configuration,
@@ -603,17 +641,17 @@ Usage: $[0] [[OPTIONS]]
 
 Report bugs to <bug-libtool@gnu.org>."
 
 lt_cl_version="\
 m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2011 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
 while test $[#] != 0
 do
   case $[1] in
     --version | --v* | -V )
       echo "$lt_cl_version"; exit 0 ;;
@@ -648,25 +686,23 @@ AC_MSG_NOTICE([creating $ofile])
 AS_EXIT(0)
 _LTEOF
 chmod +x "$CONFIG_LT"
 
 # configure is writing to config.log, but config.lt does its own redirection,
 # appending to config.log, which fails on DOS, as config.log is still kept
 # open by configure.  Here we exec the FD to /dev/null, effectively closing
 # config.log, so it can be properly (re)opened and appended to by config.lt.
-if test "$no_create" != yes; then
-  lt_cl_success=:
-  test "$silent" = yes &&
-    lt_config_lt_args="$lt_config_lt_args --quiet"
-  exec AS_MESSAGE_LOG_FD>/dev/null
-  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-  exec AS_MESSAGE_LOG_FD>>config.log
-  $lt_cl_success || AS_EXIT(1)
-fi
+lt_cl_success=:
+test "$silent" = yes &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
 ])# LT_OUTPUT
 
 
 # _LT_CONFIG(TAG)
 # ---------------
 # If TAG is the built-in tag, create an initial libtool script with a
 # default configuration from the untagged config vars.  Otherwise add code
 # to config.status for appending the configuration named by TAG from the
@@ -686,16 +722,17 @@ m4_defun([_LT_CONFIG],
     trap "$RM \"$cfgfile\"; exit 1" 1 2 15
     $RM "$cfgfile"
 
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
 
 # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
 # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 _LT_COPYING
 _LT_LIBTOOL_TAGS
 
 # ### BEGIN LIBTOOL CONFIG
 _LT_LIBTOOL_CONFIG_VARS
 _LT_LIBTOOL_TAG_VARS
@@ -718,25 +755,22 @@ fi
   esac
 
   _LT_PROG_LTMAIN
 
   # We use sed instead of cat because bash on DJGPP gets confused if
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  _LT_PROG_XSI_SHELLFNS
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+  _LT_PROG_REPLACE_SHELLFNS
+
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 ],
 [cat <<_LT_EOF >> "$ofile"
 
 dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
 dnl in a comment (ie after a #).
 # ### BEGIN LIBTOOL TAG CONFIG: $1
@@ -771,16 +805,17 @@ m4_define([_LT_TAGS], [])
 # LT_LANG(LANG)
 # -------------
 # Enable libtool support for the given language if not already enabled.
 AC_DEFUN([LT_LANG],
 [AC_BEFORE([$0], [LT_OUTPUT])dnl
 m4_case([$1],
   [C],			[_LT_LANG(C)],
   [C++],		[_LT_LANG(CXX)],
+  [Go],			[_LT_LANG(GO)],
   [Java],		[_LT_LANG(GCJ)],
   [Fortran 77],		[_LT_LANG(F77)],
   [Fortran],		[_LT_LANG(FC)],
   [Windows Resource],	[_LT_LANG(RC)],
   [m4_ifdef([_LT_LANG_]$1[_CONFIG],
     [_LT_LANG($1)],
     [m4_fatal([$0: unsupported language: "$1"])])])dnl
 ])# LT_LANG
@@ -792,16 +827,39 @@ m4_defun([_LT_LANG],
 [m4_ifdef([_LT_LANG_]$1[_enabled], [],
   [LT_SUPPORTED_TAG([$1])dnl
   m4_append([_LT_TAGS], [$1 ])dnl
   m4_define([_LT_LANG_]$1[_enabled], [])dnl
   _LT_LANG_$1_CONFIG($1)])dnl
 ])# _LT_LANG
 
 
+m4_ifndef([AC_PROG_GO], [
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
 # _LT_LANG_DEFAULT_CONFIG
 # -----------------------
 m4_defun([_LT_LANG_DEFAULT_CONFIG],
 [AC_PROVIDE_IFELSE([AC_PROG_CXX],
   [LT_LANG(CXX)],
   [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
 
 AC_PROVIDE_IFELSE([AC_PROG_F77],
@@ -822,31 +880,37 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
       [LT_LANG(GCJ)],
       [m4_ifdef([AC_PROG_GCJ],
 	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
        m4_ifdef([A][M_PROG_GCJ],
 	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
        m4_ifdef([LT_PROG_GCJ],
 	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
 
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
 ])# _LT_LANG_DEFAULT_CONFIG
 
 # Obsolete macros:
 AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
 dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
 dnl AC_DEFUN([AC_LIBTOOL_FC], [])
 dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
 
 
 # _LT_TAG_COMPILER
 # ----------------
 m4_defun([_LT_TAG_COMPILER],
 [AC_REQUIRE([AC_PROG_CC])dnl
 
 _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
@@ -922,35 +986,70 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECK
 	# link flags.
 	rm -rf libconftest.dylib*
 	echo "int foo(void){return 1;}" > conftest.c
 	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
 -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
 	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
 	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	# If there is a non-empty error log, and "single_module"
+	# appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	# Otherwise, if the output was created with a 0 exit code from
+	# the compiler, it worked.
+	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
 	  lt_cv_apple_cc_single_mod=yes
 	else
 	  cat conftest.err >&AS_MESSAGE_LOG_FD
 	fi
 	rm -rf libconftest.dylib*
 	rm -f conftest.*
       fi])
+
     AC_CACHE_CHECK([for -exported_symbols_list linker flag],
       [lt_cv_ld_exported_symbols_list],
       [lt_cv_ld_exported_symbols_list=no
       save_LDFLAGS=$LDFLAGS
       echo "_main" > conftest.sym
       LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
       AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
 	[lt_cv_ld_exported_symbols_list=yes],
 	[lt_cv_ld_exported_symbols_list=no])
 	LDFLAGS="$save_LDFLAGS"
     ])
+
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
     case $host_os in
     rhapsody* | darwin1.[[012]])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
     darwin1.*)
       _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
     darwin*) # darwin 5.x on
       # if running on 10.5 or later, the deployment target defaults
       # to the OS version, if on x86, and 10.4, the deployment
@@ -968,257 +1067,202 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECK
     if test "$lt_cv_apple_cc_single_mod" = "yes"; then
       _lt_dar_single_mod='$single_module'
     fi
     if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
       _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
     fi
     ;;
   esac
 ])
 
 
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
 # Checks for linker and compiler features on darwin
 m4_defun([_LT_DARWIN_LINKER_FEATURES],
 [
   m4_require([_LT_REQUIRED_DARWIN_CHECKS])
   _LT_TAGVAR(archive_cmds_need_lc, $1)=no
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_automatic, $1)=yes
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
   _LT_TAGVAR(link_all_deplibs, $1)=yes
   _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
   case $cc_basename in
      ifort*) _lt_dar_can_shared=yes ;;
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
     _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
     m4_if([$1], [CXX],
 [   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
       _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
       _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
     fi
 ],[])
   else
   _LT_TAGVAR(ld_shlibs, $1)=no
   fi
 ])
 
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
 # Links a minimal program and checks the executable
 # for the system default hardcoded library path. In most cases,
 # this is /usr/lib:/lib, but when the MPI compilers are used
 # the location of the communication and MPI libs are included too.
 # If we don't find anything, use the default library path according
 # to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
 ])# _LT_SYS_MODULE_PATH_AIX
 
 
 # _LT_SHELL_INIT(ARG)
 # -------------------
 m4_define([_LT_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-	 [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_SHELL_INIT
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
 
 
 # _LT_PROG_ECHO_BACKSLASH
 # -----------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
 m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[_LT_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
 else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-[$]*
-_LT_EOF
-  exit 0
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
 fi
 
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-	   test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	  # Cool, printf works
-	  :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	  export CONFIG_SHELL
-	  SHELL="$CONFIG_SHELL"
-	  export SHELL
-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        else
-	  # maybe with a smaller string...
-	  prev=:
-
-	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-	    then
-	      break
-	    fi
-	    prev="$cmd"
-	  done
-
-	  if test "$prev" != 'sed 50q "[$]0"'; then
-	    echo_test_string=`eval $prev`
-	    export echo_test_string
-	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-	  else
-	    # Oops.  We lost completely, so just stick with echo.
-	    ECHO=echo
-	  fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(lt_ECHO)
-])
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*" 
+}
+
+case "$ECHO" in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
+
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
+
 _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1],
-    [An echo program that does not interpret backslashes])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 ])# _LT_PROG_ECHO_BACKSLASH
 
 
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
 # _LT_ENABLE_LOCK
 # ---------------
 m4_defun([_LT_ENABLE_LOCK],
 [AC_ARG_ENABLE([libtool-lock],
   [AS_HELP_STRING([--disable-libtool-lock],
     [avoid locking (might break parallel builds)])])
 test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
 
@@ -1237,17 +1281,17 @@ ia64-*-hpux*)
 	HPUX_IA64_MODE="64"
 	;;
     esac
   fi
   rm -rf conftest*
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
 	*32-bit*)
 	  LD="${LD-ld} -melf32bsmip"
 	  ;;
 	*N32*)
 	  LD="${LD-ld} -melf32bmipn32"
@@ -1330,24 +1374,37 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*
     [AC_LANG_PUSH(C)
      AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
      AC_LANG_POP])
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
 	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
 	  LD="${LD-ld} -64"
 	fi
 	;;
       esac
       ;;
     esac
@@ -1355,24 +1412,57 @@ sparc*-*solaris*)
   rm -rf conftest*
   ;;
 esac
 
 need_locks="$enable_libtool_lock"
 ])# _LT_ENABLE_LOCK
 
 
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test "$ac_status" -eq 0; then
+	# Ensure the archiver fails upon bogus file names.
+	rm -f conftest.$ac_objext libconftest.a
+	AC_TRY_EVAL([lt_ar_try])
+	if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
 # _LT_CMD_OLD_ARCHIVE
 # -------------------
 m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
+[_LT_PROG_AR
 
 AC_CHECK_TOOL(STRIP, strip, :)
 test -z "$STRIP" && STRIP=:
 _LT_DECL([], [STRIP], [1], [A symbol stripping program])
 
 AC_CHECK_TOOL(RANLIB, ranlib, :)
 test -z "$RANLIB" && RANLIB=:
 _LT_DECL([], [RANLIB], [1],
@@ -1381,28 +1471,37 @@ test -z "$RANLIB" && RANLIB=:
 # Determine commands to create old-style static archives.
 old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
 old_postinstall_cmds='chmod 644 $oldlib'
 old_postuninstall_cmds=
 
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
 _LT_DECL([], [old_postinstall_cmds], [2])
 _LT_DECL([], [old_postuninstall_cmds], [2])
 _LT_TAGDECL([], [old_archive_cmds], [2],
     [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
 ])# _LT_CMD_OLD_ARCHIVE
 
 
 # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
 #		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
 # ----------------------------------------------------------------
 # Check whether the given compiler option works
 AC_DEFUN([_LT_COMPILER_OPTION],
@@ -1417,25 +1516,25 @@ AC_CACHE_CHECK([$1], [$2],
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
    # with a dollar sign (not a hyphen), so the echo should work correctly.
    # The option is referenced via a variable to avoid confusing sed.
    lt_compile=`echo "$ac_compile" | $SED \
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        $2=yes
      fi
    fi
    $RM conftest*
 ])
 
@@ -1465,17 +1564,17 @@ AC_CACHE_CHECK([$1], [$2],
    LDFLAGS="$LDFLAGS $3"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
    if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
      # The linker can only warn and ignore the option if not recognized
      # So say no if there are warnings
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          $2=yes
        fi
      else
        $2=yes
      fi
    fi
@@ -1528,16 +1627,21 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [d
     # Worse, since 9x/ME are not pre-emptively multitasking,
     # you end up with a "frozen" computer, even though with patience
     # the test eventually succeeds (with a max line length of 256k).
     # Instead, let's just punt: use the minimum linelength reported by
     # all of the supported platforms: 8192 (on NT/2K/XP).
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
   netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
     # This has been around since 386BSD, at least.  Likely further.
@@ -1553,16 +1657,21 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [d
     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     ;;
 
   interix*)
     # We know the value 262144 and hardcode it with a safety zone (like BSD)
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
     # nice to cause kernel panics so lets avoid the loop below.
     # First set a reasonable default.
     lt_cv_sys_max_cmd_len=16384
     #
     if test -x /sbin/sysconfig; then
@@ -1592,18 +1701,18 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [d
       # a 1K string should be a reasonable start.
       for i in 1 2 3 4 5 6 7 8 ; do
         teststring=$teststring$teststring
       done
       SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
 	      test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
         teststring=$teststring$teststring
       done
       # Only check the string length outside the loop.
       lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
       teststring=
@@ -1644,17 +1753,17 @@ m4_defun([_LT_HEADER_DLFCN],
 m4_defun([_LT_TRY_DLOPEN_SELF],
 [m4_require([_LT_HEADER_DLFCN])dnl
 if test "$cross_compiling" = yes; then :
   [$4]
 else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-[#line __oline__ "configure"
+[#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
 #include <dlfcn.h>
 #endif
 
 #include <stdio.h>
 
@@ -1685,26 +1794,36 @@ else
 #        else
 #          define LT_DLLAZY_OR_NOW	0
 #        endif
 #      endif
 #    endif
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
   int status = $lt_dlunknown;
 
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
       /* dlclose (self); */
     }
   else
     puts (dlerror ());
 
   return status;
 }]
 _LT_EOF
@@ -1870,26 +1989,26 @@ AC_CACHE_CHECK([if $compiler supports -c
    # Insert the option either (1) after the last *FLAGS variable, or
    # (2) before a word containing "conftest.", or (3) at the end.
    # Note that $ac_compile itself does not contain backslashes and begins
    # with a dollar sign (not a hyphen), so the echo should work correctly.
    lt_compile=`echo "$ac_compile" | $SED \
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
      fi
    fi
    chmod u+w . 2>&AS_MESSAGE_LOG_FD
    $RM conftest*
    # SGI C++ compiler will create directory out/ii_files/ for
@@ -2038,47 +2157,55 @@ fi
 # -----------------------------
 # PORTME Fill in your ld.so characteristics
 m4_defun([_LT_SYS_DYNAMIC_LINKER],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_OBJDUMP])dnl
 m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
 AC_MSG_CHECKING([dynamic linker characteristics])
 m4_if([$1],
 	[], [
 if test "$GCC" = yes; then
   case $host_os in
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
   lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
   for lt_sys_path in $lt_search_path_spec; do
     if test -d "$lt_sys_path/$lt_multi_os_dir"; then
       lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
     else
       test -d "$lt_sys_path" && \
 	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
   for (lt_i = NF; lt_i > 0; lt_i--) {
     if ($lt_i != "" && $lt_i != ".") {
       if ($lt_i == "..") {
         lt_count++;
       } else {
@@ -2088,17 +2215,23 @@ BEGIN {RS=" "; FS="/|\n";} {
           lt_count--;
         }
       }
     }
   }
   if (lt_foo != "") { lt_freq[[lt_foo]]++; }
   if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi])
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
 shrext_cmds=".so"
 postinstall_cmds=
@@ -2114,26 +2247,26 @@ need_lib_prefix=unknown
 hardcode_into_libs=no
 
 # when you set need_version to no, make sure it does not cause -set_version
 # flags to be left without arguments
 need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
   # AIX 3 has no versioning support, so we append a major version to the name.
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
 aix[[4-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
   if test "$host_cpu" = ia64; then
     # AIX 5 supports IA64
     library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
     shlibpath_var=LD_LIBRARY_PATH
   else
@@ -2176,29 +2309,29 @@ amigaos*)
   powerpc)
     # Since July 2007 AmigaOS4 officially supports .so libraries.
     # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
     ;;
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
 
 beos*)
   library_names_spec='${libname}${shared_ext}'
   dynamic_linker="$host_os ld.so"
   shlibpath_var=LIBRARY_PATH
   ;;
 
 bsdi[[45]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
   sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
   # the default ld.so.conf also contains /usr/contrib/lib and
@@ -2207,18 +2340,19 @@ bsdi[[45]]*)
   ;;
 
 cygwin* | mingw* | pw32* | cegcc*)
   version_type=windows
   shrext_cmds=".dll"
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
       dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
       dldir=$destdir/`dirname \$dlpath`~
       test -d \$dldir || mkdir -p \$dldir~
       $install_prog $dir/$dlname \$dldir/$dlname~
       chmod a+x \$dldir/$dlname~
@@ -2229,46 +2363,93 @@ cygwin* | mingw* | pw32* | cegcc*)
       dlpath=$dir/\$dldll~
        $RM \$dlpath'
     shlibpath_overrides_runpath=yes
 
     case $host_os in
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
 
 darwin* | rhapsody*)
   dynamic_linker="$host_os dyld"
   version_type=darwin
   need_lib_prefix=no
@@ -2279,36 +2460,32 @@ darwin* | rhapsody*)
   shlibpath_var=DYLD_LIBRARY_PATH
   shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
 m4_if([$1], [],[
   sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
   sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
   if test -x /usr/bin/objformat; then
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
+    freebsd[[23]].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
   version_type=freebsd-$objformat
   case $version_type in
     freebsd-elf*)
       library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
       need_version=no
@@ -2316,17 +2493,17 @@ freebsd* | dragonfly*)
       ;;
     freebsd-*)
       library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
       need_version=yes
       ;;
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[[01]]* | freebsdelf3.[[01]]*)
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
   freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
   freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
@@ -2336,22 +2513,36 @@ freebsd* | dragonfly*)
   *) # from 4.6 on, and DragonFly
     shlibpath_overrides_runpath=yes
     hardcode_into_libs=yes
     ;;
   esac
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
 
 hpux9* | hpux10* | hpux11*)
   # Give a soname corresponding to the major version so that dld.sl refuses to
   # link against other versions.
   version_type=sunos
   need_lib_prefix=no
@@ -2387,38 +2578,40 @@ hpux9* | hpux10* | hpux11*)
     shrext_cmds='.sl'
     dynamic_linker="$host_os dld.sl"
     shlibpath_var=SHLIB_PATH
     shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[[3-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   ;;
 
 irix5* | irix6* | nonstopux*)
   case $host_os in
     nonstopux*) version_type=nonstopux ;;
     *)
 	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
+		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
 	fi ;;
   esac
   need_lib_prefix=no
   need_version=no
   soname_spec='${libname}${release}${shared_ext}$major'
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
@@ -2445,45 +2638,50 @@ irix5* | irix6* | nonstopux*)
   hardcode_into_libs=yes
   ;;
 
 # No shared lib support for Linux oldld, aout, or coff.
 linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu)
-  version_type=linux
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-       [shlibpath_overrides_runpath=yes])])
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+	 [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
   # before this can be enabled.
   hardcode_into_libs=yes
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
   # We used to test for /lib/ld.so.1 and disable shared libraries on
   # powerpc, because MkLinux only supported shared libraries with the
   # GNU dynamic linker.  Since this was broken with cross compilers,
   # most powerpc-linux boxes support dynamic linking these days and
   # people can always --disable-shared, the test was removed, and we
@@ -2505,17 +2703,17 @@ netbsd*)
     dynamic_linker='NetBSD ld.elf_so'
   fi
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   ;;
 
 *nto* | *qnx*)
   version_type=qnx
   need_lib_prefix=no
@@ -2574,17 +2772,17 @@ osf3* | osf4* | osf5*)
   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
   ;;
 
 rdos*)
   dynamic_linker=no
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
   # ldd complains unless libraries are executable
@@ -2599,17 +2797,17 @@ sunos4*)
   shlibpath_overrides_runpath=yes
   if test "$with_gnu_ld" = yes; then
     need_lib_prefix=no
   fi
   need_version=yes
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
   case $host_vendor in
     sni)
       shlibpath_overrides_runpath=no
       need_lib_prefix=no
       runpath_var=LD_RUN_PATH
@@ -2623,17 +2821,17 @@ sysv4 | sysv4.3*)
       shlibpath_overrides_runpath=no
       sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
       ;;
   esac
   ;;
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
   fi
   ;;
 
 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
   version_type=freebsd-elf
@@ -2654,27 +2852,27 @@ sysv5* | sco3.2v5* | sco5v6* | unixware*
 	;;
     esac
   fi
   sys_lib_dlsearch_path_spec='/usr/lib'
   ;;
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
 *)
   dynamic_linker=no
   ;;
@@ -2706,16 +2904,18 @@ fi
 _LT_DECL([], [shlibpath_overrides_runpath], [0],
     [Is shlibpath searched before the hard-coded library search path?])
 _LT_DECL([], [libname_spec], [1], [Format of library name prefix])
 _LT_DECL([], [library_names_spec], [1],
     [[List of archive names.  First name is the real one, the rest are links.
     The last name is the one that the linker finds with -lNAME]])
 _LT_DECL([], [soname_spec], [1],
     [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
 _LT_DECL([], [postinstall_cmds], [2],
     [Command to use after installation of a shared archive])
 _LT_DECL([], [postuninstall_cmds], [2],
     [Command to use after uninstallation of a shared archive])
 _LT_DECL([], [finish_cmds], [2],
     [Commands used to finish a libtool library installation in a directory])
 _LT_DECL([], [finish_eval], [1],
     [[As "finish_cmds", except a single script fragment to be evaled but
@@ -2818,16 +3018,17 @@ fi
 # ----------
 # find the pathname to the GNU or non-GNU linker
 AC_DEFUN([LT_PATH_LD],
 [AC_REQUIRE([AC_PROG_CC])dnl
 AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
 
 AC_ARG_WITH([gnu-ld],
     [AS_HELP_STRING([--with-gnu-ld],
 	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
     [test "$withval" = no || with_gnu_ld=yes],
     [with_gnu_ld=no])dnl
 
 ac_prog=ld
@@ -2939,26 +3140,31 @@ m4_defun([_LT_CMD_RELOAD],
   [lt_cv_ld_reload_flag='-r'])
 reload_flag=$lt_cv_ld_reload_flag
 case $reload_flag in
 "" | " "*) ;;
 *) reload_flag=" $reload_flag" ;;
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
     else
       reload_cmds='$LD$reload_flag -o $output$reload_objs'
     fi
     ;;
 esac
-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_DECL([], [reload_cmds], [2])dnl
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
 # _LT_CHECK_MAGIC_METHOD
 # ----------------------
 # how to check for library dependencies
 #  -- PORTME fill in with the dynamic library characteristics
 m4_defun([_LT_CHECK_MAGIC_METHOD],
@@ -3000,26 +3206,28 @@ cygwin*)
   lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
   lt_cv_file_magic_cmd='func_win32_libid'
   ;;
 
 mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
   ;;
 
 darwin* | rhapsody*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -3039,29 +3247,33 @@ freebsd* | dragonfly*)
     lt_cv_deplibs_check_method=pass_all
   fi
   ;;
 
 gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
   ia64*)
     lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
   ;;
 
 interix[[3-9]]*)
   # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
   lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
@@ -3072,18 +3284,18 @@ irix5* | irix6* | nonstopux*)
   *-32|*"-32 ") libmagic=32-bit;;
   *-n32|*"-n32 ") libmagic=N32;;
   *-64|*"-64 ") libmagic=64-bit;;
   *) libmagic=never-match;;
   esac
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu)
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
 netbsd*)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
   else
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
@@ -3151,24 +3363,43 @@ sysv4 | sysv4.3*)
   esac
   ;;
 
 tpf*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 esac
 ])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
 
 _LT_DECL([], [deplibs_check_method], [1],
     [Method to check whether dependent libraries are shared objects])
 _LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method == "file_magic"])
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
 ])# _LT_CHECK_MAGIC_METHOD
 
 
 # LT_PATH_NM
 # ----------
 # find the pathname to a BSD- or MS-compatible name lister
 AC_DEFUN([LT_PATH_NM],
 [AC_REQUIRE([AC_PROG_CC])dnl
@@ -3215,59 +3446,132 @@ else
     IFS="$lt_save_ifs"
   done
   : ${lt_cv_path_NM=no}
 fi])
 if test "$lt_cv_path_NM" != "no"; then
   NM="$lt_cv_path_NM"
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
-  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
   AC_SUBST([DUMPBIN])
   if test "$DUMPBIN" != ":"; then
     NM="$DUMPBIN"
   fi
 fi
 test -z "$NM" && NM=nm
 AC_SUBST([NM])
 _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
 
 AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
   [lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
   cat conftest.out >&AS_MESSAGE_LOG_FD
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
   fi
   rm -f conftest*])
 ])# LT_PATH_NM
 
 # Old names:
 AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
 AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
 dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AM_PROG_NM], [])
 dnl AC_DEFUN([AC_PROG_NM], [])
 
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
 
 # LT_LIB_M
 # --------
 # check for math library
 AC_DEFUN([LT_LIB_M],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 LIBM=
 case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
   AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
   AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
   ;;
 *)
   AC_CHECK_LIB(m, cos, LIBM="-lm")
@@ -3285,33 +3589,39 @@ dnl AC_DEFUN([AC_CHECK_LIBM], [])
 # _LT_COMPILER_NO_RTTI([TAGNAME])
 # -------------------------------
 m4_defun([_LT_COMPILER_NO_RTTI],
 [m4_require([_LT_TAG_COMPILER])dnl
 
 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
 
 if test "$GCC" = yes; then
-  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
 
   _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
     lt_cv_prog_compiler_rtti_exceptions,
     [-fno-rtti -fno-exceptions], [],
     [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
 fi
 _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
 	[Compiler flag to turn off builtin functions])
 ])# _LT_COMPILER_NO_RTTI
 
 
 # _LT_CMD_GLOBAL_SYMBOLS
 # ----------------------
 m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
 AC_REQUIRE([LT_PATH_LD])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_TAG_COMPILER])dnl
 
 # Check for command to grab the raw symbol name followed by C symbol from nm.
 AC_MSG_CHECKING([command to parse $NM output from $compiler object])
@@ -3369,18 +3679,18 @@ case `$NM -V 2>&1` in
 esac
 
 # Transform an extracted symbol line into a proper C declaration.
 # Some systems (esp. on ia64) link data and code symbols differently,
 # so use this general approach.
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
 case $build_os in
 mingw*)
   opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
   ;;
 esac
@@ -3394,28 +3704,30 @@ for ac_symprfx in "" "_"; do
   # Write the raw and C identifiers.
   if test "$lt_cv_nm_interface" = "MS dumpbin"; then
     # Fake it for dumpbin and say T for any non-static function
     # and D for any global variable.
     # Also find C++ and __fastcall symbols from MSVC++,
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
 "     {if(hide[section]) next};"\
 "     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
 "     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
 "     s[1]~/^[@?]/{print s[1], s[1]; next};"\
 "     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
 "     ' prfx=^$ac_symprfx]"
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
 
   rm -f conftest*
   cat > conftest.$ac_ext <<_LT_EOF
 #ifdef __cplusplus
 extern "C" {
@@ -3427,40 +3739,52 @@ void nm_test_func(void){}
 }
 #endif
 int main(){nm_test_var='a';nm_test_func();return(0);}
 _LT_EOF
 
   if AC_TRY_EVAL(ac_compile); then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
 	mv -f "$nlist"T "$nlist"
       else
 	rm -f "$nlist"T
       fi
 
       # Make sure that we snagged all the symbols we need.
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
 	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
 	  cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t@_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 _LT_EOF
 	  # Now generate the symbol file.
 	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
 
 	  cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT@&t@_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
 lt__PROGRAM__LTX_preloaded_symbols[[]] =
 {
   { "@PROGRAM@", (void *) 0 },
 _LT_EOF
 	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
@@ -3476,25 +3800,25 @@ static const void *lt_preloaded_setup() 
 #endif
 
 #ifdef __cplusplus
 }
 #endif
 _LT_EOF
 	  # Now try linking the two files.
 	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
+	  lt_globsym_save_LIBS=$LIBS
+	  lt_globsym_save_CFLAGS=$CFLAGS
 	  LIBS="conftstm.$ac_objext"
 	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
 	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
 	    pipe_works=yes
 	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
+	  LIBS=$lt_globsym_save_LIBS
+	  CFLAGS=$lt_globsym_save_CFLAGS
 	else
 	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
 	fi
       else
 	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
       fi
     else
       echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
@@ -3517,38 +3841,46 @@ if test -z "$lt_cv_sys_global_symbol_pip
   lt_cv_sys_global_symbol_to_cdecl=
 fi
 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
   AC_MSG_RESULT(failed)
 else
   AC_MSG_RESULT(ok)
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
     [Transform the output of nm in a proper C declaration])
 _LT_DECL([global_symbol_to_c_name_address],
     [lt_cv_sys_global_symbol_to_c_name_address], [1],
     [Transform the output of nm in a C name address pair])
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
 
 
 # _LT_COMPILER_PIC([TAGNAME])
 # ---------------------------
 m4_defun([_LT_COMPILER_PIC],
 [m4_require([_LT_TAG_COMPILER])dnl
 _LT_TAGVAR(lt_prog_compiler_wl, $1)=
 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
 _LT_TAGVAR(lt_prog_compiler_static, $1)=
 
-AC_MSG_CHECKING([for $compiler option to produce PIC])
 m4_if([$1], [CXX], [
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
     _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
     _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
 
     case $host_os in
     aix*)
@@ -3589,16 +3921,21 @@ m4_if([$1], [CXX], [
       # PIC is the default on this platform
       # Common symbols not allowed in MH_DYLIB files
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
       ;;
     *djgpp*)
       # DJGPP does not support shared libraries at all
       _LT_TAGVAR(lt_prog_compiler_pic, $1)=
       ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
     interix[[3-9]]*)
       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
       # Instead, we relocate shared libraries at runtime.
       ;;
     sysv4*MP*)
       if test -d /usr/nec; then
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
       fi
@@ -3638,16 +3975,22 @@ m4_if([$1], [CXX], [
       chorus*)
 	case $cc_basename in
 	cxch68*)
 	  # Green Hills C++ Compiler
 	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
 	  ;;
 	esac
 	;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+	# This hack is so that the source file can tell whether it is being
+	# built for inclusion in a dll (and should export symbols for example).
+	m4_if([$1], [GCJ], [],
+	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+	;;
       dgux*)
 	case $cc_basename in
 	  ec++*)
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	    ;;
 	  ghcx*)
 	    # Green Hills C++ Compiler
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
@@ -3694,17 +4037,17 @@ m4_if([$1], [CXX], [
 	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
 	    # CC pic flag -KPIC is the default.
 	    ;;
 	  *)
 	    ;;
 	esac
 	;;
-      linux* | k*bsd*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
 	case $cc_basename in
 	  KCC*)
 	    # KAI C++ Compiler
 	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
 	    ;;
 	  ecpc* )
 	    # old Intel C++ for x86_64 which still supported -KPIC.
@@ -3727,18 +4070,18 @@ m4_if([$1], [CXX], [
 	    ;;
 	  cxx*)
 	    # Compaq C++
 	    # Make sure the PIC flag is empty.  It appears that all Alpha
 	    # Linux and Compaq Tru64 Unix objects are PIC.
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
 	    ;;
-	  xlc* | xlC*)
-	    # IBM XL 8.0 on PPC
+	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+	    # IBM XL 8.0, 9.0 on PPC and BlueGene
 	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
 	    ;;
 	  *)
 	    case `$CC -V 2>&1 | sed 5q` in
 	    *Sun\ C*)
 	      # Sun C++ 5.9
@@ -3790,17 +4133,17 @@ m4_if([$1], [CXX], [
 	  *)
 	    ;;
 	esac
 	;;
       psos*)
 	;;
       solaris*)
 	case $cc_basename in
-	  CC*)
+	  CC* | sunCC*)
 	    # Sun C++ 4.2, 5.x and Centerline C++
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
 	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
 	    ;;
 	  gcx*)
 	    # Green Hills C++ Compiler
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
@@ -3894,16 +4237,22 @@ m4_if([$1], [CXX], [
       ;;
 
     darwin* | rhapsody*)
       # PIC is the default on this platform
       # Common symbols not allowed in MH_DYLIB files
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
       # sets the default TLS model and affects inlining.
       case $host_cpu in
       hppa*64*)
 	# +Z the default
 	;;
@@ -3936,16 +4285,25 @@ m4_if([$1], [CXX], [
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
       fi
       ;;
 
     *)
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
     aix*)
       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
       if test "$host_cpu" = ia64; then
 	# AIX 5 now supports IA64 processor
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
@@ -3978,17 +4336,17 @@ m4_if([$1], [CXX], [
       ;;
 
     irix5* | irix6* | nonstopux*)
       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
       # PIC (with -KPIC) is the default.
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
         ;;
       # icc used to be incompatible with GCC.
@@ -3999,47 +4357,68 @@ m4_if([$1], [CXX], [
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
         ;;
       # Lahey Fortran 8.1.
       lf95*)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
 	;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+	# NAG Fortran compiler
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
 	# which looks to be a dead project)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
         ;;
       ccc*)
         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
         # All Alpha code is PIC.
         _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
         ;;
-      xl*)
-	# IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
 	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	*Sun\ F* | *Sun*Fortran*)
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	  ;;
 	*Sun\ C*)
 	  # Sun C 5.9
 	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
 	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	  ;;
-	*Sun\ F*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+        *Intel*\ [[CF]]*Compiler*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	  ;;
+	*Portland\ Group*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
 	  ;;
 	esac
 	;;
       esac
       ;;
 
     newsos6)
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
@@ -4061,17 +4440,17 @@ m4_if([$1], [CXX], [
     rdos*)
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
     solaris*)
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
       *)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
       esac
       ;;
 
     sunos4*)
       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
@@ -4118,19 +4497,21 @@ case $host_os in
   # For platforms which do not support PIC, -DPIC is meaningless:
   *djgpp*)
     _LT_TAGVAR(lt_prog_compiler_pic, $1)=
     ;;
   *)
     _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
     ;;
 esac
-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-	[How to pass a linker flag through the compiler])
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
   _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
     [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
     [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
@@ -4139,16 +4520,18 @@ if test -n "$_LT_TAGVAR(lt_prog_compiler
      *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
      esac],
     [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
 fi
 _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
 	[Additional compiler flags for building library objects])
 
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
 #
 # Check to make sure the static flag actually works.
 #
 wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
 _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
   _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
   $lt_tmp_static_flag,
   [],
@@ -4159,60 +4542,70 @@ wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) 
 
 
 # _LT_LINKER_SHLIBS([TAGNAME])
 # ----------------------------
 # See if the linker supports building shared libraries.
 m4_defun([_LT_LINKER_SHLIBS],
 [AC_REQUIRE([LT_PATH_LD])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
 m4_require([_LT_TAG_COMPILER])dnl
 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
 m4_if([$1], [CXX], [
   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   case $host_os in
   aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     else
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
     _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
+    ;;
   cygwin* | mingw* | cegcc*)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    case $cc_basename in
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    ;;
   esac
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
 ], [
   runpath_var=
   _LT_TAGVAR(allow_undefined_flag, $1)=
   _LT_TAGVAR(always_export_symbols, $1)=no
   _LT_TAGVAR(archive_cmds, $1)=
   _LT_TAGVAR(archive_expsym_cmds, $1)=
   _LT_TAGVAR(compiler_needs_object, $1)=no
   _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
   _LT_TAGVAR(export_dynamic_flag_spec, $1)=
   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   _LT_TAGVAR(hardcode_automatic, $1)=no
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_direct_absolute, $1)=no
   _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
   _LT_TAGVAR(hardcode_libdir_separator, $1)=
   _LT_TAGVAR(hardcode_minus_L, $1)=no
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
   _LT_TAGVAR(inherit_rpath, $1)=no
   _LT_TAGVAR(link_all_deplibs, $1)=unknown
   _LT_TAGVAR(module_cmds, $1)=
   _LT_TAGVAR(module_expsym_cmds, $1)=
   _LT_TAGVAR(old_archive_from_new_cmds, $1)=
@@ -4250,17 +4643,43 @@ dnl Note also adjust exclude_expsyms for
     with_gnu_ld=yes
     ;;
   openbsd*)
     with_gnu_ld=no
     ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
     # Set some defaults for GNU ld with shared library support. These
     # are reset later if shared libraries are not supported. Putting them
     # here allows them to be overridden if necessary.
     runpath_var=LD_RUN_PATH
     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -4268,36 +4687,38 @@ dnl Note also adjust exclude_expsyms for
     # ancient GNU ld didn't support --whole-archive et. al.
     if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
       _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
     else
       _LT_TAGVAR(whole_archive_flag_spec, $1)=
     fi
     supports_anon_versioning=no
     case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
       *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
       *\ 2.11.*) ;; # other 2.11 versions
       *) supports_anon_versioning=yes ;;
     esac
 
     # See if GNU ld supports shared libraries.
     case $host_os in
     aix[[3-9]]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
 	_LT_TAGVAR(ld_shlibs, $1)=no
 	cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
       ;;
 
     amigaos*)
       case $host_cpu in
       powerpc)
@@ -4323,20 +4744,22 @@ dnl Note also adjust exclude_expsyms for
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
 
     cygwin* | mingw* | pw32* | cegcc*)
       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_TAGVAR(always_export_symbols, $1)=no
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
 	# If the export-symbols file already is a .def file (1st line
 	# is EXPORTS), use it as is; otherwise, prepend...
 	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
 	  cp $export_symbols $output_objdir/$soname.def;
 	else
@@ -4344,108 +4767,117 @@ dnl Note also adjust exclude_expsyms for
 	  cat $export_symbols >> $output_objdir/$soname.def;
 	fi~
 	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
 
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
     interix[[3-9]]*)
       _LT_TAGVAR(hardcode_direct, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
       # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
       # Instead, shared libraries are loaded at an image base (0x10000000 by
       # default) and relocated if they conflict, which is a slow very memory
       # consuming and fragmenting process.  To avoid this, we pick a random,
       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
-    gnu* | linux* | tpf* | k*bsd*-gnu)
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
       if test "$host_os" = linux-dietlibc; then
 	case $cc_basename in
 	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
 	esac
       fi
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag'
 	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag -Mnomain' ;;
 	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
 	  tmp_addflag=' -i_dynamic' ;;
 	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
 	  tmp_addflag=' -i_dynamic -nofor_main' ;;
 	ifc* | ifort*)			# Intel Fortran compiler
 	  tmp_addflag=' -nofor_main' ;;
 	lf95*)				# Lahey Fortran 8.1
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
 	  tmp_sharedflag='--shared' ;;
-	xl[[cC]]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
 	  tmp_sharedflag='-qmkshrobj'
 	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  ;;
 	esac
 	case `$CC -V 2>&1 | sed 5q` in
 	*Sun\ C*)			# Sun C 5.9
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  _LT_TAGVAR(compiler_needs_object, $1)=yes
 	  tmp_sharedflag='-G' ;;
 	*Sun\ F*)			# Sun Fortran 8.3
 	  tmp_sharedflag='-G' ;;
 	esac
 	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
 
         if test "x$supports_anon_versioning" = xyes; then
           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
 	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 	    echo "local: *; };" >> $output_objdir/$libname.ver~
 	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
         fi
 
 	case $cc_basename in
-	xlf*)
+	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test "x$supports_anon_versioning" = xyes; then
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
 	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
 	  fi
 	  ;;
 	esac
       else
         _LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
 
     netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
       else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
     solaris*)
       if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
 	_LT_TAGVAR(ld_shlibs, $1)=no
 	cat <<_LT_EOF 1>&2
 
@@ -4453,18 +4885,18 @@ dnl Note also adjust exclude_expsyms for
 *** create shared libraries on Solaris systems.  Therefore, libtool
 *** is disabling shared libraries support.  We urge you to upgrade GNU
 *** binutils to release 2.9.1 or newer.  Another option is to modify
 *** your PATH or compiler configuration so that the native linker is
 *** used, and then restart.
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
 
     sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
       case `$LD -v 2>&1` in
         *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
@@ -4500,18 +4932,18 @@ dnl Note also adjust exclude_expsyms for
       _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       wlarc=
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
       ;;
     esac
 
     if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
       runpath_var=
@@ -4541,18 +4973,20 @@ dnl Note also adjust exclude_expsyms for
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
 	aix_use_runtimelinking=no
 	exp_sym_flag='-Bexport'
 	no_entry_flag=""
       else
 	# If we're using GNU nm, then we don't want the "-C" option.
 	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	# Also, AIX nm treats weak defined symbols like other global
+	# defined symbols, whereas GNU nm marks them as "W".
 	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	else
 	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	fi
 	aix_use_runtimelinking=no
 
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
 	# need to do runtime linking.
@@ -4629,35 +5063,40 @@ dnl Note also adjust exclude_expsyms for
       # underscore (_), so it is better to generate a list of symbols to export.
       _LT_TAGVAR(always_export_symbols, $1)=yes
       if test "$aix_use_runtimelinking" = yes; then
 	# Warning - without using the other runtime loading flags (-brtl),
 	# -berok will link without error, but may produce a broken library.
 	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
 	if test "$host_cpu" = ia64; then
 	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
 	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
 	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
 	else
 	 # Determine the default libpath from the value encoded in an
 	 # empty executable.
-	 _LT_SYS_MODULE_PATH_AIX
+	 _LT_SYS_MODULE_PATH_AIX([$1])
 	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 	  # Warning - without using the other run time loading flags,
 	  # -berok will link without error, but may produce a broken library.
 	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
 	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  if test "$with_gnu_ld" = yes; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  fi
 	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
 	  # This is similar to how AIX traditionally builds its shared libraries.
 	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
 	fi
       fi
       ;;
 
     amigaos*)
@@ -4679,131 +5118,177 @@ dnl Note also adjust exclude_expsyms for
       _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
       ;;
 
     cygwin* | mingw* | pw32* | cegcc*)
       # When not using gcc, we currently assume that we are using
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      case $cc_basename in
+      cl*)
+	# Native MSVC
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	_LT_TAGVAR(always_export_symbols, $1)=yes
+	_LT_TAGVAR(file_list_spec, $1)='@'
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+	  else
+	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+	  fi~
+	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+	  linknames='
+	# The linker will not automatically build a static lib if we build a DLL.
+	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+	# Don't use ranlib
+	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+	  lt_tool_outputfile="@TOOL_OUTPUT@"~
+	  case $lt_outputfile in
+	    *.exe|*.EXE) ;;
+	    *)
+	      lt_outputfile="$lt_outputfile.exe"
+	      lt_tool_outputfile="$lt_tool_outputfile.exe"
+	      ;;
+	  esac~
+	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+	    $RM "$lt_outputfile.manifest";
+	  fi'
+	;;
+      *)
+	# Assume MSVC wrapper
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	# The linker will automatically build a .lib file if we build a DLL.
+	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	# FIXME: Should let the user specify the lib program.
+	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	;;
+      esac
       ;;
 
     darwin* | rhapsody*)
       _LT_DARWIN_LINKER_FEATURES($1)
       ;;
 
     dgux*)
       _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
-    freebsd1*)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
     # extra space).
     freebsd2.2*)
       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
     hpux9*)
       if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
 	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
       _LT_TAGVAR(hardcode_direct, $1)=yes
 
       # hardcode_minus_L: Not really in the search PATH,
       # but as the default location of the library.
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
 	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
       if test "$with_gnu_ld" = no; then
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=