www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - D support on SPARC/Solaris

reply "Wyatt" <wyatt.epp gmail.com> writes:
At work, I have to target SPARC/Solaris.  I'm writing code to 
interface with an internal network protocol, so my current 
choices are C and (old) C++ (remember Sun Studio?  I wish I 
didn't have to).  Having looked, it seems like there's some 
manner of support for SPARC in the runtime, but restricted to 
Linux and FreeBSD?  Is that correct?

In which case, what would an enterprising individual have to 
actually do (read: fix or implement) to use D in that 
environment?  (If it comes down to it, it may be worth my while 
to add it myself.)

This echoes a thread Nordlöw started about six months ago, but my 
constraints aren't as rigid: DMD would be fine for me.  I just 
pine for non-crap language.

-Wyatt
Oct 30 2014
next sibling parent "Kagamin" <spam here.lot> writes:
DMD is for x86 AFAIK.
Oct 30 2014
prev sibling parent reply "Joakim" <dlang joakim.fea.st> writes:
On Thursday, 30 October 2014 at 14:03:23 UTC, Wyatt wrote:
 At work, I have to target SPARC/Solaris.  I'm writing code to 
 interface with an internal network protocol, so my current 
 choices are C and (old) C++ (remember Sun Studio?  I wish I 
 didn't have to).  Having looked, it seems like there's some 
 manner of support for SPARC in the runtime, but restricted to 
 Linux and FreeBSD?  Is that correct?
Someone may have been thorough when adding arches to certain files, but that in no way implies much actual support. The gdc section of the download page claims sparc support, so you could look at what they've done.
 In which case, what would an enterprising individual have to 
 actually do (read: fix or implement) to use D in that 
 environment?  (If it comes down to it, it may be worth my while 
 to add it myself.)
You may be able to combine the existing Solaris support and the sparc backend of llvm or gcc and get pretty far. A lot of the work should just be translating headers needed for the solaris/sparc sections in druntime. You could look at the linux/powerpc work Kai did with ldc for an idea of the changes necessary for a new arch.
 This echoes a thread Nordlöw started about six months ago, but 
 my constraints aren't as rigid: DMD would be fine for me.  I 
 just pine for non-crap language.
As kagamin said, dmd's backend is i386/x86_64 only, so you have to use ldc or gdc.
Oct 30 2014
parent reply "Wyatt" <wyatt.epp gmail.com> writes:
On Thursday, 30 October 2014 at 15:39:55 UTC, Joakim wrote:
 Someone may have been thorough when adding arches to certain 
 files, but that in no way implies much actual support.
Looking closer, it's all ELF header stuff, so that sounds about right.
 You may be able to combine the existing Solaris support and the 
 sparc backend of llvm or gcc and get pretty far.  A lot of the 
 work should just be translating headers needed for the 
 solaris/sparc sections in druntime.  You could look at the 
 linux/powerpc work Kai did with ldc for an idea of the changes 
 necessary for a new arch.
Sounds fairly reasonable to me. Happen to have a link to a commit or branch with that or do I need to go digging?
 As kagamin said, dmd's backend is i386/x86_64 only, so you have 
 to use ldc or gdc.
Never really made that connection (because lol PCs), but it makes sense when I think about it. Point was more that I don't care even if I have to compile to C and then build _that_. Thanks for the response. If it looks like there's a tenable path, then comes the hard part: getting my boss on board with this. orz -Wyatt
Oct 31 2014
parent "Joakim" <dlang joakim.fea.st> writes:
On Friday, 31 October 2014 at 16:10:01 UTC, Wyatt wrote:
 On Thursday, 30 October 2014 at 15:39:55 UTC, Joakim wrote:
 You could look at the linux/powerpc work Kai did with ldc for 
 an idea of the changes necessary for a new arch.
Sounds fairly reasonable to me. Happen to have a link to a commit or branch with that or do I need to go digging?
None that I know of, look at the commit log and grep the source for powerpc.
Oct 31 2014