On Fri, 21 Aug 2020 14:54:35 +0400 Gleb Popov <arr...@freebsd.org> wrote: > On Thu, Aug 20, 2020 at 11:53 PM Dimitry Andric <d...@freebsd.org> wrote: >> On 20 Aug 2020, at 19:52, Gleb Popov <arr...@freebsd.org> wrote: >>> On Wed, Aug 19, 2020 at 10:15 PM Gleb Popov <arr...@freebsd.org> wrote: >>>> I'm building the latest GHC on 12.1-RELEASE i386 and having almost the >>>> same problem as with atomic functions. This time the error is >>>> >>>> d: error: undefined symbol: __bswapsi2 >>>> >>> referenced by TTY.c >>>> >>> RTS.thr_p_o:(rtsSyms) in archive >>>> /wrkdirs/usr/ports/lang/ghc/work/ghc-8.10.2/rts/dist/build/libHSrts_thr_p.a >>>> >>>> ld: error: undefined symbol: __bswapdi2 >>>> >>> referenced by TTY.c >>>> >>> RTS.thr_p_o:(rtsSyms) in archive >>>> /wrkdirs/usr/ports/lang/ghc/work/ghc-8.10.2/rts/dist/build/libHSrts_thr_p.a >>>> >>>> What's wrong with that? These functions seem to be present in our >>>> compiler-rt. >>>> >>> >>> Reading /usr/src/lib/libcompiler_rt/Makefile.inc, it seems that we don't >>> compile these functions. What's the reason for this? >> >> I'm not aware of any particular reason, except that nobody seems to have >> run into this omission before. It looks like on x86, compilers usually >> just emit bswap instructions instead of libcalls for these situations. >> >> Apparently we have historically only added bswapdi and bswapsi for arm, >> mips and riscv. > > I see thanks. I worked my problem around by adding implementations of these > functions right into GHC code.
The bswap instruction was added in the i486 so something very weird is going on that should be investigated instead of simply worked around. _______________________________________________ freebsd-toolchain@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"