Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp2891861pxy; Mon, 3 May 2021 10:17:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwqJjmQlhxqvlxY5m943Mi8Y/HZsBGzqKlUp9rG5XKuO/Bk1qbZZZNYeemobr/Ta4oFDGrP X-Received: by 2002:a17:90a:5207:: with SMTP id v7mr10603883pjh.87.1620062243412; Mon, 03 May 2021 10:17:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620062243; cv=none; d=google.com; s=arc-20160816; b=vMHd1MGccCQddlUYkAFOsaalGUEGmBKq9bTOITBiexzfPDuX2W0fOGatpv5Q418DNh f2OviktXNqBSRd2c4TbnrGfLAQtjYZ2UgzAUOob2VQFjIv3g1/+hxXkUUHsggfhBxspp v5HK+4WubeDSjijNNO8PgwTxzVxurVS74NyStxRhdnK3+Zf79PIp3BjVtIf0NZYj3oQ2 pdNI65UXZ8WF4RBPrumaw5o/C6aLx2AfBePeMbY0mW1Y3E+SZVB2FaSHDrgOpyFVJguu uEdkcShlgBuEq6edkL5rbOrSo+B/nOrf7yspcm0klQ1wJn5fbF2X9h1waD9TsztmosQL 3AfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:references:message-id :in-reply-to:subject:cc:to:from:date; bh=RYylb18Ldy8r3VSFWHeUGFk3NA8FfaSNFSAHOFLZcko=; b=VLnTlL+gU2Q6PC9kNOt5eqA5deu+KbiVec6WRYIuJqZRF2UYw48Sisswlftx1BEw3x 6OQf3SltZdyLyttvf13BbX801N15EDBWVUani2+1gchLRI87VvP0441kxlBM5sPtn4QX WFwBs6h428lH4cGMOzZh4wmcsAOOChP8B08nNHK4Fr3znbbDlRdPqMs5pElYstoGFxG3 ZlY3VJPrbT2tt+oMMalzC5A+62uWrm1qIVM1ulvm0lq5o4vD9j8MIWwTFYv3YjGhcu0I PtaGOEZYArKY1W6zkdeFSVdyhgmUhqKVqFWs51zcevcxWjksiC2vO1Qsj6zEOjQ6bNYZ Zprw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y5si312951pll.69.2021.05.03.10.17.10; Mon, 03 May 2021 10:17:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231995AbhECRR3 (ORCPT + 99 others); Mon, 3 May 2021 13:17:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58632 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231613AbhECRRU (ORCPT ); Mon, 3 May 2021 13:17:20 -0400 Received: from angie.orcam.me.uk (angie.orcam.me.uk [IPv6:2001:4190:8020::4]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 940DCC06138C for ; Mon, 3 May 2021 10:14:27 -0700 (PDT) Received: by angie.orcam.me.uk (Postfix, from userid 500) id CFF9792009C; Mon, 3 May 2021 19:14:25 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by angie.orcam.me.uk (Postfix) with ESMTP id C372A92009B; Mon, 3 May 2021 19:14:25 +0200 (CEST) Date: Mon, 3 May 2021 19:14:25 +0200 (CEST) From: "Maciej W. Rozycki" To: Theodore Ts'o cc: Linus Torvalds , Tom Stellard , Nick Desaulniers , Masahiro Yamada , Nathan Chancellor , Linux Kernel Mailing List , clang-built-linux , Fangrui Song , Serge Guelton , Sylvestre Ledru Subject: Re: Very slow clang kernel config .. In-Reply-To: Message-ID: References: <1c5e05fa-a246-9456-ff4e-287960acb18c@redhat.com> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 3 May 2021, Theodore Ts'o wrote: > On Mon, May 03, 2021 at 10:38:12AM -0400, Theodore Ts'o wrote: > > On Mon, May 03, 2021 at 03:03:31AM +0200, Maciej W. Rozycki wrote: > > > > > > People went through great efforts to support shared libraries, sacrificed > > > performance for it even back then when the computing power was much lower > > > than nowadays. > > > > That was because memory was *incredibly* restrictive in those days. > > My first Linux server had one gig of memory, and so shared libraries > > provided a huge performance boost --- because otherwise systems would > > be swapping or paging their brains out. > > Correction. My bad, my first Linux machine had 16 megs of memory.... There was memory and there was storage. Back in 1990s I maintained Linux machines with as little as 4MiB of RAM or 2MiB even with some 80386SX box, and as little as 40MB HDD or 64MB SSD (which was pretty damn expensive and occupied the whole 3.5" drive space in the PATA form factor). Yes, 2MiB used to be the minimum for x86 around 2.0.x, and you could actually boot a system multiuser with as little RAM. And obviously dynamic executables took less storage space than static ones, so if you had more than just a couple, the saving balanced the overhead of the shared library files used. But I agree this is only relevant nowadays in certain specific use cases (which will often anyway choose to run things like BusyBox plus maybe just a bunch of tools, and won't see any benefit from memory sharing or storage saving). > > However, these days, many if not most developers aren't capable of the > > discpline needed to maintained the ABI stability needed for shared > > libraries to work well. I can think several packages where if you > > used shared libraries, the major version number would need to be > > bumped at every releases, because people don't know how to spell ABI, > > never mind be able to *preserve* ABI. Heck, it's the same reason that > > we don't promise kernel ABI compatibility for kernel modules! > > > > https://www.kernel.org/doc/Documentation/process/stable-api-nonsense.rst > > > > And in the case of Debian, use of shared libraries means that every > > time you release a new version of, say, f2fs-tools, things can get > > stalled for months or in one case, over a year, due to the new package > > review process (a shared library version bump means a new binary > > package, and that in turn requires a full review of the entire source > > package for GPL compliance from scratch, and f2fs-tools has bumped > > their shared library major version *every* *single* *release*) --- > > during which time, security bug fixes were being held up due to the > > new package review tarpit. Well, SONAME maintenance is indeed a hassle, but to solve this problem we've had symbol versioning for decades now, ever since we've switched from libc 5 to glibc 2.0. And glibc hasn't bumped the SONAMEs of the individual libraries ever since, while maintaining all the old ABIs (not necessarily available to link against) and adding new ones as required. So it has been pretty easy to maintain ABI compatibility nowadays without the need to carry multiple library versions along, as long as you actually care to do so. > > If people could actually guarantee stable ABI's, then shared libraries > > might make sense. E2fsprogs hasn't had a major version bump in shared > > libraries for over a decade (although some developers whine and > > complain about how I reject function signature changes in the > > libext2fs library to provide that ABI stability). But how many > > userspace packages can make that claim? That's actually the matter of general software quality and the competence of software developers. I have no good answer except for a suggestion to see this talk: . Maciej