The O2 is not a 64bit SGI

massiverobot

irix detailer
Feb 8, 2019
121
108
43
Philly
twitter.com
... at least according to IRIX. Working with my O2, which I haven't used since I got an Octane, which also fell into disuse since I got a Fuel. But working with this O2 i ran into an issue installed sgug-rse RPM packages on a fresh install of IRIX 6.5.30 using booterizer.... for some reason all the RPM packages from sgug-rse were not the right arch for my O2? What gives?

RPM Madness

Problem:

[sgugshell dillera@o2 RPMS]$ sudo rpm --reinstall -ivh noarch/*.rpm mips/*.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
package initial-sgug-1:0.2.0-1.sgugbeta.mips is intended for a different architecture
package sgug-rpm-config-1-1.sgugbeta.mips is intended for a different architecture
package ncurses-base-6.1-12.20190803.sgugbeta.noarch is intended for a different architecture
package ncurses-term-6.1-12.20190803.sgugbeta.noarch is intended for a different architecture
package coreutils-common-8.30-4.sgugbeta.mips is intended for a different architecture

package vim-filesystem-2:8.1.2102-1.sgugbeta.noarch is intended for a different architecture

RPM dosen't think the O2 is mips arch? If not what is it? First things first, I needed that software installed. Google led me to some optional flags in RPM.
You can force RPM to install with --ignorearch

# rpm --reinstall --ignorearch -ivh noarch/*.rpm mips/*.rpm


But why is RPM doing this?

Turns out, the O2 just has 32bit IRIX bits installed by default, since it can't go over 1G RAM SGI didn't bother to install the 64bit parts of IRIX. RPM is getting confused by the output of unname on this system


See below from an Ontane (leafy and vanderlyn are Octanes) and the O2:

[dan@leafy ~]$ uname -a
IRIX64 leafy 6.5 07202013 IP30 mips Irix

dillera@o2 ~ $ uname -a
IRIX o2 6.5 07202013 IP32 mips IP32 Irix

The first string output is what RPM uses to decide on the system arch for it's packages.


The rpm --showrc is also a useful command:

An octane w/ 64bits:

vanderlyn:~> rpm --showrc | head -n10
ARCHITECTURE AND OS:
build arch : mips
compatible build archs: mips noarch
build os : irix
compatible build os's : irix
install arch : mips
install os : irix
compatible archs : mips noarch
compatible os's : irix

O2 with just 32bits:


[sgugshell dillera@o2 rpmbuild]$ rpm --showrc | head -n10
ARCHITECTURE AND OS:
build arch : ip32
compatible build archs: IP32
build os : irix
compatible build os's : IRIX
install arch : IP32
install os : IRIX
compatible archs : IP32

compatible os's : IRIX


All the sgug-rse packages have mips defined as the arch. ip32 isn't cutting it. sgug-rse however is complied for 32bit, not 64 so it all works.

The Indy should be similar- it won't show IP32 (that is the O2) but it won't show mips either.

Hammy is going to fix this! He will release a new RPM that will treat these 32bit arch as compatiable with the builds for sgug-rse.
 

Elf

Storybook / Retired, ex-staff
Feb 4, 2019
792
252
63
Mountain West (US)
Yeah that's interesting, I seem to remember hearing something about this too. Some SGIs (probably at least the O2) that had 64-bit CPUs but didn't run in 64-bit mode. Unfortunately I've forgotten the reasoning as to why.
 

LarBob

Administrator
Feb 8, 2019
51
27
18
Yeah that's interesting, I seem to remember hearing something about this too. Some SGIs (probably at least the O2) that had 64-bit CPUs but didn't run in 64-bit mode. Unfortunately I've forgotten the reasoning as to why.
Furthermore, the IP32 PROM won't run n64/64-bit kernels at all. GNU binutils works around this with a bit of a hack; they made an "o64" ABI which is basically the old o32 ABI extended to 64-bits. That's how 64-bit Linux kernels run on the O2. More details here: http://gcc.gnu.org/projects/mipso64-abi.html

It's less that the system isn't 64-bit and more that the PROM is handicapped.
 
Last edited:
  • Like
Reactions: Elf

massiverobot

irix detailer
Feb 8, 2019
121
108
43
Philly
twitter.com
Furthermore, the IP32 PROM won't run n64/64-bit kernels at all. GNU binutils works around this with a bit of a hack; they made an "o64" ABI which is basically the old o32 ABI extended to 64-bits. That's how 64-bit Linux kernels run on the O2. More details here: http://gcc.gnu.org/projects/mipso64-abi.html

It's less that the system isn't 64-bit and more that the PROM is handicapped.
True, i was just making a click-bait title for my post... forgive me.

And to be clear as I understand it IP32 just happens to be the 32nd IP board, it's not IP32= 32 bit and there are IP64s out there :)
 

About us

  • Silicon Graphics User Group (SGUG) is a community for users, developers, and admirers of Silicon Graphics (SGI) products. We aim to be a friendly hobbyist community for discussing all aspects of SGIs, including use, software development, the IRIX Operating System, and troubleshooting, as well as facilitating hardware exchange.

User Menu