This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/50777] [4.7 regression] bootstrap fails on Solaris 10
- From: "ro at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 18 Oct 2011 16:09:06 +0000
- Subject: [Bug bootstrap/50777] [4.7 regression] bootstrap fails on Solaris 10
- Auto-submitted: auto-generated
- References: <bug-50777-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50777
Rainer Orth <ro at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2011-10-18
CC| |bonzini at gnu dot org, ian
| |at airs dot com
Target Milestone|--- |4.7.0
Ever Confirmed|0 |1
--- Comment #2 from Rainer Orth <ro at gcc dot gnu.org> 2011-10-18 16:09:06 UTC ---
They are, via system.h. The problem is twofold:
* madvise(3) is declared in <sys/mman.h> conditionally: in the Solaris 10
version of the header, we have:
#ifdef __STDC__
#if (_POSIX_C_SOURCE > 2) || defined(_XPG4_2)
...
#else /* (_POSIX_C_SOURCE > 2) || defined(_XPG4_2) */
...
extern int madvise(caddr_t, size_t, int)...
...
#endif /* (_POSIX_C_SOURCE > 2) || defined(_XPG4_2) */
* configure uses the C compiler to detect support for madvise() and finds it,
while the actual compilation happens with g++, which defines
_XOPEN_SOURCE=600,
among others, which hides the declaration.
In Solaris 11, there's no issue AFAICS since with __EXTENSIONS__ defined (which
configure takes care of), the madivse() prototype is visible. I'm currently
running a bootstrap to verify this.
There are two options:
* Actually perform the configure tests with the compiler to be used (g++)
instead
of gcc. Everything else is bound to yield bogus results once in a while, or
at least do so for madvise.
* Hack around this with fixincludes, but in this case I'd consider this a bug
by itself.
Paolo, Ian, suggestions?
Rainer