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

Reply via email to