Re: git: c5c9d980c4b0 - main - libc/csu: rename ignore_init.c to libc_start1.c

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Sat, 18 Mar 2023 06:36:34 UTC
On Sat, Mar 18, 2023 at 03:46:36AM +0000, Jessica Clarke wrote:
> On 18 Mar 2023, at 03:44, Charlie Li <vishwin@freebsd.org> wrote:
> > 
> > Konstantin Belousov wrote:
> >>     libc/csu: rename ignore_init.c to libc_start1.c
> >>          The current name was a historical curiosity that started when init array
> >>     support was added, and then the file appeared a convenient place for the
> >>     addition of the MI common code to csu.  It is now referenced by name in
> >>     single place and the rename is easy, so do it.
> >>          Sponsored by:   The FreeBSD Foundation
> >>     MFC after:      3 weeks
> >> ---
> >>  lib/libc/csu/Makefile.inc                     | 2 +-
> >>  lib/libc/csu/{ignore_init.c => libc_start1.c} | 0
> >>  2 files changed, 1 insertion(+), 1 deletion(-)
> > Seems like an ABI break. Anything compiled after this but ran on an earlier-by-revision-but-same __FreeBSD_version complains with 'Undefined symbol "__libc_start1@FBSD_1.7"'
> 
> It’s not a break, just new ABI. Same as adding a new function, just
> everything automatically uses it.
Well it is break of ABI indeed, but it is backward-compatible.  We never
guaranteed forward-compatibility, and hopefully never will.  Doing so would
mean that FreeBSD is frozen.

> 
> It’s true that __FreeBSD_version needs bumping if it hasn’t already
> been though.
> 

I bumped the version to please the public, but I do not see much use for
this bump, same as for many other instances of the bump.  The new interface
presence is declared by the export of specifically-versioned symbol in
libc, and really this export, instead of some random osversion reported
from unrelated software artifact (kernel) is what important.