title: BOOST_DLL_ALIAS_SECTIONED missing specified BOOST_DLL_SECTION after performing a strip
body: <p>I created a shared library using BOOST using the following to specify the factory method:</p>
  <pre><code>BOOST_DLL_ALIAS_SECTIONED(
  MyPlugin::create, // Plugin's factory method being exported
  create_plugin,    // Alias for factory method.
  
  MySectionName)  // The section name that all factory methods are grouped in.
  </code></pre>
  <p>The <code>create()</code> method returns a shared pointer to the MyPlugin object.</p>
  <p>I then load the shared library and try to fetch the particular section using:</p>
  <pre><code>boost::dll::library_info inf(shared_library_path);
  </code></pre>
  <p>And then locate the above section with:</p>
  <pre><code>std::vector&lt;std::string&gt; sections = inf.sections();
  
  if (std::find(sections.begin(), sections.end(), &quot;MySectionName&quot;) == sections.end()) {
      // Do something
  } else
  {
      // Error out
  }
  </code></pre>
  <p>If the shared library was <em>not</em> stripped, the above allows me to find
  <code>MySectionName</code> within its contents and perform actions within the bracket.
  If I however strip the shared library (default: strip library_name.so), the
  above library info no longer lists the defined section and I hit the error out
  condition.</p>
  <p>I can protect the particular factory method during strip by specifying
  &quot;-K<em>create</em>&quot; flag, but while that works with this simple shared library, more
  complex libraries end up with more missing symbols and it almost feels
  counterproductive to keep expanding the &quot;-K&quot; flag.</p>
  <p>Is here an easier way of using BOOST for plugin creation using the above method
  and still allow stripping out debug information without having to expand with
  &quot;-K&quot; flag?</p>
  <p>Thank you</p>