Skip to content

[AArch64 / Win64 / Bug Fix] Added unresolved declaration for aarch64-win64

Summary

This merge request fixes an unresolved declaration in rtl/win/systhrd.inc (included in the System unit) when building for aarch64-win64. It seems that declared(SysRelocateThreadvar) always returns True because it has actually been declared, just not implemented/resolved.

This issue seems to have been introduced in c68788e0 (@runewalsh, this is one of yours), as while it implements assembly language versions of SysRelocateThreadVar for i386 and x86_64, there isn't one for AArch64 yet, and the intended fallback doesn't work as expected.

System

  • Operating system: Microsoft Windows 10
  • Processor architecture: AArch64
  • Device: Raspberry Pi 4

What is the current bug behavior?

The compiler fails to build the System unit because of an unresolved declaration:

systhrd.inc(130,14) Error: Forward declaration not solved "SysRelocateThreadvar(LongWord):Pointer;"

What is the behavior after applying this patch?

The make all script completes successfully and the compiler and RTL are built.

Merge request reports