Some targets do not support XF mode (eg AArch64), so don't build the corresponding to/from DFP modes convertion routines if __LIBGCC_HAS_XF_MODE__ is not defined.
2022-03-31 Christophe Lyon <christophe.l...@arm.com> libgcc/ * config/libbid/_dd_to_xf.c: Check __LIBGCC_HAS_XF_MODE__. * config/libbid/_sd_to_xf.c: Likewise. * config/libbid/_td_to_xf.c: Likewise. * config/libbid/_xf_to_dd.c: Likewise. * config/libbid/_xf_to_sd.c: Likewise. * config/libbid/_xf_to_td.c: Likewise. --- libgcc/config/libbid/_dd_to_xf.c | 2 ++ libgcc/config/libbid/_sd_to_xf.c | 2 ++ libgcc/config/libbid/_td_to_xf.c | 2 ++ libgcc/config/libbid/_xf_to_dd.c | 2 ++ libgcc/config/libbid/_xf_to_sd.c | 2 ++ libgcc/config/libbid/_xf_to_td.c | 2 ++ 6 files changed, 12 insertions(+) diff --git a/libgcc/config/libbid/_dd_to_xf.c b/libgcc/config/libbid/_dd_to_xf.c index 5a2abbbb1f4..e4b12e8ac4f 100644 --- a/libgcc/config/libbid/_dd_to_xf.c +++ b/libgcc/config/libbid/_dd_to_xf.c @@ -25,6 +25,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "bid_functions.h" #include "bid_gcc_intrinsics.h" +#ifdef __LIBGCC_HAS_XF_MODE__ XFtype __bid_extendddxf (_Decimal64 x) { XFtype res; @@ -34,3 +35,4 @@ __bid_extendddxf (_Decimal64 x) { res = __bid64_to_binary80 (ux.i); return (res); } +#endif diff --git a/libgcc/config/libbid/_sd_to_xf.c b/libgcc/config/libbid/_sd_to_xf.c index 9af09913684..288ccb25075 100644 --- a/libgcc/config/libbid/_sd_to_xf.c +++ b/libgcc/config/libbid/_sd_to_xf.c @@ -25,6 +25,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "bid_functions.h" #include "bid_gcc_intrinsics.h" +#ifdef __LIBGCC_HAS_XF_MODE__ XFtype __bid_extendsdxf (_Decimal32 x) { XFtype res; @@ -34,3 +35,4 @@ __bid_extendsdxf (_Decimal32 x) { res = __bid32_to_binary80 (ux.i); return (res); } +#endif diff --git a/libgcc/config/libbid/_td_to_xf.c b/libgcc/config/libbid/_td_to_xf.c index b0c76a71497..e990282162d 100644 --- a/libgcc/config/libbid/_td_to_xf.c +++ b/libgcc/config/libbid/_td_to_xf.c @@ -25,6 +25,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "bid_functions.h" #include "bid_gcc_intrinsics.h" +#ifdef __LIBGCC_HAS_XF_MODE__ XFtype __bid_trunctdxf (_Decimal128 x) { XFtype res; @@ -34,3 +35,4 @@ __bid_trunctdxf (_Decimal128 x) { res = __bid128_to_binary80 (ux.i); return (res); } +#endif diff --git a/libgcc/config/libbid/_xf_to_dd.c b/libgcc/config/libbid/_xf_to_dd.c index 9feb0f2c3d6..e3246a1c2e1 100644 --- a/libgcc/config/libbid/_xf_to_dd.c +++ b/libgcc/config/libbid/_xf_to_dd.c @@ -25,9 +25,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "bid_functions.h" #include "bid_gcc_intrinsics.h" +#ifdef __LIBGCC_HAS_XF_MODE__ _Decimal64 __bid_truncxfdd (XFtype x) { union decimal64 res; res.i = __binary80_to_bid64 (x); return (res.d); } +#endif diff --git a/libgcc/config/libbid/_xf_to_sd.c b/libgcc/config/libbid/_xf_to_sd.c index 7d46548af6c..9147e979182 100644 --- a/libgcc/config/libbid/_xf_to_sd.c +++ b/libgcc/config/libbid/_xf_to_sd.c @@ -25,9 +25,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "bid_functions.h" #include "bid_gcc_intrinsics.h" +#ifdef __LIBGCC_HAS_XF_MODE__ _Decimal32 __bid_truncxfsd (XFtype x) { union decimal32 res; res.i = __binary80_to_bid32 (x); return (res.d); } +#endif diff --git a/libgcc/config/libbid/_xf_to_td.c b/libgcc/config/libbid/_xf_to_td.c index 07987fdcc3a..c8d102b0b7f 100644 --- a/libgcc/config/libbid/_xf_to_td.c +++ b/libgcc/config/libbid/_xf_to_td.c @@ -25,9 +25,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "bid_functions.h" #include "bid_gcc_intrinsics.h" +#ifdef __LIBGCC_HAS_XF_MODE__ _Decimal128 __bid_extendxftd (XFtype x) { union decimal128 res; res.i = __binary80_to_bid128 (x); return (res.d); } +#endif -- 2.25.1