[tlbuild] 64 bit on Mac OS X

Jonathan Kew jonathan at jfkew.plus.com
Wed May 27 04:28:53 CEST 2009


On 26 May 2009, at 18:33, Peter Breitenlohner wrote:

> On Mon, 25 May 2009, Richard Koch wrote:
>
>> Note that builders on other machines are having no trouble with 64  
>> bit operation. But it is pretty clear why that is; the "fixed" type  
>> is only defined on the Mac, and apparently in 64 bit,  fixed is the  
>> same thing as SInt32.
>>
>> Might you have a fix for this problem?
>
> Hi Dick, Jonathan,
>
> as far as I can see fixed is used only in XeTeXswap.h and sfnt.h.  
> Since that
> seems to cause a name conflict, I'd say why not drop the typedef for  
> fixed
> and replace it everywhere by le_int32.  I would, however, prefer to  
> have
> Jonathan's decision on that.

I think that's probably fine.

>> The other problem program is xdv2pdf. I suspect that this program  
>> is only compiled on the Mac, ...
>
> Yes, xdv2pdf requires the Carbon Framework without any non-Mac  
> substitute.

Indeed. xdv2pdf is a tool for rendering .xdv into .pdf via the Apple  
graphics frameworks.


>> Compiling xdv2pdf produces a lot of warnings about deprecated  
>> cString calls,
>
> Probably on all Mac platforms, not just Mac64. Correct?

I haven't been seeing these, though they aren't all that surprising;  
asking a Cocoa string for its contents as a C string is unwise in  
general, but in this case the strings invo

I suspect this is a relatively new deprecation, perhaps dependent on  
the Apple gcc version being used.

>
>> and then the following errors:
>>
>> 	../../../texk/xdv2pdf/xdv2pdf.cpp: In function 'FixedPoint  
>> getGlyphVOrg(const nativeFont&, UInt16)':
>> 	../../../texk/xdv2pdf/xdv2pdf.cpp:504: error:  
>> 'ATSUGlyphGetIdealMetrics' was not declared in this scope
>> 	../../../texk/xdv2pdf/xdv2pdf.cpp: At global scope:
>> 	../../../texk/xdv2pdf/xdv2pdf.cpp:623: error: variable or field  
>> 'readBitmapInfo' declared void
>> 	../../../texk/xdv2pdf/xdv2pdf.cpp:623: error:  
>> 'GraphicsImportComponent' was not declared in this scope
>> 	../../../texk/xdv2pdf/xdv2pdf.cpp:623: error: expected primary- 
>> expression before '*' token
>> 	../../../texk/xdv2pdf/xdv2pdf.cpp:623: error: 'bi' was not  
>> declared in this scope
>> 	In file included from /usr/include/dirent.h:65,
>>               from /Users/koch/texlive2009/Build/source/texk/ 
>> kpathsea/c-dir.h:30,
>>               from /Users/koch/texlive2009/Build/source/texk/ 
>> kpathsea/kpathsea.h:7,
>>               from ../../../texk/xdv2pdf/xdv2pdf.cpp:934:
>> 	/usr/include/sys/dirent.h:89: error: expected declaration before  
>> end of line
>
> Something has badly gone wrong here. Jonathan ???

xdv2pdf uses Mac OS X APIs that are not available in 64-bit.

>> I haven't decided whether to add 64 bit binaries,

I can't think of any strong reason to add them at this point; can you?

>> but even if not, I'm sure that some Mac users will get the sources  
>> at the svn and try to make 64 bit binaries.
>
> If there are fundamental Mac64 problems we could skip building  
> xdv2pdf for
> this platform.

Yes. It was written before the 64-bit application environments  
existed, and it uses some APIs that Apple decided not to support in  
that environment. Therefore, it would need some porting -- which is  
not a priority, as xdvipdfmx is a better replacement for mainstream  
use, and anyone who particularly needs the unique features of xdv2pdf  
could use a 32-bit binary.

JK



More information about the tlbuild mailing list