<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;" dir="ltr">
<p>Wow, many thanks Silvio.</p>
<p><br>
</p>
<p>OK, your demo works.</p>
<p><br>
</p>
<p>But what about if liba has dependencies with no path defined:</p>
<p><br>
</p>
<p>---> <span> handle = dlopen("../libb/libb.so", RTLD_LAZY); ---> ok it works but the path was defined.</span></p>
<p><span><br>
</span></p>
<p><span>But if no path was defined, IMO it will work only if <span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">libb.so
is in /usr/lib/ or usr/local/lib.</span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">And that is the case of many libraries. There is no path defined
for the dependencies.</span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">And it is the challenge, how to define a different path than <span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">/usr/lib/
or usr/local/lib.</span></span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Many
thanks.</span></span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Fre;D</span></span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></span></span></p>
<br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>De :</b> fpc-other <fpc-other-bounces@lists.freepascal.org> de la part de silvioprog <silvioprog@gmail.com><br>
<b>Envoyé :</b> lundi 13 mars 2017 17:10<br>
<b>À :</b> Other FPC related discussions<br>
<b>Objet :</b> Re: [fpc-other] How to set library search path ?</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Mon, Mar 13, 2017 at 12:19 PM, silvioprog <span dir="ltr">
<<a href="mailto:silvioprog@gmail.com" target="_blank">silvioprog@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote"><span class="gmail-m_3205801522816042643gmail-">On Mon, Mar 13, 2017 at 8:04 AM, Fred van Stappen
<span dir="ltr"><<a href="mailto:fiens@hotmail.com" target="_blank">fiens@hotmail.com</a>></span> wrote:<br>
</span>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div id="gmail-m_3205801522816042643gmail-m_-2712042414898481762gmail-m_-1488669551859796220divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:calibri,arial,helvetica,sans-serif">
<span class="gmail-m_3205801522816042643gmail-">
<p></p>
<div style="font-family:calibri,arial,helvetica,sans-serif; font-size:16px"><span style="font-size:12pt">Hello and thanks to Silvio, z505, Giuliano.</span></div>
</span><span class="gmail-m_3205801522816042643gmail-m_-2712042414898481762gmail-">
<div style="font-family:calibri,arial,helvetica,sans-serif; font-size:16px"><span style="font-size:12pt">[...]</span><span style="font-family:arial,sans-serif; font-size:small; color:rgb(34,34,34)"> </span></div>
</span></div>
</div>
</blockquote>
<span class="gmail-m_3205801522816042643gmail-">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div id="gmail-m_3205801522816042643gmail-m_-2712042414898481762gmail-m_-1488669551859796220divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:rgb(0,0,0); font-family:calibri,arial,helvetica,sans-serif">
<span class="gmail-m_3205801522816042643gmail-m_-2712042414898481762gmail-">
<div style="font-family:calibri,arial,helvetica,sans-serif; font-size:16px"><span style="font-size:12pt">And this is the challenge, how to load that dependeny if they are not in the lib-system directory.</span></div>
</span></div>
</div>
</blockquote>
</span></div>
<div><br>
</div>
<div>Strange. I'm using loadlibrary/dlsym and both works properly here. o.O Could you test the attached example? See its result on my Linux:</div>
<div><br>
</div>
<div>
<div><font face="monospace, monospace" size="1">$ make</font></div>
<div><font face="monospace, monospace" size="1">Free Pascal Compiler version 3.1.1 [2017/03/12] for x86_64</font></div>
<div><font face="monospace, monospace" size="1">Copyright (c) 1993-2017 by Florian Klaempfl and others</font></div>
<div><font face="monospace, monospace" size="1">Target OS: Linux for x86-64</font></div>
<div><font face="monospace, monospace" size="1">Compiling test/test.pp</font></div>
<div><font face="monospace, monospace" size="1">Linking test/test</font></div>
<div><font face="monospace, monospace" size="1">38 lines compiled, 0.1 sec</font></div>
<div><font face="monospace, monospace" size="1"><br>
</font></div>
<div><font face="monospace, monospace" size="1">$ make test </font></div>
<div><font face="monospace, monospace" size="1">I'm lib A</font></div>
<div><font face="monospace, monospace" size="1">I'm lib B</font></div>
</div>
</div>
</div>
</blockquote>
</div>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">Example II (using both loadlibrary and dlsym):</div>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">- fpc loads liba/liba and calls their funcs;</div>
<div class="gmail_extra">- liba loads dep libb and calls its func;</div>
<div class="gmail_extra">- libb loads dep liba and calls its func.</div>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">Result:</div>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">
<div class="gmail_extra"><font face="monospace, monospace" size="1">$ make test </font></div>
<div class="gmail_extra"><font face="monospace, monospace" size="1">I'm lib A</font></div>
<div class="gmail_extra"><font face="monospace, monospace" size="1">a.dep: I'm lib B</font></div>
<div class="gmail_extra"><font face="monospace, monospace" size="1">I'm lib B</font></div>
<div class="gmail_extra"><font face="monospace, monospace" size="1">b.dep: I'm lib A</font></div>
</div>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">I think this test above simulates a plugin/module dependence environment. :-)</div>
<div class="gmail_extra"><br>
</div>
-- <br>
<div class="gmail-m_3205801522816042643gmail_signature">
<div dir="ltr">
<div>Silvio Clécio</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>