mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
kodi: add aarch64 support patches
This commit is contained in:
parent
342b515b2e
commit
a4f9623e6b
@ -0,0 +1,159 @@
|
||||
From ae4e63aa165583ef5eaab4759e7af24eeffbb197 Mon Sep 17 00:00:00 2001
|
||||
From: croniccorey <cronmod.dev@gmail.com>
|
||||
Date: Sun, 13 Dec 2015 16:37:05 -0500
|
||||
Subject: [PATCH] KODI: Add support for aarch64 platform
|
||||
|
||||
---
|
||||
addons/library.xbmc.addon/libXBMC_addon.h | 2 ++
|
||||
configure.ac | 12 ++++++++++++
|
||||
m4/xbmc_arch.m4 | 2 +-
|
||||
xbmc/cores/DllLoader/DllLoader.h | 2 +-
|
||||
xbmc/cores/DllLoader/ldt_keeper.c | 2 +-
|
||||
xbmc/cores/VideoRenderers/LinuxRendererGL.h | 2 +-
|
||||
xbmc/linux/PlatformDefs.h | 2 +-
|
||||
xbmc/threads/Atomics.cpp | 2 +-
|
||||
xbmc/utils/CPUInfo.cpp | 2 +-
|
||||
xbmc/utils/MathUtils.h | 3 ++-
|
||||
10 files changed, 23 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/addons/library.xbmc.addon/libXBMC_addon.h b/addons/library.xbmc.addon/libXBMC_addon.h
|
||||
index c3ed54f..76190b6 100644
|
||||
--- a/addons/library.xbmc.addon/libXBMC_addon.h
|
||||
+++ b/addons/library.xbmc.addon/libXBMC_addon.h
|
||||
@@ -55,6 +55,8 @@ typedef intptr_t ssize_t;
|
||||
#define ADDON_HELPER_ARCH "powerpc64-linux"
|
||||
#elif defined(__ARMEL__)
|
||||
#define ADDON_HELPER_ARCH "arm"
|
||||
+#elif defined(__aarch64__)
|
||||
+#define ADDON_HELPER_ARCH "aarch64"
|
||||
#elif defined(__mips__)
|
||||
#define ADDON_HELPER_ARCH "mips"
|
||||
#else
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c767357..80f3807 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -691,6 +691,18 @@ case $host in
|
||||
use_wayland=no
|
||||
USE_STATIC_FFMPEG=1
|
||||
;;
|
||||
+ aarch64*-*-linux-gnu*)
|
||||
+ target_platform=target_linux
|
||||
+ ARCH="aarch64"
|
||||
+ use_arch="aarch64"
|
||||
+ use_cpu=cortex-a53
|
||||
+ use_joystick=no
|
||||
+ use_neon=yes
|
||||
+ use_gles=yes
|
||||
+ use_gl=no
|
||||
+ use_wayland=no
|
||||
+ USE_STATIC_FFMPEG=1
|
||||
+ ;;
|
||||
arm*-*linux-android*)
|
||||
target_platform=target_android
|
||||
use_arch="arm"
|
||||
diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
|
||||
index 0b66a82..fa08537 100644
|
||||
--- a/m4/xbmc_arch.m4
|
||||
+++ b/m4/xbmc_arch.m4
|
||||
@@ -60,7 +60,7 @@ case $host in
|
||||
powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
|
||||
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
|
||||
;;
|
||||
- arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
|
||||
+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|aarch64*-*-linux-gnu*)
|
||||
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
|
||||
;;
|
||||
mips*-*-linux-gnu*|mips*-*-linux-uclibc*)
|
||||
diff --git a/xbmc/cores/DllLoader/DllLoader.h b/xbmc/cores/DllLoader/DllLoader.h
|
||||
index 070aee6..e669203 100644
|
||||
--- a/xbmc/cores/DllLoader/DllLoader.h
|
||||
+++ b/xbmc/cores/DllLoader/DllLoader.h
|
||||
@@ -23,7 +23,7 @@
|
||||
#include "coffldr.h"
|
||||
#include "LibraryLoader.h"
|
||||
|
||||
-#if defined(__linux__) && !defined(__powerpc__) && !defined(__arm__) && !defined(__mips__)
|
||||
+#if defined(__linux__) && !defined(__powerpc__) && !defined(__arm__) && !defined(__mips__) && !defined(__aarch64__)
|
||||
#define USE_LDT_KEEPER
|
||||
#include "ldt_keeper.h"
|
||||
#endif
|
||||
diff --git a/xbmc/cores/DllLoader/ldt_keeper.c b/xbmc/cores/DllLoader/ldt_keeper.c
|
||||
index 8af9a86..1c0cdb2 100644
|
||||
--- a/xbmc/cores/DllLoader/ldt_keeper.c
|
||||
+++ b/xbmc/cores/DllLoader/ldt_keeper.c
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
|
||||
//#ifndef __powerpc__
|
||||
-#if !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__) && !defined(__mips__)
|
||||
+#if !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__) && !defined(__mips__) && !defined(__aarch64__)
|
||||
|
||||
#include "ldt_keeper.h"
|
||||
|
||||
diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.h b/xbmc/cores/VideoRenderers/LinuxRendererGL.h
|
||||
index fcdea8d..5a3e3df 100644
|
||||
--- a/xbmc/cores/VideoRenderers/LinuxRendererGL.h
|
||||
+++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.h
|
||||
@@ -323,7 +323,7 @@ class CLinuxRendererGL : public CBaseRenderer
|
||||
|
||||
|
||||
inline int NP2( unsigned x ) {
|
||||
-#if defined(TARGET_POSIX) && !defined(__POWERPC__) && !defined(__PPC__) && !defined(__arm__) && !defined(__mips__)
|
||||
+#if defined(TARGET_POSIX) && !defined(__POWERPC__) && !defined(__PPC__) && !defined(__arm__) && !defined(__mips__) && !defined(__aarch64__)
|
||||
// If there are any issues compiling this, just append a ' && 0'
|
||||
// to the above to make it '#if defined(TARGET_POSIX) && 0'
|
||||
|
||||
diff --git a/xbmc/linux/PlatformDefs.h b/xbmc/linux/PlatformDefs.h
|
||||
index 4350075..2c6fff4 100644
|
||||
--- a/xbmc/linux/PlatformDefs.h
|
||||
+++ b/xbmc/linux/PlatformDefs.h
|
||||
@@ -161,7 +161,7 @@
|
||||
#define __int64 long long
|
||||
#define __uint64 unsigned long long
|
||||
|
||||
-#if defined(__x86_64__) || defined(__powerpc__) || defined(__ppc__) || defined (__arm__) || defined(__mips__) // should this be powerpc64 only?
|
||||
+#if defined(__x86_64__) || defined(__powerpc__) || defined(__ppc__) || defined (__arm__) || defined(__mips__) || defined(__aarch64__)
|
||||
#define __stdcall
|
||||
#else /* !__x86_64__ */
|
||||
#define __stdcall __attribute__((__stdcall__))
|
||||
diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp
|
||||
index 417b2b6..c172867 100644
|
||||
--- a/xbmc/threads/Atomics.cpp
|
||||
+++ b/xbmc/threads/Atomics.cpp
|
||||
@@ -106,7 +106,7 @@ long cas(volatile long *pAddr, long expectedVal, long swapVal)
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
long long cas2(volatile long long* pAddr, long long expectedVal, long long swapVal)
|
||||
{
|
||||
-#if defined(__ppc__) || defined(__powerpc__) || defined(__arm__)// PowerPC and ARM
|
||||
+#if defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || defined(__aarch64__) // PowerPC and ARM
|
||||
// Not available/required
|
||||
// Hack to allow compilation
|
||||
throw "cas2 is not implemented";
|
||||
diff --git a/xbmc/utils/CPUInfo.cpp b/xbmc/utils/CPUInfo.cpp
|
||||
index 9e709e7..d7fef37 100644
|
||||
--- a/xbmc/utils/CPUInfo.cpp
|
||||
+++ b/xbmc/utils/CPUInfo.cpp
|
||||
@@ -914,7 +914,7 @@ void CCPUInfo::ReadCPUFeatures()
|
||||
#endif
|
||||
#elif defined(LINUX)
|
||||
// empty on purpose, the implementation is in the constructor
|
||||
-#elif !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__)
|
||||
+#elif !defined(__powerpc__) && !defined(__ppc__) && !defined(__arm__) && !defined(__aarch64__)
|
||||
m_cpuFeatures |= CPU_FEATURE_MMX;
|
||||
#elif defined(__powerpc__) || defined(__ppc__)
|
||||
m_cpuFeatures |= CPU_FEATURE_ALTIVEC;
|
||||
diff --git a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h
|
||||
index 08140b7..249b4dd 100644
|
||||
--- a/xbmc/utils/MathUtils.h
|
||||
+++ b/xbmc/utils/MathUtils.h
|
||||
@@ -35,7 +35,8 @@
|
||||
#if defined(__ppc__) || \
|
||||
defined(__powerpc__) || \
|
||||
defined(__mips__) || \
|
||||
- defined(__arm__)
|
||||
+ defined(__arm__) || \
|
||||
+ defined(__aarch64__)
|
||||
#define DISABLE_MATHUTILS_ASM_ROUND_INT
|
||||
#endif
|
||||
|
@ -0,0 +1,24 @@
|
||||
diff -Naur a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp 2016-02-02 23:09:39.000000000 +0100
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/AMLCodec.cpp 2016-02-10 07:01:28.941399058 +0100
|
||||
@@ -1598,7 +1598,7 @@
|
||||
am_private->gcodec.param = (void*)(EXTERNAL_PTS | SYNC_OUTSIDE);
|
||||
break;
|
||||
}
|
||||
- am_private->gcodec.param = (void *)((unsigned int)am_private->gcodec.param | (am_private->video_rotation_degree << 16));
|
||||
+ am_private->gcodec.param = (void *)((unsigned long)am_private->gcodec.param | (am_private->video_rotation_degree << 16));
|
||||
|
||||
// translate from generic to firemware version dependent
|
||||
m_dll->codec_init_para(&am_private->gcodec, &am_private->vcodec);
|
||||
diff -Naur a/xbmc/guilib/GUIFontTTFGL.cpp b/xbmc/guilib/GUIFontTTFGL.cpp
|
||||
--- a/xbmc/guilib/GUIFontTTFGL.cpp 2016-02-02 23:09:39.000000000 +0100
|
||||
+++ b/xbmc/guilib/GUIFontTTFGL.cpp 2016-02-10 06:59:49.261293006 +0100
|
||||
@@ -232,7 +232,7 @@
|
||||
glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glMatrixModview.Get());
|
||||
|
||||
// Bind the buffer to the OpenGL context's GL_ARRAY_BUFFER binding point
|
||||
- glBindBuffer(GL_ARRAY_BUFFER, (GLuint) m_vertexTrans[i].vertexBuffer->bufferHandle);
|
||||
+ glBindBuffer(GL_ARRAY_BUFFER, (unsigned long) m_vertexTrans[i].vertexBuffer->bufferHandle);
|
||||
|
||||
// Do the actual drawing operation, split into groups of characters no
|
||||
// larger than the pre-determined size of the element array
|
Loading…
x
Reference in New Issue
Block a user