View on GitHub

IRAF Community Distribution

IRAF maintained by the community

Home | Installation | Packages | X11IRAF | PyRAF | Forum

mkpkg on 64-bit systems.

Ed Anderson wrote on Jun 27, 2006

I realize I'm ahead of the game a bit, but is there a way (.e.,g., with XFLAGS
or LFLAGS) to force XC to use a 32-bit compilation.

The command f77 program.f -o program works fine ... giving a 64-bit
executable.

However xc program.f -o program results in lots of error messages of the
form:

/usr/bin/ld: warning: i386 architecture of input file `/iraf/iraf/unix/bin.redhat/libos.a(gmttolst.o)' is incompatible with i386:x86-64 output

I'm just thinking out loud here ... but I suppose that there must be
a compatability library (RHEL WS 4) that I can download ... I'll look into that
as well.

Mike,

What do you think the chances are of a successful sysgen on the 64-bit
system?

Cheers,

-- Ed

Mike Fitzpatrick wrote on Jun 27, 2006

I realize I'm ahead of the game a bit, but is there a way (.e.,g., with XFLAGS
or LFLAGS) to force XC to use a 32-bit compilation.


XC will accept the following environment flags to modify the compilation:

XC_CFLAGS
XC_FFLAGS
XC_LFLAGS

as well as XC_CC, XC_F77 and XC_LINKER to change the command used for each stage of the compilation or source file. So, try

setenv XC_FFLAGS "-m32"

to force 32-bit. Note this may be a problem for the F2C driver script, I can send you a patched version if needed. Put these definitions in your .cshrc file so they'll be picked up when MKPKG calls XC.

What do you think the chances are of a successful sysgen on the 64-bit
system?


About the same chance we'll get snow later today. The IRAF kernel is not 64-bit clean and things like pointers, file descriptors, structures, etc all need to be looked at. It is essentially a new platform port at this level. Beyond that, applications need to be reviewed, e.g. the NPIX counter from IMSTAT needs to become a long integer, header structures may need to be changed, etc. I can make it easier to force 32-bit compiles, full 64-bit support is a lot of repetative checking of code.

BTW, on the Alpha we got away with using the '-taso' flag when compiling
and at the time GCC didn't have a -m32, one reason we couldn't ever do an Alpha/linux port. Linux kernels are already starting to mess with the memory model we rely on internally, at some point this will become much more critical.

In case you're wondering: It is cloudy now but a little warm.....

Cheers,
-Mike

Last post on Jun 27, 2006