| # This file is used if not configured --with-avrlibc=no |
| # |
| # AVR-Libc comes with hand-optimized float routines. |
| # For historical reasons, these routines live in AVR-Libc |
| # and not in libgcc and use the same function names like libgcc. |
| # To get the best support, i.e. always use the routines from |
| # AVR-Libc, we remove these routines from libgcc. |
| # |
| # See also PR54461. |
| # |
| # |
| # Arithmetic: |
| # __addsf3 __subsf3 __divsf3 __mulsf3 __negsf2 |
| # |
| # Comparison: |
| # __cmpsf2 __unordsf2 |
| # __eqsf2 __lesf2 __ltsf2 __nesf2 __gesf2 __gtsf2 |
| # |
| # Conversion: |
| # __fixsfdi __fixunssfdi __floatdisf __floatundisf |
| # __fixsfsi __fixunssfsi __floatsisf __floatunsisf |
| # |
| # |
| # These functions are contained in modules: |
| # |
| # _addsub_sf.o: __addsf3 __subsf3 |
| # _mul_sf.o: __mulsf3 |
| # _div_sf.o: __divsf3 |
| # _negate_sf.o: __negsf2 |
| # |
| # _compare_sf.o: __cmpsf2 |
| # _unord_sf.o: __unordsf2 |
| # _eq_sf.o: __eqsf2 |
| # _ne_sf.o: __nesf2 |
| # _ge_sf.o: __gesf2 |
| # _gt_sf.o: __gtsf2 |
| # _le_sf.o: __lesf2 |
| # _lt_sf.o: __ltsf2 |
| # |
| # _fixsfdi.o: __fixsfdi |
| # _fixunssfdi.o: __fixunssfdi |
| # _fixunssfsi.o: __fixunssfsi |
| # _floatdisf.o: __floatdisf |
| # _floatundisf.o: __floatundisf |
| # _sf_to_si.o: __fixsfsi |
| # _si_to_sf.o: __floatsisf |
| # _usi_to_sf.o: __floatunsisf |
| |
| |
| # SFmode |
| LIB2FUNCS_EXCLUDE += \ |
| _addsub_sf \ |
| _negate_sf \ |
| _mul_sf _div_sf \ |
| \ |
| _compare_sf \ |
| _unord_sf \ |
| _eq_sf _ne_sf \ |
| _gt_sf _ge_sf \ |
| _lt_sf _le_sf \ |
| \ |
| _si_to_sf _sf_to_si \ |
| _usi_to_sf _sf_to_usi \ |
| _fixunssfsi _fixsfdi \ |
| _fixunssfdi \ |
| _floatdisf _floatundisf |
| |
| ifeq (,$(WITH_LIBF7_MATH_SYMBOLS)) |
| |
| # No modules depend on __SIZEOF_LONG_DOUBLE__ or __SIZEOF_DOUBLE__ |
| # which means we might have an opportunity to copy libgcc.a. |
| # WITH_LIBF7_MATH_SYMBOLS is set by libf7/t-libf7-math-symbols. |
| |
| ifneq (,$(findstring avr,$(MULTISUBDIR))) |
| |
| # We are not in the avr2 (default) subdir, hence copying will work. |
| # In default dir, copying won'twork because the default multilib is |
| # built after all the others. |
| |
| ifneq (,$(findstring double,$(MULTISUBDIR))) |
| |
| # We are in double{32|64}/libgcc or long-double{32|64}/libgcc: |
| # Just copy from the [long ]double=float multilib; we would remove any DFmode |
| # bits from this multilib variant, anyway, because the current assumption |
| # is that avr-libc hosts *all* the IEEE-double stuff. |
| |
| LIB2FUNCS_EXCLUDE := % |
| LIB1ASMFUNCS := |
| libgcc-objects := |
| libgcov-objects := |
| objects := |
| |
| t-copy-libgcc.dep: $(srcdir)/config/avr/t-copy-libgcc |
| -rm -f libgcc.a |
| -rm -f libgcov.a |
| cp $< $@ |
| |
| libgcc.a libgcov.a libgcc_tm.h: t-copy-libgcc.dep |
| |
| Makefile: t-copy-libgcc.dep |
| |
| endif |
| endif |
| endif |