Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Set code model to Large for PowerPC64 (aka ppc64le)
This is needed because TOC and text sections can be more than 2GB apart. LLVM SectionMemoryManager is not aware of the design limits of ppc64le while allocating memory for JIT'ed sections. DSO limit was set to 2GB by design. While running CMSSW ROOT/Cling puts TOC and .text.func ~2.7GB apart in VA space. Usually was triggered by TFormula in CMSSW. IBM has modified global entry function prologue. TOC is now stored in 64-bit value before global entry to allow addressing beyond 2GB. This was merged to Clang months ago, but is only applicable to large code model. Later IBM propagated this further: - binutils patches are here: https://sourceware.org/ml/binutils/2015-11/msg00232.html https://sourceware.org/ml/binutils/2015-11/msg00233.html and will be available with binutils 2.26 - GCC patch is here: https://gcc.gnu.org/ml/gcc-patches/2015-12/msg00355.html and will be available with GCC 6.0. - LLVM patch is here: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20160111/324454.html and will be available with LLVM 3.8. - Kernel patches (module loader etc.) are here: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a61674bdfc7c2bf909c4010699607b62b69b7bec https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2e50c4bef77511b42cc226865d6bc568fa7f8769 and will be available with Linux 4.5. Signed-off-by: David Abdurachmanov <[email protected]>
- Loading branch information