Re: compilation problem on Mac OS-X Mountain Lion

From: John Houck <houck_at_email.domain.hidden>
Date: Fri, 1 Feb 2013 15:33:28 -0500
On Fri, Feb 01, 2013 at 17:32 +0000, Carlo Ferrigno wrote:
> On Feb 1, 2013, at 6:25 PM, John Houck <houck_at_email.domain.hidden> > On Fri, Feb 01, 2013 at 16:46 +0000, Carlo Ferrigno wrote:
> >> Dear all,
> >>
> >> I am trying to compile ISIS on Mountain Lion and I got the
> >> following error, any idea on how to solve it?
> >>
> >> (slang was downloaded, compiled, and installed)
> >>
> >> Thanks in advance,
> >>
> >> regards
> >>
> >> Carlo
> >>
> >> cd /opt/isis-build/isis-1.6.2-16/src/objs; /usr/bin/gcc -c -g -O2  -fno-strength-reduce -Dunix -DISIS_SRC -I/opt/isis-build/isis-1.6.2-16/src -I/opt/heasoft-6.13/i386-apple-darwin12.2.1/include -I/opt/include  -I/usr/X11/include  /opt/isis-build/isis-1.6.2-16/src/simann.c
> >> /opt/isis-build/isis-1.6.2-16/src/simann.c:69: error: ‘FC_FUNC’ declared as function returning a function
> >
> > Could you send me the config.log and config.status files that
> > were generated when you ran the isis configure script?

The FC_FUNC error occurs because the configure script failed to
determine how your fortran compiler names symbols in the object
code that it produces.

Looking in the config.log file to see what failed, I see
warnings like this:

 ld: warning: ld: warning: ignoring file
 /usr/local/lib/gcc-lib/i686-apple-darwin10.3.0/4.1.2/libgcc.a,
 file was built for archive which is not the architecture being linked (x86_64):
 /usr/local/lib/gcc-lib/i686-apple-darwin10.3.0/4.1.2/libgcc.a
 ignoring file
 /usr/local/lib/gcc-lib/i686-apple-darwin10.3.0/4.1.2/libf95.a,
 file was built for archive which is not the architecture being linked (x86_64):
 /usr/local/lib/gcc-lib/i686-apple-darwin10.3.0/4.1.2/libf95.a

So it looks like the compiler is generating 64-bit code
(x86_64), but is finding 32-bit libraries (i686).

Isis works on either 32-bit or 64-bit architecture.

However, it's my understanding that, on the Mac, HEASOFT must
be compiled in 32-bit mode.  For example, if you carefully read
all the HEASOFT installation instructions for the Mac, at:
  http://heasarc.gsfc.nasa.gov/lheasoft/supported_platforms.html#Mac
you'll find the statement

  "Users should note that currently HEASoft is (internally)
   forced into 32-bit mode on Mac OS X"

To compile in 32-bit mode, I suggest following the installation
instructions at
  http://space.mit.edu/cxc/isis/mac_install.html

In particular, be sure to use the -m32 compiler option when
compiling HEASOFT, slang and isis.  I think that will solve the
problem -- _except_ for one minor isis issue that will be fixed
in the next isis release (which may happen within the next week
or so.

The one remaining isis issue can be fixed by deleting one
character in each of two files in the isis distribution.  

After running the isis configure script, but before you type
'make', edit these two files:
   src/Makefile
   modules/pgplot/src/Makefile
in the following way.  Each has a line of the form:

   FCLIBS = #...library linking information....

In each file, just delete the '#' character.  That's it.
After making that change, isis should build correctly.

As I said, After the next isis release (isis-1.6.2-17), the
Makefile edit step will no longer be required.

Just to summarize, I'm suggesting two things:
  1. re-compile everything using the "-m32" compiler option
  2. edit two isis Makefiles before compiling isis.

Does that solve the problem?

Thanks,
-John

----
You received this message because you are
subscribed to the isis-users list.
To unsubscribe, send a message to
isis-users-request_at_email.domain.hiddenwith the first line of the message as:
unsubscribe
Received on Fri Feb 01 2013 - 15:33:57 EST

This archive was generated by hypermail 2.3.0 : Fri May 02 2014 - 08:35:47 EDT