This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: _gfortran_pow_r4_i4 library calls


Dennis Wassel wrote:
I have compiled Lapack with gfortran 4.2.2 and am now trying to link
against that library with gfortran 4.3.0.
This results in my linker whining:
slamch.f:(.text+0xaf): undefined reference to `_gfortran_pow_r4_i4'

Checking this I found that the 3.0.0 Fortranlib does supply
"_gfortran_pow_r4_i8" but not "_gfortran_pow_r4_i4", as the 2.0.0
still does. Is this a bug or a feature? :-)
Feature. Gfortran now uses in this case the __builtin_powif, which can be optimized further by the middle end of GCC.

Between 4.1 and 4.2 and 4.3 we did/do not guarantee that the library interface remains stable; within a stable branch it does. However, starting from 4.3.0 we use versioned symbols, i.e. on system where this is supported, all 4.3-compiled programs/libraries should work with libgfortran of later gfortran versions. (Which means that we will continue to carry stuff around which is unused using newer compilers.)

I have never experimented with it, but it might work to link to both libraries; assume you put libgfortran of 4.2.0 into a different directory, then linking with "-lgfortran -L<path to 4.2> -lgfortran" might work. However, even if it seems to work, this can cause some unexpected problems in some special cases.

Thus the safest way is indeed to recompile Lapack with gfortran 4.3. (Hoping that the [sd]lartg do not appear). If you don't have last years 3.1.1. there would be even another good reason for it ;-)

Tobias


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]