Re: Why is /sbin/init dynamically linked?

Bakul Shah <[email protected]>
Newsgroups gmane.os.freebsd.devel.hackers
Message-ID <[email protected]>

> On Aug 21, 2026, at 8:49 AM, Alan Somers <[email protected]> wrote:
> 
> On Fri, Aug 21, 2026 at 9:45 AM Bakul Shah <[email protected]> wrote:
>> 
>> I was surprised to see this:
>> 
>> $ ldd /sbin/init
>> /sbin/init:
>>        libutil.so.10 => /lib/libutil.so.10 (0x3f6d9f550000)
>>        libcrypt.so.5 => /lib/libcrypt.so.5 (0x3f6d9f669000)
>>        libc.so.7 => /lib/libc.so.7 (0x3f6da0c00000)
>>        libmd.so.7 => /lib/libmd.so.7 (0x3f6da01b6000)
>>        libsys.so.7 => /lib/libsys.so.7 (0x3f6da3370000)
>> 
>> Why was this change made? [Seems to be after 15.1-release]
>> 
>> When one of these libraries breaks, you can't even boot
>> single user. In this case why even bother with /rescue.
>> 
>> [Discovered this when init crashed for someone]
> 
> Looks like this:
> https://github.com/freebsd/freebsd-src/commit/24d887436dcd5b6c18a7505e477c79cae3002c3a

from the commit log:

This makes it easier to downgrade kernel when it stops
providing some syscall required by libc. In this case, it is
enough to downgrade libc as well, our crt1 delegates all
non-trivial work to libc::__libc_start1(). With static init,
the /sbin/init should be downgraded as well, which might be
not easy. This does not mean that we support forward
compatibility.

I don't understand what this is trying to say. At any rate how *often*
does a kernel have to be "downgraded" that we are making init more fragile? Why can't the "downgrading" be done by providing a stub
syscall implementation (for a duration) that always returns an error?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.