>Пятніца, 23 жніўня 2024, 12:10 +03:00 ад Jonathan Wakely <jwakely.gcc@xxxxxxxxx>: > >On Thu, 22 Aug 2024 at 21:21, Fiodar < fedor_qd@xxxxxxx > wrote: >> >> Here config from link: >> 565 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*) >> 566 tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix" >> 567 tm_file="$tm_file arm/bpabi-lib.h" >> 568 case ${host} in >> 569 arm*-*-eabi* | arm*-*-rtems*) >> 570 tmake_file="${tmake_file} arm/t-bpabi arm/t-sync t-crtfm" >> 571 extra_parts="crtbegin.o crtend.o crti.o crtn.o" >> 572 ;; >> 573 arm*-*-symbianelf*) >> 574 tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override" >> 575 tm_file="$tm_file arm/symbian-lib.h" >> 576 # Symbian OS provides its own startup code. >> 577 ;; >> 578 esac >> 579 tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" >> 580 extra_parts="$extra_parts crtfastmath.o" >> 581 unwind_header=config/arm/unwind-arm.h >> 582 ;; >> >> At line 570 t-crtfm says where look for crtfastmath.o. But it matters for arm*-*-eabi* and arm*-*-rtems* targets only. >> At line 580 declared additional dependency - crtfastmath.o without t-crtfm pair in Symbian part. >> As temporal solution I change line 580 to ‘ extra_parts="$extra_parts" ’ and error gone. Builds was fine. Even libstdc++.a builded. >> >> Pattern at line 580 widely used in libgcc/config.host. It’s was usual copy-paste mistake. I notice that by accident. >> Proposed fix: change line 571 to >> extra_parts="crtbegin.o crtend.o crti.o crtn.o crtfastmath.o" >> and line 580 to: >> extra_parts="$extra_parts" >> >> Anyway Symbian used own crts. So crtfastmath not needed at all. > >But does the Symbian runtime correctly handle GCC's -ffast-math option? I don’t know. Does gcc has any test? I build and run it. > >I think the correct fix is to add t-crtfm to the symbianelf config. I look closely at libgcc\config\arm\crtfastmath.c. It compiled if macro __SOFTFP__ not defined. I’m not sure if this needed because Symbian use softfp ABI for float numbers. Stryzhniou Fiodar Стрижнёв Федор