Pkgsrc on IRIX

From WTFwiki
Revision as of 14:30, 22 April 2007 by Andrew (talk | contribs) (→‎Build problems: Added ncurses and ttmkfdir2)
Jump to navigation Jump to search

Introduction

SGI no longer packages 'freeware' for IRIX, as it was discontinued in 2006. Nekoware aims to be a community-driven replacement but I've found many packages to be compiled with far too many dependancies (vim needing GTK, etc) and not everything I want is available. Therefore, much like my experience with Opensolaris, I turned to pkgsrc...

Bootstrapping pkgsrc using gcc

As of pkgsrc 2007q1 pkgsrc bootstraps out of the box, unlike some earlier versions that have problems with PRIu64.

Download the SGI freeware binary of gcc from SGI freeware and read the documentation.

Make sure you have compiler_dev.sw.base installed (notably c_dev and c++_dev). These can be found on your IRIX 6.5 developer foundation CD.

Install the gcc tardist using the `tardist` command as root.

Add /usr/freeware/bin to your $PATH.

Patch your spec file if you want to default gcc to 64 bit mips4 mode as noted here or download a pre-patched spec. I had to patch on a freebsd box because IRIX' patch didn't like the diff.

Download pkgsrc 2007q1 or later from netbsd's ftp and untar it to /usr.

cd into /usr/pkgsrc/bootstrap, set CC=gcc and ./bootstrap

TO BE CONTINUED

Build problems

Building gcc from pkgsrc

I currently don't know how to do this. The SGI freeware gcc binary seems to be working fine.

lang/perl5

Configure fails with invalid option -64 or some such nonsense, edit the pkgsrc Makefile and remove it.

archivers/unzip

The compiler coredumps when building. To fix:

 bmake build (wait for it to segfault)
 cd work/unzip*
 vi Makefile (and remove the definition of LF2)
 gmake clean; gmake generic2 (generic doesn't work..?)
 cd ../../
 bmake install clean

lang/ruby

When you run ruby it complains about not being able to map the soname for libruby. The solution is:

 export LD_LIBRARY64_PATH=/usr/pkg/lib

A more general solution might be around, haven't done the research yet.

graphics/tiff

This fails with "invalid preprocessor flag "-c"' or something. IRIX apparently comes with tiff of some sort, so make it a builtin:

 BUILTIN_PKG.tiff=       tiff-3.8
 USE_BUILTIN.tiff=       YES

NOTE this only works for when you're using the 32 bit ABI, there's no 64 bit tiff library...

textproc/groff

groff by default depends on netpbm which depends on tiff, which won't work on 64 bit systems, so disable that stuff:

 PKG_OPTIONS.groff=      -x11 -groff-docs

If groff complains about a broken C++ compiler:

CXX=                    /usr/freeware/bin/g++

bmake clean and try to build it again.

devel/ncurses

This failed for me by complaining about a missing libncurses++.so when linking the demos. This apparently is a libtool issue, but it's way too complex for me to debug. I built it manually with --prefix=/usr/pkg and made it a builtin in mk.conf and things seemed to go well...

See also: a netbsd-bugs report and a reported fix that doesn't work for me

fonts/ttmkfdir2

If it complains about 'optarg' being undeclared it seems to be caused by pkgsrc using the wrong getopt.h header. I manually edited commandline.cpp to have

 #include "/usr/include/getopt.h"

instead of

 #include <getopt.h>

and it seemed to fix it, changing the order of the -I parameters to gcc might do it too...

Useful links