<blockquote>
<p>I meant the library would NOT register itself as a plugin, right?</p>
</blockquote>
<p>Correct, it would simply link against <code>libgeany.so</code> to gain access to the plugin API.</p>
<blockquote>
<p>How intelligent is the runtime linker? I guess it simply links together every function that is in use. I mean if a plugin would use a function of my library then the function would be linked in even if the plugin is not activated.</p>
</blockquote>
<p>When Geany loads a plugin using your library, the library would be loaded by the runtime linker, the same as any other library. For example if Webhelper and Markdown are both linked against the same WebkitGtk version, only one copy of that library would be loaded into the process. If both Webhelper and Markdown plugins are de-activated, the WebKitGtk library would be unloaded, barring the use of certain libdl flags such as <code>RTLD_NODELETE</code>, perhaps.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany-plugins/issues/619#issuecomment-334991356">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABDrJ-gxcNIlccJlVRXSKrwdPVzZZcZPks5sqIe1gaJpZM4PxXBg">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ1R2Hj8jpWv_nj6WHCTO9IlRJgNHks5sqIe1gaJpZM4PxXBg.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/geany/geany-plugins/issues/619#issuecomment-334991356"></link>
  <meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/geany/geany-plugins","title":"geany/geany-plugins","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/geany/geany-plugins"}},"updates":{"snippets":[{"icon":"PERSON","message":"@codebrainz in #619: \u003e I meant the library would NOT register itself as a plugin, right?\r\n\r\nCorrect, it would simply link against `libgeany.so` to gain access to the plugin API.\r\n\r\n\u003e How intelligent is the runtime linker? I guess it simply links together every function that is in use. I mean if a plugin would use a function of my library then the function would be linked in even if the plugin is not activated.\r\n\r\nWhen Geany loads a plugin using your library, the library would be loaded by the runtime linker, the same as any other library. For example if Webhelper and Markdown are both linked against the same WebkitGtk version, only one copy of that library would be loaded into the process. If both Webhelper and Markdown plugins are de-activated, the WebKitGtk library would be unloaded, barring the use of certain libdl flags such as `RTLD_NODELETE`, perhaps."}],"action":{"name":"View Issue","url":"https://github.com/geany/geany-plugins/issues/619#issuecomment-334991356"}}}</script>