www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - SPARC Solaris Support

reply =?UTF-8?B?Ik5vcmRsw7Z3Ig==?= <per.nordlow gmail.com> writes:
Does LDC have sparc solaris backend support?

I'm trying to make my company use D and we have a bunch of legacy
machines that unfortunately run on sparc-solaris 2.10.

/Per
Mar 24 2014
parent reply "Kai Nacke" <kai redstar.de> writes:
Hi Per!

On Monday, 24 March 2014 at 09:39:10 UTC, Nordlöw wrote:
 Does LDC have sparc solaris backend support?

 I'm trying to make my company use D and we have a bunch of 
 legacy
 machines that unfortunately run on sparc-solaris 2.10.

 /Per
LLVM can generate code for sparc-v8/v9. I don't know how good this support is. I also think there is no dedicated support in druntime. You have to simply try it. One of the problems here is that it is not easy to get access to a sparc-solaris machine, otherwise I would already have done it. Regards, Kai
Mar 24 2014
parent reply "Joakim" <joakim airpost.net> writes:
On Monday, 24 March 2014 at 12:11:44 UTC, Kai Nacke wrote:
 Hi Per!

 On Monday, 24 March 2014 at 09:39:10 UTC, Nordlöw wrote:
 Does LDC have sparc solaris backend support?

 I'm trying to make my company use D and we have a bunch of 
 legacy
 machines that unfortunately run on sparc-solaris 2.10.

 /Per
LLVM can generate code for sparc-v8/v9. I don't know how good this support is. I also think there is no dedicated support in druntime. You have to simply try it. One of the problems here is that it is not easy to get access to a sparc-solaris machine, otherwise I would already have done it.
Nowadays, you can rent out all kinds of exotic hardware online. Googling for "sparc zone vps," I get two results, although the second one doesn't give much RAM for the developer plan: http://www.thoughtwave.com/index.php/services/solaris/solaris-sparc-zones http://www.net5.com.au/hosting/zones If Per wants to use ldc and can't give you access to his company's machines, maybe he can rent out one of those zones and give you access and a bounty for a sparc port. Alex already put in a fair amount of Solaris/x86 support into dmd and druntime. Now if I could only find an ARM vps... ;)
Mar 24 2014
next sibling parent reply =?UTF-8?B?Ik5vcmRsw7Z3Ig==?= <per.nordlow gmail.com> writes:
 One of the problems here is that it is not easy to get access 
 to a sparc-solaris machine, otherwise I would already have 
 done it.
Nowadays, you can rent out all kinds of exotic hardware online. Googling for "sparc zone vps," I get two results, although the second one doesn't give much RAM for the developer plan:
Unfortunately I don't see any way in the near future to rent out our company machines. If I were running my own business I would hand it to you directly...but "our" IT organization is *very* beuraucratic. Thanks for all the good answers anyway, Per
Mar 24 2014
parent reply "Joakim" <joakim airpost.net> writes:
On Monday, 24 March 2014 at 21:18:49 UTC, Nordlöw wrote:
 One of the problems here is that it is not easy to get access 
 to a sparc-solaris machine, otherwise I would already have 
 done it.
Nowadays, you can rent out all kinds of exotic hardware online. Googling for "sparc zone vps," I get two results, although the second one doesn't give much RAM for the developer plan:
Unfortunately I don't see any way in the near future to rent out our company machines. If I were running my own business I would hand it to you directly...but "our" IT organization is *very* beuraucratic. Thanks for all the good answers anyway, Per
I think you misunderstand my suggestion. For $45, you could rent out a zone at that first link for a month and give Kai access to it. That way, you don't give someone outside the company access to your machines. Sometimes the host will offer free access for open source projects, as that will mean more software developed for their platform. As for what kind of bounty it'd take for Kai to work on a port, you'd have to ask him. :)
Mar 24 2014
parent =?UTF-8?B?Ik5vcmRsw7Z3Ig==?= <per.nordlow gmail.com> writes:
 I think you misunderstand my suggestion.  For $45, you could 
 rent out a zone at that first link for a month and give Kai 
 access to it.  That way, you don't give someone outside the 
 company access to your machines.  Sometimes the host will offer 
 free access for open source projects, as that will mean more 
 software developed for their platform.  As for what kind of 
 bounty it'd take for Kai to work on a port, you'd have to ask 
 him. :)
Ok. Got it. Thx, Per
Mar 24 2014
prev sibling next sibling parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Monday, 24 March 2014 at 20:38:10 UTC, Joakim wrote:
 Now if I could only find an ARM vps... ;)
Not VPS, but dedicated: http://www.nx-box.net/en/cubiebox http://www.mininodes.com/product/single-mininodes/
Mar 24 2014
parent "Joakim" <joakim airpost.net> writes:
On Monday, 24 March 2014 at 21:41:46 UTC, John Colvin wrote:
 On Monday, 24 March 2014 at 20:38:10 UTC, Joakim wrote:
 Now if I could only find an ARM vps... ;)
Not VPS, but dedicated: http://www.nx-box.net/en/cubiebox http://www.mininodes.com/product/single-mininodes/
Oh cool, thanks for the links. :) Looks like I was using the wrong keywords on google to search for an ARM-based shell account, although it looks like miniNodes just launched a couple weeks back. I don't know why nx-box requires a 1-year commitment. miniNodes looks promising, will have to consider them.
Mar 24 2014
prev sibling next sibling parent reply "Kai Nacke" <kai redstar.de> writes:
Hi Joakim!

On Monday, 24 March 2014 at 20:38:10 UTC, Joakim wrote:
 Alex already put in a fair amount of Solaris/x86 support into 
 dmd and druntime.
Good to hear! I installed OpenSolaris now. Let's see if I can get LDC running on it.
 Now if I could only find an ARM vps... ;)
For ARM development I bought a singleboard computer: http://www.inforcecomputing.com/product/moreinfo/ifc6410.html Regards, Kai
Mar 24 2014
next sibling parent reply "Joakim" <joakim airpost.net> writes:
On Tuesday, 25 March 2014 at 06:23:33 UTC, Kai Nacke wrote:
 Hi Joakim!

 On Monday, 24 March 2014 at 20:38:10 UTC, Joakim wrote:
 Alex already put in a fair amount of Solaris/x86 support into 
 dmd and druntime.
Good to hear! I installed OpenSolaris now. Let's see if I can get LDC running on it.
What compiler do you plan on using to build ldc? I had some experience porting to Solaris/x86 years ago and I had some problems with the compilers available, until I found a gcc and configuration that worked right. Maybe that's not as much of a problem these days, now that OpenIndiana and other open-source builds have progressed further.
 Now if I could only find an ARM vps... ;)
For ARM development I bought a singleboard computer: http://www.inforcecomputing.com/product/moreinfo/ifc6410.html
That looks like a nice board, though I wonder how well it works with a Qualcomm chip, which I think are notorious for being pretty closed. I bought a Pandaboard ES a couple years back, but had to leave it at a friend's place when I moved. Maybe I'll get him to send it to me eventually.
Mar 25 2014
parent reply "Kai Nacke" <kai redstar.de> writes:
Hi Joakim!

On Tuesday, 25 March 2014 at 08:21:37 UTC, Joakim wrote:
 On Tuesday, 25 March 2014 at 06:23:33 UTC, Kai Nacke wrote:
 Hi Joakim!

 On Monday, 24 March 2014 at 20:38:10 UTC, Joakim wrote:
 Alex already put in a fair amount of Solaris/x86 support into 
 dmd and druntime.
Good to hear! I installed OpenSolaris now. Let's see if I can get LDC running on it.
What compiler do you plan on using to build ldc? I had some experience porting to Solaris/x86 years ago and I had some problems with the compilers available, until I found a gcc and configuration that worked right. Maybe that's not as much of a problem these days, now that OpenIndiana and other open-source builds have progressed further.
I just installed OpenIndiana and started looking around. But everything is a bit outdated. (Some people would certainly prefer the term "stable" :-) ) gcc 4.4, cmake 2.6, python 2.6 - you can't build LLVM 3.5 with this toolset. I'll try to bootstrap LLVM/clang 3.3. If this works then I can build LDC.
 Now if I could only find an ARM vps... ;)
For ARM development I bought a singleboard computer: http://www.inforcecomputing.com/product/moreinfo/ifc6410.html
That looks like a nice board, though I wonder how well it works with a Qualcomm chip, which I think are notorious for being pretty closed. I bought a Pandaboard ES a couple years back, but had to leave it at a friend's place when I moved. Maybe I'll get him to send it to me eventually.
The board runs fine. It works with Android and Linux. I have it running with Gentoo linux. I choosed this board because of the RAM. You need at least 1GB RAM to built LLVM... LLVM has some support for the Qualcomm chip. Regards, Kai
Mar 25 2014
parent reply "Joakim" <joakim airpost.net> writes:
On Tuesday, 25 March 2014 at 17:26:12 UTC, Kai Nacke wrote:
 I just installed OpenIndiana and started looking around. But 
 everything is a bit outdated. (Some people would certainly 
 prefer the term "stable" :-) )
 gcc 4.4, cmake 2.6, python 2.6 - you can't build LLVM 3.5 with 
 this toolset.
 I'll try to bootstrap LLVM/clang 3.3. If this works then I can 
 build LDC.
I had problems getting a gcc that would actually work properly back in 2011, as the main gcc from their package source repository wouldn't pack booleans right and cause seg faults. I had to recompile one of the gcc versions with a specific flag to get it working. I tried using clang back then but it was a mess, because it didn't seem to have all the same built-in globals and some other incompatibilities. Hopefully that's been fixed since, but your best bet may be just to compile llvm with gcc.
 The board runs fine. It works with  Android and Linux. I have 
 it running with Gentoo linux. I choosed this board because of 
 the RAM. You need at least 1GB RAM to built LLVM... LLVM has 
 some support for the Qualcomm chip.
I mentioned it because I heard Qualcomm is not good with releasing drivers. In a similar way, that was one annoying aspect about the Pandaboard ES: you had to use a special ubuntu install with a bunch of binary blobs from TI to get proper GPU and hardware-accelerated video support, and even then 1080p video playback seemed to be dropping frames. I actually bought it in early 2012 because I wanted to try running an ARM desktop. But Android was unusable as a desktop and I've never liked ubuntu, plus the video issues, so it didn't work out. I'd probably try it with Arch Linux Arm or FreeBSD these days, hopefully the hardware support for both has gotten better since then.
Mar 25 2014
parent "Kai Nacke" <kai redstar.de> writes:
On Tuesday, 25 March 2014 at 18:23:15 UTC, Joakim wrote:
 I had problems getting a gcc that would actually work properly 
 back in 2011, as the main gcc from their package source 
 repository wouldn't pack booleans right and cause seg faults.
I start to understand the difficulties. I installed a gcc 4.6 from sfe repository - seems to work now. I now try to compile cmake 2.8 (the provided cmake 2.6 is too old).... Regards, Kai
Apr 07 2014
prev sibling parent reply "Kai Nacke" <kai redstar.de> writes:
Hi Joakim!

On Tuesday, 25 March 2014 at 06:23:33 UTC, Kai Nacke wrote:
 Hi Joakim!

 On Monday, 24 March 2014 at 20:38:10 UTC, Joakim wrote:
 Alex already put in a fair amount of Solaris/x86 support into 
 dmd and druntime.
Good to hear! I installed OpenSolaris now. Let's see if I can get LDC running on it.
With the help of the sfe repository, I was able to compile ldc with LLVM 3.4 on latest OpenIndiana edition (merge-2.064 branch with my latest commit). As usual, core.thread does not compile. I investigate... Looks like a SPARC version could be created with reasonable effort... Regards, Kai
Apr 08 2014
next sibling parent reply "Joakim" <dlang joakim.airpost.net> writes:
On Tuesday, 8 April 2014 at 15:54:52 UTC, Kai Nacke wrote:
 Hi Joakim!

 On Tuesday, 25 March 2014 at 06:23:33 UTC, Kai Nacke wrote:
 Hi Joakim!

 On Monday, 24 March 2014 at 20:38:10 UTC, Joakim wrote:
 Alex already put in a fair amount of Solaris/x86 support into 
 dmd and druntime.
Good to hear! I installed OpenSolaris now. Let's see if I can get LDC running on it.
With the help of the sfe repository, I was able to compile ldc with LLVM 3.4 on latest OpenIndiana edition (merge-2.064 branch with my latest commit).
Good to hear it. If you start having segfaults in ldc because of memory issues, you may want to look into whether gcc is actually working properly, by running its testsuite. I built gcc from source from pkgbuild back then, or whatever it is they use to generate the sfe packages, and had problems with the binaries their gcc would compile. I had to recompile gcc with another flag to get it to work right.
 As usual, core.thread does not compile. I investigate...
Hmm, for X86, I doubt much will have to be done, but then I can't say I messed with Solaris threading.
 Looks like a SPARC version could be created with reasonable 
 effort...
I'm sure Nordlöw is looking forward to it. :)
Apr 08 2014
parent reply Jacob Carlborg <doob me.com> writes:
On 08/04/14 18:38, Joakim wrote:

 Hmm, for X86, I doubt much will have to be done, but then I can't say I
 messed with Solaris threading.
Doesn't druntime already support Solaris? I know I've seen a couple of version statements for Solaris. -- /Jacob Carlborg
Apr 08 2014
next sibling parent reply "Joakim" <dlang joakim.airpost.net> writes:
On Wednesday, 9 April 2014 at 06:29:39 UTC, Jacob Carlborg wrote:
 On 08/04/14 18:38, Joakim wrote:

 Hmm, for X86, I doubt much will have to be done, but then I 
 can't say I
 messed with Solaris threading.
Doesn't druntime already support Solaris? I know I've seen a couple of version statements for Solaris.
There is some support in Dmd and druntime- I ran across it when porting to bionic/Android- but it doesn't appear to be complete.
Apr 09 2014
parent reply "Kai Nacke" <kai redstar.de> writes:
On Wednesday, 9 April 2014 at 08:14:02 UTC, Joakim wrote:
 On Wednesday, 9 April 2014 at 06:29:39 UTC, Jacob Carlborg 
 wrote:
 On 08/04/14 18:38, Joakim wrote:

 Hmm, for X86, I doubt much will have to be done, but then I 
 can't say I
 messed with Solaris threading.
Doesn't druntime already support Solaris? I know I've seen a couple of version statements for Solaris.
There is some support in Dmd and druntime- I ran across it when porting to bionic/Android- but it doesn't appear to be complete.
Yes, there is some support. But current dmd has some compile errors on Solaris (nothing serious, I'll prepare a pull for it). And I miss something like core.sys.solaris in druntime. Regards, Kai
Apr 09 2014
parent "Kai Nacke" <kai redstar.de> writes:
On Thursday, 10 April 2014 at 05:56:05 UTC, Kai Nacke wrote:
 On Wednesday, 9 April 2014 at 08:14:02 UTC, Joakim wrote:
 On Wednesday, 9 April 2014 at 06:29:39 UTC, Jacob Carlborg 
 wrote:
 On 08/04/14 18:38, Joakim wrote:

 Hmm, for X86, I doubt much will have to be done, but then I 
 can't say I
 messed with Solaris threading.
Doesn't druntime already support Solaris? I know I've seen a couple of version statements for Solaris.
There is some support in Dmd and druntime- I ran across it when porting to bionic/Android- but it doesn't appear to be complete.
Yes, there is some support. But current dmd has some compile errors on Solaris (nothing serious, I'll prepare a pull for it). And I miss something like core.sys.solaris in druntime.
The DMD compile errors are fixed now. I also created a pull request to enable Solaris support in druntime (again). For LDC, the translation of the following files in druntime is missing: <link.h>, <elf.h>, <sys/link.h>, <sys/elf.h> These files are required to for section support. (DMD uses brackets here. For FreeBSD, I used section information from ELF. The same code can be used for Solaris.) Any volunteers? Phobos has still some compile errors because socket constants are missing. I did not yet identify the missing module. Regards, Kai
May 04 2014
prev sibling parent reply =?UTF-8?B?Ik5vcmRsw7Z3Ig==?= <per.nordlow gmail.com> writes:
 Doesn't druntime already support Solaris? I know I've seen a 
 couple of version statements for Solaris.
Could someone just brielfy explain (sum up) to me what parts of druntime that is architecture/os specific? I already know about exception handling. What more?
Apr 10 2014
parent reply Jacob Carlborg <doob me.com> writes:
On 2014-04-10 19:31, "Nordlöw" wrote:

 Could someone just brielfy explain (sum up) to me what parts of druntime
 that is architecture/os specific? I already know about exception
 handling. What more?
I did a quick grep for "linux" and "Posix" and this is what I came up with: * Quite a lot of bindings to C Posix functions/types * Threading * Synchronization * TLS * The GC has some minor parts * dmain2.d, the code that boots a D application * Some math related code (cmath2.d) * alloca * Time -- /Jacob Carlborg
Apr 10 2014
parent reply "Kai Nacke" <kai redstar.de> writes:
On Thursday, 10 April 2014 at 19:11:58 UTC, Jacob Carlborg wrote:
 On 2014-04-10 19:31, "Nordlöw" wrote:

 Could someone just brielfy explain (sum up) to me what parts 
 of druntime
 that is architecture/os specific? I already know about 
 exception
 handling. What more?
I did a quick grep for "linux" and "Posix" and this is what I came up with: * Quite a lot of bindings to C Posix functions/types * Threading * Synchronization * TLS * The GC has some minor parts * dmain2.d, the code that boots a D application * Some math related code (cmath2.d) * alloca * Time
I like to add: * Fibers (part of core.thread) * Module discovery (rt.sections) * Math (std.math) * Vararg-support (core.stdc.vararg)
Apr 10 2014
parent Jacob Carlborg <doob me.com> writes:
On 11/04/14 06:57, Kai Nacke wrote:

 I like to add:

 * Fibers (part of core.thread)
 * Module discovery (rt.sections)
Is accessing sections/segments limited to this module now? I know that the GC and threads and some other parts are dependent on this.
 * Math (std.math)
 * Vararg-support (core.stdc.vararg)
If we include Phobos as well, there are quite a lot of code that differs on Posix vs Windows: * Environment variables (std.process) * Running external processes, forking (std.process) * There's a function for getting the path to the current executable, somewhere * Probably some IO parts * Handling of file system paths * Date/Time (here as well) But these are not required to use the language. -- /Jacob Carlborg
Apr 10 2014
prev sibling parent =?UTF-8?B?Ik5vcmRsw7Z3Ig==?= <per.nordlow gmail.com> writes:
 Looks like a SPARC version could be created with reasonable 
 effort...
That is good to hear! Keep up!
Apr 08 2014
prev sibling next sibling parent "Dejan Lekic" <dejan.lekic gmail.com> writes:
I can give access to my ODROID-U2 (home) "server" if there is 
need... It is a quad-core ARM with 2GiB RAM. :)

If I remember well, Zor also has an ARM machine used for CI and I 
am sure he will gladly help.

SourceForge had their compile farm, but I think they discontinued 
that feature (too bad, it was awesome), but I think there are 
several other similar systems on-line. Googling gave me this: 
https://en.wikipedia.org/wiki/Compile_farm
May 01 2014
prev sibling parent reply "Dejan Lekic" <dejan.lekic gmail.com> writes:
 Now if I could only find an ARM vps... ;)
One more thing - you know pretty well that nowadays anyone can have a testing ARM machine using QEMU ... :)
May 01 2014
parent "Joakim" <dlang joakim.airpost.net> writes:
On Thursday, 1 May 2014 at 11:11:01 UTC, Dejan Lekic wrote:
 Now if I could only find an ARM vps... ;)
One more thing - you know pretty well that nowadays anyone can have a testing ARM machine using QEMU ... :)
Yeah, I've heard that QEMU's slow and can be buggy though. I may just test Android/ARM on my phone or tablet.
May 01 2014