[RFC] Un-staticise the toolchain

Ruslan Ermilov ru at freebsd.org
Fri Apr 27 10:58:08 UTC 2012


On Fri, Apr 27, 2012 at 11:58:59AM +0300, Konstantin Belousov wrote:
> On Thu, Apr 26, 2012 at 05:41:40PM +0400, Ruslan Ermilov wrote:
> > On Thu, Apr 26, 2012 at 12:35:48PM +0300, Konstantin Belousov wrote:
[...]
> > > Patch below makes the dynamically linked toolchain a default, adding an
> > > WITHOUT_SHARED_TOOLCHAIN build-time option for real conservators.
> > > 
> > > I did not looked in details why including bsd.own.mk makes NO_MAN
> > > non-functional. Please see the diffs for gnu/usr.bin/cc1*/Makefile.
> > 
> > Because you include bsd.own.mk before NO_MAN is defined, and the way
> > how .if works in make(1).
> 
> What is the 'right' thing to do then ?
> 
> Postpone the inclusion of bsd.own.mk after NO_MAN definition ? This makes
> the .if $MK_SHARED_TOOLCHAIN to not work.
> 
> Or, continue to do what I have done, using 'MAN=' instead ?

Two ways, both are demonstrated by gnu/lib/libgcov/Makefile:

- Define NO_* before including bsd.own.mk so it sets the
  corresponding MK_* variable appropriately, and before testing
  the MK_*.  

- Remove NO_*, include bsd.own.mk, then set MK_MAN=no.

(The nearby gnu/lib/libssp/Makefile has a similar problem with
NO_PROFILE.)

> N.B. I will commit the change, with defaults kept to build toolchain static,
> just to avoid bikeshed.

I think this is the right approach.

Regarding your patch...

By placing SHARED_TOOLCHAIN to __DEFAULT_NO_OPTIONS list in
bsd.own.mk, you already had MK_SHARED_TOOLCHAIN set to "no" by
default, which preserves the current status quo of building
toolchain static.  But you misspelled
tools/build/options/WITH_STATIC_TOOLCHAIN, probably as the result
of iteratively modifying your change.  The option and this file
should be named WITH_SHARED_TOOLCHAIN, the opposite of the
default.  Anyway, checking that the resulting src.conf(5) manpage
sounds sensible is a good idea.  As for the contents of this file,
I wouldn't call "ar/ranlib" a "librarian" but rather a "library
archives manager", as per POSIX.  Your diff also suggests that it
misses a newline at EOF.


More information about the freebsd-current mailing list