On 2017-Mar-27, at 5:53 AM, Dimitry Andric <dim at FreeBSD.org> wrote: > 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 Interesting. WITH_DEBUG's description in the file does not mention that stripping of optimization flags: # WITH_DEBUG - If set, debugging flags are added to CFLAGS and the # binaries don't get stripped by INSTALL_PROGRAM or # INSTALL_LIB. Besides, individual ports might # add their specific to produce binaries for debugging # purposes. You can override the debug flags that are # passed to the compiler by setting DEBUG_FLAGS. It is # set to "-g" at default. I'll probably give myself an override that I can specify in /etc/make.conf , such as: # svnlite diff /usr/ports/Mk/bsd.port.mk Index: /usr/ports/Mk/bsd.port.mk =================================================================== --- /usr/ports/Mk/bsd.port.mk (revision 436747) +++ /usr/ports/Mk/bsd.port.mk (working copy) _at__at_ -1646,7 +1646,11 _at__at_ STRIP_CMD= ${TRUE} .endif DEBUG_FLAGS?= -g +.if defined(ALLOW_OPTIMIZATIONS_FOR_WITH_DEBUG) +CFLAGS:= ${CFLAGS} ${DEBUG_FLAGS} +.else CFLAGS:= ${CFLAGS:N-O*:N-fno-strict*} ${DEBUG_FLAGS} +.endif .if defined(INSTALL_TARGET) INSTALL_TARGET:= ${INSTALL_TARGET:S/^install-strip$/install/g} .endif === Mark Millard markmi at dsl-only.netReceived on Mon Mar 27 2017 - 19:11:52 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:11 UTC