This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: build glibc without support for utimensat/futimens and epoll?


On 03/29/2018 10:04 AM, Florian Weimer wrote:
> On 03/29/2018 04:58 PM, Carlos O'Donell wrote:
>> On 03/29/2018 03:43 AM, Florian Weimer wrote:
>>> On 03/23/2018 10:15 PM, Carlos O'Donell wrote:
>>>> You cannot remove functions from glibc, they are part of the ABI and API.
>>>
>>> If that's the case, then why are you working on the sysroot linkage model? 8-)
>>
>> The sysroot linkage model, for those that don't know, is part of this project:
>> https://fedoraproject.org/wiki/PlatformInterface, that I'm working on.
>>
>> The idea behind a sysroot linkage is:
>>
>> * How do we provide strong assurances that ABI/APIs are stable in a distribution
>>    regardless of the installed glibc.
>>
>>    - You have two options to solve this, either link against a fixed ABI/API glibc
>>      in a sysroot.
>>
>>    - Use something like libabigail to ensure you never deviate from ABI in a
>>      released glibc.
>>
>> * How do we provide the ability to upgrade glibc without impacting what you link
>>    against normally?
>>
>>    - Secondary goal would be to link against that new glibc.
>>
>> Within those goals I believe you are questioning:
>>
>> If you can't remove functions from glibc, then why work on providing alternate
>> glibc's to link against?
> 
> I think a suitable sysroot would likely address Ben's need—upgrade
> the system glibc to 2.19 or whatever version is needed to run the
> desired applications, but continue to link your own programs against
> the sysroot glibc with version 2.3 (or whatever matches the original
> glibc version).

I think that Ben doesn't need glibc 2.19 at all.

Ben appears to be building a newer version of Perl, Python 3, and X
from scratch.

You have one of two options for that rebuild:

(a) Using the existing CentOS 5 system tools.

or 

(b) Using a sysroot with newer tools you built.

I will assume that (a) turned out to be too old to build the needed
new software without custom patching.

However, it *also* turns out that the new software, even when built
with (b) makes assumptions about functioning APIs without checking
error returns. This failure mode is very common, and you and I have
discussed this as the primary reason we don't backport things into
older Fedora releases where packages may unconditionally enable support
for features the kernel doesn't yet have e.g. backport O_TMPFILE constants
while we wait for the kernel to backport the support.

So the sysroot linkage model does not help here in the traditional way
it is to be applied.

> Or put differently, the primary motivation behind the sysroot linkage
> model is avoiding Ben's problem.

I assume that Ben could not build Perl, Python 3, and X with the system
tools because they were too old, so a glibc 2.3 sysroot would not help.

Even if we had CentOS sysroot linkage model in place today he would at
most have saved himself the work of building a new sysroot, but his
applications would still fail because the kernel is too old to provide
the features the application expects without checking.

What did I miss?

-- 
Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]