On 5/2/21 7:10 AM, Liu Hao via Gcc-help wrote:
the crt right在 2021-05-02 08:02, James McKelvey 写道:My code works fine on Cygwin using C++ 10.2.0. But it fails when I build with the latest gcc-11 snapshot,gcc-11-20210426, with undefined references at link time. It fails under -O3 and -O0, with differenterrors. It failed under earlier snapshots as well.We have been aware of this issue since a while ago. I had some discussion with Jonathan Yong (who is notably the Cygwin port maintainer), but there was no conclusion:``` Apr 01 22:15:51 <lh_mouse> what's the error? Apr 01 22:17:40 <jon_y> strange I am not able to reproduce it now Apr 01 22:17:50 <jon_y> oh I think I know what the problem was Apr 01 22:18:06 <jon_y> gcc11 was producing broken powf() from the crtApr 01 22:18:23 <jon_y> for some reason it generated undefined internal compiler symbolsApr 01 22:18:28 <jon_y> like U LC5 Apr 01 22:18:41 <jon_y> switching back to gcc-10 fixed it Apr 01 22:19:03 <lh_mouse> that is defined in 'powf.c' I think.Apr 01 22:19:13 <jon_y> and because I did not rebuild
should beafter, it must be the reason why the compiler tries to generate its own Apr 01 22:19:28 <jon_y> I mean, there's an inline version in math.hApr 01 22:19:38 <jon_y> and then another copy in libstdc++-v3/src/c++98/math_stubs_float.ccApr 01 22:19:54 <jon_y> powf itself is definedApr 01 22:20:04 <jon_y> but the U LC5 is causing an undefined symbol error Apr 01 22:20:19 <jon_y> I have no idea where this LC5
coming fromApr 01 22:20:29 <jon_y> it only appears in the assembly, not even in the preprocessed file Apr 01 22:20:35 <lh_mouse> so linking failed and configure thought `powf` wasn't available?Apr 01 22:21:33 <jon_y> yesApr 01 22:21:50 <jon_y> the solution was to revert back to gcc10, rebuild the crt and try again```
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99872 This should already be fixed.
Attachment:
OpenPGP_0x713B5FE29C145D45.asc
Description: OpenPGP public key
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature