Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

crt1.o file missing

mvp
Principiante
2.596 Visualizações
Dear users,

I downloaded and installed the Intel Fortan ver 10.1.008 for linux. The installation was uneventful. When I wrote a simple "hello world" and tried to compile it, I get the following message

[root@bn117-4 ~]# ifort temp.f
ld: /usr/lib/crt1.o: No such file: No such file or directory
[root@bn117-4 ~]#

Does anyone know a fix for this problem?

Thanks,
Mahesh

0 Kudos
10 Respostas
Ron_Green
Moderador
2.596 Visualizações
Hi Mehesh,

that file is part of glibc-devel. On my RH 5 system, for example:

rpm -qf /usr/lib/crt1.0
glibc-devel-2.3.4-2.19

Do you have a glibc-devel installed? Do a

rpm -ql glibc-devel-x.x.x-x.xx

where you insert your devel version.

Are you using the 32bit or 64 bit compiler,
ifort -V

and is your linux 32 or 64 bit version? What distro/version do you have?

thanks

ron
mvp
Principiante
2.596 Visualizações
Ron,

Thanks for the reply. How do i find if I have glibc-devel installed and how do I find its version? I did a search for files containing glibc in the name. It turned up 9 files but none with glibc-devel in the name. If I dont have glibc-devel, where can I download it from?

[root@bn117-4 ~]# ifort -V temp.f
Intel Fortran Compiler for applications running on IA-32, Version 10.1 Build 20070913 Package ID: l_fc_p_10.1.008
Copyright (C) 1985-2007 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY

Intel Fortran 10.0-2024
GNU ld version 2.15.92.0.2 20040927
ld: /usr/lib/crt1.o: No such file: No such file or directory

I am running 32bit version.

Thanks again for your help.

Mahesh
mvp
Principiante
2.596 Visualizações
Ron,

I am running RHEL 4.

Mahesh
TimP
Colaborador honorário III
2.596 Visualizações
In addition to what Ron said about checking your gcc development installation,
g++ -print-search-dirs would show you the search paths which ifort will inherit to find the files installed with your gcc. That should include /usr/lib in your RH library search path, where the 32-bit crt1.o should have been installed. As you are running a 32-bit linux installation, there would normally be no 64-bit libraries, so you would expect such a problem if you tried the 64-bit ifort.
Ron_Green
Moderador
2.596 Visualizações
RedHat, good, then you have rpm to check for packages installed. Do this:

rpm -qa | grep glibc-devel

I suspect this may return nothing. This rpm package is installed when you do a developer installation and not a desktop installation. I'm not sure if a server installation installs it either.

What you want to do is search your installation disks or the net for the following rpms and install them:

glibc-devel
binutils

There will be versions after the rpms, for example on my RHEL 4.1 system I have
glibc-devel-2.3.4-2.9
binutils-2.15.92.0.2-13

The version numbers are release specific, so you can expect that if you have a newer RHEL4 you may find different versions.

ron

mvp
Principiante
2.596 Visualizações
Here is the screen output from having tried the commands you mentioned.

[root@bn117-4 ~]# ifort temp.f
ld: /usr/lib/crt1.o: No such file: No such file or directory
[root@bn117-4 ~]# rpm -qa | grep glibc-devel
glibc-devel-2.3.4-2.39
[root@bn117-4 ~]# rpm -qa | grep binutils
binutils-2.15.92.0.2-24

[root@bn117-4 ~]#


So, it appears that I have glibc-devel -2.3.4-2.39 and binutils-2.15.92.0.2-24


[root@bn117-4 ~]# g++ -print-search-dirs

install: /usr/lib/gcc/x86_64-redhat-linux/3.4.6/

programs: =/usr/libexec/gcc/x86_64-redhat-linux/3.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/3.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/libexec/gcc/x86_64-redhat-linux/3.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../x86_64-redhat-linux/bin/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../x86_64-redhat-linux/bin/

libraries: =/usr/lib/gcc/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../x86_64-redhat-linux/lib/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../x86_64-redhat-linux/lib/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../:/lib/x86_64-redhat-linux/3.4.6/:/lib/:/usr/lib/x86_64-redhat-linux/3.4.6/:/usr/lib/

[root@bn117-4 ~]#

Thanks again for your help.

Mahesh


Ron_Green
Moderador
2.596 Visualizações
as Tim mentioned, we do need to see the output of:

g++ -print-search-dirs

Also, if you do:

rpm -ql glibc-devel-2.3.4-2.9 | grep crt
/usr/lib/Mcrt1.o
/usr/lib/Scrt1.o
/usr/lib/crt1.o
/usr/lib/crti.o
/usr/lib/crtn.o
/usr/lib/gcrt1.o

You will see that this rpm should install /usr/lib/crt1.o.
If you do not have that file, then your system is corrupted.
Remove and reinstall glibc-devel-2.3.4-2.9 from your distribution disks

ron

mvp
Principiante
2.596 Visualizações
Ron and Tim,

Thank you for helping me with this situation.

Here is the output from both g++ -print-search-dirs as well as
rpm -ql glibc-devel-2.3.4-2.9 | grep crt

[root@bn117-4 ~]# rpm -ql glibc-devel-2.3.4-2.9 | grep crt
[root@bn117-4 ~]# g++ -print-search-dirs
install: /usr/lib/gcc/x86_64-redhat-linux/3.4.6/
programs: =/usr/libexec/gcc/x86_64-redhat-linux/3.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/3.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/libexec/gcc/x86_64-redhat-linux/3.4.6/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../x86_64-redhat-linux/bin/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../x86_64-redhat-linux/bin/
libraries: =/usr/lib/gcc/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../x86_64-redhat-linux/lib/x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../x86_64-redhat-linux/lib/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../x86_64-redhat-linux/3.4.6/:/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../:/lib/x86_64-redhat-linux/3.4.6/:/lib/:/usr/lib/x86_64-redhat-linux/3.4.6/:/usr/lib/
[root@bn117-4 ~]#

The rpm produced no output.

Thanks again,
Mahesh



Ron_Green
Moderador
2.596 Visualizações
yes, something very wrong and corrupted in your system installation. Remove your glibc-devel rpm. That rpm should install /usr/lib/crt1.o when it's installed
properly.

ANd just as a final sanity check, this is a 32bit Linux on 32 bit hardware, right? Here's the check:

uname -a
Linux foobar 2.6.9-11.EL #1 Fri May 20 18:17:57 EDT 2005 i686 i686 i386 GNU/Linux

Just make sure you don't have "x86_64" in that output. If so, that's a different question and we've been chasing red herrings.

Find a good version of the RPM glibc-devel and reinstall. This is not a compiler issue, it's an issue with you getting your
Linux system configured properly for use as a development platform.

ron
mvp
Principiante
2.596 Visualizações
Ron,

In deed I was setting you up for a red herring chase. I was running 32bit version of fortran in a 64 bit OS. When I ran the ifortvars.sh and idbvars.sh from the appropriate directories, that fixed the problem. I apologize for the inconvenience and thank you all for your help.

Regards,
Mahesh
Responder