[Lazarus] UTF8LengthFast returning incorrect results on AARCH64 (MacOS)

Noel Duffy noelduffy at xtra.co.nz
Mon Dec 27 22:10:51 CET 2021


On 28/12/21 01:47, Juha Manninen via lazarus wrote:
> On Mon, Dec 27, 2021 at 1:44 AM Noel Duffy via lazarus <
> lazarus at lists.lazarus-ide.org> wrote:
> 
>> I need some help getting to the root of a problem with incorrect results
>> on Apple hardware (M1, aarch64) for the function UTF8LengthFast in lazutf8.
>>
>> On MacOS, when given a string containing one or more UTF8 characters,
>> UTF8LengthFast returns wildly incorrect results. On Fedora, the function
>> returns the correct answer.
>>
> 
> You mean both MacOS and Fedora run on the same aarch64 CPU?

Oh no, Fedora runs on an Intel x86_64. I don't think there's a Fedora 
that runs on aarch64. I included the results from Fedora just to show 
that the code does work in some places.

> It must be a Big endian / Little endian issue. IIRC it can be adjusted in
> ARM CPUs.
> Why do MacOS and Linux use a different setting there? I have no idea.

Well, as Florian said above, the M1 is little-endian. So it doesn't 
appear to be an endian issue.

https://developer.apple.com/documentation/apple-silicon/porting-your-macos-apps-to-apple-silicon




More information about the lazarus mailing list