Re: [RFC] Un-staticise the toolchain

From: Chris Rees <utisoft_at_gmail.com>
Date: Thu, 26 Apr 2012 20:01:08 +0100
On Apr 26, 2012 2:42 PM, "Ruslan Ermilov" <ru_at_freebsd.org> wrote:
>
> On Thu, Apr 26, 2012 at 12:35:48PM +0300, Konstantin Belousov wrote:
> > I think it is time to stop building the toolchain static. I was told
that
> > original reasoning for static linking was the fear of loosing the
ability
> > to recompile if some problem appears with rtld and any required dynamic
> > library. Apparently, current dependencies are much more spread, e.g.
/bin/sh
> > is dynamically linked, and statically linked make does not solve
anything.
>
> ------------------------------------------------------------------------
> r76801 | sobomax | 2001-05-18 13:05:56 +0400 (Fri, 18 May 2001) | 6 lines
>
> By default build make(1) as a static binary. It costs only 100k of
additional
> disk space, buf provides measureable speed increase for make-intensive
> operations, such as pkg_version(1), `make world' and so on.
>
> MFC after:      1 week
>
> ------------------------------------------------------------------------
>
> Have things changed enough that the above is not true anymore?
Well, the most make(1)-intensive test I can think of is make index, so some
results from a quick test:

hydra# uname -a
FreeBSD hydra.bayofrum.net 9.0-RELEASE FreeBSD 9.0-RELEASE #7: Sun Apr 22
21:02:48 BST 2012     root_at_hydra.bayofrum.net:/usr/obj/usr/src/sys/HYDRA
amd64

hydra# cd /usr/src/usr.bin/make && make NO_SHARED=yes && cp make
~/bin/make-static >& /dev/null

hydra# rm make && make NO_SHARED=no && cp make ~/bin/make-dynamic >&
/dev/null

hydra# file ~/bin/make-*
/home/chris/bin/make-dynamic: ELF 64-bit LSB executable, x86-64, version 1
(FreeBSD), dynamically linked (uses shared libs), for FreeBSD 9.0 (900044),
not stripped
/home/chris/bin/make-static:  ELF 64-bit LSB executable, x86-64, version 1
(FreeBSD), statically linked, for FreeBSD 9.0 (900044), not stripped

hydra# cd /usr/ports && time make MAKE=~crees/bin/make-static index

Generating INDEX-9 - please wait.. Done.
729.770u 120.841s 7:45.10 182.8%        920+2676k 5251+116484io 7750pf+0w

hydra# time make MAKE=~crees/bin/make-dynamic index

Generating INDEX-9 - please wait.. Done.
771.320u 133.540s 8:07.83 185.4%        609+2918k 474+116484io 570pf+0w

We have a 10% slowdown (or 11% speedup, depending on your figures) when
using a dynamically loaded make.

Chris
Received on Thu Apr 26 2012 - 17:01:40 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:26 UTC