Is Symbian configuration for crtfastmath.o correct?

Jonathan Wakely jwakely.gcc@gmail.com
Fri Aug 23 09:10:00 GMT 2024


On Thu, 22 Aug 2024 at 21:21, Fiodar <fedor_qd@mail.ru> 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 think the correct fix is to add t-crtfm to the symbianelf config.


>
> > Аўторак, 20 жніўня 2024, 12:23 +03:00 ад Jonathan Wakely <jwakely.gcc@gmail.com>:
> >
> > Hi,
> >
> > I'm having trouble understanding the problem and the suggested change.
> > Your email doesn't provide many details to help us understand exactly
> > what you mean.
> >
>
> > On Mon, 19 Aug 2024 at 23:35, Fiodar wrote:
> > >
> > >
> > > I have build error due missed crtfastmath.o from 5 series till 14 for Symbian.
> >
> > What exactly is the build error you have?
> > What does "missed crtfastmath.o" mean?
> >
> > If you explain the problem in more detail, we might be able to
> > understand it better.
> >
>
> > > All crtfastmath.o usage declared in pair t-softfp and t-crtfm in libgcc/config.host, isn't it? The last one tells where to pick crtfastmath.o. Symbian share config with arm*-*-eabi and arm*-*-rtems. I checked this config many times and accidentally noticed that the t-crtfm unaviable.
> >
> > What do you mean "unavailable"? It's in libgcc/config, so is available.
> > Do you mean it's not used for the arm*-*-symbianelf* case?
> >
> > > I remove t-softfp and error gone.
> >
> > Remove it from where?
> >
> > >
> > > Here that config:
> > > https://gcc.gnu.org/git?p=gcc.git;a=blob;f=libgcc/config.host;h=9fae51d4ce7dee206f5807bbdb2ce94ceeca33e9;hb=HEAD#l565
> >
> > What did you change? Could you show a diff?
> >
>
> > The addition of t-crtfm was made in https://gcc.gnu.org/g:5a0ff57c48cb
> > in 2015. Are you saying that building arm*-*-symbianelf* has been
> > broken since then?
> "make -k" produce usable freestanding compiler with libsupc, libgcc and libgcov in multilib dirs. libstdc++ not builded before my changes. I build big project like ScummVM since GCC 5 series witout problem.
>
> Stryzhniou Fiodar
> Стрижнёв Федор
>


More information about the Gcc-help mailing list