SGI: Development

Black Fox's Development Thread - Page 1

I figured since I'm amping up with my Tezro and Fuel now, it is about time to announce a few things I want to port to IRIX, and this will serve as my development log thread.

You're free to suggest programs, but understand a few limits:

Simply state the program and a link to its website. Verify first it is written in C, and do not suggest compilers - I will not even try those as I'm not *that* skilled.

I do not know C++ and do not care to. Do not ask me to port C++ based software - not gonna happen anytime soon.

I will show a preference for BSD/MIT software, so if possible, ask for those.

Priorities are first on getting them to compile using MIPSPro, if not I will fall back to GCC.

Patches for MIPSPro are welcomed.

Any patches or changes I do will be published.

For the time being, I will only be doing build system patches to get them to build, and maybe a tarball. Once I get a whole suite of tools going under the /usr/local preference ( BSD-guy here, so that's why I do that ) I'll also assist and do stuff for Nekoware devs, as I do support those efforts.

mksh - the MirBSD Korn Shell - Builds under MIPSPro, no extra stuff needed. Tarball available below
tmux - BSD-licensed, better alternative to screen - built libevent successfully under MIPSPro, TMUX still needs work
btpd - Bittorrent Daemon
Eterm - Enlightenment Terminal
Entire collection up for sale :(
mksh built! Tarball above.
Entire collection up for sale :(
/usr/local FTW!
Mmmm...a bittorrent client. Now there is something I'd like to see (Haven't tried building/porting myself).

I may share some things that I've built with great success or with some edits in this thread as well. I'm going to be fairly tied up for most of the day, but when I get the chance I will take a look. My builds are first tried with MIPSPro (for C, all C++ is done with GCC from my end), and I've got a rather large collection built in /usr/local.

Last year I know I built with success:
httpd-2.4
php5

And I will check my ~/src folder when I get the chance.
"Apollo was astonished, Dionysus thought me mad."
:Octane: :Octane: :O2:
TeamBlackFox wrote: I do not know C++ and do not care to. Do not ask me to port C++ based software - not gonna happen anytime soon.

Code: Select all

cout << ":(\n";


TeamBlackFox wrote: Priorities are first on getting them to compile using MIPSPro, if not I will fall back to GCC.
You might want to look at open64 as well. It's an old variant of gcc merged with some of the code from an unidentified version of MIPSPro. I've never tried it, though deep in the code, you can find some information on CPU scheduling for the R10K and Loongson. Main website is down right now, but was up a few weeks ago:
http://en.wikipedia.org/wiki/Open64


TeamBlackFox wrote: You're free to suggest programs, ...
systemd? :D

I'M KIDDING
:Onyx2: 4x R14000 :Tezro: 4x R16000 :Fuel: 1x R16000 :Octane: 2x R14000 :O2+: RM7000 :O2: R10000 :O2: RM5200 :Indigo: R4400 :Indigo2IMP: R10000 :Indigo2: R8000 :O3x0: 4x R14000 :Indy: R5000

"The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between."
--Emperor Turhan, Centauri Republic
Kumba wrote:
TeamBlackFox wrote: You're free to suggest programs, ...
systemd? :D

Banned
"Apollo was astonished, Dionysus thought me mad."
:Octane: :Octane: :O2:
does open64 run on irix?
r-a-c.de
No, it doesn't. I tried once but the build system was sufficiently Linuxified that I lost interest.

While it does have a MIPS code generator these days, it's not from MIPSpro.

The IRIX/MIPSpro compiler works like this:
* Front end: licensed from 3rd party, the Edinburgh Compiler Group (EDG). Many other commerial UNIX vendors used this front end, including the DEC/Compaq compilers for Tru64, and I'm pretty sure the Intel Compilers use it.
* Intermediate (optimizer): built by SGI
* Back end (code generator for MIPS CPUs): built by SGI.

Later, SGI built a new back end for IA64 CPUs, and open sourced the compiler as Open64. They couldn't open source parts they didn't own (EDG) so they replaced it with bits from GCC. The MIPS back end code was not open sourced.

Later on, other people implemented new back ends from scratch for x86-64, and MIPS.
Now this is a deep dark secret, so everybody keep it quiet :)
It turns out that when reset, the WD33C93 defaults to a SCSI ID of 0, and it was simpler to leave it that way... -- Dave Olson, in comp.sys.sgi

Currently in commercial service: Image :Onyx2: (2x) :O3x02L:
In the museum : almost every MIPS/IRIX system.
Wanted : GM1 board for Professional Series GT graphics (030-0076-003, 030-0076-004)
Also, from what little I understand and/or know from hardware, it seems to me that SGI MIPS CPU's are significantly different from the modern MIPS designs making it non-trivial/impossible to use modern MIPS compiler back-ends to generate code for older SGI MIPS CPUs.

People who actually know what they are talking about might want to correct my statement though.
:Fuel: redbox 800Mhz 4Gb V12
jimmer wrote: Also, from what little I understand and/or know from hardware, it seems to me that SGI MIPS CPU's are significantly different from the modern MIPS designs making it non-trivial/impossible to use modern MIPS compiler back-ends to generate code for older SGI MIPS CPUs.

People who actually know what they are talking about might want to correct my statement though.


Its actually because modern MIPS ABI and CPUs expect little endian primarily.

On that note, screw Open64. Its dead. If someone wants a modern compiler for IRIX, build a MIPS backend for PCC.
Entire collection up for sale :(
I would love to see clang/llvm personally, but don't know if the talent to pull that off has any interest in doing that one.
"Apollo was astonished, Dionysus thought me mad."
:Octane: :Octane: :O2:
TeamBlackFox wrote: On that note, screw Open64. Its dead.

and doesn't run on irix so i'm not sure what reason Kumba had for recommending it
r-a-c.de
jan-jaap wrote: No, it doesn't. I tried once but the build system was sufficiently Linuxified that I lost interest.

While it does have a MIPS code generator these days, it's not from MIPSpro.

The IRIX/MIPSpro compiler works like this:
* Front end: licensed from 3rd party, the Edinburgh Compiler Group (EDG). Many other commerial UNIX vendors used this front end, including the DEC/Compaq compilers for Tru64, and I'm pretty sure the Intel Compilers use it.
* Intermediate (optimizer): built by SGI
* Back end (code generator for MIPS CPUs): built by SGI.

Later, SGI built a new back end for IA64 CPUs, and open sourced the compiler as Open64. They couldn't open source parts they didn't own (EDG) so they replaced it with bits from GCC. The MIPS back end code was not open sourced.

Later on, other people implemented new back ends from scratch for x86-64, and MIPS.


The answers from jan-jaap are currently the best in this thread (you know compilers, don't you? :) ). I have
worked several months with the Open64 compiler, so I am adding some missing pieces here. There is a library called
libspin in Open64 which translates gcc's Tree IR to the Open64 IR. The IR of Open64 is called WHIRL. One interesting aspect
of WHIRL is that all possible input languages which is C, C++, and Fortran 90 are compiled to the same IR. WHIRL has five levels: Very High WHIRL, High WHIRL, Mid WHIRL, Low WHIRL and Very Low WHIRL. Different compiler phases work on different
WHIRL levels. There is an ASCII representation of WHIRL, too which can be dumped after a compiler phase.

If you want to see for yourself I have attached WHIRL documents from sgi and from Open64.
:Fuel: 600 MHz, 2 GB RAM, 72 GB 15k RPM HD
:O2: 180 MHz
rwengerter wrote: esentation of WHIRL, too which can be dumped after a compiler phase.

If you want to see for yourself I have attached WHIRL documents from sgi and from Open64.

Thanks for that, I had no freaking idea sgi was still doing anything with compilers, wonders! :shock:
Project:
Temporarily lost at sea...
Plan:
World domination! Or something...
I'd like to see an ADA compiler on Irix.

..

About Irix: i'd like to see "geany", as I feel I miss an useful IDE. I am a bit busy with other things at the moment, to care about Irix, also my Octane is still dead, and my friend doesn't want to put his IP28 online for more than 2 days a week (yesterday it was Online, I was lucky)

Code: Select all

*  dev-util/geany
Homepage:      http://www.geany.org
Description:   GTK+ based fast and lightweight IDE
License:       GPL-2+ HPND


Geany is a powerful tool, unfortunately has to deal with GTK+, so … it may hurt hard. I am used to use it under linux just because I do not have to care about GTK+, ubuntu already has things configured and installed.
Some prowling the streets, looking for sweets from their Candyman , I'm Looking for a new IP30/Octane2
My machine got the Xbow damaged, so I swapped for a second hand Rigol-DG1032Z WaveGen/DDS@30Mhz
IP30 purposes : linux (kernel development), Irix Scientific Apps { Ansys, Catia, Pro/E, FiberSIM, AutoDYNþ }
Other Projects : { Cerberus , Woody Box , 68K-board, SWI_DBG }, discontinued Console hacks { GB , PSX1 }
Wanted Equipments : { U1732C LCR meter by Keysight, alternatives are the welcome }
ivelegacy wrote: About Irix: i'd like to see " geany ", as I feel I miss an useful IDE. I am a bit busy with other things at the moment, to care about Irix, also my Octane is still dead, and my friend doesn't want to put his IP28 online for more than 2 days a week (yesterday it was Online, I was lucky)

Code: Select all

*  dev-util/geany
Homepage:      http://www.geany.org
Description:   GTK+ based fast and lightweight IDE
License:       GPL-2+ HPND


Geany is a powerful tool, unfortunately has to deal with GTK+, so … it may hurt hard. I am used to use it under linux just because I do not have to care about GTK+, ubuntu already has things configured and installed.


Hmm...I might take a look at that. Tied up trying to get some remote server deployments done this minute, but I might be able to check out the dependencies for it in the mean time and see where we would have to start.
"Apollo was astonished, Dionysus thought me mad."
:Octane: :Octane: :O2:
ivelegacy wrote: I'd like to see an ADA compiler on Irix.

It has existed for every version of IRIX since at least 5.x. It's based on GNAT and was supplied by SGI. IIRC you can even find it on ftp.sgi.com.

rwengerter wrote: (you know compilers, don't you? :) ).

Well, they are the 'tools of my trade', so I better :)
Also, (many years ago), I used to contribute to GNU Pascal and MINGW , to name a few. Now I have kids and a full time job writing code so I don't spend too much of my free time writing/porting code anymore.
Now this is a deep dark secret, so everybody keep it quiet :)
It turns out that when reset, the WD33C93 defaults to a SCSI ID of 0, and it was simpler to leave it that way... -- Dave Olson, in comp.sys.sgi

Currently in commercial service: Image :Onyx2: (2x) :O3x02L:
In the museum : almost every MIPS/IRIX system.
Wanted : GM1 board for Professional Series GT graphics (030-0076-003, 030-0076-004)
What kind of X10 automation software was there? There has to be some kit of commands or a daemon that I could use to interact with modules ala-CLI or from scripts.

Edited: HEYU seems like the ticket.

Xtend also seems like an interesting addon.
:Crimson: :Onyx: :O2000: :O200: :O200: :PI: :PI: :Indigo: :Indigo: :Indigo: :Octane: :O2: :1600SW: :Indigo2: :Indigo2: :Indigo2IMP: :Indigo2IMP: :Indy: :Indy: :Indy: :Cube:

Image <-------- A very happy forum member.
edit: " Do not take it too seriously " (Cit)
Some prowling the streets, looking for sweets from their Candyman , I'm Looking for a new IP30/Octane2
My machine got the Xbow damaged, so I swapped for a second hand Rigol-DG1032Z WaveGen/DDS@30Mhz
IP30 purposes : linux (kernel development), Irix Scientific Apps { Ansys, Catia, Pro/E, FiberSIM, AutoDYNþ }
Other Projects : { Cerberus , Woody Box , 68K-board, SWI_DBG }, discontinued Console hacks { GB , PSX1 }
Wanted Equipments : { U1732C LCR meter by Keysight, alternatives are the welcome }
Hey can you guys take the peanut gallery commentary about ADA, Pascal, etc elsewhere? I'm not trying to be rude, but I'd like to keep the thread tidy so I can look at people's suggestions easily and keep it organized.
Entire collection up for sale :(