From: Dave Chinner <david@fromorbit.com>
To: Eric Sandeen <sandeen@sandeen.net>
Cc: "Darrick J. Wong" <darrick.wong@oracle.com>,
linux-xfs <linux-xfs@vger.kernel.org>
Subject: Re: [PATCH] xfsprogs: do not redeclare globals provided by libraries
Date: Wed, 29 Jan 2020 09:26:58 +1100 [thread overview]
Message-ID: <20200128222657.GE18610@dread.disaster.area> (raw)
In-Reply-To: <332e4c3a-ddac-4e48-b236-e4c2248163a5@sandeen.net>
On Tue, Jan 28, 2020 at 08:48:40AM -0600, Eric Sandeen wrote:
> On 1/27/20 9:29 PM, Darrick J. Wong wrote:
> > On Mon, Jan 27, 2020 at 04:56:02PM -0600, Eric Sandeen wrote:
> > > From: Eric Sandeen <sandeen@redhat.com>
> > >
> > > In each of these cases, db, logprint, and mdrestore are redeclaring
> > > as a global variable something which was already provided by a
> > > library they link with.
> >
> > Er... which library?
>
> libxfs and libxlog ...
>
>
> File Line
> 0 libxlog/util.c 10 int print_exit;
> 1 logprint/logprint.c 27 int print_exit = 1;
>
> File Line
> 0 db/init.c 30 libxfs_init_t x;
> 1 libxlog/util.c 13 libxfs_init_t x;
>
> File Line
> 0 fsr/xfs_fsr.c 31 char *progname;
> 1 io/init.c 14 char *progname;
> 2 libxfs/init.c 28 char *progname = "libxfs";
> 3 mdrestore/xfs_mdrestore.c 10 char *progname;
>
> (fsr & io don't link w/ libxfs; mdrestore does)
>
>
> >
> > Also, uh...maybe we shouldn't be exporting globals across libraries?
> >
> > (He says having not looked for how many there are lurki... ye gods)
>
> Well, it's ugly for sure.
>
> We could either try to re-architect this to
>
> 1) pass stuff like progname all over the place, or
> 2) consistently make the library provide it as a global, or
> 3) consistently make utils provide it to the library as a global (?)
IIRC, I chose #2 way back when I was consolidating all the libxfs
library code. There was code that declared libxfs_init_t x; on
stack, as local globals, in the libraries, etc. So I simply made the
library global the One True Global, and then had everyone use it
everywhere.
That was just the simplest solution at the time to minimise the
amount of work to get userspace up to date with the kernel to allow
integration of the CRC work (userspace was years out of date at that
point). It was not pretty (like a lot of my code), but it worked.
Feel free to do what you think is best :)
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2020-01-28 22:27 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-27 22:56 [PATCH] xfsprogs: do not redeclare globals provided by libraries Eric Sandeen
2020-01-28 3:29 ` Darrick J. Wong
2020-01-28 14:48 ` Eric Sandeen
2020-01-28 22:26 ` Dave Chinner [this message]
2020-01-28 22:28 ` Eric Sandeen
2020-01-28 19:42 ` Eric Sandeen
2020-01-29 15:16 ` [PATCH V2] " Eric Sandeen
2020-01-29 16:01 ` Darrick J. Wong
2020-01-29 16:57 ` Eric Sandeen
2020-01-29 19:29 ` Darrick J. Wong
2020-01-29 18:06 ` Christoph Hellwig
2020-01-29 19:47 ` [PATCH V3] " Eric Sandeen
2020-01-29 21:32 ` Christoph Hellwig
2020-01-29 22:20 ` Eric Sandeen
2020-01-29 18:05 ` [PATCH] " Christoph Hellwig
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=20200128222657.GE18610@dread.disaster.area \
--to=david@fromorbit.com \
--cc=darrick.wong@oracle.com \
--cc=linux-xfs@vger.kernel.org \
--cc=sandeen@sandeen.net \
/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