Changes between Initial Version and Version 1 of Ticket #69524, comment 5
- Timestamp:
- Mar 17, 2024, 9:35:11 AM (8 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #69524, comment 5
initial v1 5 5 denoise.so doesn't link with librawstudio; none of the plugins do. Maybe that's not required if they're loaded by the main rawstudio program since rawstudio does link with librawstudio. 6 6 7 Of the 5 plugins that use `rs_detect_cpu_features`, denoise is the only one written in C++. All the others are C and correctly reference the `_rs_detect_cpu_features` symbol. denoise, being a C++ library, references the name-mangled symbol, `__Z22rs_detect_cpu_featuresv`, which doesn't exist.7 Of the 5 plugins that use `rs_detect_cpu_features`, denoise is the only one written in C++. All the others are C and correctly reference the `_rs_detect_cpu_features` symbol. denoise, being a C++ plugin, references the name-mangled symbol, `__Z22rs_detect_cpu_featuresv`, which doesn't exist. 8 8 9 9 rawstudio.h uses the correct trick to tell any C++ code including it that the library's functions are C functions that should not be name-mangled: … … 20 20 }}} 21 21 22 There is one rawstudio header—rs-types.h—included outside of that ifdef, but rs-types.h doesn't include any other rawstudio headers and only defines datatypes so I don't think that would be the cause.22 There is one rawstudio header—rs-types.h—included outside of that `#ifdef`, but rs-types.h doesn't include any other rawstudio headers and only defines datatypes so I don't think that would be the cause. 23 23 24 24 So I'm not sure yet why denoise is using the name-mangled symbol when it shouldn't.