Can't link soft-float modules with double-float modules

I have a question about function export_library, Here is my target

tgt = "llvm -mtriple=riscv64-unknown-linux-gnu -mcpu=generic-rv64 -mfloat-abi=hard" 

and export_library use:

specialized = cc.cross_compiler("soft/riscv/new_install/bin/riscv64-unknown-linux-gnu-g++", ["-mabi=lp64d"]) 
fadd.export_library(path, specialized)

and then I get the error

soft/riscv/new_install/lib/gcc/riscv64-unknown-linux-gnu/10.1.0/../../../../riscv64-unknown-linux-gnu/bin/ld: lib/riscv.o: can't link soft-float modules with double-float modules
Command line: soft/riscv/new_install/bin/riscv64-unknown-linux-gnu-g++ -shared -fPIC -o lib/riscv.so lib/riscv.o

my cross compiler’s configure is

/soft/riscv/new_install/libexec/gcc/riscv64-unknown-linux-gnu/10.1.0/lto-wrapper
Target: riscv64-unknown-linux-gnu
Configured with: soft/riscv/riscv-gnu-toolchain/riscv-gcc/configure --target=riscv64-unknown-linux-gnu --prefix=soft/riscv/new_install --with-sysroot=soft/riscv/new_install/sysroot --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++,fortran --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=.././riscv-gcc --enable-multilib --with-abi=lp64d --with-arch=rv64imafdc --with-tune=rocket 'CFLAGS_FOR_TARGET=-O2   -mcmodel=medlow' 'CXXFLAGS_FOR_TARGET=-O2   -mcmodel=medlow'
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.1.0 (GCC) 

it seems the -mfloat-abi=hard in Target doesn’t make sense, so how can I generate a double float so file, anyone has some ideas, thanks!