title: Is there a .def file equivalent on Linux for controlling exported function names in a shared library?
body: <p>I am building a shared library on Ubuntu 9.10. I want to export only a subset of my functions from the library. On the Windows platform, this would be done using a module definition (<code>.def</code>) file which would contain a list of the external and internal names of the functions exported from the library.</p>
  
  <p>I have the following questions:</p>
  
  <ol>
  <li><p>How can I restrict the exported functions of a shared library to those I want (i.e. a .def file equivalent)</p></li>
  <li><p>Using .def files as an example, you can give a function an external name that is different from its internal name (useful for prevent name collisions and also redecorating mangled names etc)</p></li>
  <li><p>On windows I can use the EXPORT command (IIRC) to check the list of exported functions and addresses, what is the equivalent way to do this on Linux?</p></li>
  </ol>