Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Aug 2018 19:33:32 +0200
From:      Dimitry Andric <dim@FreeBSD.org>
To:        "Rodney W. Grimes" <freebsd-rwg@pdx.rh.CN85.dnsmgr.net>
Cc:        blubee blubeeme <gurenchan@gmail.com>, FreeBSD Current <freebsd-current@freebsd.org>, Brooks Davis <brooks@freebsd.org>
Subject:   Re: building LLVM threads gets killed
Message-ID:  <4ECEE41C-E1FF-4B6A-A138-3BDDB6552A7D@FreeBSD.org>
In-Reply-To: <201808201426.w7KEQo9j074809@pdx.rh.CN85.dnsmgr.net>
References:  <201808201426.w7KEQo9j074809@pdx.rh.CN85.dnsmgr.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_6ADE5990-1E46-4E8D-BFB1-AC2177E2A668
Content-Type: multipart/mixed;
	boundary="Apple-Mail=_7B8AAAE0-4E90-421F-A983-8D414354B4E9"


--Apple-Mail=_7B8AAAE0-4E90-421F-A983-8D414354B4E9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 20 Aug 2018, at 16:26, Rodney W. Grimes =
<freebsd-rwg@pdx.rh.CN85.dnsmgr.net> wrote:
>=20
>> On 20 Aug 2018, at 05:01, blubee blubeeme <gurenchan@gmail.com> =
wrote:
>>>=20
>>> I am running current compiling LLVM60 and when it comes to linking
>>> basically all the processes on my computer gets killed; Chrome, =
Firefox and
>>> some of the LLVM threads as well
...
>=20
>> It is running out of RAM while running multiple parallel link jobs.  =
If
>> you are building using WITH_DEBUG, turn that off, it consumes large
>> amounts of memory.  If you must have debug info, try adding the
>> following flag to the CMake command line:
>>=20
>> -D LLVM_PARALLEL_LINK_JOBS:STRING=3D"1"
>>=20
>> That will limit the amount of parallel link jobs to 1, even if you
>> specify -j 8 to gmake or ninja.
>>=20
>> Brooks, it would not be a bad idea to always use this CMake flag in =
the
>> llvm ports. :)
>=20
> And this may also fix the issues that all the small
> memory (aka, RPI*) buliders are facing when trying
> to do -j4?

Possibly, as linking is usually the most memory-consuming part of the
build process (and more so, if debugging is enabled).  Are there build
logs available somewhere for those RPI builders?

I have attached a patch for most of the llvm ports, which sets the
LLVM_PARALLEL_LINK_JOBS CMake flag during the configure phase.

-Dimitry

--Apple-Mail=_7B8AAAE0-4E90-421F-A983-8D414354B4E9
Content-Disposition: attachment;
	filename=devel__llvm-all-parallel-link-jobs-1.diff
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="devel__llvm-all-parallel-link-jobs-1.diff"
Content-Transfer-Encoding: 7bit

Index: devel/llvm-cheri/Makefile
===================================================================
--- devel/llvm-cheri/Makefile	(revision 477662)
+++ devel/llvm-cheri/Makefile	(working copy)
@@ -36,6 +36,7 @@ STACK_ALIGN?=	-mstack-alignment=32
 CMAKE_INSTALL_PREFIX=	${LLVM_PREFIX}
 CMAKE_ARGS+=	-DLLVM_BUILD_LLVM_DYLIB=ON \
 		-DLLVM_DEFAULT_TARGET_TRIPLE=cheri-unknown-freebsd
+CMAKE_ARGS+=	-DLLVM_PARALLEL_LINK_JOBS=1
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	CTSRD-CHERI
Index: devel/llvm-devel/Makefile
===================================================================
--- devel/llvm-devel/Makefile	(revision 477662)
+++ devel/llvm-devel/Makefile	(working copy)
@@ -46,6 +46,7 @@ CMAKE_ARGS+=	-DLLVM_HOST_TRIPLE=${CONFIGURE_TARGET
 # we need to either change the whole man-shuffle below, or simply
 # redefine CMAKE_INSTALL_MANDIR
 CMAKE_ARGS+=	-DCMAKE_INSTALL_MANDIR:PATH="share/man"
+CMAKE_ARGS+=	-DLLVM_PARALLEL_LINK_JOBS=1
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	llvm-mirror
Index: devel/llvm38/Makefile
===================================================================
--- devel/llvm38/Makefile	(revision 477662)
+++ devel/llvm38/Makefile	(working copy)
@@ -42,6 +42,7 @@ CMAKE_ARGS=
 # we need to either change the whole man-shuffle below, or simply
 # redefine CMAKE_INSTALL_MANDIR
 CMAKE_ARGS+=	-DCMAKE_INSTALL_MANDIR:PATH="share/man"
+CMAKE_ARGS+=	-DLLVM_PARALLEL_LINK_JOBS=1
 
 OPTIONS_DEFINE=	CLANG DOCS EXTRAS LIT LLD LLDB
 OPTIONS_DEFINE_amd64=	GOLD OPENMP
Index: devel/llvm40/Makefile
===================================================================
--- devel/llvm40/Makefile	(revision 477662)
+++ devel/llvm40/Makefile	(working copy)
@@ -47,6 +47,7 @@ CMAKE_ARGS+=	-DLLVM_HOST_TRIPLE=${CONFIGURE_TARGET
 # we need to either change the whole man-shuffle below, or simply
 # redefine CMAKE_INSTALL_MANDIR
 CMAKE_ARGS+=	-DCMAKE_INSTALL_MANDIR:PATH="share/man"
+CMAKE_ARGS+=	-DLLVM_PARALLEL_LINK_JOBS=1
 
 OPTIONS_DEFINE=	CLANG DOCS EXTRAS LIT LLD LLDB
 OPTIONS_DEFINE_amd64=	COMPILER_RT GOLD OPENMP
Index: devel/llvm50/Makefile
===================================================================
--- devel/llvm50/Makefile	(revision 477662)
+++ devel/llvm50/Makefile	(working copy)
@@ -47,6 +47,7 @@ CMAKE_ARGS+=	-DLLVM_HOST_TRIPLE=${CONFIGURE_TARGET
 # we need to either change the whole man-shuffle below, or simply
 # redefine CMAKE_INSTALL_MANDIR
 CMAKE_ARGS+=	-DCMAKE_INSTALL_MANDIR:PATH="share/man"
+CMAKE_ARGS+=	-DLLVM_PARALLEL_LINK_JOBS=1
 
 OPTIONS_DEFINE=	CLANG DOCS EXTRAS LIT LLD LLDB
 OPTIONS_DEFINE_amd64=	COMPILER_RT GOLD OPENMP
Index: devel/llvm60/Makefile
===================================================================
--- devel/llvm60/Makefile	(revision 477662)
+++ devel/llvm60/Makefile	(working copy)
@@ -47,6 +47,7 @@ CMAKE_ARGS+=	-DLLVM_HOST_TRIPLE=${CONFIGURE_TARGET
 # we need to either change the whole man-shuffle below, or simply
 # redefine CMAKE_INSTALL_MANDIR
 CMAKE_ARGS+=	-DCMAKE_INSTALL_MANDIR:PATH="share/man"
+CMAKE_ARGS+=	-DLLVM_PARALLEL_LINK_JOBS=1
 
 OPTIONS_DEFINE=	CLANG DOCS EXTRAS LIT LLD LLDB
 OPTIONS_DEFINE_amd64=	COMPILER_RT GOLD OPENMP
Index: devel/llvm70/Makefile
===================================================================
--- devel/llvm70/Makefile	(revision 477662)
+++ devel/llvm70/Makefile	(working copy)
@@ -47,6 +47,7 @@ CMAKE_ARGS+=	-DLLVM_HOST_TRIPLE=${CONFIGURE_TARGET
 # we need to either change the whole man-shuffle below, or simply
 # redefine CMAKE_INSTALL_MANDIR
 CMAKE_ARGS+=	-DCMAKE_INSTALL_MANDIR:PATH="share/man"
+CMAKE_ARGS+=	-DLLVM_PARALLEL_LINK_JOBS=1
 
 OPTIONS_DEFINE=	CLANG DOCS EXTRAS LIT LLD LLDB
 OPTIONS_DEFINE_amd64=	COMPILER_RT GOLD OPENMP

--Apple-Mail=_7B8AAAE0-4E90-421F-A983-8D414354B4E9--

--Apple-Mail=_6ADE5990-1E46-4E8D-BFB1-AC2177E2A668
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.2

iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCW3r7bAAKCRCwXqMKLiCW
o7wPAJ4tMmNVYgpFHsA2jq8rT58mHhD+dACfYo+mPuqiElP2fOpyVHArE5VsLow=
=9NYZ
-----END PGP SIGNATURE-----

--Apple-Mail=_6ADE5990-1E46-4E8D-BFB1-AC2177E2A668--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4ECEE41C-E1FF-4B6A-A138-3BDDB6552A7D>