kbuild/ppc64le.patch

83 lines
4.2 KiB
Diff

---
kBuild/env.sh | 3 +++
kBuild/header.kmk | 6 +++---
src/lib/kStuff/include/k/kDefs.h | 5 ++++-
src/lib/kStuff/include/k/kHlpAssert.h | 2 ++
4 files changed, 12 insertions(+), 4 deletions(-)
Index: kbuild-0.1.9998+svn3613/kBuild/env.sh
===================================================================
--- kbuild-0.1.9998+svn3613.orig/kBuild/env.sh
+++ kbuild-0.1.9998+svn3613/kBuild/env.sh
@@ -383,6 +383,9 @@ if test -z "$KBUILD_HOST_ARCH"; then
m68k)
KBUILD_HOST_ARCH='m68k'
;;
+ ppc64le|powerpc64le)
+ KBUILD_HOST_ARCH='ppc64le'
+ ;;
mips32|mips)
KBUILD_HOST_ARCH='mips32'
;;
Index: kbuild-0.1.9998+svn3613/kBuild/header.kmk
===================================================================
--- kbuild-0.1.9998+svn3613.orig/kBuild/header.kmk
+++ kbuild-0.1.9998+svn3613/kBuild/header.kmk
@@ -197,8 +197,8 @@ KBUILD_BLD_TYPES := release profile debu
# build types. (PORTME)
#
KBUILD_OSES := darwin dos dragonfly freebsd gnuhurd gnukfbsd gnuknbsd haiku l4 linux netbsd nt openbsd os2 solaris win os-agnostic
-KBUILD_ARCHES := x86 amd64 noarch alpha arm32 arm64 hppa32 hppa64 ia64 m68k loongarch64 mips32 mips64 ppc32 ppc64 riscv32 riscv64 s390 s390x sh32 sh64 sparc32 sparc64 x32
-KBUILD_ARCHES_64 := amd64 alpha arm64 hppa64 ia64 loongarch64 mips64 ppc64 riscv64 s390x sh64 sparc64 x32
+KBUILD_ARCHES := x86 amd64 noarch alpha arm32 arm64 hppa32 hppa64 ia64 m68k loongarch64 mips32 mips64 ppc32 ppc64 ppc64le riscv32 riscv64 s390 s390x sh32 sh64 sparc32 sparc64 x32
+KBUILD_ARCHES_64 := amd64 alpha arm64 hppa64 ia64 loongarch64 mips64 ppc64 ppc64le riscv64 s390x sh64 sparc64 x32
KBUILD_ARCHES_32 := x86 arm32 hppa32 m68k mips32 ppc32 riscv32 s390 sh32 sparc32
@@ -524,7 +524,7 @@ KBUILD_DEVTOOLS_HST ?= $(KBUILD_DEVTOOLS
KBUILD_DEVTOOLS_TRG_NOARCH ?= $(KBUILD_DEVTOOLS)/$(KBUILD_TARGET).noarch
KBUILD_DEVTOOLS_HST_NOARCH ?= $(KBUILD_DEVTOOLS)/$(KBUILD_HOST).noarch
-if1of ($(KBUILD_TARGET_ARCH), amd64 hppa64 mips64 ppc64 s390x sparc64)
+if1of ($(KBUILD_TARGET_ARCH), amd64 hppa64 mips64 ppc64 ppc64le s390x sparc64)
ifeq ($(KBUILD_TARGET_ARCH),amd64)
KBUILD_DEVTOOLS_TRG_ALT ?= $(KBUILD_DEVTOOLS)/$(KBUILD_TARGET).x86
else ifeq ($(KBUILD_TARGET_ARCH),hppa64)
Index: kbuild-0.1.9998+svn3613/src/lib/kStuff/include/k/kDefs.h
===================================================================
--- kbuild-0.1.9998+svn3613.orig/src/lib/kStuff/include/k/kDefs.h
+++ kbuild-0.1.9998+svn3613/src/lib/kStuff/include/k/kDefs.h
@@ -176,6 +176,7 @@
#define K_ARCH_POWERPC_32 ( 9 | K_ARCH_BIT_32 | K_ARCH_END_BI)
/** 64-bit PowerPC. */
#define K_ARCH_POWERPC_64 ( 9 | K_ARCH_BIT_64 | K_ARCH_END_BI)
+#define K_ARCH_POWERPC_64LE ( 9 | K_ARCH_BIT_64 | K_ARCH_END_LITTLE)
/** 32(31)-bit S390. */
#define K_ARCH_S390_32 (10 | K_ARCH_BIT_32 | K_ARCH_END_BIG)
/** 64-bit S390. */
@@ -232,8 +233,10 @@
# define K_ARCH K_ARCH_MIPS_64
# elif defined(__mips__)
# define K_ARCH K_ARCH_MIPS_32
-# elif defined(__powerpc64__) || defined(__ppc64__) || defined(__PPC64__)
+# elif (defined(__powerpc64__) && defined(__BIG_ENDIAN__))|| defined(__ppc64__) || defined(__PPC64__)
# define K_ARCH K_ARCH_POWERPC_64
+# elif (defined(__powerpc64__) && defined(__LITTLE_ENDIAN__))
+# define K_ARCH K_ARCH_POWERPC_64LE
# elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__)
# define K_ARCH K_ARCH_POWERPC_32
# elif defined(__riscv)
Index: kbuild-0.1.9998+svn3613/src/lib/kStuff/include/k/kHlpAssert.h
===================================================================
--- kbuild-0.1.9998+svn3613.orig/src/lib/kStuff/include/k/kHlpAssert.h
+++ kbuild-0.1.9998+svn3613/src/lib/kStuff/include/k/kHlpAssert.h
@@ -59,6 +59,8 @@ extern "C" {
# define kHlpAssertBreakpoint() do { __asm__ __volatile__ ("unimp 0"); } while (0) /*??*/
#elif defined(__GNUC__) && (K_ARCH == K_ARCH_SPARC_64)
# define kHlpAssertBreakpoint() do { __asm__ __volatile__ ("illtrap 0"); } while (0) /*??*/
+#elif defined(__GNUC__) && (K_ARCH == K_ARCH_POWERPC_64 || K_ARCH == K_ARCH_POWERPC_64LE)
+# define kHlpAssertBreakpoint() do { __asm__ __volatile__ ("tw 31,0,0"); } while (0)
#else
# error "Port Me"
#endif