public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Simon Marchi <simark@simark.ca>
To: Nix <nix@esperi.org.uk>,
	Simon Marchi via Gdb-patches <gdb-patches@sourceware.org>
Cc: "Jose E. Marchesi" <jose.marchesi@oracle.com>,
	Tom Tromey <tom@tromey.com>,
	indu.bhagat@oracle.com, elena.zannoni@oracle.com,
	binutils@sourceware.org
Subject: Re: [PATCH] gdb: use libtool in GDB_AC_CHECK_BFD
Date: Fri, 11 Nov 2022 08:51:21 -0500	[thread overview]
Message-ID: <c6b69423-ceb9-58d4-c7c8-bd26eee3282e@simark.ca> (raw)
In-Reply-To: <87iljlwrze.fsf@esperi.org.uk>

> It's historical (it was there in the Solaris days, IIRC) and alas it has
> users, and it has a use case (see below). We *could* rip it out and fix
> the users, but that does mean breaking the API and bumping soname and
> this seems like a rather petty reason to do so to me. (But then I know
> I'm a stable-API fetishist.)
> 
>>                                               Imagine you wanted to
>> switch to another gz compression library without changing your API.  It
>> would be nicer if zlib was just an implementation detail here.  For
>> instance, you could take a plain fd and use gzdopen internally to open a
>> gzFile around it.
> 
> I think the intent here was that people who were already writing stuff
> through a gzFile could pass it into this to write CTF in as well. That
> doesn't work at all well if you pass in the underlying fd and do a
> gzdopen (you end up with zlib thinking there are two gzip streams
> underway simultaneously on the same fd, and a total mess results).
> 
> So really you'd need *both* :)
> 
> 
> But really this whole class of API made more sense back in the past when
> zlib was the only compression library worth speaking of. These days
> you'd probably prefer to hand back the memory buffer and ask the caller
> to do the compression themselves using whatever mechanism they prefer --
> but the fact remains that this thing is in the API and I'd rather not
> break it for such a minor reason if there is a non-totally-horrible
> alternative.

Thanks for the details.

Another idea I thought of, which would still break the API (in that
callers would need to include a new source file) but not the ABI would
be to put that declaration in a separate header, say ctf-gzip-api.h.
Users of ctf-api.h would not have to deal with zlib.  Users of
ctf-gzip-api.h would have to deal with zlib, but that's fine because
they are consciously using it.

Simon

  reply	other threads:[~2022-11-11 13:51 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20221107194634.1313150-1-jose.marchesi@oracle.com>
     [not found] ` <5e940b15-cd5c-83b2-0bdd-9afa27b5f197@simark.ca>
     [not found]   ` <87bkpeuae6.fsf@oracle.com>
     [not found]     ` <875yfmztd6.fsf@tromey.com>
     [not found]       ` <87sfiqsr7m.fsf@oracle.com>
2022-11-10 17:11         ` Nick Alcock
2022-11-10 17:46           ` Simon Marchi
2022-11-11 13:17             ` Nix
2022-11-11 13:51               ` Simon Marchi [this message]
2022-11-14 13:56                 ` Nick Alcock

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=c6b69423-ceb9-58d4-c7c8-bd26eee3282e@simark.ca \
    --to=simark@simark.ca \
    --cc=binutils@sourceware.org \
    --cc=elena.zannoni@oracle.com \
    --cc=gdb-patches@sourceware.org \
    --cc=indu.bhagat@oracle.com \
    --cc=jose.marchesi@oracle.com \
    --cc=nix@esperi.org.uk \
    --cc=tom@tromey.com \
    /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).