Development FAQs
#1
Development FAQs
Looking to port to IRIX? Need information on how IRIX behaves with various types of code? Want to know the feasibility of various projects based on what we know?

This is probably a thread of interest. I'm going to be writing here an updated list of projects that I see mentioned or that I've researched for porting, as well as provide direct links to our documentation.

Porting Requests:

Firstly, just because you request something doesn't mean it will be attempted. Most of the users here are very much occupied with other things and may not be able to devote much time.

Next, you have to understand the limitations of IRIX and just how primitive some of its underpinnings are. The OS has a lot of them:

Limited HID USB class support
OpenGL 1.2 is the latest supported (no shaders, immediate mode only)
24-bit X Server (doesn't run 32 bit colorspace)
Native compilers are C99/C++98 (some 03 support seems to be present but not much) so anything using newer standards will need to be rewritten
GCC's mainline stops at 4.7.x, lacks full C++11 support. Binutils doesn't support IRIX anymore since many versions ago due to substantial rewrites of bfd, as and other ports
MIPSIVeb is the architecture IRIX uses, any JITs will need to be compatible with this code or else run terribly slow.
Primitive kernel support compared to many modern OSes, including lack of dbus, ConsoleKit/logind, modern toolkits etc.

At bare minimum check to see that all of the above boxes are checked.

Common projects we have hashed over before:

Firefox: 3.0.19 is the latest that will run. If the latest GTK2 is patched, potentially 3.6 or as late as 11 could be ported, but this will be a long and painful process. It's very expensive for someone to undertake this in terms of time.

Chrome: V8 would need mipseb support. No GTK3 supported by IRIX due to atk/dbus, but that may be able to work around with substantial rework.

Doom 3: No hardware support for pixel shading, which means it would run like shit. Hardware per pixel calculation is very expensive computationally.

Dolphin: C++11 galore, plus x86-only JIT.

Xash3D: C++11 is used, and you'd need a LOT of reworking for that at minimum.

Mupen64: Possible, but won't compile out of the box.

PCSX: Ditto

Developer Documentation

I have multiple pages on the topic on the wiki and in apocrypha:

https://wiki.irixnet.org/irix_libc
https://wiki.irixnet.org/mipspro
https://wiki.irixnet.org/toolchain
http://archive.irixnet.org/apocrypha/the...s/ch1.html

You can also check out the MIPSPro manuals on http://techpubs.jurassic.nl

I'm the system admin of this site. Private security technician, licensed locksmith, hack of a c developer and vintage computer enthusiast. 

https://contrib.irixnet.org/raion/ -- contributions and pieces that I'm working on currently. 

https://codeberg.org/SolusRaion -- Code repos I control

Technical problems should be sent my way.
Raion
Chief IRIX Officer

Trade Count: (9)
Posts: 4,240
Threads: 533
Joined: Nov 2017
Location: Eastern Virginia
Website Find Reply
10-02-2019, 12:18 AM


Forum Jump:


Users browsing this thread: 1 Guest(s)