Oh yeah, plugins. Cool. All makes sense now.

Maybe next time I do this I'll try Atlas.

thanks
JM

On 5/27/25 23:23, Ben Stern wrote:
dlopen is one way to allow plugins (aka extensions) to work.  If I can
arbitrarily open shared object files (aka libraries) at runtime, aka link
them in at runtime, I can extend a program without needing the original
author to know everything my extension does.

It's analogous to Perl's "use" functionality.  (I'm not asserting "use
DBI::DBD" does a dlopen, but I'm not asserting it doesn't, either.)

I also don't know why octave doesn't link explicitly against liboctave but
I'm sure there's a reason.  Perhaps this way liboctave can be upgraded
underneath octave without having to relink it, but this is mere speculation.

Cheers,
Ben

On Tue, May 27, 2025 at 12:51:09AM -0400, J. Milgram wrote:
hmm... dl ... open

Ah, so then ... dlopening liboctave is a way for octave to get to
libopenblas, without it being picked up by "ldd octave" ...(?) That explains
a lot.

Dumb related question: why does dlopen exist? Why not just link to the
shared object at compile time?

thx
Judah


On 5/25/25 22:02, Ben Stern wrote:
0 bstern@farad:~$ ldd /usr/lib64/octave/7.3.0/liboctave.so.9.0.0 | grep -i blas
         libopenblas.so.0 => /usr/lib64/libopenblas.so.0 (0x00007f0dfe74e000)

Looks like:

- octave dlopens liboctave at runtime

- I need to upgrade octave

Ben

On Sun, May 25, 2025 at 06:34:39PM -0400, J. Milgram wrote:
Good idea to check with "strings" ... nothing familiar popped up, though.

I was able to convince myself by experiment that "strings" would have popped
out the blas symbols if blas had been statically linked so that's a good
tool for the toolbox.

thanks
Judah





On 5/25/25 17:54, Peter J. Teuben wrote:
Maybe a statc link. The strings command might give names you recognize

On Sun, May 25, 2025, 17:02 J. Milgram <milg...@cgpp.com> wrote:

    Here's a mystery I'm hoping someone can explain:

    I just built octave (9.2.0). As usual, an easy build.  But this
    time I'm
    curious: How can I confirm that it linked against OpenBLAS and not
    one
    of the  other blas's I  have installed?

    ldd /usr/bin/octave doesn't turn up any blas libraries at all. (huh?!)

    The build procedure  is advertised as using the first blas it
    finds from
    the list [ OpenBLAS, atlas, netlib reference implementation ]. I have
    the first and third installed so  am hoping for OpenBLAS.

    Anyone know a way to check this? Or why ldd doesn't show the
    executable
    linked to any blas at all?

    thanks! And a meaningful Mem Day to all.

    Judah



    --     =====
    milg...@cgpp.com
    301-257-7069

    You received this email because you are subscribed to the UM Linux
    User's Group (UM-LINUX) mailing list. If you would like to
    unsubscribe from this list, simply send an email to
    lists...@listserv.umd.edu with the message signoff UM-LINUX in the
    body.

You received this email because you are subscribed to the UM Linux User's
Group (UM-LINUX) mailing list. If you would like to unsubscribe from this
list, simply send an email to lists...@listserv.umd.edu with the message
signoff UM-LINUX in the body.
--
=====
milg...@cgpp.com
301-257-7069

You received this email because you are subscribed to the UM Linux User's Group 
(UM-LINUX) mailing list. If you would like to unsubscribe from this list, 
simply send an email to lists...@listserv.umd.edu with the message signoff 
UM-LINUX in the body.

--
=====
milg...@cgpp.com
301-257-7069



--
=====
milg...@cgpp.com
301-257-7069

You received this email because you are subscribed to the UM Linux User's Group 
(UM-LINUX) mailing list. If you would like to unsubscribe from this list, 
simply send an email to lists...@listserv.umd.edu with the message signoff 
UM-LINUX in the body.

Reply via email to