@@ -84,10 +84,15 @@ ifeq ($(ARCH),x86_64)
CPU_UNITS=$(X86UNIT) $(PORTSUNIT) $(CPUUNIT) $(INTRINSICSUNIT)
ASTARGET=--64
endif
+
ifeq ($(ARCH),aarch64)
CPU_UNITS=$(INTRINSICSUNIT)
+ifeq ($(ARCH),powerpc64)
+CPU_UNITS=$(INTRINSICSUNIT)
+endif
# Paths
OBJPASDIR=$(RTL)/objpas
@@ -6,8 +6,7 @@
/* FreeBSD/ppc64: avoid @toc@ha/@toc@l relocations (not supported by some assemblers).
Use full 64-bit absolute address materialization for data symbols. */
.macro LOAD_64BIT_ADDR ra, sym
- addis \ra,2,\sym@toc@ha
- ld \ra,\sym@toc@l(\ra)
+ ld \ra,(\sym)@got(2)
.endm
.section .rodata
@@ -41,6 +41,9 @@ unit Classes;
interface
+{$ifdef NO_FPC_USE_INTRINSICS}
+ {$undef FPC_USE_INTRINSICS}
+{$endif}
{$IFDEF FPC_DOTTEDUNITS}
uses
System.SysUtils,