https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116833

            Bug ID: 116833
           Summary: Symbian: incorrect configuration for crtfastmath.o
           Product: gcc
           Version: 14.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libgcc
          Assignee: unassigned at gcc dot gnu.org
          Reporter: fedor_qd at mail dot ru
  Target Milestone: ---

Here config from libgcc/config.host:
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.
That cause build error because location for crtfastmath.o not set.
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.

 I look closely at libgcc\config\arm\crtfastmath.c. It compiled if macro
__SOFTFP__ not defined. Symbian use softfp ABI for float numbers.

I build simple helloword with default options and some code:
#if __SOFTFP__
#pragma message "__SOFTFP__"
#endif

I got:
note: '#pragma message: __SOFTFP__'

Does GCC have crtfastmath.c for softfp ABI?

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"

Reply via email to