From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org)
	by finch.gentoo.org with esmtp (Exim 4.60)
	(envelope-from <gentoo-dev+bounces-38031-garchives=archives.gentoo.org@lists.gentoo.org>)
	id 1MwxHA-0004MU-1N
	for garchives@archives.gentoo.org; Sun, 11 Oct 2009 12:11:48 +0000
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 71720E05E8;
	Sun, 11 Oct 2009 12:11:46 +0000 (UTC)
Received: from mail-fx0-f220.google.com (mail-fx0-f220.google.com [209.85.220.220])
	by pigeon.gentoo.org (Postfix) with ESMTP id 0B30AE05E8
	for <gentoo-dev@lists.gentoo.org>; Sun, 11 Oct 2009 12:11:45 +0000 (UTC)
Received: by fxm20 with SMTP id 20so7745866fxm.14
        for <gentoo-dev@lists.gentoo.org>; Sun, 11 Oct 2009 05:11:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=gamma;
        h=domainkey-signature:mime-version:received:in-reply-to:references
         :date:message-id:subject:from:to:content-type;
        bh=lnZkTLJ+FI+ILNWGvUW1iEdXDjmtEJeAeaGZsh39nUQ=;
        b=u/WOFqjvE31TFbMX0bjuOCCU3oh20AZcsstU6ydLDQWy6SrD5ucX+zu7rGoappsLQ9
         v0R9/JLCwHkQspHv7FI7N3gyzR3Uudlu1hLQCdPZcDqKXE3KOw5AGppCWRkGvG7nLnNj
         2Jq7ZEdK9a4W/FSW9BCqCnX8d5Z4J8AoXCOEY=
DomainKey-Signature: a=rsa-sha1; c=nofws;
        d=gmail.com; s=gamma;
        h=mime-version:in-reply-to:references:date:message-id:subject:from:to
         :content-type;
        b=UUF4kivOVsiUmHCcTPFvmnNrgnVn6NU4/SlOGZUrlgv0Goh1XaIKKDUTTxAjzjFw4N
         h7cb7mWSL/jw8JCX7CbcVwKLK2raOchrCcF9ECTUlNkEIhAqTOakVJWfKjEFW6Wq1kBC
         aS6XxFdLR7hFGfe+Vozu4mJfXJ7IlZOvQo0xU=
Precedence: bulk
List-Post: <mailto:gentoo-dev@lists.gentoo.org>
List-Help: <mailto:gentoo-dev+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-dev+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-dev+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-dev.gentoo.org>
X-BeenThere: gentoo-dev@lists.gentoo.org
Reply-to: gentoo-dev@lists.gentoo.org
MIME-Version: 1.0
Received: by 10.86.235.14 with SMTP id i14mr4275330fgh.52.1255263105415; Sun, 
	11 Oct 2009 05:11:45 -0700 (PDT)
In-Reply-To: <20091011124035.768d24fa@gentoo.org>
References: <20091011124035.768d24fa@gentoo.org>
Date: Sun, 11 Oct 2009 08:11:45 -0400
Message-ID: <deaa866a0910110511x354e589fw9b1f8a6ce83fa6d3@mail.gmail.com>
Subject: Re: [gentoo-dev] [RFC] new global useflags: static-libs and dbi
From: Robert Bradbury <robert.bradbury@gmail.com>
To: gentoo-dev@lists.gentoo.org
Content-Type: multipart/alternative; boundary=001485e6fe3c7f7be60475a7b7d5
X-Archives-Salt: 05ca4539-bc8a-4a98-9f76-fa1b10ebaf35
X-Archives-Hash: f5815a24be78c9cfc1e1b2fa5d390537

--001485e6fe3c7f7be60475a7b7d5
Content-Type: text/plain; charset=ISO-8859-1

On Sun, Oct 11, 2009 at 6:40 AM, Markus Meier <maekke@gentoo.org> wrote:

>
> I'm trying to clean up use.local.desc a bit, so here we go:
>
> static-libs (used 10 times):
> Build static libraries
>
> dbi (used 7 times):
> Enable dev-db/libdbi (database-independent abstraction layer) support
>

In my seemingly long running request for library rationality / maximal
usefulness, I would like to comment that a needed general trend is towards
*all* packages (at least nearly all) that use "configure" as it is commonly
distributed and install libraries in /usr/lib)  should have a "static-libs"
build option which determines whether or not the configure option
"--enable-static" / "--disable-static" is used.

Gentoo systems have ~1000 static (.a) libraries in /usr/lib which on most
systems are *never* used.  One could probably even get rid of the glibc
static libraries unless one is building the /bin, /sbin, /etc core and admin
programs in "static" mode.  This is because almost all system programs use
the shared libraries (in spite of the delay it will generally impose on
program startup time) and the risk it imposes for fault tolerant system
operations (corrupt a disk block in a shared library and you may have to
re-install the entire system rather than simply rebuild a package).
 Needless to say these libraries under normal conditions increase the size
of installs, download times for distributions and slow operations (by
increasing seek times on /usr).

Which is not to say that static libraries are useless.  Indeed for creating
program images where one wants robust regression testing across versions
(e.g. browser evolution across years) or scientific programs where a static
image is essential for the verification or reproduction of results the
static libraries (and the building of static programs) is essential.

As the current gentoo release sits, libraries/packages are almost always
effectively configured as "--enable-static --enable-shared" [1].  The
problem with this is that for a majority of users they do not need
"--enable-static" and that for developers who would really like to build
static programs (see the above paragraph) that option is currently
unavailable [2] using the emerge process.

So this is my vote for improving this situation over time, esp. with respect
to adding "static-libs" to all of the X library ebuilds.  The gradual
migration of the distributed system to a "-static-libs" state is highly
desirable as well.

I note, because I happen to have it handy, that Ubuntu, "as installed" is
almost completely in a "-static-libs" state with the exception of glibc
(i.e. only 20 .a files in /usr/lib).

Robert Bradbury

1. It is worth noting in my experience there is some variation across
packages as to what the "default" library build option is and one doesn't
know this unless one examines the configure file carefully or attempts to
build the packages (usually bypassing the emerge process) all 3 ways.
2. The most glaring example being the glib and gtk+ packages where the lack
of static libraries prevents the building of "static" programs, e.g.
firefox, chrome, etc. which use X windows.

--001485e6fe3c7f7be60475a7b7d5
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<br><div class=3D"gmail_quote">On Sun, Oct 11, 2009 at 6:40 AM, Markus Meie=
r <span dir=3D"ltr">&lt;<a href=3D"mailto:maekke@gentoo.org">maekke@gentoo.=
org</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
I&#39;m trying to clean up use.local.desc a bit, so here we go:<br>
<br>
static-libs (used 10 times):<br>
Build static libraries<br>
<br>
dbi (used 7 times):<br>
Enable dev-db/libdbi (database-independent abstraction layer) support<br>
</blockquote></div><div><br></div><div>In my seemingly long running request=
 for library rationality / maximal usefulness, I would like to comment that=
 a needed general trend is towards *all* packages (at least nearly all) tha=
t use &quot;configure&quot; as it is commonly distributed and install libra=
ries in /usr/lib) =A0should have a &quot;static-libs&quot; build option whi=
ch determines whether or not the configure option &quot;--enable-static&quo=
t; / &quot;--disable-static&quot; is used.<br>
</div><div><br></div><div>Gentoo systems have ~1000 static (.a) libraries i=
n /usr/lib which on most systems are *never* used. =A0One could probably ev=
en get rid of the glibc static libraries unless one is building the /bin, /=
sbin, /etc core and admin programs in &quot;static&quot; mode. =A0This is b=
ecause almost all system programs use the shared libraries (in spite of the=
 delay it will generally impose on program startup time) and the risk it im=
poses for fault tolerant system operations (corrupt a disk block in a share=
d library and you may have to re-install the entire system rather than simp=
ly rebuild a package). =A0Needless to say these libraries under normal cond=
itions increase the size of installs, download times for distributions and =
slow operations (by increasing seek times on /usr).</div>
<div><br></div><div>Which is not to say that static libraries are useless. =
=A0Indeed for creating program images where one wants robust regression tes=
ting across versions (e.g. browser evolution across years) or scientific pr=
ograms where a static image is essential for the verification or reproducti=
on of results the static libraries (and the building of static programs) is=
 essential.</div>
<div><br></div><div>As the current gentoo release sits, libraries/packages =
are almost always effectively configured as &quot;--enable-static --enable-=
shared&quot; [1]. =A0The problem with this is that for a majority of users =
they do not need &quot;--enable-static&quot; and that for developers who wo=
uld really like to build static programs (see the above paragraph) that opt=
ion is currently unavailable [2] using the emerge process.</div>
<div><br></div><div>So this is my vote for improving this situation over ti=
me, esp. with respect to adding &quot;static-libs&quot; to all of the X lib=
rary ebuilds. =A0The gradual migration of the distributed system to a &quot=
;-static-libs&quot; state is highly desirable as well.</div>
<div><br></div><div>I note, because I happen to have it handy, that Ubuntu,=
 &quot;as installed&quot; is almost completely in a &quot;-static-libs&quot=
; state with the exception of glibc (i.e. only 20 .a files in /usr/lib).</d=
iv>
<div><br></div><div>Robert Bradbury</div><div><br></div><div>1. It is worth=
 noting in my experience there is some variation across packages as to what=
 the &quot;default&quot; library build option is and one doesn&#39;t know t=
his unless one examines the configure file carefully or attempts to build t=
he packages (usually bypassing the emerge process) all 3 ways.</div>
<div>2. The most glaring example being the glib and gtk+ packages where the=
 lack of static libraries prevents the building of &quot;static&quot; progr=
ams, e.g. firefox, chrome, etc. which use X windows.</div>

--001485e6fe3c7f7be60475a7b7d5--