This article is from the FAQ, by with numerous contributions by others.
On the newest Silicon Graphics OS, IRIX 6, three binary object file formats
are supported by the OS - old 32 bit format, new 32 bit format and new 64
bit format. The BETA compiler in release 4.1, however, only supports the old
32 bit format - the format also used for IRIX 5.
There are 3 implications of this:
1. Link directive:
The compiler automatically fixes the link directive on IRIX 6 machines
2. Using BUILD:
If you are using BUILD properties, and may thus need to invoke the C
compiler, please note that you have to specify the CC environment
variable before compiling your BETA program:
setenv CC 'cc -32'
If you are compiling with beta -d ..., you may also set CC like this:
setenv CC 'cc -O2 -32'
In a future version of the compiler, this will be done automatically.
3. LD_LIBRARY_PATH specification:
If your program is linked using shared object files (the compiler will
tell you so), as always, you should set LD_LIBRARY_PATH to point to the
directory, where the shared object files are places (usually directory
sgi). Since the compiler uses old 32 bit object files, it is enough to
set LD_LIBRARY_PATH. That is, do not set any of the new
LD_LIBRARYN32_PATH or LD_LIBRARY64_PATH variables. If you need to set
any of these, then all 3 variables should be set, and the sgi directory
should be included in all three.