[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