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