1 # This file is used if not configured --with-avrlibc=no 2 # 3 # AVR-Libc comes with hand-optimized float routines. 4 # For historical reasons, these routines live in AVR-Libc 5 # and not in libgcc and use the same function names like libgcc. 6 # To get the best support, i.e. always use the routines from 7 # AVR-Libc, we remove these routines from libgcc. 8 # 9 # See also PR54461. 10 # 11 # 12 # Arithmetic: 13 # __addsf3 __subsf3 __divsf3 __mulsf3 __negsf2 14 # 15 # Comparison: 16 # __cmpsf2 __unordsf2 17 # __eqsf2 __lesf2 __ltsf2 __nesf2 __gesf2 __gtsf2 18 # 19 # Conversion: 20 # __fixsfdi __fixunssfdi __floatdisf __floatundisf 21 # __fixsfsi __fixunssfsi __floatsisf __floatunsisf 22 # 23 # 24 # These functions are contained in modules: 25 # 26 # _addsub_sf.o: __addsf3 __subsf3 27 # _mul_sf.o: __mulsf3 28 # _div_sf.o: __divsf3 29 # _negate_sf.o: __negsf2 30 # 31 # _compare_sf.o: __cmpsf2 32 # _unord_sf.o: __unordsf2 33 # _eq_sf.o: __eqsf2 34 # _ne_sf.o: __nesf2 35 # _ge_sf.o: __gesf2 36 # _gt_sf.o: __gtsf2 37 # _le_sf.o: __lesf2 38 # _lt_sf.o: __ltsf2 39 # 40 # _fixsfdi.o: __fixsfdi 41 # _fixunssfdi.o: __fixunssfdi 42 # _fixunssfsi.o: __fixunssfsi 43 # _floatdisf.o: __floatdisf 44 # _floatundisf.o: __floatundisf 45 # _sf_to_si.o: __fixsfsi 46 # _si_to_sf.o: __floatsisf 47 # _usi_to_sf.o: __floatunsisf 48 49 50 # SFmode 51 LIB2FUNCS_EXCLUDE += \ 52 _addsub_sf \ 53 _negate_sf \ 54 _mul_sf _div_sf \ 55 \ 56 _compare_sf \ 57 _unord_sf \ 58 _eq_sf _ne_sf \ 59 _gt_sf _ge_sf \ 60 _lt_sf _le_sf \ 61 \ 62 _si_to_sf _sf_to_si \ 63 _usi_to_sf _sf_to_usi \ 64 _fixunssfsi _fixsfdi \ 65 _fixunssfdi \ 66 _floatdisf _floatundisf 67 68 ifeq (,$(WITH_LIBF7_MATH_SYMBOLS)) 69 70 # No modules depend on __SIZEOF_LONG_DOUBLE__ or __SIZEOF_DOUBLE__ 71 # which means we might have an opportunity to copy libgcc.a. 72 # WITH_LIBF7_MATH_SYMBOLS is set by libf7/t-libf7-math-symbols. 73 74 ifneq (,$(findstring avr,$(MULTISUBDIR))) 75 76 # We are not in the avr2 (default) subdir, hence copying will work. 77 # In default dir, copying won'twork because the default multilib is 78 # built after all the others. 79 80 ifneq (,$(findstring double,$(MULTISUBDIR))) 81 82 # We are in double{32|64}/libgcc or long-double{32|64}/libgcc: 83 # Just copy from the [long ]double=float multilib; we would remove any DFmode 84 # bits from this multilib variant, anyway, because the current assumption 85 # is that avr-libc hosts *all* the IEEE-double stuff. 86 87 LIB2FUNCS_EXCLUDE := % 88 LIB1ASMFUNCS := 89 libgcc-objects := 90 libgcov-objects := 91 objects := 92 93 t-copy-libgcc.dep: $(srcdir)/config/avr/t-copy-libgcc 94 -rm -f libgcc.a 95 -rm -f libgcov.a 96 cp $< $@ 97 98 libgcc.a libgcov.a libgcc_tm.h: t-copy-libgcc.dep 99 100 Makefile: t-copy-libgcc.dep 101 102 endif 103 endif 104 endif 105