-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
State of the runtime #292
Comments
OK, this mostly crash everywhere for now. |
on macOS test works but crash Live on load |
Confirmation that on OSX, __gshared variables are shared across multiple version of the same dynlib.
|
Works on some linuxes. Reported by @0xEAB:
Apart from the crash, a problem is that this is a shared runtime. Since the crash happen in "libdruntime-ldc-shared.so". When trying not to link with a shared runtime (
Upon analysis it seem the static runtime are built with PIC, so it would just be a matter of selecting them with |
Because of https://issues.dlang.org/show_bug.cgi?id=18456 when built with DMD the runtime will leak instead. |
On Linux it seems plug-in build against the shared runtime! This is probably bad for redistribution. |
An explanation for the shared runtime? dlang/dub#647 |
On Linux, it seems we have a shared runtime with LDC and a static runtime with DMD (source = @abaga129 ) |
Should be fixed if #391 is solved with a static Linux runtime. |
Actually linking with a static runtime in a shared library probably won't work because -fPIC. And then there is no solution on Linux and we'd rather abandon this idea of runtime sections. It doesn't make sense to make those Mac and Windows only. |
so, how does this work on macOS then? |
On macOS all code is built with -fPIC |
I built the using-runtime test and ran it on a fresh install of Ubuntu 18.04. So far I've only tested on Reaper, but these are my results. Built with ldc2 using the updated flags in dub.json the plugin does not load. Running GDB with Reaper gives me the following exception while scanning
|
Mmmm interesting the LDC2 things should affect current plugins too. |
It could be that the GLIBC that I built against was different than what is available on Ubuntu 18.04. I built the plugin on Arch Linux and transfered it over. It doesn't explain why the DMD build works though. I'm okay with abandoning runtime support though. |
Mmm your last point is interesting, the build machine should be not at the edge of Linux ABIs then |
Closed because it seems everytime part of the plugin has enabled the D runtime it created problems, this won't be a priority before a long time. |
How does the
using-runtime
plug-in fare in real hosts?using-runtime
can be loaded in one host)tests\using-runtime
outdated parts (dub.json, plugin.json)The text was updated successfully, but these errors were encountered: