LINUX.ORG.RU

Octave не собирается

 


0

1

Gentoo ~x86_64, не собирается Octave 3.6.2-r1. В логе ошибка:

configure: error: A BLAS library was detected but found incompatible with your Fortran 77 compiler settings.
В качестве фортрановского компилятора используется IFC:
$ ifort --version
ifort (IFORT) 11.1 20100414
Copyright (C) 1985-2010 Intel Corporation.  All rights reserved.
Часть лога, которая может быть полезна:
checking for x86_64-pc-linux-gnu-g77... ifort
checking whether we are using the GNU Fortran 77 compiler... no
checking whether ifort accepts -g... yes
checking how to get verbose linking output from ifort... -v
checking for Fortran 77 libraries of ifort...  -L/opt/intel/Compiler/11.1/072/lib/intel64 -li
mf -lm -L/opt/intel/Compiler/11.1/072/mkl/lib/em64t -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3 
-L/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib6
4 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc
/x86_64-pc-linux-gnu/4.6.3/../../.. -L/lib64 -L/lib -L/usr/lib64 -L/usr/lib -lifport -lifcore
 -lsvml -lipgo -lirc -lpthread -lirc_s -ldl
checking for dummy main to link with Fortran 77 libraries... none
checking for Fortran 77 name-mangling scheme... lower case, underscore, no extra underscore
configure: defining FFLAGS to be -ff2c
checking whether ifort generates correct size integers... yes
checking whether ifort accepts -ffloat-store... yes
setting F77_FLOAT_STORE_FLAG to -ffloat-store
Лог целиком.

Что можно сделать? BLAS в системе есть как в составе MKL, так и в составе sci-libs/blas-reference 20070226-r2(09:43:40 AM 12/29/2010)(-doc).


Ответ на: комментарий от Verkhovtsev_M_D

gfortran точно соберет

Сделал

# export F77=gfortran
# emerge -qv octave
Теперь в логе:
checking for x86_64-pc-linux-gnu-g77... gfortran
checking whether we are using the GNU Fortran 77 compiler... yes
checking whether gfortran accepts -g... yes
checking how to get verbose linking output from gfortran... -v
checking for Fortran 77 libraries of gfortran...  -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/intel/Compiler/11.1/072/lib/intel64 -L/opt/intel/Compiler/11.1/072/mkl/lib/em64t -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../.. -lgfortran -lm -lquadmath
checking for dummy main to link with Fortran 77 libraries... none
checking for Fortran 77 name-mangling scheme... lower case, underscore, extra underscore
configure: defining FFLAGS to be -ff2c
checking whether gfortran generates correct size integers... yes
checking whether gfortran accepts -ffloat-store... yes
setting F77_FLOAT_STORE_FLAG to -ffloat-store
и та же ошибка с BLAS. В чем может быть проблема? Цели собрать с ifort нет, хочется просто потыкать программу.

Batja
() автор топика
Ответ на: комментарий от Verkhovtsev_M_D

Собирать руками желания нет, в крайнем случае поправлю ebuild под параметры из примера..

Batja
() автор топика

я собирал в $HOME предварительно поставив emerge-м зависимости, но тогда не было времени и желания разбираться.

qnikst ★★★★★
()
Ответ на: комментарий от Batja

Могу посоветовать такую заглушку:

~ $ mkdir  /etc/portage/env
~ $ $EDITOR /etc/portage/env/myflags

содержимое myflags:

CC='x86_64-pc-linux-gnu-gcc'

CXX='x86_64-pc-linux-gnu-g++'

CFLAGS='-O2 -pipe'

CXXFLAGS='${CFLAGS}'

FC='x86_64-pc-linux-gnu-gfortran'

FFLAGS='${CFLAGS}'

LDFLAGS="-Wl,-O1 -Wl,--as-needed"
~ $ echo "sci-mathematics/octave myflags" >> /etc/portage/package.env

и пробуйте собрать:

~ $ emerge octave

Признаться, я лог не сразу посмотрел, поэтому хотелось бы еще увидеть emerge --info.

Verkhovtsev_M_D
()
Ответ на: комментарий от Verkhovtsev_M_D

Добавил к этим переменным F77='gfortran', все равно не собирается. Но ошибка поменялась, теперь

checking for x86_64-pc-linux-gnu-g77... gfortran
checking whether we are using the GNU Fortran 77 compiler... no
checking whether gfortran accepts -g... yes
checking how to get verbose linking output from gfortran... configure: WARNING: compilation failed

checking for Fortran 77 libraries of gfortran... 
checking for dummy main to link with Fortran 77 libraries... none
checking for Fortran 77 name-mangling scheme... configure: error: in `/var/tmp/portage/sci-mathematics/octave-3.6.2-r1/work/octave-3.6.2':
configure: error: cannot compile a simple Fortran program
See `config.log' for more details

Полный лог

emerge --info

Batja
() автор топика
Ответ на: комментарий от Batja

ACCEPT_KEYWORDS=«amd64 ~amd64»

1. Собираешь нестабильный тулчейн — пеняешь на себя.
2. ~arch включает arch, так что писать обе вовсе не обязательно.

Deleted
()
Ответ на: комментарий от Deleted

Возможно, придётся пересобрать GCC с fortran.

gcc собран с fortran.

1. Собираешь нестабильный тулчейн — пеняешь на себя.
2. ~arch включает arch, так что писать обе вовсе не обязательно.

Пеняю, не обязательно... Собирать-то как? :)

Batja
() автор топика
Ответ на: комментарий от Batja

checking for dummy main to link with Fortran 77 libraries... none

Чуть выше этот шаг проходился спокойно. У меня воспроизвелась ваша последняя ошибка, если неверно задать FFLAGS, иначе собирается.

F77='${FC}' так и оставьте. Выложите куда-нибудь config.log

Verkhovtsev_M_D
()
Ответ на: комментарий от Verkhovtsev_M_D

Наконец-то начало собираться :) Предыдущая ошибка возникла, потому что все переменные я объявил с помощью export в текущем терминале, одинарные ковычки радостно заэкранировали символ $, и переменная FFLAGS получились неправильной. Убегаю на работу, вечером гляну, чего тут насобиралось. Спасибо за помощь!

Batja
() автор топика
Ответ на: комментарий от Batja

В итоге Octave собрана. Ошибка с BLAS была из-за ifort, вторая ошибка была из-за неверных FFLAGS. Спасибо за помощь, проблема решена.

Batja
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.