[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: libtool support for intel icc compiler
From: |
Himanshu_Khurana |
Subject: |
RE: libtool support for intel icc compiler |
Date: |
Tue, 8 Apr 2003 17:30:09 +0530 |
Hi ,
First of all i would like to thank all the people who helped me fix this
problem of mine. With all the inputs from the mailing lists especially
ALLAN,ROBERT ,Roberto and TIM with whose help I have been able to work
flawlessly with libtool configured for Intel compiler 7.0 (Both icc and icpc)
Allan in his last mail had rightly suggested that $cc_basename doesnt work. So
had to use $CXX and $CC instead. BUT EVEN AFTER THAT AN ERROR WAS COMING when I
said
make -k
_ERROR WAS
__________________________________________________________________________________
ld: .libs/libltdl.so.1.0.0: undefined versioned symbol name __register_frame_in
fo@@GLIBC_2.0
ld: failed to set dynamic section sizes: Bad value
I tried to run a similar command at command prompt using a sample program of
hello.c and main.c of my own and I encountered similar errors as
______________________________________________________________________________________
icc -shared .libs/hello.o -lc -Wl,-soname -Wl,libhello.so.0 -o .libs/libhello
.so.0.0.0
ld: .libs/libhello.so.0.0.0: undefined versioned symbol name __register_frame_in
fo@@GLIBC_2.0
ld: failed to set dynamic section sizes: Bad value
_______________________________________________________________________________________
I tried to remove the -lc flag and it worked fine. So i again went into the
libtool.m4 code and changed
# Assume -lc should be added
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
#############-----I CHANGED THE FLAG FROM yes TO
no-----###########################################
AND YUPPIE IT WORKED
the make was flawless and i could flawlessly create shared libraries as well as
static using BOTH icc and icpc compilers using libtool.
FOR THE future users of libtool for icc I would summarise the steps I needed to
make it work.
STEPS TO CONFIGURE LIBTOOL FOR ICC
1: Download the CVS version of libtool from
<ftp://alpha.gnu.org/pub/gnu/cvs/libtool.tgz>
2: Untar the libtool.tgz file to :
tar xvzf ./libtool.tgz -C /home/me/usr/local/
NOTE: the paths in this document are given for example. --NO DEPENDENCY ON ANY
SPECIFIC PATH
3: Install autoconf 2.57( any version greater than 2.50 suffices) with
prefix=/home/me/usr
4: Install automake 1.7 with prefix /home/me/usr
(MAKE SURE THAT AUTOCONF AND AUTOMAKE lie in the same bin
folder say /home/me/usr/bin)---CANt use autoconf of one directory (say
/home/me/usr/bin) and automake of another directory (say /usr/bin)
5: Set environment variables AS follows
PATH=/usr/local/bin:$PATH
PATH=/home/me/usr/bin:/opt/intel/compiler70/ia32/bin:$PATH
export CC=icc
export CXX=icpc
export LD=ld
export
LD_LIBRARY_PATH=/opt/intel/compiler70/ia32/lib:$LD_LIBRARY_PATH
6: cd /home/me/usr/local/Libtool
7: INCORPORATING THE PATCH
Open the file Libtool.m4 for editing.
vi libtool.m4
---------------------CHANGE No 1---------search for
"icpc"-------------------------
---------------------------------------------------------------------------------
.. ..
linux*)
case $cc_basename in
KCC)
# KAI C++ Compiler
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
;;
icpc)
# Intel C++
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;$cc_basename to $CXX
..
>>>>>>>>>>>>>>>>>>>>>>change $cc_basename to $CXX<<<<<<<<<<<<<<<<<<
-----------------CHANGE No 2---------------------search for
"icc"-------------------
-------------------------------------------------------------------------------
..
linux*)
case $cc_basename in
icc|ecc)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
..
..
>>>>>>>>>>>>>>>>change $cc_basename to $CC<<<<<<<<<
------------------CHANGE No 3------------------search for
"libc?"-----------------
-------------------------------------------------------------------------------
..
..
# Do we need to explicitly link libc?
#
case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
x|xyes)
# Assume -lc should be added
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
..
..
>>>>>>>>>>>>>>>>>>>>>CHANGE yes to no<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
8: ./bootstrap (remember to set paths so that shell finds the desired autoconf
and automake versions)
9: ./configure --prefix=/home/me/usr/
10: make -k
11: make install
LIBTOOL IS READY FOR USE