cc'ing maintainers,
On Tue, Jan 21, 2025 at 03:31:08PM +0000, Visa Hankala wrote:
> devel/llvm/18 fails to build on mips64 because of too large GOT while
> linking libLLVM.so. This can be fixed by compiling the code using
> the extended GOT access pattern.
>
> devel/llvm/19 and future versions probably result in large GOTs too,
> so those might need the same fix. This is just my guessing, though.
>
> OK?
ok jca@
> Index: Makefile.inc
> ===================================================================
> RCS file: ports/devel/llvm/Makefile.inc,v
> diff -u -p -r1.20 Makefile.inc
> --- Makefile.inc 21 Dec 2024 11:39:33 -0000 1.20
> +++ Makefile.inc 21 Jan 2025 15:20:29 -0000
> @@ -111,6 +111,13 @@ CXXFLAGS-i386 = -fno-ret-protector -mno
> CXXFLAGS-mips64 = -fno-ret-protector -fomit-frame-pointer
> CXXFLAGS-mips64el = -fno-ret-protector -fomit-frame-pointer
> CXXFLAGS-powerpc = -fno-ret-protector
> +
> +# Avoid GOT overflow.
> +.if ${LLVM_MAJOR} > 17
> +CXXFLAGS-mips64 += -mxgot
> +CXXFLAGS-mips64el += -mxgot
> +.endif
> +
> CXXFLAGS += ${CXXFLAGS-${MACHINE_ARCH}}
>
> ALL_TARGET = all docs-llvm-man docs-clang-man
>
--
jca