Dmitry Timoshkov wrote:
Also, I personally feel a bit not comfortable when someone (for any reason) is looking into a binary and sees names of internal interfaces not appropriate for external learn/use. I find it ugly that I can't fully control such basic things in the ELF world.
What is wrong with seeing names of internal interfaces? If someone wants to use a lib you publish, they just look in the .h file to find out how to interface with it. They won't be looking in the binary file to find out how to use it.
I expect that one of the reasons why one can't control "such basic things in the ELF world" is that no-one has really asked for that feature yet. Most software in the linux world is open source, so why would anyone ever want to hide stuff?
If you don't want to port your application to the open source world, then, probably the best thing for you to do would be to make sure that your MS Windows application runs well in wine. Wine does not support all MS Windows features yet, and some it does support are slow. So, if you just check that your program does not use any of the un-implemented win32 functions, your application should work well. If you have to use some win32 feature not yet implemented in wine, then you might have to implement it in wine and submit a patch to wine.
There are some well know applications out there that work on both windows and linux natively. E.g. The game Quake. They have never complained about the .ELF format.
Cheers James