This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: [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


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