octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CVS Build problem (what.m missing?)


From: John Swensen
Subject: Re: CVS Build problem (what.m missing?)
Date: Wed, 31 Oct 2007 17:29:54 -0400
User-agent: Thunderbird 2.0.0.6 (Macintosh/20070728)

Fredrik Lingvall wrote:
John W. Eaton wrote:

Earlier, you showed a .f file that started with

program foo
      double complex ...

If that is what the above shell script produces, then I don't know how
to fix this problem, as your shell is doing something completely
unexpected.  So, is the code above copied into the conftest.f file
correctly or is your shell broken?
No it is not what the shell script produces, it was just a copy-and-paste error (and I didn't know that Fortran was sensitive to white space). I don't think that this is what causing the problem anyway. Perhaps the problem goes away in a future Gentoo update (since it works for x86_64 branch). For know I just temporary remove the test code
from the configure script and Octave builds fine.

| XLIBS="$LIBS"
| LIBS="$BLAS_LIBS $FLIBS $LIBS"
| ac_ext=f
| ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
| ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext
| $LIBS >&5'
| ac_compiler_gnu=$ac_cv_f77_compiler_gnu
| | (eval "$ac_compile"; eval "$ac_link") 2>&5
| ac_ext=c
| ac_cpp='$CPP $CPPFLAGS'
| ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
| ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS
| conftest.$ac_ext $LIBS >&5'
| ac_compiler_gnu=$ac_cv_c_compiler_gnu
| | LIBS="$XLIBS"
| case "`./conftest$ac_exeext`" in
|   *succeeded*)
|   { echo "$as_me:$LINENO: result: yes" >&5
| echo "${ECHO_T}yes" >&6; }
| ;;
|   *)
|   { echo "$as_me:$LINENO: result: no" >&5
| echo "${ECHO_T}no" >&6; }
|   { echo "$as_me:$LINENO: WARNING: Your BLAS library was apparently
| compiled with a Fortran" >&5
| echo "$as_me: WARNING: Your BLAS library was apparently compiled with a
| Fortran" >&2;}
|   { echo "$as_me:$LINENO: WARNING: compiler that uses a different
| calling convention from" >&5
| echo "$as_me: WARNING: compiler that uses a different calling convention
| from" >&2;}
|   { echo "$as_me:$LINENO: WARNING: the one used by the selected
| compiler, $F77." >&5
| echo "$as_me: WARNING: the one used by the selected compiler, $F77." >&2;} | { { echo "$as_me:$LINENO: error: You must correct this problem before
| building Octave." >&5
| echo "$as_me: error: You must correct this problem before building
| Octave." >&2;}
|    { (exit 1); exit 1; }; }
| ;;
| esac
| | | If I have understood this correctly then the lines:
| | ac_ext=f
| ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
| ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext
| $LIBS >&5'
| ac_compiler_gnu=$ac_cv_f77_compiler_gnu
| | (eval "$ac_compile"; eval "$ac_link") 2>&5
| | is for compiling the Fortran test code and
| | LIBS="$XLIBS"
| case "`./conftest$ac_exeext`" in
|   *succeeded*)
|   { echo "$as_me:$LINENO: result: yes" >&5
| echo "${ECHO_T}yes" >&6; }
| ;;
|   *)
| | runs the test code. However, I don't understand what the lines:
| | ac_ext=c
| ac_cpp='$CPP $CPPFLAGS'
| ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
| ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS
| conftest.$ac_ext $LIBS >&5'
| ac_compiler_gnu=$ac_cv_c_compiler_gnu
| | does. It seems to be for compiling some C-test code that I can't find.

The configure.in file has these lines:

AC_LANG_PUSH(Fortran 77)
(eval "$ac_compile"; eval "$ac_link") 2>&AS_MESSAGE_LOG_FD
AC_LANG_POP(Fortran 77)

I think the lines you quote directly above are the result of the
AC_LANG_POP macro, which is resetting the autoconf variables to use
the C compiler.  The argument to AC_LANG_POP is the *current* language,
to allow a consistency check (you should be popping the current
language).
OK.

/Fredrik

I also have this problem on OSX using the CVS as of 5:18PM EST 10/31/2007. My configure line is as follows:

./configure CC=gcc-4 CXX=g++-4 F77=gfortran CPPFLAGS=-I/sw/include LDFLAGS=-L/sw/lib --prefix=/sw/opt/octave/cvs_2.9_20071007

The config.log file indicates it failed at:
configure:15915: checking BLAS library calling convention compatibility
configure:15958: result: no

Reading through your email chain, I wasn't sure whether a solution had been reached, other than to cut out the test code so it always succeeds, but is this going to cause problems when compiling/running?

I tried to compile the conftest code by hand, but if I compile/link it with:
gfortran conftest.f -c -g3
gfortran conftest.o -o conftest  -Wl,-framework -Wl,vecLib
and then try to run it, I get a "Illegal instruction" error. I ran it in gdb and get further information concerning where the error occurred:
Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/operand.
0x8fe12f94 in __dyld_stub_binding_helper_interface ()

John Swensen


reply via email to

[Prev in Thread] Current Thread [Next in Thread]