Add build support for Linux/hppa (#12271)

* build.sh: Enable CPU detection for hppa
* compiler: Add hppa as target architecture on Linux
* lib/system: Add platform support for hppa
This commit is contained in:
John Paul Adrian Glaubitz 2019-09-26 15:45:06 +02:00 • committed by Andreas Rumpf
commit 944fcc0e62
4 changed files with 9 additions and 4 deletions

View file

@ -6,7 +6,7 @@ Name: "Nim"
Version: "$version" Version: "$version"
Platforms: """ Platforms: """
windows: i386;amd64 windows: i386;amd64
linux: i386;ia64;alpha;amd64;powerpc64;arm;sparc;sparc64;m68k;mips;mipsel;mips64;mips64el;powerpc;powerpc64el;arm64;riscv64 linux: i386;hppa;ia64;alpha;amd64;powerpc64;arm;sparc;sparc64;m68k;mips;mipsel;mips64;mips64el;powerpc;powerpc64el;arm64;riscv64
macosx: i386;amd64;powerpc64 macosx: i386;amd64;powerpc64
solaris: i386;amd64;sparc;sparc64 solaris: i386;amd64;sparc;sparc64
freebsd: i386;amd64;powerpc64 freebsd: i386;amd64;powerpc64

View file

@ -183,9 +183,9 @@ type
TSystemCPU* = enum # Also add CPU for in initialization section and TSystemCPU* = enum # Also add CPU for in initialization section and
# alias conditionals to condsyms (end of module). # alias conditionals to condsyms (end of module).
cpuNone, cpuI386, cpuM68k, cpuAlpha, cpuPowerpc, cpuPowerpc64, cpuNone, cpuI386, cpuM68k, cpuAlpha, cpuPowerpc, cpuPowerpc64,
cpuPowerpc64el, cpuSparc, cpuVm, cpuIa64, cpuAmd64, cpuMips, cpuMipsel, cpuPowerpc64el, cpuSparc, cpuVm, cpuHppa, cpuIa64, cpuAmd64, cpuMips,
cpuArm, cpuArm64, cpuJS, cpuNimVM, cpuAVR, cpuMSP430, cpuSparc64, cpuMipsel, cpuArm, cpuArm64, cpuJS, cpuNimVM, cpuAVR, cpuMSP430,
cpuMips64, cpuMips64el, cpuRiscV64, cpuWasm32 cpuSparc64, cpuMips64, cpuMips64el, cpuRiscV64, cpuWasm32
type type
TEndian* = enum TEndian* = enum
@ -204,6 +204,7 @@ const
(name: "powerpc64el", intSize: 64, endian: littleEndian, floatSize: 64,bit: 64), (name: "powerpc64el", intSize: 64, endian: littleEndian, floatSize: 64,bit: 64),
(name: "sparc", intSize: 32, endian: bigEndian, floatSize: 64, bit: 32), (name: "sparc", intSize: 32, endian: bigEndian, floatSize: 64, bit: 32),
(name: "vm", intSize: 32, endian: littleEndian, floatSize: 64, bit: 32), (name: "vm", intSize: 32, endian: littleEndian, floatSize: 64, bit: 32),
(name: "hppa", intSize: 32, endian: bigEndian, floatSize: 64, bit: 32),
(name: "ia64", intSize: 64, endian: littleEndian, floatSize: 64, bit: 64), (name: "ia64", intSize: 64, endian: littleEndian, floatSize: 64, bit: 64),
(name: "amd64", intSize: 64, endian: littleEndian, floatSize: 64, bit: 64), (name: "amd64", intSize: 64, endian: littleEndian, floatSize: 64, bit: 64),
(name: "mips", intSize: 32, endian: bigEndian, floatSize: 64, bit: 32), (name: "mips", intSize: 32, endian: bigEndian, floatSize: 64, bit: 32),

View file

@ -21,6 +21,7 @@ type
powerpc64el, ## Little Endian 64 bit PowerPC powerpc64el, ## Little Endian 64 bit PowerPC
sparc, ## Sparc based processor sparc, ## Sparc based processor
sparc64, ## 64-bit Sparc based processor sparc64, ## 64-bit Sparc based processor
hppa, ## HP PA-RISC
ia64, ## Intel Itanium ia64, ## Intel Itanium
amd64, ## x86_64 (AMD64); 64 bit x86 compatible CPU amd64, ## x86_64 (AMD64); 64 bit x86 compatible CPU
mips, ## Mips based processor mips, ## Mips based processor
@ -78,6 +79,7 @@ const
elif defined(powerpc64el): CpuPlatform.powerpc64el elif defined(powerpc64el): CpuPlatform.powerpc64el
elif defined(sparc): CpuPlatform.sparc elif defined(sparc): CpuPlatform.sparc
elif defined(sparc64): CpuPlatform.sparc64 elif defined(sparc64): CpuPlatform.sparc64
elif defined(hppa): CpuPlatform.hppa
elif defined(ia64): CpuPlatform.ia64 elif defined(ia64): CpuPlatform.ia64
elif defined(amd64): CpuPlatform.amd64 elif defined(amd64): CpuPlatform.amd64
elif defined(mips): CpuPlatform.mips elif defined(mips): CpuPlatform.mips

View file

@ -162,6 +162,8 @@ case $ucpu in
mycpu="powerpc" mycpu="powerpc"
fi fi
;; ;;
*hppa*)
mycpu="hppa" ;;
*ia64*) *ia64*)
mycpu="ia64" ;; mycpu="ia64" ;;
*m68k*) *m68k*)