Til, a command language written in D
Cléber Zavadniak
contato+til at cleber.solutions
Sun Jun 6 01:08:59 UTC 2021
On Tuesday, 18 May 2021 at 15:19:50 UTC, kinke wrote:
> On Friday, 14 May 2021 at 22:10:38 UTC, Cléber Zavadniak wrote:
>> 1- Should I compile a `libphobos2.so` "by hand"? Should I use
>> `libphobos2-ldc-shared.so`???
>
> With LDC, -link-defaultlib-shared links the binary against
> shared druntime/Phobos. It's the default setting when creating
> a shared library with -shared; use it explicitly when creating
> an executable. This way, the executable and all .so libs share
> the same druntime/Phobos, incl. a single GC, default
> std.parallelism thread pool etc.
Tried that for both a shared library (libtil_exec.so) and the
interpreter itself but with LDC2 it keeps throwing this:
object.Exception at source/til/modules.d(100): dlsym error:
Library ../til/til.debug is not already loaded
"../til/til.debug" is the interpreter executable.
The intepreter try to load the name "getCommands" from the shared
library with:
auto getCommands = cast(CommandHandlerMap
function(Process))dlsym(
lh, "getCommands"
);
(https://github.com/til-lang/til/blob/8213ab61b87a478f9b2d140a370a870dc9bb0fc9/source/til/modules.d#L94)
Using DMD, everything goes smooth...
`objdump -T libtil_exec.so` shows the name is there as it should
in the shared library:
000000000006df40 g DF .text 0000000000000069 getCommands
LDC2 info:
$ ldc2 --version
LDC - the LLVM D compiler (1.26.0):
based on DMD v2.096.1 and LLVM 12.0.0
built with DMD64 D Compiler v2.095.0
Default target: x86_64-unknown-linux-musl
Host CPU: skylake
Trying to figure out what's happening, here, but any help is
welcome...
More information about the Digitalmars-d-announce
mailing list