Building DMD on SmartOS
Joakim via Digitalmars-d
digitalmars-d at puremagic.com
Tue May 5 08:41:46 PDT 2015
On Tuesday, 5 May 2015 at 05:42:33 UTC, Kai Nacke wrote:
> BTW: You can by-pass the Solaris ld by setting environment
> variable LD_ALTEXEC to the ld binary you want to use.
Thanks for the tip: I set that to the binutils ld and got almost
all of druntime's tests to pass with a 64-bit binary. I only had
to comment out the additional druntime tests having to do with
exceptions. Maybe that's related to the link error
flamencofantasy pasted.
I also tried running the phobos unit tests, but I got a ton of
link errors, seemingly for stuff that should be there. I'll let
someone else track those down.
On Tuesday, 5 May 2015 at 14:19:00 UTC, flamencofantasy wrote:
> However once I import std.stdio and make use of writeln the
> build fails with the error below;
>
> [root at smartmachine ~]# dmd hello.d
> /opt/local/x86_64-sun-solaris2.11/bin/ld: error in
> /opt/local/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.4/crtend.o(.eh_frame);
> no .eh_frame_hdr table will be created.
> /opt/local/dmd/lib/libphobos2.a(file_8e0_5fb.o): In function
> `_D3std4file15DirIteratorImpl4nextMFZb':
> std/file.d:(.text._D3std4file15DirIteratorImpl4nextMFZb+0x7d):
> undefined reference to `readdir64'
> collect2: error: ld returned 1 exit status
> --- errorlevel 1
> [root at smartmachine ~]#
Hmm, I get no output when building and running the sample file
sieve.d. If I use core.stdc.stdio.printf instead, it works fine,
just not with std.stdio.writefln.
> I did rebuild dmd, druntime and phobos with the binutils ld.
The linker will only be used for dmd, which won't matter since
it's C++ anyway. Druntime and phobos are libraries, so the
linker is unused until you build an executable that links against
them.
> Should I give up?
Obviously dmd and phobos still have some issues to be fixed on
Solaris. It all depends on whether you'd like to pitch in on
fixing those. Alternatively, you can try building ldc, which Kai
has put some effort into getting working on Solaris/x86.
More information about the Digitalmars-d
mailing list