Compiler driver / backend version mismatch

Compiler driver / backend version mismatch

Hi all,

I recently installed intel fortran compiler in linux version 9.1.036.
This is the only version I installed. When I compile a testing code,
I got following error:

Compiler driver / backend version mismatch: unset != 910
Be sure compiler driver and backend programs are in the same directory.
compilation aborted for test.f90 (code 1)

After reading another post, I typed 'ifort -# test.f90', then in the first
line of display I saw following:

/opt/intel/fc/9.1.036/bin/fortcom

Should fortcom be ifort instead? If yes, then how can I change
fortcom to ifort?

I appreciate your help.

s.t.
19 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Steve Lionel (Intel)'s picture

fortcom is correct here - that's the actual compiler. ifort is the "driver" for the compiler.

Are you simply compiling sources or are you linking in an object compiled with some other compiler (perhaps an earlier version of ifort)? Are you using -ipo?

Steve
Hi Steve,

I tried to compile a very simple test program as follows:

program main
real :: x,y
integer :: n
n = 5
x=0.2
y=x+x*x
print*, 'x=', x
print*, 'y=', y
end program main

I do not link any object and do not use -ipo flag.

Before this mismatch error, I had another error that ifort
does not know where g++ resides, so I added following line in
my .bash_profile file:

export GXX_ROOT=/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/

Thanks for help.

s.t.

Steve Lionel (Intel)'s picture

It would be interesting to see the full output of the ifort command with -# used. But as this is an area I'm not an expert in, I'd suggest that you file an issue with Intel Premier Support and ask for help.

Steve

Continue on the mismatch error, I paste the information displayed after 'ifort -# test.f90', if anybody can give some hints, I would be grateful.

/opt/intel/fc/9.1.036/bin/fortcom
-D__INTEL_COMPILER=910
-D__ELF__
-D__INTEL_COMPILER_BUILD_DATE=20060706
-D__unix__
-D__unix
-D__linux__
-D__linux
-D__gnu_linux__
-Dunix
-Dlinux
-D__i386
-D__i386__
-Di386
-mGLOB_pack_sort_init_list
-I.
-I/opt/intel/fc/9.1.036/include
-I/opt/intel/fc/9.1.036/substitute_headers
-I/usr/local/include
-I/usr/include
-I/usr/lib/gcc-lib/i386-redhat-linux/3.2.2//include
-O2
-mP1OPT_version=910
-mGLOB_source_language=GLOB_SOURCE_LANGUAGE_F90
-mGLOB_tune_for_fort
-mGLOB_use_fort_dope_vector
-mP2OPT_static_promotion
-mP1OPT_print_version=FALSE
-mP3OPT_use_mspp_call_convention
-mCG_use_gas_got_workaround=F
-mP2OPT_align_option_used=TRUE
-mGLOB_options_string=-#
-mGLOB_cxx_limited_range=FALSE
-mGLOB_as_output_backup_file_name=/tmp/ifortyEYo04as_.s
-mGLOB_machine_model=GLOB_MACHINE_MODEL_IA32_NONE
-mP2OPT_subs_out_of_bound=FALSE
-mIPOPT_ninl_user_level=2
-mIPOPT_activate
-mIPOPT_lite
-mP2OPT_hlo_level=2
-mP2OPT_hlo
-mIPOPT_obj_output_file_name=/tmp/ifortASexWa.o
-mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS
-mGLOB_obj_output_file=/tmp/ifortASexWa.o
-mGLOB_source_dialect=GLOB_SOURCE_DIALECT_FORTRAN
-mP1OPT_source_file_name=test.f90
test.f90

ld
/usr/lib/crt1.o
/usr/lib/crti.o
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/crtbegin.o
-dynamic-linker
/lib/ld-linux.so.2
-m
elf_i386
-o
a.out
/opt/intel/fc/9.1.036/lib/for_main.o
/tmp/ifortASexWa.o
-L/opt/intel/fc/9.1.036/lib
-L/usr/lib
-Bstatic
-lifport
-lifcore
-limf
-Bdynamic
-lm
-Bstatic
-lipgo
-Bdynamic
-Bstatic
-lirc
-Bdynamic
-lc
-Bstatic
-lirc_s
&nbsp
; -Bdynamic
-ldl
-lc
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/crtend.o
/usr/lib/crtn.o

rm /tmp/ifortP5FOUIdashv

rm /tmp/ifortp9UgYCgas

rm /tmp/ifortyEYo04as_.s

rm /tmp/ifort5ZNx2wldashv

rm /tmp/ifortOt1T5Yarg

rm /tmp/ifort9mVh9qgnudirs

rm /tmp/ifortspG0cTgnudirs

rm /tmp/ifortxEQ2glgnudirs

rm /tmp/ifortASexWa.o

Steve Lionel (Intel)'s picture

Ok, try it again with -#x instead of -#

Steve

Hi Steve, I tried 'ifort -#x test.f90' and got following:

/opt/intel/fc/9.1.036/bin/fortcom
-D__INTEL_COMPILER=910
-D__ELF__
-D__INTEL_COMPILER_BUILD_DATE=20060706
-D__unix__
-D__unix
-D__linux__
-D__linux
-D__gnu_linux__
-Dunix
-Dlinux
-D__i386
-D__i386__
-Di386
-mGLOB_pack_sort_init_list
-I.
-I/opt/intel/fc/9.1.036/include
-I/opt/intel/fc/9.1.036/substitute_headers
-I/usr/local/include
-I/usr/include
-I/usr/lib/gcc-lib/i386-redhat-linux/3.2.2//include
-O2
-mP1OPT_version=910
-mGLOB_source_language=GLOB_SOURCE_LANGUAGE_F90
-mGLOB_tune_for_fort
-mGLOB_use_fort_dope_vector
-mP2OPT_static_promotion
-mP1OPT_print_version=FALSE
-mP3OPT_use_mspp_call_convention
-mCG_use_gas_got_workaround=F
-mP2OPT_align_option_used=TRUE
-mGLOB_options_string=-#x
-mGLOB_cxx_limited_range=FALSE
-mGLOB_as_output_backup_file_name=/tmp/ifortp2f0I3as_.s
-mGLOB_machine_model=GLOB_MACHINE_MODEL_IA32_NONE
-mP2OPT_subs_out_of_bound=FALSE
-mIPOPT_ninl_user_level=2
-mIPOPT_activate
-mIPOPT_lite
-mP2OPT_hlo_level=2
-mP2OPT_hlo
-mIPOPT_obj_output_file_name=/tmp/iforth6KDfh.o
-mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS
-mGLOB_obj_output_file=/tmp/iforth6KDfh.o
-mGLOB_source_dialect=GLOB_SOURCE_DIALECT_FORTRAN
-mP1OPT_source_file_name=test.f90
test.f90

Intel Fortran Compiler for 32-bit applications, Version 9.1 Build 20060706Z Package ID: l_fc_c_9.1.036
Copyright (C) 1985-2006 Intel Corporation. All rights reserved.
Compiler driver / backend version mismatch: unset != 910
Be sure compiler driver and backend programs are in the same directory.
compilation aborted for test.f90 (code 1)
rm /tmp/ifortNTD80ndashv

rm /tmp/ifort7XY9tagas

rm /tmp/ifortp2f0I3as_.s

rm /tmp/ifortVBjRXWldashv

rm /tmp/ifortr1XRdQarg

rm /tmp/iforth6KDfh.o

Steve Lionel (Intel)'s picture

That's strange.

Ok. Uninstall 9.1.036. Make sure you have no "ifort" on the system. Download and install 9.1.037 from the Intel Registration Center Product Downloads. If that doesn't fix it, please contact Intel Premier Support.

Steve

Thanks, Steve. I'll do that.

Hi Steve,

I followed your instruction and installed the version 9.1.037, but the same error information shows up again when I compile the test.f90 code.

I could not find how to use the Intel Premier Support. Can you help on this? Thanks.
s.t.

Steve Lionel (Intel)'s picture

Start here.

Steve

Hi Steve,

My colleague has contacted Premier Support. Meanwhile, I would like to report following.

First, if I log in as root to the cluster, there is no error at all.

Second, the root's .bash_profile has no environmental variable setting lines for ifort. But my (as a user) .bash_profile has following lines:

export GXX_ROOT=/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/
source /opt/intel/fc/9.1.037/bin/ifortvars.sh
source /opt/intel/idb/9.1.037/bin/idbvars.sh

Is there any hint on what potentially went wrong? Thanks.

s.t.

Steve Lionel (Intel)'s picture

That doesn't tell me a lot, but I wonder what happens if you remove those commands from your .bashrc, log in again and do the "source" command by hand.

Steve
Lorri Menard (Intel)'s picture

I had an off-the-wall thought; does your user account have any problems writing to /tmp?

Also, do you have any of the following enviornment variables set for your user account:

TMP, TEMP, or TMPDIR

thanks -

- Lorri

Hi all,

I silented lines of "source ..." in .bash_profile, and run "source ...." in terminal after I log in. The same error occurs.

I do not know much about tmp, but here is what I have. There is a /tmp directory on the cluster, and there is an empty directory /tmp/intel. I tried to copy one file to /tmp or /tmp/intel, like this
cp test.f90 /tmp/intel
Then I got this: cp: writing `/tmp/intel/test.f90': No space left on device.
There is a file /tmp/intel/test.f90, but with zero file size.

When I did: ls /tmp -al, I got following information for /tmp/intel
drwxrwxrwx 2 root root 4096 Oct 5 14:49 intel

I do not see TMP, TEMP or TMPDIR in my .bash_profile file. Here is my whole .bash_profile:
-------------------------------------
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
export GXX_ROOT=/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/
#source /opt/intel/fc/9.1.037/bin/ifortvars.sh
#source /opt/intel/idb/9.1.037/bin/idbvars.sh
----------------------------------------------------------------

Thanks Steve and Lori for inputs.

s.t.

Lorri Menard (Intel)'s picture

How interesting ....Can you try this?

cp test.f90 /tmp

(not going to the tmp/intel directory) Does it create a zero-length file again?

Also, I'm going to give you an undocumented switch to try.

ifort -i_keep test.f90

We use this switch internally for debugging purposes, it creates the temporary file locally instead of in /tmp, and also doesn't remove it after the compilation is done.

Finally, my apologies, I wasn't clear in my question about TMP, TEMP, and TMPDIR. Do you have any environment variables with these names set? You would use 'printenv' to determine that. These could have been set globally, or within .bashrc, etc.

- Lorri

Hi Lori,
I did cp test.f90 /tmp, and got the same info: cp: writing `/tmp/test.f': No space left on device.

I'll try -i_keep option shortly as the compiler is uninstalled right now.

Here is environment variables by printenv (after ifort is uninstalled, and re-logged in). My .bashrc has no setup for env vars.
---------------------------------------------------------------
MODULE_VERSION_STACK=3.1.6
HOSTNAME=master1
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=(ip address removed by me)
SSH_TTY=/dev/pts/1
USER=cao
LD_LIBRARY_PATH=/usr/java/j2re1.4.2_03/lib/i386:/usr/java/j2re1.4.2_03/lib/i386/server
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
MODULE_VERSION=3.1.6
MAIL=/var/spool/mail/cao
PATH=/usr/java/j2re1.4.2_03/bin:/opt/cwx/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/NX/bin:/home/cao/bin
NXDIR=/usr/NX
INPUTRC=/etc/inputrc
PWD=/home/cao
CWXHOME=/opt/cwx
LANG=en_US.UTF-8
MODULEPATH=/usr/share/modules/versions:/usr/share/modules/modulefiles
LOADEDMODULES=
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=1
HOME=/home/cao
LOGNAME=cao
SSH_CONNECTION=(ip addresses hidden by me)
MODULESHOME=/usr/share/modules
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/usr/bin/printenv
----------------------------------------------------------------------------

One more thing to report. I tried to installed ifort as a user. I got following information:

This installer requires write privileges to the directory /tmp/intel/se/channel/msg.

Thanks.
s.t.

The "no space left on device" message appears to be indicating that /tmp is full. You can double-check that by doing

df /tmp

If /tmp is indeed full (or nearly so), that is likely the source of most or all of your problems. How to address the problem depends on how your system is configured:

If /tmp has its own filesystem, then you probably just need to look at the contents of /tmp to see who or what is hogging all the space and clean things up.

If /tmp is part of the root filesystem, things can be more difficult. There _might_ still be a space hog in /tmp, in which case the solution is still to clean up, but it is also possible that you have installed too much software in your root filesystem (including the possibility that updates to existing software in the root filesystem have expanded its disk usage). If the problem is too much space tied up in permanent files, you will have to consider solutions such as the following:

a) Backup everything and repartition your hard drive to give the root partition more space.
b) Delete software that isn't being used.
c) Move some of the software from the root filesystem to some other filesystem that has space, possibly leaving a soft link in the root filesystem so the old references to that software still work. If /usr/local is part of your root filesystem and contains non-trivial amounts of software, it is often a good candidate for this kind of handling.

Thanks, hirchert. I saw the hope.

Following Lori's suggestion, I did
ifort -i_keep test.f90

What I got is
----------------------------------------------------------------
error doing file IO:: No space left on device
error before writing module symtab

fortcom: Severe: **Internal compiler error: internal abort** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.

compilation aborted for test.f90 (code 3)
-----------------------------------------------------------
The /tmp is indeed full. After I did
df /tmp
I got this
----------------------------
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/md2 5162728 4950228 0 100% /
---------------------------

We'll clean up the hard drive and leave some space for /tmp.

s.t.

Login to leave a comment.