Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. These are some scratch notes of mine of different combinations of toolchains and MIPS ABIs. All of these tests are done via the [[https://github.com/freebsd/freebsd/compare/master...bsdjhb:mips_xbuild|mips_xbuild]] branch at github/bsdjhb/freebsd.git. The current status below assumes a tree that contains all commits listed in the third table. Additional patches may also be required as noted in the comments. | ABI | toolchain | build world | build kernel | run world | run kernel | notes | | O32 | gcc 4.2 | ✔ | ✔ | ✔ | ✔ | | | N32 | gcc 4.2 | ✔ | ✔ | ✔ | ✔ | | | N64 | gcc 4.2 | ✔ | ✔ | ✔ | ✔ | | | O32 | gcc 6.4 | ✔ | ✔ | ✔ | ✔ | | | N32 | gcc 6.4 | ✔ | ✔ | ✔ | ✔ | | | N64 | gcc 6.4 | ✔ | ✔ | ✔ | ✔ | | | O32 | clang 6.0.0 | ✔ | ✔ | ✘ | ✔ | Requires unmerged changes in ''%%mips_clang%%'' branch. Use of thread-local-storage crashes (e.g. libxo in ps(1%%))%% | | N32 | clang 6.0.0 | ✘ | | | | clang doesn't pass through N32 ABI to assembler, see discussion [[https://reviews.llvm.org/D31557|here]] | | N64 | clang 6.0.0 | ✔ | ✔ | ✔ | ✔ | Requires unmerged changes in ''%%mips_clang%%'' branch. Any use of NFS triggers kernel stack overflow. | | toolchain | build args | notes | | gcc 4.2 | make TARGET_ARCH=%%<%%abi> | | | gcc 6.4 | make TARGET_ARCH=%%<%%abi> CROSS_TOOLCHAIN=mips-gcc | Requires mips-xtoolchain-gcc package | | clang 6.0.0 | make TARGET_ARCH=%%<%%abi> WITH_CLANG=yes WITH_CLANG_IS_CC=yes WITH_CLANG_BOOTSTRAP=yes WITHOUT_GCC_BOOTSTRAP=yes WITHOUT_GCC=yes WITHOUT_GNUCXX=yes CROSS_BINUTILS_PREFIX=/usr/local/mips-freebsd/bin/ WITHOUT_SYSTEM_COMPILER=yes | Requires mips-binutils package | ==== Changes in FreeBSD ==== | Review | Commit | Description | | | [[https://svnweb.freebsd.org/base?view=revision&revision=322915|r322915]] | Fix recursion for some builtins with n32 | | | [[https://svnweb.freebsd.org/base?view=revision&revision=322772|r322772]] | Fix compile of FP exception handlers with clang | | | [[https://svnweb.freebsd.org/base?view=revision&revision=322767|r322767]] | Fix compile of top with clang | | | [[https://svnweb.freebsd.org/base?view=revision&revision=322766|r322766]] | Fix missing division builtins used by clang | | | [[https://svnweb.freebsd.org/base?view=revision&revision=322765|r322765]] | Fix build of dtrace header with clang on o32 | | [[https://reviews.freebsd.org/D10085|D10085]] | [[https://svnweb.freebsd.org/base?view=revision&revision=316620|r316620]] [[https://svnweb.freebsd.org/base?view=revision&revision=316621|r316621]] [[https://svnweb.freebsd.org/base?view=revision&revision=316622|r316622]] | Pass -mabi=XX to compiler driver instead of depending on default | | [[https://reviews.freebsd.org/D10085|D10085]] | [[https://svnweb.freebsd.org/base?view=revision&revision=316512|r316512]] [[https://svnweb.freebsd.org/base?view=revision&revision=316513|r316513]] [[https://svnweb.freebsd.org/base?view=revision&revision=316514|r316514]] [[https://svnweb.freebsd.org/base?view=revision&revision=316537|r316537]] | Pass linker emulation to linker instead of depending on default | | [[https://reviews.freebsd.org/D10086|D10086]] | [[https://svnweb.freebsd.org/base?view=revision&revision=316511|r316511]] | Export an ''%%__ffssi2()%%'' symbol | | [[https://reviews.freebsd.org/D9707|D9707]] | [[https://svnweb.freebsd.org/base?view=revision&revision=314114|r314114]] | Use LDFLAGS instead of _LDFLAGS for beri boot binaries | | [[https://reviews.freebsd.org/D9708|D9708]] | [[https://svnweb.freebsd.org/base?view=revision&revision=314115|r314115]] | Fix rtld to handle GOT[1] for modern toolchains | | [[https://reviews.freebsd.org/D15543|D15543]] | [[https://svnweb.freebsd.org/ports?view=revision&revision=472011|r472011]] | Fix GCC ports to use default MIPS arch of MIPSIII for O32 | ==== Changes in LLVM ==== | Review | Commit | Merged to %%FreeBSD%% | Description | | [[https://reviews.llvm.org/D42972|D42972]] | [[http://llvm.org/viewvc/llvm-project?view=revision&revision=324948|324948]] | | Look for 32-bit libraries in /usr/lib32 for MIPS O32 on %%FreeBSD%%. | | [[https://reviews.llvm.org/D47938|D47938]] | [[http://llvm.org/viewvc/llvm-project?view=revision&revision=334419|334419]] | | [mips] Fix spill slot for mips3, n64 abi | | [[https://reviews.llvm.org/D31557|D31557]] / [[https://reviews.llvm.org/D48515|D48515]] | [[http://llvm.org/viewvc/llvm-project?view=revision&revision=335434|335434]] [[http://llvm.org/viewvc/llvm-project?view=revision&revision=336004|336004]] | | Enable IAS by default for N64 | | [[https://reviews.llvm.org/D48499|D48499]] | [[http://llvm.org/viewvc/llvm-project?view=revision&revision=335653|335653]] | | Use more conservative default CPUs (mips2 and mips3) | | [[https://reviews.llvm.org/D48507|D48507]] | [[http://llvm.org/viewvc/llvm-project?view=revision&revision=335691|335691]] / [[http://llvm.org/viewvc/llvm-project?view=revision&revision=335702|335702]] | | Pass the linker emulation (-m foo) explicitly to ld | | | | | Clang always uses dynamic TLS | | [[https://reviews.llvm.org/D49939|D49939]] | [[http://llvm.org/viewvc/llvm-project?view=revision&revision=338650|338650]] | | [ASAN] Use the correct shadow offset for ASAN on %%FreeBSD%%/mips64. | johnbaldwin/mips.txt Last modified: 2018/08/01 22:52by JohnBaldwin