Index: libraries/osx/build-osx-libs.sh =================================================================== --- libraries/osx/build-osx-libs.sh +++ libraries/osx/build-osx-libs.sh @@ -54,7 +54,7 @@ # -------------------------------------------------------------- # We use suffixes here in order to force rebuilding when patching these libs SPIDERMONKEY_VERSION="mozjs-45.0.2+wildfiregames.1" -NVTT_VERSION="nvtt-2.1.1+wildfiregames.1" +NVTT_VERSION="nvtt-2.1.1+wildfiregames.2" FCOLLADA_VERSION="fcollada-3.05+wildfiregames.1" # -------------------------------------------------------------- # Provided by OS X: Index: libraries/source/nvtt/README.txt =================================================================== --- libraries/source/nvtt/README.txt +++ libraries/source/nvtt/README.txt @@ -4,6 +4,8 @@ cmake-freebsd.patch (fixes build on FreeBSD) issue188.patch (fixes http://code.google.com/p/nvidia-texture-tools/issues/detail?id=188) issue261.patch (fixes https://github.com/castano/nvidia-texture-tools/issues/261) + pr270.patch (from https://github.com/castano/nvidia-texture-tools/pull/270) rpath.patch (fixes .so file search paths for bundled copy) win-shared-build.patch (adapted from https://github.com/castano/nvidia-texture-tools/pull/285) musl-build.patch (fixes build on musl linux; contributed by voroskoi, with a part by leper, see https://code.wildfiregames.com/D2491) + arm-build.patch (fixes build on non-aarch64 arm, includes a line from https://github.com/castano/nvidia-texture-tools/pull/309 by leper) Index: libraries/source/nvtt/build.sh =================================================================== --- libraries/source/nvtt/build.sh +++ libraries/source/nvtt/build.sh @@ -11,7 +11,7 @@ mkdir -p src/build/ cd src/build/ -cmake .. -DNVTT_SHARED=1 -DCMAKE_BUILD_TYPE=Release -DBINDIR=bin -DLIBDIR=lib -G "Unix Makefiles" +cmake .. -DNVTT_SHARED=1 -DOpenGL_GL_PREFERENCE=GLVND -DCMAKE_BUILD_TYPE=Release -DBINDIR=bin -DLIBDIR=lib -G "Unix Makefiles" ${MAKE} nvtt ${JOBS} Index: libraries/source/nvtt/patches/arm-build.patch =================================================================== --- /dev/null +++ libraries/source/nvtt/patches/arm-build.patch @@ -0,0 +1,46 @@ +--- + src/nvcore/Debug.cpp | 8 ++++++++ + src/nvcore/Debug.h | 2 +- + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/nvcore/Debug.cpp b/src/nvcore/Debug.cpp +index 7379971..ce632ca 100644 +--- a/src/nvcore/Debug.cpp ++++ b/src/nvcore/Debug.cpp +@@ -665,6 +665,9 @@ namespace + # elif NV_CPU_PPC + ucontext_t * ucp = (ucontext_t *)secret; + return (void *) ucp->uc_mcontext.regs->nip; ++# elif NV_CPU_ARM ++ ucontext_t * ucp = (ucontext_t *)secret; ++ return (void *) ucp->uc_mcontext.arm_pc; + # elif NV_CPU_AARCH64 + ucontext_t * ucp = (ucontext_t *)secret; + return (void *) ucp->uc_mcontext.pc; +@@ -1021,7 +1024,12 @@ void debug::dumpCallstack(MessageHandler *messageHandler, int callstackLevelsToS + writeStackTrace(trace, size, callstackLevelsToSkip + 1, lines); // + 1 to skip the call to dumpCallstack + + for (uint i = 0; i < lines.count(); i++) { ++#if NV_CPU_ARM || NV_CPU_AARCH64 || NV_OS_DARWIN || NV_OS_IOS ++ va_list empty_va_list = {}; ++ messageHandler->log(lines[i], empty_va_list); ++#else + messageHandler->log(lines[i], NULL); ++#endif + delete lines[i]; + } + } +diff --git a/src/nvcore/Debug.h b/src/nvcore/Debug.h +index eb80b53..8a48328 100644 +--- a/src/nvcore/Debug.h ++++ b/src/nvcore/Debug.h +@@ -166,7 +166,7 @@ NVCORE_API void NV_CDECL nvDebugPrint( const char *msg, ... ) __attribute__((for + namespace nv + { + inline bool isValidPtr(const void * ptr) { +- #if NV_CPU_X86_64 || POSH_CPU_PPC64 ++ #if NV_CPU_X86_64 || POSH_CPU_PPC64 || NV_CPU_AARCH64 + if (ptr == NULL) return true; + if (reinterpret_cast(ptr) < 0x10000ULL) return false; + if (reinterpret_cast(ptr) >= 0x000007FFFFFEFFFFULL) return false; +-- Index: libraries/source/nvtt/patches/pr270.patch =================================================================== --- /dev/null +++ libraries/source/nvtt/patches/pr270.patch @@ -0,0 +1,21 @@ +--- + src/nvconfig.h.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/nvconfig.h.in b/src/nvconfig.h.in +index 16da646..6a8ad2c 100644 +--- a/src/nvconfig.h.in ++++ b/src/nvconfig.h.in +@@ -1,7 +1,11 @@ + #ifndef NV_CONFIG + #define NV_CONFIG + ++#if NV_OS_DARWIN && !NV_OS_IOS ++#cmakedefine01 HAVE_UNISTD_H ++#else + #cmakedefine HAVE_UNISTD_H ++#endif + #cmakedefine HAVE_STDARG_H + #cmakedefine HAVE_SIGNAL_H + #cmakedefine HAVE_EXECINFO_H +-- Index: libraries/source/nvtt/src/configure =================================================================== --- libraries/source/nvtt/src/configure +++ libraries/source/nvtt/src/configure @@ -52,7 +52,7 @@ mkdir -p ./build-$build cd ./build-$build -$CMAKE .. -DNVTT_SHARED=0 -DCMAKE_BUILD_TYPE=$build -DCMAKE_INSTALL_PREFIX=$prefix -G "Unix Makefiles" || exit 1 +$CMAKE .. -DNVTT_SHARED=0 -DOpenGL_GL_PREFERENCE=GLVND -DCMAKE_BUILD_TYPE=$build -DCMAKE_INSTALL_PREFIX=$prefix -G "Unix Makefiles" || exit 1 cd .. echo "" Index: libraries/source/nvtt/src/src/nvconfig.h.in =================================================================== --- libraries/source/nvtt/src/src/nvconfig.h.in +++ libraries/source/nvtt/src/src/nvconfig.h.in @@ -1,7 +1,11 @@ #ifndef NV_CONFIG #define NV_CONFIG +#if NV_OS_DARWIN && !NV_OS_IOS +#cmakedefine01 HAVE_UNISTD_H +#else #cmakedefine HAVE_UNISTD_H +#endif #cmakedefine HAVE_STDARG_H #cmakedefine HAVE_SIGNAL_H #cmakedefine HAVE_EXECINFO_H Index: libraries/source/nvtt/src/src/nvcore/Debug.h =================================================================== --- libraries/source/nvtt/src/src/nvcore/Debug.h +++ libraries/source/nvtt/src/src/nvcore/Debug.h @@ -166,7 +166,7 @@ namespace nv { inline bool isValidPtr(const void * ptr) { - #if NV_CPU_X86_64 || POSH_CPU_PPC64 + #if NV_CPU_X86_64 || POSH_CPU_PPC64 || NV_CPU_AARCH64 if (ptr == NULL) return true; if (reinterpret_cast(ptr) < 0x10000ULL) return false; if (reinterpret_cast(ptr) >= 0x000007FFFFFEFFFFULL) return false; Index: libraries/source/nvtt/src/src/nvcore/Debug.cpp =================================================================== --- libraries/source/nvtt/src/src/nvcore/Debug.cpp +++ libraries/source/nvtt/src/src/nvcore/Debug.cpp @@ -665,6 +665,9 @@ # elif NV_CPU_PPC ucontext_t * ucp = (ucontext_t *)secret; return (void *) ucp->uc_mcontext.regs->nip; +# elif NV_CPU_ARM + ucontext_t * ucp = (ucontext_t *)secret; + return (void *) ucp->uc_mcontext.arm_pc; # elif NV_CPU_AARCH64 ucontext_t * ucp = (ucontext_t *)secret; return (void *) ucp->uc_mcontext.pc; @@ -1021,7 +1024,12 @@ writeStackTrace(trace, size, callstackLevelsToSkip + 1, lines); // + 1 to skip the call to dumpCallstack for (uint i = 0; i < lines.count(); i++) { +#if NV_CPU_ARM || NV_CPU_AARCH64 || NV_OS_DARWIN || NV_OS_IOS + va_list empty_va_list = {}; + messageHandler->log(lines[i], empty_va_list); +#else messageHandler->log(lines[i], NULL); +#endif delete lines[i]; } }