Editing Octave and separate toolchain
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
Building of octave together with a separate toolchain (custom built gcc/binutils/...). | Building of octave together with a separate toolchain (custom built gcc/binutils/...). | ||
This is required mainly when the base linux distribution ships too old a version of gcc. | This is required mainly when the base linux distribution ships too old a version of gcc. | ||
Unexperienced users should upgrade their distribution, though | Unexperienced users should upgrade their distribution, though. | ||
The main build directory will be called {{Path|/usr/local/build}}. | The main build directory will be called {{Path|/usr/local/build}}. | ||
Line 89: | Line 87: | ||
# do not use threads | # do not use threads | ||
# (because I use pararrayfun from the parallel package) | # (because I use pararrayfun from the parallel package) | ||
make USE_THREAD=0 CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native" CXXFLAGS="-O2 -march=native" FFLAGS="-O2 -march=native | make USE_THREAD=0 CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" CXXFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" FFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" LDFLAGS=-Wl,-rpath,/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64 | ||
One should get | One should get | ||
Line 120: | Line 118: | ||
== qrupdate == | == qrupdate == | ||
download the | download the lastes version (1.1.2 as of this writing) to $downloads | ||
https://sourceforge.net/projects/qrupdate/files/latest/download?source=typ_redirect | https://sourceforge.net/projects/qrupdate/files/latest/download?source=typ_redirect | ||
Line 176: | Line 174: | ||
}} | }} | ||
patch -p0 < $downloads/qrupdate-1.1. | patch -p0 < $downloads/qrupdate-1.1.2.tar.gz | ||
make solib | make solib | ||
Line 203: | Line 201: | ||
cd arpack-ng-3.4.0 | cd arpack-ng-3.4.0 | ||
./bootstrap | ./bootstrap | ||
./configure CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native" CXXFLAGS="-O2 -march=native" FFLAGS="-O2 -march=native | ./configure CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" CXXFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" FFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" LDFLAGS=-Wl,-rpath,/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64 --prefix=/usr/local/gcc-6.2.0_binutils-2.27_isl | ||
make -j 6 | make -j 6 | ||
Line 306: | Line 304: | ||
=== Single precision === | === Single precision === | ||
./configure --enable-shared --enable-sse2 --enable-avx --enable-openmp --enable-threads --enable-float CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native" CXXFLAGS="-O2 -march=native" FFLAGS="-O2 -march=native | ./configure --enable-shared --enable-sse2 --enable-avx --enable-openmp --enable-threads --enable-float CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" CXXFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" FFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" LDFLAGS=-Wl,-rpath,/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64 PKG_CONFIG_PATH=/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64/pkgconfig --prefix=/usr/local/gcc-6.2.0_binutils-2.27_isl | ||
make -j6 | make -j6 | ||
make check | make check | ||
Line 316: | Line 314: | ||
=== Double precision === | === Double precision === | ||
./configure --enable-shared --enable-sse2 --enable-avx --enable-openmp --enable-threads CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" CXXFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" FFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" LDFLAGS=-Wl,-rpath,/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64 PKG_CONFIG_PATH=/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64/pkgconfig --prefix=/usr/local/gcc-6.2.0_binutils-2.27_isl | |||
./configure --enable-shared --enable-sse2 --enable-avx --enable-openmp --enable-threads CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native" CXXFLAGS="-O2 -march=native" FFLAGS="-O2 -march=native | |||
make -j6 | make -j6 | ||
make check | make check | ||
Line 346: | Line 343: | ||
Disable ''webp'' and ''jbig'' that fail tests with gcc-6.2.0 | Disable ''webp'' and ''jbig'' that fail tests with gcc-6.2.0 | ||
./configure --without-webp --without-jbig --enable-static=no --enable-shared=yes --with-quantum-depth=16 CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native" CXXFLAGS="-O2 -march=native" FFLAGS="-O2 -march=native | ./configure --without-webp --without-jbig --enable-static=no --enable-shared=yes --with-quantum-depth=16 CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" CXXFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" FFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" LDFLAGS=-Wl,-rpath,/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64 PKG_CONFIG_PATH=/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64/pkgconfig --prefix=/usr/local/gcc-6.2.0_binutils-2.27_isl | ||
The summary should be fine. As comparison and source of relevant informations: [[GraphicsMagick]] | The summary should be fine. As comparison and source of relevant informations: [[GraphicsMagick]] | ||
Line 372: | Line 369: | ||
== Octave itself == | == Octave itself == | ||
cd $downloads | cd $downloads | ||
wget ftp:// | wget ftp://alpha.gnu.org/gnu/octave/octave-4.2.0-rc4.tar.lz | ||
Start from a clean state | Start from a clean state | ||
Line 391: | Line 382: | ||
cd $buildroot | cd $buildroot | ||
tar --no-same-owner -xvf $downloads/octave-4.2.0.tar.lz | tar --no-same-owner -xvf $downloads/octave-4.2.0-rc4.tar.lz | ||
cd octave-4.2.0 | cd octave-4.2.0-rc4 | ||
mkdir build-; cd $_ | mkdir build-; cd $_ | ||
../configure --with-blas="/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64/libopenblas.so" CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native" CXXFLAGS="-O2 -march=native" FFLAGS="-O2 -march=native | ../configure --with-blas="/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64/libopenblas.so" CPPFLAGS="-I/usr/local/gcc-6.2.0_binutils-2.27_isl/include" CFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" CXXFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" FFLAGS="-O2 -march=native -L/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64" LDFLAGS=-Wl,-rpath,/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64 PKG_CONFIG_PATH=/usr/local/gcc-6.2.0_binutils-2.27_isl/lib64/pkgconfig JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/ --prefix=/usr/local/gcc-6.2.0_binutils-2.27_isl | ||
make -j 6 | make -j 6 | ||
Line 403: | Line 394: | ||
xvfb-run -s "-screen 0 640x480x24" make check LD_PRELOAD=/usr/lib64/libGL.so | xvfb-run -s "-screen 0 640x480x24" make check LD_PRELOAD=/usr/lib64/libGL.so | ||
To be continued... | |||