Hello,
We are about to release a library of functions. For the C/C++ code, I have been using the -fvisibility=hidden flag to hide our internal function names from the outside world, and explicitly setting the visibility of the functions that make up our public API. However, I have noticed that any __global__
or __device__
functions still appear using objdump -T
even after running strip
on the .so file, ex:
00000000000xxxxx g DF .text 000000000000003c Base _Z33superSecretFunctionThatDoesThingsyP6uchar4mmm6float2S1_
00000000000xxxxx g DF .text 00000000000000f4 Base _Z75__device_stub__Z33superSecretFunctionThatDoesThingsyP6uchar4mmm6float2S1_yP6uchar4mmmR6float2S2_
I am concerned that this could reveal the internal working of our algorithms, or worse, would allow users to call those functions directly using a carefully crafted program.
Is there a way to hide these symbols?
Thanks.