diff --git a/lib/libcompiler_rt/Makefile.inc b/lib/libcompiler_rt/Makefile.inc --- a/lib/libcompiler_rt/Makefile.inc +++ b/lib/libcompiler_rt/Makefile.inc @@ -132,7 +132,6 @@ # .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" SRCF+= divxc3 -SRCF+= extendxftf2 SRCF+= fixxfdi SRCF+= fixxfti SRCF+= fixunsxfdi @@ -142,7 +141,6 @@ SRCF+= floatuntixf SRCF+= mulxc3 SRCF+= powixf2 -SRCF+= trunctfxf2 # Avoid using SSE2 instructions on i386, if unsupported. .if ${MACHINE_CPUARCH} == "i386" && empty(MACHINE_CPU:Msse2) @@ -154,6 +152,12 @@ .endif .endif +# 128-bit float is an amd64 feature +.if ${MACHINE_CPUARCH} == "amd64" +SRCF+= extendxftf2 +SRCF+= trunctfxf2 +.endif + # __cpu_model support, only used on aarch64 and x86 .if ${MACHINE_CPUARCH} == "aarch64" SRCS+= cpu_model/aarch64.c diff --git a/lib/libgcc_s/Symbol.map b/lib/libgcc_s/Symbol.map --- a/lib/libgcc_s/Symbol.map +++ b/lib/libgcc_s/Symbol.map @@ -191,15 +191,14 @@ __bswapsi2; }; -#if defined(__aarch64__) || defined(__riscv) GCC_4.6.0 { +#if defined(__aarch64__) || defined(__riscv) __addtf3; __cmptf2; __divtf3; __eqtf2; __extenddftf2; __extendsftf2; - __extendxftf2; __fixtfdi; __fixtfsi; __fixtfti; @@ -221,10 +220,13 @@ __subtf3; __trunctfdf2; __trunctfsf2; - __trunctfxf2; __unordtf2; -}; #endif +#if defined(__amd64__) + __extendxftf2; + __trunctfxf2; +#endif +}; GCC_7.0.0 { #ifdef __i386__