On Tue, Jan 04, 2011 at 11:54:44AM -0800, Paul Vojta wrote: > On Tue, Jan 04, 2011 at 12:36:10AM -0800, Paul Vojta wrote: > > On Tue, Jan 04, 2011 at 12:14:35AM -0800, Paul Vojta wrote: > > > On Sat, Jan 01, 2011 at 10:48:46PM +0100, Ulrik Vieth wrote: > > > > On 12/27/2010 08:37 AM, R (Chandra) Chandrasekhar wrote: > > > > > > > > > > A xetex bug report has been filed at: > > > > > > > > > > https://sourceforge.net/tracker/?func=detail&aid=3145819&group_id=194926&atid=951385 > > > > > > > > I have verified the issue on my machine, where I have both a 32-bit > > > > and 64-bit binary of xetex running on a 64-bit Linux system. > > > > > > > > With the same texmf tree (same versions of macros and fonts), I get > > > > correct results on 32bit and incorrect results on 64bit binaries. > > > > > > If I uncomment line 196 in xetexdir/XeTeXOTMath.cpp, then it prints out > > > > > > math_ex(25, 8) returns 0.708 > > > > > > on a 32-bit system, and > > > > > > math_ex(25, 8) returns 0.000 > > > > > > on a 64-bit system. > > > > > > --Paul Vojta, vo...@math.berkeley.edu > > > > One more thing: > > > > I found that this is occurring because the test on line 83 of > > xetexdir/XeTeXOTMath.cpp is failing on 64-bit machines. This line is the > > line > > > > if (fontarea[f] == OTGR_FONT_FLAG) { > > > > in getotmathconstant(). > > > > On 64-bit machines, fontarea[f] == 0, instead of OTGR_FONT_FLAG(=65534). > > > > --Paul Vojta, vo...@math.berkeley.edu > > Bingo! > > In xetex0.c, sizeof *fontarea == 4. In xetexdir/XeTeXOTMath.cpp, it's 8. > > Sounds like a header file problem. > > --Paul Vojta, vo...@math.berkeley.edu
I've attached a patch that fixes the problem, seems not to break anything else, and seems reasonable. It also fixes: problems with segfaults with delimiters (xe-test-delim.tex) problems with incorrect rendering of radicals (xe-test-sqrt.tex) rendering problems with \overleftarrow in the expression \[\alpha+\varpi\Longrightarrow\uplus\overleftarrow{abc}\] The files xe-test-*.tex were in an email from Ulrik Vieth dated Wed, 14 Jul 2010 23:59:35 +0200. I'm not sure where the third example came from. --Paul Vojta, vo...@math.berkeley.edu
--- xetexdir/XeTeX_ext.h.orig 2010-06-05 00:28:22.000000000 -0700 +++ xetexdir/XeTeX_ext.h 2011-01-04 16:28:39.122444001 -0800 @@ -33,6 +33,7 @@ #ifndef __XETEXEXT_H #define __XETEXEXT_H +#include <w2c/c-auto.h> /* needed for SIZEOF_LONG and NO_DUMP_SHARE */ /***** copied from TeX/texk/web2c/config.h -- difficult to include in C++ source files ******/ #ifndef INTEGER_TYPE
-------------------------------------------------- Subscriptions, Archive, and List information, etc.: http://tug.org/mailman/listinfo/xetex