https://wiki.octave.org/wiki/index.php?title=PaulKienzleIrixConf&feed=atom&action=historyPaulKienzleIrixConf - Revision history2024-03-29T09:23:44ZRevision history for this page on the wikiMediaWiki 1.39.2https://wiki.octave.org/wiki/index.php?title=PaulKienzleIrixConf&diff=447&oldid=prevJoannac: Undo spam edit2012-01-12T20:15:44Z<p>Undo spam edit</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:15, 12 January 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l19">Line 19:</td>
<td colspan="2" class="diff-lineno">Line 19:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The following issues may go away when we upgrade to 7.4.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The following issues may go away when we upgrade to 7.4.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>a. I needed to fake the <cxxx> headers.[http://<del style="font-weight: bold; text-decoration: none;">adf</del>.<del style="font-weight: bold; text-decoration: none;">ly</del>/<del style="font-weight: bold; text-decoration: none;">4hRVq </del>See here] cmath is particularly tricky --- some lines therein may be copied from the GNU stdc++ lib which I referenced while doing this.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>a. I needed to fake the <cxxx> headers.[http://<ins style="font-weight: bold; text-decoration: none;">octave</ins>.<ins style="font-weight: bold; text-decoration: none;">sourceforge.net</ins>/<ins style="font-weight: bold; text-decoration: none;">MIPS73-isoheaders.tar.gz </ins>See here] cmath is particularly tricky --- some lines therein may be copied from the GNU stdc++ lib which I referenced while doing this.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>b. I get the following errors when building, but commenting out the offending functions seems to solve the problem:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>b. I get the following errors when building, but commenting out the offending functions seems to solve the problem:</div></td></tr>
</table>Joannachttps://wiki.octave.org/wiki/index.php?title=PaulKienzleIrixConf&diff=443&oldid=prev86.129.127.155: /* Mips PRO CC 7.3 is not ISO compliant */2012-01-12T18:36:57Z<p><span dir="auto"><span class="autocomment">Mips PRO CC 7.3 is not ISO compliant</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 18:36, 12 January 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l19">Line 19:</td>
<td colspan="2" class="diff-lineno">Line 19:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The following issues may go away when we upgrade to 7.4.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The following issues may go away when we upgrade to 7.4.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>a. I needed to fake the <cxxx> headers.[http://<del style="font-weight: bold; text-decoration: none;">octave</del>.<del style="font-weight: bold; text-decoration: none;">sourceforge.net</del>/<del style="font-weight: bold; text-decoration: none;">MIPS73-isoheaders.tar.gz </del>See here] cmath is particularly tricky --- some lines therein may be copied from the GNU stdc++ lib which I referenced while doing this.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>a. I needed to fake the <cxxx> headers.[http://<ins style="font-weight: bold; text-decoration: none;">adf</ins>.<ins style="font-weight: bold; text-decoration: none;">ly</ins>/<ins style="font-weight: bold; text-decoration: none;">4hRVq </ins>See here] cmath is particularly tricky --- some lines therein may be copied from the GNU stdc++ lib which I referenced while doing this.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>b. I get the following errors when building, but commenting out the offending functions seems to solve the problem:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>b. I get the following errors when building, but commenting out the offending functions seems to solve the problem:</div></td></tr>
</table>86.129.127.155https://wiki.octave.org/wiki/index.php?title=PaulKienzleIrixConf&diff=96&oldid=prevJoannac: Port from old wiki2011-11-22T21:02:27Z<p>Port from old wiki</p>
<p><b>New page</b></p><div>Octave has too many configure options. On IRIX you can choose the C compiler (gcc vs cc), the Fortran compiler (g77 vs f77), the C++ compiler (g++ vs CC), the FFT library (FFTW or FFTPACK), the linear algebra library (scs, ATLAS or LAPACK) and others. Some options do not work together, such as scs and g++.<br />
<br />
The following script allows you to easily specify the options you want use while encoding the constraints for my specific setup. Save it as octaveconf somewhere in your path and type octaveconf for help. You may need to modify details such as the location of the compiler.<br />
<br />
Perhaps we want to build a script covering multiple systems which encodes knowledge of compilers and environments other than gcc.<br />
<br />
=IRIX Issues=<br />
<br />
==rpath isn't being set correctly in configure==<br />
<br />
If my g++ 3.2 environment was set up properly, this would be a matter of converting the <code>RLD_FLAG='...'</code> line for sgi into <code>'-rpath $(octlibdir)'</code>, but in my current setup I need <code>-rpath /usr/local/lib:$(octlibdir)</code> because I can't figure out how to get <code>/usr/local/lib</code> on to the default load library path.<br />
<br />
My <code>octaveconf</code> script converts <code>RLD_PATH</code> in Makeconf after <code>./configure runs. --enable-rpath=...</code> would do the same job, except that configure.in will need to be patched to support this.<br />
<br />
==syscalls has issues with 64 bit numbers==<br />
This is a problem for <code>fs.ino()</code> and <code>fs.size()</code>. It is not correct to cast them to double, but that is what I am doing now. Until we figure out a nice way to limit the type explosion in the operator table, I'm not keen to and any more basic numeric types to octave. The fact that we need scalar, complex scalar, matrix, complex matrix and maybe sparse and complex sparse types for each precision doesn't help.<br />
<br />
==Mips PRO CC 7.3 is not ISO compliant==<br />
The following issues may go away when we upgrade to 7.4.<br />
<br />
a. I needed to fake the <cxxx> headers.[http://octave.sourceforge.net/MIPS73-isoheaders.tar.gz See here] cmath is particularly tricky --- some lines therein may be copied from the GNU stdc++ lib which I referenced while doing this.<br />
<br />
b. I get the following errors when building, but commenting out the offending functions seems to solve the problem:<br />
<br />
CC -c -I. -I.. -I../liboctave -I../src -I../libcruft/misc -I../glob -I../glob -DHAVE_CONFIG_H -g -O2 -LANG:std \<br />
-I/data/freeware/src/CC-isoheaders -I/usr/local/include -woff 3333 ./TEMPLATE-INST/Array-tc.cc -o Array-tc.o <br />
<br />
cc-3234 CC: ERROR File = ./TEMPLATE-INST/Array-tc.cc, Line = 44<br />
Explicit specialization of function "Array<octave_value>::resize_fill_value" must precede its first use.<br />
<br />
Array<octave_value>::resize_fill_value (void)<br />
<br />
cc-1136 CC: ERROR File = oct-obj.h, Line = 70<br />
Too many arguments in function call.<br />
<br />
{ ::operator delete (p, static_cast<void *> (0)); }<br />
<br />
==SGI has multiple ABIs, and the linker complains if it has to guess== <br />
To suppress the warnings, the link line needs <code>-L/usr/lib32/mips4</code>. I haven't tried compiling for lib64. octaveconf predefines LDFLAGS to include this, <code>-L/usr/local/lib</code> (for readline) and <code>-rpath /usr/local/lib</code> (for readline and libc++). There may be a problem with multiple -rpath options in <code>src/Makefile</code> which I haven't yet resolved automatically.<br />
<br />
==scs and g++ 3.2 won't work together== <br />
Configure <code>--without-lapack --without-blas</code> in this case.<br />
<br />
=octaveconf=<br />
<br />
#!/bin/sh<br />
# Octave configure script for jazz. Type octaveconf for options.<br />
#<br />
# Notes:<br />
# (1) The gcc compiler we are using is gcc 3.2 stored in /usr/local/bin.<br />
# The gcc 3.0.4 compiler in /usr/freeware/bin also works, except that<br />
# libstdc++ in /usr/local/lib trumps that in /usr/freeware/lib. We need<br />
# -L/usr/local/lib on the command line to pick up libreadline, thus<br />
# we are forced to use /usr/local/lib<br />
# (2) atlas is not yet compiled for jazz.<br />
# (3) fftw will not compile with the current octave sources (2003-01-01)<br />
# (4) We are using a slightly old version of the SGI compiler. The new<br />
# one is more standards compliant. Fix the CXXFLAGS after we upgrade.<br />
# (5) We need to hack -rpath because --enable-rpath doesn't allow us to<br />
# override the RLD_FLAG options. Fix configure so that we can.<br />
# (6) We can't use scs with g++ until we resolve the bus error that results.<br />
# Usage notes<br />
if test -z "$*" || test "$1" = "--help"; then cat <<EOF<br />
Configure octave for jazz.<br />
First change to the root octave directory:<br />
cd /data/freeware/src/octaveXXX<br />
where XXX is the version of octave you are compiling.<br />
If compiling from CVS, XXX is blank and you need to do the following:<br />
gmake distclean<br />
cvs -q update -d<br />
# resolve any conflicts then do the following<br />
./autogen.sh<br />
Next configure octave as appropriate. Leave options blank for the default.<br />
../octaveconf options<br />
where options are chosen from the following<br />
default use defaults for all options<br />
shared|static build shared or static libs<br />
cc|gcc C compiler<br />
CC|g++ C++ compiler<br />
f77|g77 Fortran compiler<br />
fftpack|fftw FFT library<br />
scs|atlas|lapack Linear algebra library<br />
The first option in each group is the default.<br />
EOF<br />
exit<br />
fi<br />
# Make sure we are in the octave root<br />
if test ! -f "src/octave.cc"; then<br />
echo "Change to the octave root directory first"<br />
exit<br />
fi<br />
# Process the options<br />
otheropts=<br />
for opt in $*; do<br />
case "$opt" in<br />
shared) shared=yes ;;<br />
static) shared=no ;;<br />
cc) cc=cc ;;<br />
gcc) cc=gcc ;;<br />
CC) cxx=CC ;;<br />
g++) cxx=g++ ;;<br />
f77) f77=f77 ;;<br />
g77) f77=g77 ;;<br />
fftw) fft=fftw ;;<br />
fftpack) fft=fftpack ;;<br />
scs) lapack=scs ;;<br />
atlas) lapack=atlas ;;<br />
lapack) lapack=lapack ;;<br />
default) ;;<br />
*) otheropts="$otheropts $opt" ;;<br />
esac<br />
done<br />
# Assign defaults<br />
: ${shared:=yes} ${cc:=cc} ${cxx:=CC} ${f77:=f77} ${fft:=fftpack} ${lapack:=scs}<br />
# Which FFT library to use<br />
case "$fft" in<br />
fftw) fftopts='--with-fftw="-I/usr/freeware/include -L/usr/freeware/lib32 -lfftw"' ;;<br />
fftpack) fftopts= ;;<br />
esac<br />
# Build static or shared<br />
case "$shared" in<br />
yes) sharedopts="--disable-static --enable-shared" ;;<br />
no) sharedopts="--disable-shared --enable-static --enable-dl" ;;<br />
esac<br />
# Which C compiler to use<br />
case "$cc" in<br />
cc) CC=cc CFLAGS="-g -O -I/usr/local/include" ;;<br />
gcc) CC=/usr/local/bin/gcc CFLAGS="-g -O -I/usr/local/include" ;;<br />
esac<br />
# Which C++ compiler to use.<br />
# The following notes apply to the SGI compiler<br />
# 1. Warning 1682 occurs when a overloaded virtual function is only<br />
# partially instantiated for a particular class<br />
# Warning 3333 says placement delete has been disabled.<br />
# 2. /data/freeware/src/CC-isoheaders is my implementation of the<br />
# standard C++ headers corresponding to the standard C headers.<br />
# 3. LANG:std says to follow the ISO standards<br />
# Points 2 and 3 will be resolved when the CC compiler is upgraded.<br />
case "$cxx" in<br />
CC) CXX=CC CXXFLAGS="-g -O2 -LANG:std -I/data/freeware/src/CC-isoheaders -I/usr/local/include -woff 3333" ;;<br />
g++) CXX=/usr/local/bin/g++ CXXFLAGS="-g -O2 -Wall -I/usr/local/include" ;;<br />
esac<br />
# Which Fortran compiler to use<br />
case "$f77" in<br />
f77) F77=f77 FFLAGS="-g -O" ;;<br />
g77) F77=/usr/local/bin/g77 FFLAGS="-g -O" ;;<br />
esac<br />
# Need -L/usr/local/lib to find libreadline.<br />
# Need -L/usr/lib32/mips4 to avoid complaints about mips3 vs mips4.<br />
LDFLAGS="-L/usr/local/lib -L/usr/lib32/mips4 -rpath /usr/local/lib"<br />
# Hack the configure script so that it doesn't find scs unless we are<br />
# explicitly looking for it.<br />
# Override scs if using g++ until we resolve the bus error that results<br />
if test "$cxx" = "g++" -a "$lapack" = scs ; then lapack=lapack; fi<br />
case "$lapack" in<br />
lapack) lapackopts="--without-lapack --without-blas" ;;<br />
scs) lapackopts="" ;; # configure will find scs if it exists<br />
atlas) echo "Atlas is not yet compiled for jazz" && exit ;;<br />
esac<br />
cp configure configure.bak<br />
sed $sedopts < configure.bak > configure<br />
# Do the actual configure<br />
export CC CFLAGS CXX CXXFLAGS F77 FFLAGS LDFLAGS<br />
./configure $sharedopts $lapackopts $fftopts $otheropts<br />
# Hack the resulting Makeconf so that it includes the correct RLD_PATH<br />
# New versions of octave accept --enable-rpath='-rpath ...' so the<br />
# the sed hack below is not necessary.<br />
case "$shared" in<br />
yes) rld='-rpath /usr/local/lib:$(octlibdir)' ;;<br />
no) rld='-rpath /usr/local/lib' ;;<br />
esac<br />
cp Makeconf Makeconf.bak<br />
sed -e"s,RLD_FLAG *=.*$,RLD_FLAG = $rld," < Makeconf.bak > Makeconf</div>Joannac