markuspf / gap

GAP - Groups Algorithms Programming
http://www.gap-system.org
GNU General Public License v2.0
0 stars 0 forks source link

io.so (and in general dynamic modules for GAP) should depend on libgap.so #1

Open nthiery opened 7 years ago

nthiery commented 7 years ago

(Incomplete) Steps to reproduce:

Compile libgap:

./configure --enable-libgap
make

This is because io.so is not marked as depending on libgap.so:

ldd /opt/sage-git/local/gap/latest/pkg/io/bin/x86_64-pc-linux-gnu-gcc-default64/io.so               
linux-vdso.so.1 =>  (0x00007ffd27da4000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f32b6d43000)
/lib64/ld-linux-x86-64.so.2 (0x000055acfc22b000)

TODO: fix the automake configuration / package compilation procedure to make io.so depend on libgap.so

Note: enabling a given compiled io.so to work both on gap and libgap will require gap itself to be built on top of libgap

embray commented 6 years ago

I think this might work now but I haven't tried it yet. I'll put this next on my todo list.

embray commented 5 years ago

I see now, the way the GAP binary is built by default still compiles all of the GAP kernel into the executable; I mistakenly assumed it was switched over to just being a thin wrapper around libgap.so. So when running the gap executable dlopen-ing a compiled module correctly resolves the required symbols since they're already loaded, but that won't work when dlopen-ing a module from libgap.

As @nthiery wrote that's just a matter of compiling the extension module such that it is linked to libgap.