mail archive

### Unicode-based TeX for Mac OS X and other platforms

xetex.tug.org
(List home) (Recent threads) (32 other TeX Users Group lists)

#### Subscription Options

• RSS or Atom: Read-only subscription using a browser or aggregator. This is the recommended way if you don't need to send messages to the list. You can learn more about feed syndication and clients here.
• Conventional: All messages are delivered to your mail address, and you can reply. To subscribe, send an email to the list's subscribe address with "subscribe" in the subject line, or visit the list's homepage here.
• Low traffic list: less than 3 messages per day
• This list contains about 24,321 messages, beginning Apr 2004
Report the Spam
This button sends a spam report to the moderator. Please use it sparingly. For other removal requests, read this.
Are you sure? yes no

# Building xetex issues?

Stephen Moye 1272890845Mon, 03 May 2010 12:47:25 +0000 (UTC)
I got the microtype version of xetex, and the build process seemed to go well until the very last few lines. Is this a fatal error? If so, how do I fix it?

%%==%%

sers/sgm/xetex/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:867: error: ‘ATSUGetAttribute’ was not declared in this scope
/Users/sgm/xetex/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:869: error: ‘FMGetATSFontRefFromFont’ was not declared in this scope
make: *** [libxetex_a-XeTeXLayoutInterface.o] Error 1
+ ls -l /Users/sgm/xetex/build-xetex/texk/web2c/xetex
ls: /Users/sgm/xetex/build-xetex/texk/web2c/xetex: No such file or directory

%%==%%

Thanks for any insights.

Stephen Moye
Jonathan Kew 1272891745Mon, 03 May 2010 13:02:25 +0000 (UTC)
On 3 May 2010, at 13:47, Stephen Moye wrote:

> I got the microtype version of xetex, and the build process seemed to go well until the very last few lines. Is this a fatal error?Well, it prevented the compilation finishing, so you got no binary.... that seems fairly fatal! :)> If so, how do I fix it?
>
> %%==%%
>
> sers/sgm/xetex/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:867: error: ‘ATSUGetAttribute’ was not declared in this scope
> /Users/sgm/xetex/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:869: error: ‘FMGetATSFontRefFromFont’ was not declared in this scope
> make: *** [libxetex_a-XeTeXLayoutInterface.o] Error 1
> + ls -l /Users/sgm/xetex/build-xetex/texk/web2c/xetex
> ls: /Users/sgm/xetex/build-xetex/texk/web2c/xetex: No such file or directory
>I'm guessing that you're building on a Snow Leopard system, and so the Apple tools are defaulting to a 64-bit build, which is not supported for xetex on OS X.

If that's the case, try the following:

export SDK_ROOT=/Developer/SDKs/MacOSX10.5.sdk/
export CC="gcc-4.0"
export CXX="g++-4.0"
sh build-xetex.sh

and see if that works better.

JK
Stephen Moye 1272895007Mon, 03 May 2010 13:56:47 +0000 (UTC)
That worked. Thank you. However it has been some time since I built and installed xetex from source. My notes say that the final step is to run "sudo ./install-xetex" but there is no file "install-xetex". What do i do now?

StephenOn May 3, 2010, at 9:02 AM, Jonathan Kew wrote:

> On 3 May 2010, at 13:47, Stephen Moye wrote:
>
>> I got the microtype version of xetex, and the build process seemed to go well until the very last few lines. Is this a fatal error?
>
> Well, it prevented the compilation finishing, so you got no binary.... that seems fairly fatal! :)
>
>> If so, how do I fix it?
>>
>> %%==%%
>>
>> sers/sgm/xetex/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:867: error: ‘ATSUGetAttribute’ was not declared in this scope
>> /Users/sgm/xetex/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:869: error: ‘FMGetATSFontRefFromFont’ was not declared in this scope
>> make: *** [libxetex_a-XeTeXLayoutInterface.o] Error 1
>> + ls -l /Users/sgm/xetex/build-xetex/texk/web2c/xetex
>> ls: /Users/sgm/xetex/build-xetex/texk/web2c/xetex: No such file or directory
>>
>
> I'm guessing that you're building on a Snow Leopard system, and so the Apple tools are defaulting to a 64-bit build, which is not supported for xetex on OS X.
>
> If that's the case, try the following:
>
>   export SDK_ROOT=/Developer/SDKs/MacOSX10.5.sdk/
>   export CC="gcc-4.0"
>   export CXX="g++-4.0"
>   sh build-xetex.sh
>
> and see if that works better.
>
> JK
>
>
>
>
>
> --------------------------------------------------
> Subscriptions, Archive, and List information, etc.:
>  http://tug.org/mailman/listinfo/xetex
Jonathan Kew 1272898292Mon, 03 May 2010 14:51:32 +0000 (UTC)
On 3 May 2010, at 14:56, Stephen Moye wrote:

> That worked. Thank you. However it has been some time since I built and installed xetex from source. My notes say that the final step is to run "sudo ./install-xetex" but there is no file "install-xetex". What do i do now?Just copy the new xetex binary to your tex binaries directory (probably /usr/texbin). Then you'll need to rebuild any xetex-based format files; e.g. "fmtutil --byfmt xetex" and "fmtutil --byfmt xelatex".

JK
Stephen Moye 1272913742Mon, 03 May 2010 19:09:02 +0000 (UTC)
Success -- everything is working perfectly. Many thanks. Now I just
have to be patient whilst microtype and friends are updated.

SGM

Sent from my iPhoneOn May 3, 2010, at 10:49 AM, Jonathan Kew
wrote:

> On 3 May 2010, at 14:56, Stephen Moye wrote:
>
>> That worked. Thank you. However it has been some time since I built
>> and installed xetex from source. My notes say that the final step
>> is to run "sudo ./install-xetex" but there is no file "install-
>> xetex". What do i do now?
>
> Just copy the new xetex binary to your tex binaries directory
> (probably /usr/texbin). Then you'll need to rebuild any xetex-based
> format files; e.g. "fmtutil --byfmt xetex" and "fmtutil --byfmt
> xelatex".
>
> JK
>
>
>
>
> --------------------------------------------------
> Subscriptions, Archive, and List information, etc.:
>  http://tug.org/mailman/listinfo/xetex
Andreas Matthias 1272920129Mon, 03 May 2010 20:55:29 +0000 (UTC)
Stephen Moye wrote:

> Success -- everything is working perfectly. Many thanks. Now I just  have
> to be patient whilst microtype and friends are updated.If it's just for testing you might use microtype already as
shown below. But please don't use this hack for anything
else than testing. It will definitely wreak havoc with a
lot of other packages. For sure.

\newcount\pdftexversion\pdftexversion120
\newcount\pdftexrevision\pdftexrevision0
\def\pdfoutput{1}
\let\pdfprotrudechars\XeTeXprotrudechars
\def\pdffontexpand#1\relax{}
\usepackage[protrusion,expansion=false]{microtype}

Ciao
Andreas
Stephen Moye 1272925034Mon, 03 May 2010 22:17:14 +0000 (UTC)
Thanks -- I will certainly give that a try!

StephenOn May 3, 2010, at 4:51 PM, Andreas Matthias wrote:

> Stephen Moye wrote:
>
>> Success -- everything is working perfectly. Many thanks. Now I just  have
>> to be patient whilst microtype and friends are updated.
>
> If it's just for testing you might use microtype already as
> shown below. But please don't use this hack for anything
> else than testing. It will definitely wreak havoc with a
> lot of other packages. For sure.
>
>
> \newcount\pdftexversion\pdftexversion120
> \newcount\pdftexrevision\pdftexrevision0
> \def\pdfoutput{1}
> \let\pdfprotrudechars\XeTeXprotrudechars
> \def\pdffontexpand#1\relax{}
> \usepackage[protrusion,expansion=false]{microtype}
>
>
> Ciao
> Andreas
>
>
>
> --------------------------------------------------
> Subscriptions, Archive, and List information, etc.:
>  http://tug.org/mailman/listinfo/xetexStephen Moye

Stephen Moye 1272897941Mon, 03 May 2010 14:45:41 +0000 (UTC)
Actually, I have just found a older xetex source directory that has the install-xetex and rebuild-formats. The rebuild-xetex script looks ok as-is. I **think** the only change necessary for the install-xetex script would be to change references to the "Work" directory to the "build-xetex" directory. Is that correct?

Stephen MoyeOn May 3, 2010, at 9:02 AM, Jonathan Kew wrote:

> On 3 May 2010, at 13:47, Stephen Moye wrote:
>
>> I got the microtype version of xetex, and the build process seemed to go well until the very last few lines. Is this a fatal error?
>
> Well, it prevented the compilation finishing, so you got no binary.... that seems fairly fatal! :)
>
>> If so, how do I fix it?
>>
>> %%==%%
>>
>> sers/sgm/xetex/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:867: error: ‘ATSUGetAttribute’ was not declared in this scope
>> /Users/sgm/xetex/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:869: error: ‘FMGetATSFontRefFromFont’ was not declared in this scope
>> make: *** [libxetex_a-XeTeXLayoutInterface.o] Error 1
>> + ls -l /Users/sgm/xetex/build-xetex/texk/web2c/xetex
>> ls: /Users/sgm/xetex/build-xetex/texk/web2c/xetex: No such file or directory
>>
>
> I'm guessing that you're building on a Snow Leopard system, and so the Apple tools are defaulting to a 64-bit build, which is not supported for xetex on OS X.
>
> If that's the case, try the following:
>
>   export SDK_ROOT=/Developer/SDKs/MacOSX10.5.sdk/
>   export CC="gcc-4.0"
>   export CXX="g++-4.0"
>   sh build-xetex.sh
>
> and see if that works better.
>
> JK
>
>
>
>
>
> --------------------------------------------------
> Subscriptions, Archive, and List information, etc.:
>  http://tug.org/mailman/listinfo/xetex
Jjgod Jiang 1272936870Tue, 04 May 2010 01:34:30 +0000 (UTC)
Hi Jonathan,On Mon, May 3, 2010 at 9:02 PM, Jonathan Kew  wrote:
> I'm guessing that you're building on a Snow Leopard system, and so the Apple tools are defaulting to a 64-bit build, which is not supported for xetex on OS X.
>
> If that's the case, try the following:
>
>   export SDK_ROOT=/Developer/SDKs/MacOSX10.5.sdk/
>   export CC="gcc-4.0"
>   export CXX="g++-4.0"
>   sh build-xetex.sh
>
> and see if that works better.Since TeX Live 2010 is planning to include 64-bit binaries for Mac OS X,
is there any chance we can fix this for XeTeX? I understand part of ATSUI
does not have 64-bit counterparts, can we at lease be able to disable AAT
support gracefully for 64-bit XeTeX? (aka. only use ATS to locate fonts
and ICU to do the layout.)

- Jiang
Peter Dyballa 1273352247Sat, 08 May 2010 20:57:27 +0000 (UTC)
Am 03.05.2010 um 15:02 schrieb Jonathan Kew:

> On 3 May 2010, at 13:47, Stephen Moye wrote:
>
>> I got the microtype version of xetex, and the build process seemed
>> to go well until the very last few lines. Is this a fatal error?
>
> Well, it prevented the compilation finishing, so you got no
> binary.... that seems fairly fatal! :)
>
>> If so, how do I fix it?
>>
>> %%==%%
>>
>> sers/sgm/xetex/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:867:
>> error: ‘ATSUGetAttribute’ was not declared in this scope
>> /Users/sgm/xetex/texk/web2c/xetexdir/XeTeXLayoutInterface.cpp:869:
>> error: ‘FMGetATSFontRefFromFont’ was not declared in this scope
>> make: *** [libxetex_a-XeTeXLayoutInterface.o] Error 1
>> + ls -l /Users/sgm/xetex/build-xetex/texk/web2c/xetex
>> ls: /Users/sgm/xetex/build-xetex/texk/web2c/xetex: No such file or
>> directory
>>
>
> I'm guessing that you're building on a Snow Leopard system, and so
> the Apple tools are defaulting to a 64-bit build, which is not
> supported for xetex on OS X.
>
> If that's the case, try the following:
>
>   export SDK_ROOT=/Developer/SDKs/MacOSX10.5.sdk/
>   export CC="gcc-4.0"
>   export CXX="g++-4.0"
>   sh build-xetex.sh
>
> and see if that works better.I ran into the same problem trying to compile an Universal Binary for
32- and 64-bit architectures on Leopard. The function ATSUGetAttribute
is in /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/
ApplicationServices.framework/Versions/A/Frameworks/QD.framework/
Versions/A/Headers/ATSUnicodeObjects.h inside a '#if !__LP64__' clause
and has this documentation:

*  Availability:
*    Mac OS X:         in version 10.0 and later in
ApplicationServices.framework [32-bit only]
*    CarbonLib:        in CarbonLib 1.0 and later
*    Non-Carbon CFM:   in ATSUnicodeLib 8.5 and later

Invoking

g++ -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc64 -dM -E - < /
dev/null | grep _LP64
g++ -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch x86_64 -dM -E - < /
dev/null | grep _LP64

both show

#define __LP64__ 1

So XeTeX on the Mac is a 32-bit only application.--
Greetings

Pete

I wouldn't recommend sex, drugs or insanity for everyone, but they've
always worked for me.
– Hunter S. Thompson
Axel Kielhorn 1273385602Sun, 09 May 2010 06:13:22 +0000 (UTC)
Am 08.05.2010 um 22:57 schrieb Peter Dyballa:

> I ran into the same problem trying to compile an Universal Binary for 32- and 64-bit architectures on Leopard. The function ATSUGetAttribute is in /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/Headers/ATSUnicodeObjects.h inside a '#if !__LP64__' clause and has this documentation:
>
> *  Availability:
> *    Mac OS X:         in version 10.0 and later in ApplicationServices.framework [32-bit only]
> *    CarbonLib:        in CarbonLib 1.0 and later
> *    Non-Carbon CFM:   in ATSUnicodeLib 8.5 and laterThe 10.6 SDK has the following:

*  ATSUGetAttribute()   *** DEPRECATED ***
*
*  Deprecated:
*
*  Summary:
*    Obtains a single attribute value for a style object.
[...]
*
*  Availability:
*    Mac OS X:         in version 10.0 and later in ApplicationServices.framework [32-bit only] but deprecated in 10.6
*    CarbonLib:        in CarbonLib 1.0 and later
*    Non-Carbon CFM:   in ATSUnicodeLib 8.5 and later

CTFontDescriptorCopyAttribute is available in 10.5 and later.

Axel
Jonathan Kew 1273489515Mon, 10 May 2010 11:05:15 +0000 (UTC)
On 9 May 2010, at 07:12, Axel Kielhorn wrote:

>
> Am 08.05.2010 um 22:57 schrieb Peter Dyballa:
>
>> I ran into the same problem trying to compile an Universal Binary for 32- and 64-bit architectures on Leopard.As has been stated in the past, 64-bit builds are not supported on OS X, because the 64-bit frameworks do not support some of the APIs that xetex uses.

The solution to this will involve a move from ATSUI to Core Text as the API used for native AAT font handling. I did this on an experimental basis some time ago, when Leopard was in beta (and more recently made the equivalent migration in Firefox, as it happens), so it's definitely workable, it just needs to actually be completed. And such a version will no longer run on 10.3.9 or 10.4, so there's a price to pay for moving to the newer APIs.

JK
Peter Dyballa 1273508179Mon, 10 May 2010 16:16:19 +0000 (UTC)
Am 10.05.2010 um 13:04 schrieb Jonathan Kew:

> And such a version will no longer run on 10.3.9 or 10.4, so there's
> a price to pay for moving to the newer APIs.The microtype/HZ enhanced version already does not compile with Tiger
and Jaguar support: the functions CGFontGetGlyphWithGlyphName and
CGFontCopyGlyphNameForGlyph are both Leopards only. They are used in
XeTeX_mac.c:

495		if (&CGFontGetGlyphWithGlyphName == NULL)
509				rval = CGFontGetGlyphWithGlyphName(cgfont, glyphname);
565		if (&CGFontCopyGlyphNameForGlyph == NULL)
574				CFStringRef glyphname = CGFontCopyGlyphNameForGlyph(cgfont,
gid);--
Greetings

Pete

There's no place like ~
– (UNIX Guru)
Jjgod Jiang 1273508677Mon, 10 May 2010 16:24:37 +0000 (UTC)
Hi,On Mon, May 10, 2010 at 7:04 PM, Jonathan Kew  wrote:
> As has been stated in the past, 64-bit builds are not supported on OS X, because the 64-bit frameworks do not support some of the APIs that xetex uses.
>
> The solution to this will involve a move from ATSUI to Core Text as the API used for native AAT font handling. I did this on an experimental basis some time ago, when Leopard was in beta (and more recently made the equivalent migration in Firefox, as it happens), so it's definitely workable, it just needs to actually be completed. And such a version will no longer run on 10.3.9 or 10.4, so there's a price to pay for moving to the newer APIs.Is there any patch generated from your previous work?

- Jiang
Peter Baker 1273512997Mon, 10 May 2010 17:36:37 +0000 (UTC)
Here's another build issue: I've run into the error that was reported
and discussed here:

http://tug.org/pipermail/tlbuild/2010q2/00137...

while trying to build on Ubuntu 9.10 (gcc 4.4.1). That is, compile ends
with this error:

LETypes.h:237: error: ‘UChar’ does not name a type

It doesn't look as if a resolution of the problem was reported in that
thread; has there been a fix or workaround that anyone knows of?

Peter