public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: John Barry <jbarry AT eso.org>
To: roland AT frob.com
Cc: binutils AT sourceware.cygnus.com, ian AT zembu.com
Subject: Re: strange compile problem
Date: Mon, 13 Sep 1999 13:13:00 -0000	[thread overview]
Message-ID: <199909132011.WAA07329@osc1.hq.eso.org> (raw)
In-Reply-To: <199909131939.PAA31675@frob.com>

Hi,

> >    I've been getting this with every version of binutils I've built up since I
> >    started using -D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64, this includes
> >    2.9.1 and every snapshop I've downloaded from cygnus. It's a Solaris only
> >    issue, didn't happen when I built it on a hppa2.0 Visualise C 3000
> > 
> > You can probably fix it by adding
> > 
> > #include <sys/types.h>
> > #include <sys/stat.h>
> > 
> > near the top of bfd/bfd-in2.h.
> > 
> > I'm somewhat uncomfortable with requiring every program which includes
> > bfd.h to also include those files.  Unfortunately, the only other
> > choice is probably to change the two uses of struct stat * to void *,
> > instead, and thus lose type checking.
> 
> I would be inclined to warn away from this.  In fact, I think something
> more comprehensive needs to be done in people are using -D_FILE_OFFSET_BITS=64.
> (Note that newer glibc versions also support this, not just Solaris.)
> 
> Since bfd_stat is a user-visible function in -lbfd, the type used in its
> interface needs to be well-specified for all users for the library, not
> just code in the binutils tree.

Well, it has to be said that Solaris isn't that hot on 64bit, 2.6 is reckoned
to have a 64bit FS, but just try building gdb with -D_FILE_OFFSET_BITS=64,
(any version) it bombs out whenever you include <sys/procfs.h>:

#if _FILE_OFFSET_BITS == 64
#error  "Cannot use procfs in the large file compilation environment"
#endif

At which point the bfd.h code:

	struct stat;
	struct stat64;
	#if _FILE_OFFSET_BITS - 0 == 64
	#define bfd_stat bfd_stat64
	#else
	extern int bfd_stat64 PARAMS ((bfd *abfd, struct stat64 *));
	#endif
	extern int bfd_stat PARAMS ((bfd *abfd, struct stat *));

Wouldn't do you a lot of good, since you have to remove the _FILE_OFFSET flag
to get more than a few object files to build at all, (it was gdb's failure to
build that caused me to rethink, in the first place...)

Food for thought.

later
jb

  parent reply	other threads:[~1999-09-13 13:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-09-13 11:50 John Barry
1999-09-13 11:58 ` Ian Lance Taylor
1999-09-13 12:39   ` Roland McGrath
1999-09-13 12:53     ` Roland McGrath
1999-09-13 13:13     ` John Barry [this message]
  -- strict thread matches above, loose matches on Subject: below --
1999-09-13 10:14 John Barry
1999-09-13 11:23 ` Ian Lance Taylor
1999-09-13  6:54 John Barry
1999-09-13  9:12 ` Ian Lance Taylor

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=199909132011.WAA07329@osc1.hq.eso.org \
    --to=binutils@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).