This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [Patch,fortran] PR 27740 Symbol versioning for libgfortran
Paolo Bonzini wrote:
FreeBSD should be picking up csqrtf et al from c99_intrinsics.c. It
seems that the patch is corrupting the HAVE_CSQRTF macro. I'll
applied Janne's patch tommorrow and configure with maintainer-mode.
It may just be that csqrtf is not exported anymore.
I don't see how the symbol versioning patch has changed csqrtf.
Pre-patch there is:
nm -a libgfortran.so.2.0.0|grep csqrt
U csqrtf@@GLIBC_2.1
U csqrt@@GLIBC_2.1
U csqrtl@@GLIBC_2.1
And post-versioning-patch:
nm -a libgfortran.so.3.0.0|grep csqrt
U csqrtf@@GLIBC_2.1
U csqrt@@GLIBC_2.1
U csqrtl@@GLIBC_2.1
So the nm man page says that "U" means undefined, I understand it means
libgfortran references said symbol and expects some other .so to
actually define it.
Then again, I'm far from an expert on ABI issues.
It seems like a bad idea to modify the F2C ABI (was it
backwards-compatible with libf2c? if so, it definitely *is* a bad idea).
AFAIK we need don't need API compatibility with libf2c (for one, the
symbol names are different, _specific_foo vs. foo or with the patch
_gfortran_specific_foo). I don't really know the f2c stuff, but I think
it's something to do with being compatible with the f2c calling convention.
I think this patch should be reviewed by somebody with symbol versioning
experience, maybe Jakub, especially because of the csqrtf issue. (No, I
don't qualify).
Yes, that would be nice.
--
Janne Blomqvist