libunwind dependency (and OpenBSD)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

libunwind dependency (and OpenBSD)

Maurizio Tomasi
In the last weeks I have been trying to make Julia compile under OpenBSD. So far I have solved a number of problems, but I'm struck with one of Julia's dependencies, libunwind (https://github.com/pathscale/libunwind). The libunwind code is quite low-level, and it's full of #ifdef conditionals that determine which code to compile, depending on the operating system.

Unfortunately, my knowledge of the inner workings of OpenBSD is quite limited, and the libunwind developers aren't able to help me because none of them uses OpenBSD (https://github.com/pathscale/libunwind/pull/5).

While discussing about this topic on julia-user (see thread "Julia on OpenBSD", https://groups.google.com/forum/#!searchin/julia-users/OpenBSD/julia-users/eQ-8C8BT5oM/9T9nO7b54j4J), I have had the impression that Julia only uses a tiny fraction of the facilities offered by libunwind. Therefore, I fear that my current efforts to port the entire libunwind codebase are not worth the effort.

I am wondering if it might be better to put together a scrapped version of libunwind (let's call it "juliaunwind"). Such library should only implement those functions that are actually used by Julia. It would cover all the already-supported operating systems (Windows, OSX, Linux, FreeBSD), plus of course OpenBSD.

I am willing to try to implement such a library (I know C quite well), but I need some mentors that help me in this activity, mostly to explain me in detail the libunwind functions needed by Julia, and how Julia uses them.

What is your opinion about this? Do you have simpler alternatives, or suggestions?

Maurizio.