Changes between Initial Version and Version 1 of Ticket #69524, comment 5


Ignore:
Timestamp:
Mar 17, 2024, 9:35:11 AM (3 months ago)
Author:
ryandesign (Ryan Carsten Schmidt)
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #69524, comment 5

    initial v1  
    55denoise.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.
    66
    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.
     7Of 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.
    88
    99rawstudio.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:
     
    2020}}}
    2121
    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.
     22There 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.
    2323
    2424So I'm not sure yet why denoise is using the name-mangled symbol when it shouldn't.