blender/build_files/build_environment/patches/usd_ctor.diff
Jonas Holzman d5d927b670 Deps: Library changes for Blender 5.2 LTS
### New libraries
- meshoptimizer v1.0
- tomli-w 1.2.0
- Tracy 0.13.1

### Updates of existing libraries
- OpenShadingLanguage 1.15.3.0
- OpenPGL 0.7.1
- ThorVG 1.0.3
- OpenUSD 26.03
- OpenImageIO 3.1.13.1
- libpng 1.6.58
- DPC++ 6.3.0
- Embree 4.4.1
- Intel Graphics Compiler v2.30.1
- Manifold 3.4.1
- x265 4.1
- ROCm / HIP 7.1.1 / 7.1.51803
- libexpat 2.7.5
- libtiff 4.7.1
- mesa 25.3.6
- OpenEXR 3.4.10
- OpenSSL 3.5.6
- Python 3.13.13
- sqlite 3.51.3
- libxml2 2.14.6
- ffmpeg 8.1
- Draco 1.5.7
- SDL 3.4.2

Library changes tracking issue ref: #153974

Co-authored-by: Sebastian Parborg <sebastian@blender.org>
Co-authored-by: Ray Molenkamp <github@lazydodo.com>
Co-authored-by: Sahar A. Kashi <salipour@noreply.localhost>
Co-authored-by: Nikita Sirgienko <nikita.sirgienko@intel.com>
Co-authored-by: Bart van der Braak <bart@blender.org>
Co-authored-by: Thomas Dinges <thomas@blender.org>
Co-authored-by: Alaska <Alaskayou01@gmail.com>

Pull Request: https://projects.blender.org/blender/blender/pulls/157180
2026-05-11 19:04:45 +02:00

126 lines
6.8 KiB
Diff

diff --git a/pxr/base/arch/attributes.cpp b/pxr/base/arch/attributes.cpp
index 1309d6f24..b65893b9c 100644
--- a/pxr/base/arch/attributes.cpp
+++ b/pxr/base/arch/attributes.cpp
@@ -187,7 +187,7 @@ AddImage(const struct mach_header* mh, intptr_t slide)
return;
}
- const auto entries = GetConstructorEntries(mh, slide, "__DATA", "pxrctor");
+ const auto entries = GetConstructorEntries(mh, slide, "__DATA", "pxbctor");
// Execute in priority order.
for (size_t i = 0, n = entries.size(); i != n; ++i) {
@@ -203,7 +203,7 @@ static
void
RemoveImage(const struct mach_header* mh, intptr_t slide)
{
- const auto entries = GetConstructorEntries(mh, slide, "__DATA", "pxrdtor");
+ const auto entries = GetConstructorEntries(mh, slide, "__DATA", "pxbdtor");
// Execute in reverse priority order.
for (size_t i = entries.size(); i-- != 0; ) {
@@ -350,7 +350,7 @@ RunConstructors(HMODULE hModule)
// Do each HMODULE at most once.
if (visited->insert(hModule).second) {
// Execute in priority order.
- const auto entries = GetConstructorEntries(hModule, ".pxrctor");
+ const auto entries = GetConstructorEntries(hModule, ".pxbctor");
for (size_t i = 0, n = entries.size(); i != n; ++i) {
if (entries[i].function &&
entries[i].version == static_cast<unsigned>(PXR_VERSION)) {
@@ -370,7 +370,7 @@ RunDestructors(HMODULE hModule)
// Do each HMODULE at most once.
if (visited->insert(hModule).second) {
// Execute in reverse priority order.
- const auto entries = GetConstructorEntries(hModule, ".pxrdtor");
+ const auto entries = GetConstructorEntries(hModule, ".pxbdtor");
for (size_t i = entries.size(); i-- != 0; ) {
if (entries[i].function &&
entries[i].version == static_cast<unsigned>(PXR_VERSION)) {
diff --git a/pxr/base/arch/attributes.h b/pxr/base/arch/attributes.h
index 1c5971035..93432572a 100644
--- a/pxr/base/arch/attributes.h
+++ b/pxr/base/arch/attributes.h
@@ -264,22 +264,22 @@ struct Arch_ConstructorEntry {
unsigned int priority:8; // Priority of function
};
-// Emit a Arch_ConstructorEntry in the __Data,pxrctor section.
+// Emit a Arch_ConstructorEntry in the __Data,pxbctor section.
# define ARCH_CONSTRUCTOR(_name, _priority) \
static void _name(); \
static const Arch_ConstructorEntry _ARCH_CAT_NOEXPAND(arch_ctor_, _name) \
- __attribute__((used, section("__DATA,pxrctor"))) = { \
+ __attribute__((used, section("__DATA,pxbctor"))) = { \
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
static_cast<unsigned>(PXR_VERSION), \
_priority \
}; \
static void _name()
-// Emit a Arch_ConstructorEntry in the __Data,pxrdtor section.
+// Emit a Arch_ConstructorEntry in the __Data,pxbdtor section.
# define ARCH_DESTRUCTOR(_name, _priority) \
static void _name(); \
static const Arch_ConstructorEntry _ARCH_CAT_NOEXPAND(arch_dtor_, _name) \
- __attribute__((used, section("__DATA,pxrdtor"))) = { \
+ __attribute__((used, section("__DATA,pxbdtor"))) = { \
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
static_cast<unsigned>(PXR_VERSION), \
_priority \
@@ -291,10 +291,10 @@ struct Arch_ConstructorEntry {
// The used attribute is required to prevent these apparently unused functions
// from being removed by the linker.
# define ARCH_CONSTRUCTOR(_name, _priority) \
- __attribute__((used, section(".pxrctor"), constructor((_priority) + 100))) \
+ __attribute__((used, section(".pxbctor"), constructor((_priority) + 100))) \
static void _name()
# define ARCH_DESTRUCTOR(_name, _priority) \
- __attribute__((used, section(".pxrdtor"), destructor((_priority) + 100))) \
+ __attribute__((used, section(".pxbdtor"), destructor((_priority) + 100))) \
static void _name()
#elif defined(ARCH_OS_WINDOWS)
@@ -311,8 +311,8 @@ struct Arch_ConstructorEntry {
};
// Declare the special sections.
-# pragma section(".pxrctor", read)
-# pragma section(".pxrdtor", read)
+# pragma section(".pxbctor", read)
+# pragma section(".pxbdtor", read)
// Objects of this type run the ARCH_CONSTRUCTOR and ARCH_DESTRUCTOR functions
// for the library containing the object in the c'tor and d'tor, respectively.
@@ -322,14 +322,14 @@ struct Arch_ConstructorInit {
ARCH_API ~Arch_ConstructorInit();
};
-// Emit an Arch_ConstructorEntry in the .pxrctor section. The
+// Emit an Arch_ConstructorEntry in the .pxbctor section. The
// arch_{c,d}tor_unused assignment is a workaround to ensure arch_{c,d}tor
// isn't removed when /Zc:inline is enabled. In clang/gcc we use
// __attribute__((used)) to do that.
# define ARCH_CONSTRUCTOR(_name, _priority) \
static void _name(); \
namespace { \
- __declspec(allocate(".pxrctor")) \
+ __declspec(allocate(".pxbctor")) \
static const Arch_ConstructorEntry \
_ARCH_CAT_NOEXPAND(arch_ctor_, _name) = { \
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
@@ -344,11 +344,11 @@ struct Arch_ConstructorInit {
_ARCH_ENSURE_PER_LIB_INIT(Arch_ConstructorInit, _archCtorInit); \
static void _name()
- // Emit a Arch_ConstructorEntry in the .pxrdtor section.
+ // Emit a Arch_ConstructorEntry in the .pxbdtor section.
# define ARCH_DESTRUCTOR(_name, _priority) \
static void _name(); \
namespace { \
- __declspec(allocate(".pxrdtor")) \
+ __declspec(allocate(".pxbdtor")) \
static const Arch_ConstructorEntry \
_ARCH_CAT_NOEXPAND(arch_dtor_, _name) = { \
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \