From octave-maintainers-request at bevo dot che dot wisc dot edu Wed Jun 5 05:27:32 2002 Subject: Building Octave with Intel C++/F9x From: Mumit Khan To: Date: Wed, 5 Jun 2002 01:42:30 -0500 (CDT) Giuseppe Ragusa asked me for help on building Octave with Intel C++ and F9x version 6.0, and so I took a quick look. The good news is that a minimum set of changes made that happen, thanks to the current CVS tree that is much more ISO C++ conformant. However, I do have a problem with autoconf macros, and need help with that. There are two areas I'm looking for help: 1. The macros OCTAVE_CC_FLAGS, OCTAVE_CXX_FLAGS etc assume that the compiler will exit with an error status, not just complain when given an incorrect flag. However, compilers don't have a consistent behavior when it comes to that, and some will just produce a warning and then go on its merry way. For example, given the -Wall flag, Intel C++ will produce a warning about incorrect arguments to its -W flag, but will produce an object file; likewise with -mieee-fp. The reason Sun Forte flags -Wall as an incorrect flag is because the linker aborts, so it seems to work. This is not a big problem, but it does produce lots of warnings about ignoring invalid option during build time that can be quite annoying. 2. Autoconf 2.5+ macro AC_F77_LIBRARY_LDFLAGS gets very confused with when it sees the output from Intel F9x (ifc). One workaround is to modify the macro to remove quotes just like it does for Cray Fortran. There must be a better way ... To avoid issues such as (1) in my own codes, I explicitly enumerate compilers and add appropriate flags; while not the most efficient way to go, there is a very small set of competent C++ compilers, and this turns out to be the best option for me. Possibly not so with C and Fortran compilers. I'd love to hear from autoconf gurus on how to handle each case. (1) is easy to work around by specifying XTRA_CXXFLAGS on the make command line, but no such luck with (2) as configure aborts after it puts together a mangled FLIBS (aborts in AC_F77_DUMMY_MAIN because of the bad data from AC_F77_LIBRARY_LDFLAGS). I'll turn in the source changes this weekend after I do a few tests, but the configuration changes will have to wait. I can supply a patch to AC_F77_LIBRARY_LDFLAGS, but that of course requires a patched autoconf. I'll send another note with details later, after I get back home in a few days. Regards, Mumit