diff options
Diffstat (limited to 'build_files/build_environment/patches/usd.diff')
-rw-r--r-- | build_files/build_environment/patches/usd.diff | 231 |
1 files changed, 12 insertions, 219 deletions
diff --git a/build_files/build_environment/patches/usd.diff b/build_files/build_environment/patches/usd.diff index 8ea1e2054c1..5c0d2ba0b67 100644 --- a/build_files/build_environment/patches/usd.diff +++ b/build_files/build_environment/patches/usd.diff @@ -10,225 +10,18 @@ diff -x .git -ur usd.orig/cmake/defaults/Packages.cmake external_usd/cmake/defau add_definitions(${TBB_DEFINITIONS}) # --math -diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros/Public.cmake ---- external_usd_base/cmake/macros/Public.cmake 2019-10-24 14:39:53 -0600 -+++ external_usd/cmake/macros/Public.cmake 2020-01-11 13:33:29 -0700 -@@ -996,6 +996,12 @@ - foreach(lib ${PXR_OBJECT_LIBS}) - string(TOUPPER ${lib} uppercaseName) - list(APPEND exports "${uppercaseName}_EXPORTS=1") -+ # When building for blender, we do NOT want to export all symbols on windows. -+ # This is a dirty hack, but USD makes it impossible to do the right thing -+ # with the default options exposed. -+ if (WIN32) -+ list(APPEND exports "PXR_STATIC=1") -+ endif() - endforeach() - foreach(lib ${PXR_OBJECT_LIBS}) - set(objects "${objects};\$<TARGET_OBJECTS:${lib}>") -diff -ru USD-20.11/pxr/base/tf/pxrLZ4/lz4.cpp external_usd/pxr/base/tf/pxrLZ4/lz4.cpp ---- USD-20.11/pxr/base/tf/pxrLZ4/lz4.cpp 2020-10-14 19:25:19.000000000 +0100 -+++ external_usd/pxr/base/tf/pxrLZ4/lz4.cpp 2021-02-09 09:28:51.496190085 +0000 -@@ -614,6 +614,15 @@ - /*-************************************ - * Internal Definitions used in Tests - **************************************/ -+ -+/******************************************************************* -+ * Disabled in Blender. The BLOSC library also exposes these -+ * functions, and this causes 'duplicate symbol' linker errors. -+ * -+ * This problem has been reported upstream at -+ * https://github.com/PixarAnimationStudios/USD/issues/1447 -+ * -+ ******************************************************************* - #if defined (__cplusplus) - extern "C" { - #endif -@@ -627,6 +636,7 @@ - #if defined (__cplusplus) - } - #endif -+********************************************************************/ - - /*-****************************** - * Compression functions - -From 442d087962f762deeb8b6e49a0955753fcf9aeb9 Mon Sep 17 00:00:00 2001 -From: Tsahi Zidenberg <tsahee@amazon.com> -Date: Sun, 15 Nov 2020 15:18:24 +0000 -Subject: [PATCH 1/2] stackTrace: support aarch64/linux - -stacktrace calls syscall directly via assembler. Create compatible -aarch64 code. ---- - pxr/base/arch/stackTrace.cpp | 30 ++++++++++++++++++++++++------ - 1 file changed, 24 insertions(+), 6 deletions(-) - -diff --git a/pxr/base/arch/stackTrace.cpp b/pxr/base/arch/stackTrace.cpp -index dcc1dfd46..c11aabeb1 100644 ---- a/pxr/base/arch/stackTrace.cpp -+++ b/pxr/base/arch/stackTrace.cpp -@@ -583,7 +583,6 @@ nonLockingLinux__execve (const char *file, - char *const argv[], - char *const envp[]) - { --#if defined(ARCH_BITS_64) - /* - * We make a direct system call here, because we can't find an - * execve which corresponds with the non-locking fork we call -@@ -594,7 +593,27 @@ nonLockingLinux__execve (const char *file, - * hangs in a threaded app. (We use the non-locking fork to get - * around problems with forking when we have had memory - * corruption.) whew. -- * -+ */ -+ -+ unsigned long result; -+ -+#if defined (__aarch64__) -+ { -+ register long __file_result asm ("x0") = (long)file; -+ register char* const* __argv asm ("x1") = argv; -+ register char* const* __envp asm ("x2") = envp; -+ register long __num_execve asm ("x8") = 221; -+ __asm__ __volatile__ ( -+ "svc 0" -+ : "=r" (__file_result) -+ : "r"(__num_execve), "r" (__file_result), "r" (__argv), "r" (__envp) -+ : "memory" -+ ); -+ result = __file_result; -+ } -+#elif defined(ARCH_CPU_INTEL) && defined(ARCH_BITS_64) -+ -+ /* - * %rdi, %rsi, %rdx, %rcx, %r8, %r9 are args 0-5 - * syscall clobbers %rcx and %r11 - * -@@ -603,7 +622,6 @@ nonLockingLinux__execve (const char *file, - * constraints to gcc. - */ - -- unsigned long result; - __asm__ __volatile__ ( - "mov %0, %%rdi \n\t" - "mov %%rcx, %%rsi \n\t" -@@ -614,6 +632,9 @@ nonLockingLinux__execve (const char *file, - : "0" (file), "c" (argv), "d" (envp) - : "memory", "cc", "r11" - ); -+#else -+#error Unknown architecture -+#endif - - if (result >= 0xfffffffffffff000) { - errno = -result; -@@ -621,9 +642,6 @@ nonLockingLinux__execve (const char *file, - } - - return result; --#else --#error Unknown architecture --#endif - } - - #endif -From a1dffe02519bb3c6ccbbe8c6c58304da5db98995 Mon Sep 17 00:00:00 2001 -From: Tsahi Zidenberg <tsahee@amazon.com> -Date: Sun, 15 Nov 2020 15:22:52 +0000 -Subject: [PATCH 2/2] timing: support aarch64/linux - -The aarch64 arch-timer is directly accessible to userspace via two -registers: -CNTVCT_EL0 - holds the current counter value -CNTFRQ_EL0 - holds the counter frequency (in Hz) ---- - pxr/base/arch/timing.cpp | 6 ++++++ - pxr/base/arch/timing.h | 6 +++++- - 2 files changed, 11 insertions(+), 1 deletion(-) - -diff --git a/pxr/base/arch/timing.cpp b/pxr/base/arch/timing.cpp -index 27ad58fed..9022950c1 100644 ---- a/pxr/base/arch/timing.cpp -+++ b/pxr/base/arch/timing.cpp -@@ -59,6 +59,11 @@ ARCH_HIDDEN - void - Arch_InitTickTimer() - { -+#ifdef __aarch64__ -+ uint64_t counter_hz; -+ __asm __volatile("mrs %0, CNTFRQ_EL0" : "=&r" (counter_hz)); -+ Arch_NanosecondsPerTick = double(1e9) / double(counter_hz); -+#else - // NOTE: Normally ifstream would be cleaner, but it causes crashes when - // used in conjunction with DSOs and the Intel Compiler. - FILE *in; -@@ -135,6 +140,7 @@ Arch_InitTickTimer() - } - - Arch_NanosecondsPerTick = double(1e9) / double(cpuHz); -+#endif - } - #elif defined(ARCH_OS_WINDOWS) - -diff --git a/pxr/base/arch/timing.h b/pxr/base/arch/timing.h -index 67ec0d15f..6dc3e85a0 100644 ---- a/pxr/base/arch/timing.h -+++ b/pxr/base/arch/timing.h -@@ -36,7 +36,7 @@ - /// \addtogroup group_arch_SystemFunctions - ///@{ - --#if defined(ARCH_OS_LINUX) -+#if defined(ARCH_OS_LINUX) && defined(ARCH_CPU_INTEL) - #include <x86intrin.h> - #elif defined(ARCH_OS_DARWIN) - #include <mach/mach_time.h> -@@ -69,6 +69,10 @@ ArchGetTickTime() - #elif defined(ARCH_CPU_INTEL) - // On Intel we'll use the rdtsc instruction. - return __rdtsc(); -+#elif defined (__aarch64__) -+ uint64_t result; -+ __asm __volatile("mrs %0, CNTVCT_EL0" : "=&r" (result)); -+ return result; - #else - #error Unknown architecture. - #endif - -diff --git a/pxr/base/arch/demangle.cpp b/pxr/base/arch/demangle.cpp -index 67ec0d15f..6dc3e85a0 100644 ---- a/pxr/base/arch/demangle.cpp -+++ b/pxr/base/arch/demangle.cpp -@@ -36,6 +36,7 @@ - #if (ARCH_COMPILER_GCC_MAJOR == 3 && ARCH_COMPILER_GCC_MINOR >= 1) || \ - ARCH_COMPILER_GCC_MAJOR > 3 || defined(ARCH_COMPILER_CLANG) - #define _AT_LEAST_GCC_THREE_ONE_OR_CLANG -+#include <cxxabi.h> - #endif - - PXR_NAMESPACE_OPEN_SCOPE -@@ -138,7 +139,6 @@ - #endif - - #if defined(_AT_LEAST_GCC_THREE_ONE_OR_CLANG) --#include <cxxabi.h> +diff -Naur usd_orig/cmake/defaults/msvcdefaults.cmake external_usd/cmake/defaults/msvcdefaults.cmake +--- usd_orig/cmake/defaults/msvcdefaults.cmake 2022-02-18 14:49:09 -0700 ++++ external_usd/cmake/defaults/msvcdefaults.cmake 2022-03-14 11:41:50 -0600 +@@ -120,9 +120,6 @@ + # for all translation units. + set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /bigobj") - /* - * This routine doesn't work when you get to gcc3.4. +-# Enable PDB generation. +-set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Zi") +- + # Enable multiprocessor builds. + set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /MP") + set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Gm-") -diff --git a/pxr/base/work/singularTask.h b/pxr/base/work/singularTask.h -index 67ec0d15f..6dc3e85a0 100644 ---- a/pxr/base/work/singularTask.h -+++ b/pxr/base/work/singularTask.h -@@ -120,7 +120,7 @@ - // case we go again to ensure the task can do whatever it - // was awakened to do. Once we successfully take the count - // to zero, we stop. -- size_t old = count; -+ std::size_t old = count; - do { _fn(); } while ( - !count.compare_exchange_strong(old, 0)); - }); |