Error when compiling ATLAS 3.9.6 dynamic libraries / sonames with version number? / interface libs

View: New views
5 Messages — Rating Filter:   Alert me  

Error when compiling ATLAS 3.9.6 dynamic libraries / sonames with version number? / interface libs

by Berthold "Höllmann" :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


I configured ATLAS in a "build" directory under the base ATLAS source
directory using

   ../configure --prefix=/usr/local/gltools/$GL_ARCH     \
     --with-netlib-lapack-tarfile=../lapack-3.1.1.tgz    \
     --shared                                            \
     -C if ifort91 -F if '-O2 -fltconsistency -nologo'   \
     -Si cputhrchk 0

The following make runs for some time, but bails out with

    make[6]: Entering directory `/data/tmp/hoel/atlas3.9.6/build/lib'
    ld -melf_x86_64 -shared -soname /usr/local/gltools/linux_x86_64/lib/libatlas.so -o libatlas.so \
               -rpath-link /usr/local/gltools/linux_x86_64/lib \
               --whole-archive libatlas.a --no-whole-archive -lc -lpthread -lm
    ld -melf_x86_64 -shared -soname /usr/local/gltools/linux_x86_64/lib/libf77blas.so \
               -o libf77blas.so -rpath-link /usr/local/gltools/linux_x86_64/lib \
               --whole-archive libf77blas.a --no-whole-archive
    ld: libf77blas.a(ilaenv.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
    libf77blas.a(ilaenv.o): could not read symbols: Bad value
   
It works if I add "-F alg -fPIC" to the configure line.

Further I'm wondering if it would be helpful to use version numbers for
the the shared libraries. At least a few lapack routines changed their
signature over the time. I'm not sure how useful this would be.

I would like to be able to compile the interface libs for different
Fortran compilers and to install them side by side using the same
libatlas. For older ATLAS version I had a script that has build

  libf77blas_g77.so
  libf77blas_gfortran.so
  libf77blas_ifc91.so
  libf77blas_ifc100.so
  libf77blas_ifc101.so
  libf77blas_pg70.so
  libf77blas_pg71.so

  liblapack_g77.so
  liblapack_gfortran.so
  liblapack_ifc91.so
  liblapack_ifc100.so
  liblapack_ifc101.so
  liblapack_pg70.so
  liblapack_pg71.so

Is there a chance to get something like this functionality into the
distributed ATLAS configuration process?

Kind regards

Berthold Höllmann
--
Germanischer Lloyd AG
CAE Development
Vorsetzen 35
20459 Hamburg
Phone: +49(0)40 36149-7374
Fax: +49(0)40 36149-7320
e-mail: berthold.hoellmann@...
Internet: http://www.gl-group.com



------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Math-atlas-devel mailing list
Math-atlas-devel@...
https://lists.sourceforge.net/lists/listinfo/math-atlas-devel

attachment0 (199 bytes) Download Attachment
disclaimer.txt (4K) Download Attachment

Re: Error when compiling ATLAS 3.9.6 dynamic libraries / sonames with version number? / interface libs

by Clint Whaley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>The following make runs for some time, but bails out with
>
>    make[6]: Entering directory `/data/tmp/hoel/atlas3.9.6/build/lib'
>    ld -melf_x86_64 -shared -soname /usr/local/gltools/linux_x86_64/lib/libatlas.so -o libatlas.so \
>               -rpath-link /usr/local/gltools/linux_x86_64/lib \
>               --whole-archive libatlas.a --no-whole-archive -lc -lpthread -lm
>    ld -melf_x86_64 -shared -soname /usr/local/gltools/linux_x86_64/lib/libf77blas.so \
>               -o libf77blas.so -rpath-link /usr/local/gltools/linux_x86_64/lib \
>               --whole-archive libf77blas.a --no-whole-archive
>    ld: libf77blas.a(ilaenv.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
>    libf77blas.a(ilaenv.o): could not read symbols: Bad value
>  
>It works if I add "-F alg -fPIC" to the configure line.

Well, of course it will fail of you don't add -fPIC, since that is the
way you signal gcc you want a shared object (position indepedent code).
W/o -fPIC code you cannot build shared libs.

>Further I'm wondering if it would be helpful to use version numbers for
>the the shared libraries. At least a few lapack routines changed their
>signature over the time. I'm not sure how useful this would be.
>
>I would like to be able to compile the interface libs for different
>Fortran compilers and to install them side by side using the same
>libatlas. For older ATLAS version I had a script that has build
>
>  libf77blas_g77.so
>  libf77blas_gfortran.so
>  libf77blas_ifc91.so
>  libf77blas_ifc100.so
>  libf77blas_ifc101.so
>  libf77blas_pg70.so
>  libf77blas_pg71.so
>
>  liblapack_g77.so
>  liblapack_gfortran.so
>  liblapack_ifc91.so
>  liblapack_ifc100.so
>  liblapack_ifc101.so
>  liblapack_pg70.so
>  liblapack_pg71.so
>
>Is there a chance to get something like this functionality into the
>distributed ATLAS configuration process?


Someone will have to come up with a detailed explanation of what is needed,
how it works, and a proposed patch.  I do not use shared objects, and still
don't understand how to use and build them well.  Right now I am still working
on getting basic shared objects to build on all platforms.

Regards,
Clint

**************************************************************************
** R. Clint Whaley, PhD ** Assist Prof, UTSA ** www.cs.utsa.edu/~whaley **
**************************************************************************

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Math-atlas-devel mailing list
Math-atlas-devel@...
https://lists.sourceforge.net/lists/listinfo/math-atlas-devel

Re: Error when compiling ATLAS 3.9.6 dynamic libraries / sonames with version number? / interface libs

by Mathew Yeates :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Sorry, I left something out. The place where I finally gave up because I
kept failing when linking because of  multiply defined symbols. When I
get a minute to breath, I'll send the errors.

Clint Whaley wrote:

>> The following make runs for some time, but bails out with
>>
>>    make[6]: Entering directory `/data/tmp/hoel/atlas3.9.6/build/lib'
>>    ld -melf_x86_64 -shared -soname /usr/local/gltools/linux_x86_64/lib/libatlas.so -o libatlas.so \
>>               -rpath-link /usr/local/gltools/linux_x86_64/lib \
>>               --whole-archive libatlas.a --no-whole-archive -lc -lpthread -lm
>>    ld -melf_x86_64 -shared -soname /usr/local/gltools/linux_x86_64/lib/libf77blas.so \
>>               -o libf77blas.so -rpath-link /usr/local/gltools/linux_x86_64/lib \
>>               --whole-archive libf77blas.a --no-whole-archive
>>    ld: libf77blas.a(ilaenv.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
>>    libf77blas.a(ilaenv.o): could not read symbols: Bad value
>>
>> It works if I add "-F alg -fPIC" to the configure line.
>>    
>
> Well, of course it will fail of you don't add -fPIC, since that is the
> way you signal gcc you want a shared object (position indepedent code).
> W/o -fPIC code you cannot build shared libs.
>
>  
>> Further I'm wondering if it would be helpful to use version numbers for
>> the the shared libraries. At least a few lapack routines changed their
>> signature over the time. I'm not sure how useful this would be.
>>
>> I would like to be able to compile the interface libs for different
>> Fortran compilers and to install them side by side using the same
>> libatlas. For older ATLAS version I had a script that has build
>>
>>  libf77blas_g77.so
>>  libf77blas_gfortran.so
>>  libf77blas_ifc91.so
>>  libf77blas_ifc100.so
>>  libf77blas_ifc101.so
>>  libf77blas_pg70.so
>>  libf77blas_pg71.so
>>
>>  liblapack_g77.so
>>  liblapack_gfortran.so
>>  liblapack_ifc91.so
>>  liblapack_ifc100.so
>>  liblapack_ifc101.so
>>  liblapack_pg70.so
>>  liblapack_pg71.so
>>
>> Is there a chance to get something like this functionality into the
>> distributed ATLAS configuration process?
>>    
>
>
> Someone will have to come up with a detailed explanation of what is needed,
> how it works, and a proposed patch.  I do not use shared objects, and still
> don't understand how to use and build them well.  Right now I am still working
> on getting basic shared objects to build on all platforms.
>
> Regards,
> Clint
>
> **************************************************************************
> ** R. Clint Whaley, PhD ** Assist Prof, UTSA ** www.cs.utsa.edu/~whaley **
> **************************************************************************
>
> ------------------------------------------------------------------------------
> Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
> software. With Adobe AIR, Ajax developers can use existing skills and code to
> build responsive, highly engaging applications that combine the power of local
> resources and data with the reach of the web. Download the Adobe AIR SDK and
> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
> _______________________________________________
> Math-atlas-devel mailing list
> Math-atlas-devel@...
> https://lists.sourceforge.net/lists/listinfo/math-atlas-devel
>  


------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Math-atlas-devel mailing list
Math-atlas-devel@...
https://lists.sourceforge.net/lists/listinfo/math-atlas-devel

Re: Error when compiling ATLAS 3.9.6 dynamic libraries / sonames with version number? / interface libs

by Clint Whaley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>Sorry, I left something out. The place where I finally gave up because I
>kept failing when linking because of  multiply defined symbols. When I
>get a minute to breath, I'll send the errors.

Then why the talk of -fPIC?  pre-3.96 had a known error:
    https://sourceforge.net/tracker/index.php?func=detail&aid=2433779&group_id=23725&atid=379482

and someone has a similar report (wt no response) on the support tracker:
   https://sourceforge.net/tracker/index.php?func=detail&aid=2565365&group_id=23725&atid=379483

Cheers,
Clint

Clint Whaley wrote:

>> The following make runs for some time, but bails out with
>>
>>    make[6]: Entering directory `/data/tmp/hoel/atlas3.9.6/build/lib'
>>    ld -melf_x86_64 -shared -soname /usr/local/gltools/linux_x86_64/lib/libatlas.so -o libatlas.so \
>>               -rpath-link /usr/local/gltools/linux_x86_64/lib \
>>               --whole-archive libatlas.a --no-whole-archive -lc -lpthread -lm
>>    ld -melf_x86_64 -shared -soname /usr/local/gltools/linux_x86_64/lib/libf77blas.so \
>>               -o libf77blas.so -rpath-link /usr/local/gltools/linux_x86_64/lib \
>>               --whole-archive libf77blas.a --no-whole-archive
>>    ld: libf77blas.a(ilaenv.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
>>    libf77blas.a(ilaenv.o): could not read symbols: Bad value
>>
>> It works if I add "-F alg -fPIC" to the configure line.
>>    
>
> Well, of course it will fail of you don't add -fPIC, since that is the
> way you signal gcc you want a shared object (position indepedent code).
> W/o -fPIC code you cannot build shared libs.
>
>  
>> Further I'm wondering if it would be helpful to use version numbers for
>> the the shared libraries. At least a few lapack routines changed their
>> signature over the time. I'm not sure how useful this would be.
>>
>> I would like to be able to compile the interface libs for different
>> Fortran compilers and to install them side by side using the same
>> libatlas. For older ATLAS version I had a script that has build
>>
>>  libf77blas_g77.so
>>  libf77blas_gfortran.so
>>  libf77blas_ifc91.so
>>  libf77blas_ifc100.so
>>  libf77blas_ifc101.so
>>  libf77blas_pg70.so
>>  libf77blas_pg71.so
>>
>>  liblapack_g77.so
>>  liblapack_gfortran.so
>>  liblapack_ifc91.so
>>  liblapack_ifc100.so
>>  liblapack_ifc101.so
>>  liblapack_pg70.so
>>  liblapack_pg71.so
>>
>> Is there a chance to get something like this functionality into the
>> distributed ATLAS configuration process?
>>    
>
>
> Someone will have to come up with a detailed explanation of what is needed,
> how it works, and a proposed patch.  I do not use shared objects, and still
> don't understand how to use and build them well.  Right now I am still working
> on getting basic shared objects to build on all platforms.
>
> Regards,
> Clint
>
> **************************************************************************
> ** R. Clint Whaley, PhD ** Assist Prof, UTSA ** www.cs.utsa.edu/~whaley **
> **************************************************************************
>
> ------------------------------------------------------------------------------
> Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
> software. With Adobe AIR, Ajax developers can use existing skills and code to
> build responsive, highly engaging applications that combine the power of local
> resources and data with the reach of the web. Download the Adobe AIR SDK and
> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
> _______________________________________________
> Math-atlas-devel mailing list
> Math-atlas-devel@...
> https://lists.sourceforge.net/lists/listinfo/math-atlas-devel
>  


------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Math-atlas-devel mailing list
Math-atlas-devel@...
https://lists.sourceforge.net/lists/listinfo/math-atlas-devel


**************************************************************************
** R. Clint Whaley, PhD ** Assist Prof, UTSA ** www.cs.utsa.edu/~whaley **
**************************************************************************

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Math-atlas-devel mailing list
Math-atlas-devel@...
https://lists.sourceforge.net/lists/listinfo/math-atlas-devel

Re: Error when compiling ATLAS 3.9.6 dynamic libraries / sonames with version number? / interface libs

by Berthold "Höllmann" :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

whaley@... (Clint Whaley) writes:

(I tried to answer this from another email account, but did not get past
the moderator yet)


>>The following make runs for some time, but bails out with
>>
>>    make[6]: Entering directory `/data/tmp/hoel/atlas3.9.6/build/lib'
>>    ld -melf_x86_64 -shared -soname /usr/local/gltools/linux_x86_64/lib/libatlas.so -o libatlas.so \
>>               -rpath-link /usr/local/gltools/linux_x86_64/lib \
>>               --whole-archive libatlas.a --no-whole-archive -lc -lpthread -lm
>>    ld -melf_x86_64 -shared -soname /usr/local/gltools/linux_x86_64/lib/libf77blas.so \
>>               -o libf77blas.so -rpath-link /usr/local/gltools/linux_x86_64/lib \
>>               --whole-archive libf77blas.a --no-whole-archive
>>    ld: libf77blas.a(ilaenv.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
>>    libf77blas.a(ilaenv.o): could not read symbols: Bad value
>>  
>>It works if I add "-F alg -fPIC" to the configure line.
>
> Well, of course it will fail of you don't add -fPIC, since that is the
>way you signal gcc you want a shared object (position indepedent code).
>W/o -fPIC code you cannot build shared libs.

But what is the point then of using the "--shared" or "--dylibs" switch
for the configure command, if it does not set the "-fPIC" flag for the
compiler?

Kind regards

Berthold Höllmann
--
Germanischer Lloyd AG
CAE Development
Vorsetzen 35
20459 Hamburg
Phone: +49(0)40 36149-7374
Fax: +49(0)40 36149-7320
e-mail: berthold.hoellmann@...
Internet: http://www.gl-group.com



------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Math-atlas-devel mailing list
Math-atlas-devel@...
https://lists.sourceforge.net/lists/listinfo/math-atlas-devel

attachment0 (199 bytes) Download Attachment
disclaimer.txt (4K) Download Attachment