On 3/11/10 22:34, Jacob Carlborg wrote:
On 3/11/10 14:12, Justin Johansson wrote:
Jacob Carlborg Wrote:

On 3/10/10 22:59, Justin Johansson wrote:
Jacob Carlborg Wrote:

On 3/10/10 16:33, Steve Teale wrote:

The #1 show-stopper for me was lack of shared object (.so)
support under
Linux; virtually mandated by my audience (Apache/LAMP). (A
workaround
like FastCGI is simply not appealing to customers.) This topic
discussed many times before on this NG.


I also had done a fair amount of work, and foundered on the
inability to
dynamically load anything without it being a big deal.

Like you say, it has been brought up many many times. Everyone
says yes,
this is a real show-stopper, then the thread dies down and so on.

Steve

What are the exact problems that people have with shared libraries on
linux? I've made a few dynamic libraries on Mac OS X of which only one
didn't work (I have no idea why). Among the working libraries were DWT
and Tango.

DMD on Linux does not support the creation of shared libraries.

Is that the runtime or the compiler? What about GDC, too old?

AFAIK, it is the linker; something about Linux/Unix ELF object file
formats perhaps .. though I'm
out of my depth now. Maybe others can explain better.

I've never used GDC so cannot say what the issues might be there.

Think this thread needs a new subject line to raise the visibility of
the issue. Granted
though that Walter has acknowledged the issue (at long last).

Understandably Walter has lots on his plate; what can be done to help
out?

Cheers, Justin

I think what we can do to help is to track down exactly what the
problems are and make sure Walter knows about them. If possible we could
also try to fix them.

The problems I have are:

Undefined symbols:
__deh_beg
__deh_end
__Dmain
__minfo_beg
__minfo_end

Just after I wrote the above I tried to add the symbols as weak symbols like this:

void* _deh_beg __attribute__ ((weak));
void* _deh_end __attribute__ ((weak));
void* _Dmain __attribute__ ((weak));
void* _minfo_beg __attribute__ ((weak));
void* _minfo_end __attribute__ ((weak));

Phobos then compiled and I tried a "hello world" application and it it worked. I don't know if there are some other parts that don't work.

Reply via email to