Re: FYI: what it takes for RAM+swap to build devel/llvm40 with 4 processors or cores and WITH__DEBUG= (powerpc64 example)

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Mon, 27 Mar 2017 14:53:39 +0200
On 27 Mar 2017, at 12:25, Mark Millard <markmi_at_dsl-only.net> wrote:
> 
> On 2017-Mar-27, at 2:41 AM, Dimitry Andric <dim_at_FreeBSD.org> wrote:
>> On 26 Mar 2017, at 23:36, Mark Millard <markmi_at_dsl-only.net> wrote:
...
>>> Installed packages to be REMOVED:
>>> 	llvm40-4.0.0.r4
>>> 
>>> Number of packages to be removed: 1
>>> 
>>> The operation will free 49 GiB.
>> 
>> Yes, this is big.  But there is no real need to build the llvm ports
>> with debug information, unless you want to hack on llvm itself.  And
>> in that case, you are better served by a Subversion checkout or Git
>> clone from upstream instead.
...
> Historically unless something extreme like this ends up
> involved I build everything using WITH_DEBUG=  or explicit
> -g's in order to have better information on any failure.

The problem with the ports implementation of WITH_DEBUG is that it
always disables all optimizations, without a possibility to override.
Which bloats the resulting object files, libraries and executables, and
especially so for large C++ projects such as LLVM.

I can recommend the following workaround.  If you want to build a port
with optimizations disabled, you can always pass -O0 in CFLAGS.

-Dimitry

Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk	(revision 436685)
+++ Mk/bsd.port.mk	(working copy)
_at__at_ -1646,7 +1646,7 _at__at_ MAKE_ENV+=	DONTSTRIP=yes
 STRIP_CMD=	${TRUE}
 .endif
 DEBUG_FLAGS?=	-g
-CFLAGS:=		${CFLAGS:N-O*:N-fno-strict*} ${DEBUG_FLAGS}
+CFLAGS:=		${CFLAGS} ${DEBUG_FLAGS}
 .if defined(INSTALL_TARGET)
 INSTALL_TARGET:=	${INSTALL_TARGET:S/^install-strip$/install/g}
 .endif


Received on Mon Mar 27 2017 - 10:53:48 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:10 UTC