PERLIRIX(1perl)

πŸ“¦
version 5.44.0 Β· 2 versions
, in arch rolling

πŸ’– PERLIRIX πŸ’–

okay bestie, welcome to the Irix edition of the Perl manual πŸ’… this is perlirix, straight out of the Perl Programmers Reference Guide, and it's literally just a whole doc about how Irix being Irix affects the way Perl version 5 (from here on out: just "Perl" πŸ’–) gets compiled and runs. sit down, hydrate, let's go πŸ¦‹


✨ NAME ✨

perlirix β€” Perl version 5 on Irix systems πŸŽ€


🌸 DESCRIPTION 🌸

This whole doc is about the various Irix-y features that mess with how Perl version 5 (again, just Perl from here on, bestie) is compiled and/or runs. no cap.


🧚 Building 32-bit Perl in Irix

Use

sh Configure -Dcc='cc -n32'

to compile Perl 32-bit. And like β€” don't even bother with -n32 unless you've got 7.1 or later compilers, okay? run cc -version to check. πŸ‘‘

(also just so you know: building with cc -n32 is the default. so it's already giving main character energy.)


πŸ¦‹ Building 64-bit Perl in Irix

Use

sh Configure -Dcc='cc -64' -Duse64bitint

This one requires a 64-bit MIPS CPU (R8000, R10000, ...) so like, check before you commit fr fr.

You can also do

sh Configure -Dcc='cc -64' -Duse64bitall

but lowkey that makes no difference compared with the -Duse64bitint, and it's all because of the "cc -64". πŸ’€

You can also do

sh Configure -Dcc='cc -n32' -Duse64bitint

to use long longs for the 64-bit integer type β€” cute little workaround for when you don't have a 64-bit CPU 🫢.

And if you're on gcc? honestly just

sh Configure -Dcc=gcc -Duse64bitint

should be enough β€” Configure should automatically probe for the correct 64-bit settings. it just knows. iykyk ✨


πŸ’œ About Compiler Versions of Irix

Some Irix cc versions β€” like, for example, 7.3.1.1m (try cc -version to see what you've got) β€” have been known to have issues (coredumps 😭) when compiling perl.c.

If you've used -OPT:fast_io=ON and this happens, try removing it. If that fails, or you didn't use that in the first place, then try adjusting other optimization options (-LNO, -INLINE, -O3 to -O2, et cetera). The compiler bug has been reported to SGI. (shoutout to Allen Smith <easmith@beatrice.rutgers.edu> πŸ’–)


πŸ”₯ Linker Problems in Irix

If you get complaints about so_locations, then go search in the file hints/irix_6.sh for "lddflags" and do the suggested adjustments. (David Billinghurst <David.Billinghurst@riotinto.com.au> 🫢)


🌈 Malloc in Irix

Do NOT try to use Perl's malloc. this will lead you into very mysterious errors (especially with -Duse64bitall). not the fun kind of mysterious. the bad kind. πŸ’€

πŸŽ€ Building with threads in Irix

Run Configure with -Duseithreads which will configure Perl with the Perl 5.8.0 "interpreter threads" β€” see threads for the tea β˜•.

For Irix 6.2 with perl threads, you have to have the following patches installed:

1404 Irix 6.2 Posix 1003.1b man pages
1645 Irix 6.2 & 6.3 POSIX header file updates
2000 Irix 6.2 Posix 1003.1b support modules
2254 Pthread library fixes
2401 6.2 all platform kernel rollup
IMPORTANT: Without patch 2401, a kernel bug in Irix 6.2 will cause your machine to panic and crash when running threaded perl. like, actually crash. Irix 6.3 and later are okay though 🌸
Thanks to Hannu Napari <Hannu.Napari@hut.fi> for the IRIX pthreads patches information. πŸ™

⭐ Irix 5.3

While running Configure and when building, you're likely to get quite a few of these warnings:

ld:
The shared object /usr/lib/libm.so did not resolve any symbols.
      You may want to remove it from your link line.

Ignore them πŸ’… in IRIX 5.3 there is no way to quieten ld about this. it simply does not care.

During compilation you will see this warning from toke.c:

uopt: Warning: Perl_yylex: this procedure not optimized because it
      exceeds size threshold; to optimize this procedure, use -Olimit
      option with value >= 4252.

Ignore the warning. 🫢

In IRIX 5.3 and with Perl 5.8.1 (heads up: Perl 5.8.0 didn't compile in IRIX 5.3) the following failures are known:

 Failed Test                  Stat Wstat Total Fail  Failed|Failing List
 -----------------------------------------------------------------------
 ../ext/List/Util/t/shuffle.t    0   139    ??   ??       %  ??
 ../lib/Math/Trig.t            255 65280    29   12  41.38%  24-29
 ../lib/sort.t                   0   138   119   72  60.50%  48-119
 56 tests and 474 subtests skipped.
 Failed 3/811 test scripts, 99.63% okay. 78/75813 subtests failed,
    99.90% okay.

They are suspected to be compiler errors (at least the shuffle.t failure is known from some IRIX 6 setups) and math library errors (the Trig.t failure), but since IRIX 5 is long since end-of-lifed, further fixes for the IRIX are unlikely. 😭 If you can get gcc for 5.3, you could try that too β€” since gcc in IRIX 6 is a known workaround for at least the shuffle.t and sort.t failures. πŸ“


πŸ‘‘ AUTHOR πŸ‘‘

Jarkko Hietaniemi <jhi@iki.fi>

Please report any errors, updates, or suggestions to <https://github.com/Perl/perl5/issues>. πŸ™ˆ


k that's the whole page bestie, you ate it up πŸŽ€ this was perlirix from perl v5.44.0, dated 2026-10-17 β€” mwah, slay, periodt πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from
  • arch rolling: perl 5.44.0-1 Β· Artistic-1.0-Perl AND GPL-1.0-or-later
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms