On Sun, Apr 09, 2017 at 09:39:14PM +0100, Stuart Henderson wrote: > I'm building ports on aarch64 to see how things go and am looking for common > problems. At this stage, mostly just wanting to show people what things I run > into so they can mull them over. (I'll also fix simple things as I go). > > One that I'm seeing is undefined symbols with the following math functions, > > undefined symbol '__floatunditf' > undefined symbol '__fixunstfsi' > undefined symbol '__fixunstfdi' > > For example in archivers/gtar, audio/musepack, devel/dconf. > > These names are in InitLibcallNames() in > /usr/src/gnu/llvm/lib/CodeGen/TargetLoweringBase.cpp > > Names[RTLIB::UINTTOFP_I64_F128] = "__floatunditf"; > Names[RTLIB::FPTOUINT_F128_I32] = "__fixunstfsi"; > Names[RTLIB::FPTOUINT_F128_I64] = "__fixunstfdi"; > > A number of the other symbols in this file aren't found in libm, but I > haven't run into problems with those yet. > > (Ports is likely not clean enough to build those ports with what's > currently in-tree, at the moment I have 800-odd Ms for WANTLIB changes). >
The other symbols akin to those are provided by lib/libcompiler_rt. The symbols you mentioned are part of the source code but are not compiled in for aarch64. This might simply be an oversight, so adding those to the compiler-rt library Makefile should make it work. Patrick