In creating a static object is it possible to rename the symbols at compile time (without changing the code) in a cross platform way? I have recently had objcopy recommended, but linux is not the only target platform it must also work on a mac. I am compiling using gcc, so I was hoping that there was a gcc option of some sort.
I have heard about .def files, but this may have been misleading as the information about them that I have found seems to be for windows.
Edit: I'm trying to change the name of C and Fortran functions, specifically pre-pending them with the word "wrap" in order to avoid symbol conflicts at link time.
is it possible to rename the symbols at compile time
You might be able to achieve it with preprocessor:
gcc -c foo.c -Dfoo=foo_renamed
You can use the gcc alias attribute to make multiple symbols that point to the same function.
void name1() __attribute__((alias ("name2")));
I'm not sure if the alias attribute works for other types of symbols (e.g. variables).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With