All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@google.com>
To: Dave Chinner <david@fromorbit.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH] Fix building xfsprogs on 32-bit platforms
Date: Tue, 29 Nov 2016 14:21:35 -0800	[thread overview]
Message-ID: <20161129222135.GA107713@google.com> (raw)
In-Reply-To: <20161129214456.GE31101@dastard>

On Wed, Nov 30, 2016 at 08:44:56AM +1100, Dave Chinner wrote:
> On Mon, Nov 28, 2016 at 02:42:35PM -0800, Eric Biggers wrote:
> > Since commit 7fda99a0c297 ("xfs.h: require transparent LFS for all
> > users"), building xfsprogs fails on a 32-bit platform because it does
> > not define _FILE_OFFSET_BITS=64 itself.  Fix it by adding this to CFLAGS
> > in builddefs.in.
> > 
> > Signed-off-by: Eric Biggers <ebiggers@google.com>
> > ---
> >  include/builddefs.in | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/include/builddefs.in b/include/builddefs.in
> > index aeb2905..5219071 100644
> > --- a/include/builddefs.in
> > +++ b/include/builddefs.in
> > @@ -25,7 +25,7 @@ OPTIMIZER = @opt_build@
> >  MALLOCLIB = @malloc_lib@
> >  LOADERFLAGS = @LDFLAGS@
> >  LTLDFLAGS = @LDFLAGS@
> > -CFLAGS = @CFLAGS@
> > +CFLAGS = @CFLAGS@ -D_FILE_OFFSET_BITS=64
> 
> So, umm, why aren't these lines in configure.ac setting this already
> on your system?
> 
> AC_SYS_LARGEFILE
> AC_NEED_LFS
> 
> Cheers,
> 

AC_SYS_LARGEFILE puts the _FILE_OFFSET_BITS definition in the generated config
header, not in CFLAGS.  Normally projects use a config.h.in template that's
generated from configure.ac using autoheader.  xfsprogs doesn't do this but
rather uses a non-generated file include/platform_defs.h.in.  Since there is no
"#undef _FILE_OFFSET_BITS" in platform_defs.h.in, '#define _FILE_OFFSET_BITS 64'
doesn't gets included in platform_defs.h.  Also, even if it was, then I think it
wouldn't always work because not all .c files in xfsprogs have platform_defs.h
as their first #include.

The reason AC_NEED_LFS still passes is that 'configure' includes a temporary
header confdefs.h rather than the final generated header, and the temporary
header includes the _FILE_OFFSET_BITS definition.

Eric

  reply	other threads:[~2016-11-29 22:21 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-28 22:42 [PATCH] Fix building xfsprogs on 32-bit platforms Eric Biggers
2016-11-29 20:09 ` Christoph Hellwig
2016-11-29 21:44 ` Dave Chinner
2016-11-29 22:21   ` Eric Biggers [this message]
2016-11-29 23:25     ` Dave Chinner
2016-11-30 19:12       ` Eric Biggers

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=20161129222135.GA107713@google.com \
    --to=ebiggers@google.com \
    --cc=david@fromorbit.com \
    --cc=linux-xfs@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.