public inbox for libffi-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Kaz Kylheku <kaz@kylheku.com>
To: dancol@dancol.org
Cc: DJ Delorie <dj@redhat.com>, Anthony Green <green@moxielogic.com>,
	DJ Delorie via Libffi-discuss <libffi-discuss@sourceware.org>
Subject: Re: Change in libffi behaviour -- large struct args
Date: Tue, 31 May 2022 09:55:51 -0700	[thread overview]
Message-ID: <264bcf76fd6434360ab7d763c2a7f68f@kylheku.com> (raw)
In-Reply-To: <1811b03a668.2829.cc5b3318d7e9908e2c46732289705cb0@dancol.org>

On 2022-05-31 09:47, dancol@dancol.org wrote:
> On May 31, 2022 11:53:56 DJ Delorie via Libffi-discuss <libffi-discuss@sourceware.org> wrote:
> 
>> While this is technically an ABI change, if the "old" ABI never worked,
>> I can't see how this would break anything by changing.
>>
>> I will add that passing structs is likely more complex than you think ;-)
> 
> The problem is that whether the old API was broken or not, changing it can break working code. What do the libffi people think about using symbol versioning?

ELF symbol versioning keeps old binaries working.

Newly recompiled programs will break in cases when recompilation
alone doesn't fix the issue.

Versioning works really well for things like new members being added to
a structure, where newly recompiled code picks up the new declaration
and so recompiling == fixing.

It won't work in a situation where some FFI-using code has worked around
for some libffi behavior and expects that not to be moving target;
then someone has to fix the code. People recompile code all the time without
fixing anything in it.





  reply	other threads:[~2022-05-31 16:55 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-28 13:40 Anthony Green
2022-05-28 15:38 ` dancol
2022-05-28 15:50   ` Anthony Green
2022-05-29 14:09 ` Anthony Green
2022-05-31 15:53 ` DJ Delorie
2022-05-31 16:47   ` dancol
2022-05-31 16:55     ` Kaz Kylheku [this message]
2022-05-31 18:59   ` Anthony Green
2022-05-31 23:16     ` DJ Delorie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=264bcf76fd6434360ab7d763c2a7f68f@kylheku.com \
    --to=kaz@kylheku.com \
    --cc=dancol@dancol.org \
    --cc=dj@redhat.com \
    --cc=green@moxielogic.com \
    --cc=libffi-discuss@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).