public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug bootstrap/49794] New: [4.7 regression] Solaris 10/x86 bootstrap broken by C++ build
@ 2011-07-20 11:08 ro at gcc dot gnu.org
  2011-07-20 14:49 ` [Bug bootstrap/49794] " rguenth at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: ro at gcc dot gnu.org @ 2011-07-20 11:08 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49794

           Summary: [4.7 regression] Solaris 10/x86 bootstrap broken by
                    C++ build
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: ro@gcc.gnu.org
                CC: ian@airs.com
              Host: i386-pc-solaris2.10
            Target: i386-pc-solaris2.10
             Build: i386-pc-solaris2.10


Solaris 10/x86 bootstrap is broken as of r176500: there are two failures in
stage2 libcpp:

/vol/gcc/src/hg/trunk/local/libcpp/charset.c: In function 'bool
convert_using_iconv(iconv_t, const uchar*, size_t, _cpp_strbuf*)':
/vol/gcc/src/hg/trunk/local/libcpp/charset.c:579:62: error: invalid conversion
from 'const char**' to 'char**' [-fpermissive]

The problem is that <iconv.h> has two variant iconv() declarations:

#ifdef _XPG6
extern size_t    iconv(iconv_t, char **_RESTRICT_KYWD,
        size_t *_RESTRICT_KYWD, char **_RESTRICT_KYWD,
        size_t *_RESTRICT_KYWD);
#else
extern size_t    iconv(iconv_t, const char **_RESTRICT_KYWD,
        size_t *_RESTRICT_KYWD, char **_RESTRICT_KYWD,
        size_t *_RESTRICT_KYWD);
#endif

libcpp configure is run with xgcc, which doesn't define _XOPEN_SOURCE 600, but
g++, which is used to compile libcpp, does, so the value of ICONV_CONST is
wrong.

The next failures is in init.c:

/vol/gcc/src/hg/trunk/local/libcpp/init.c:61:3: error: expected identifier
before '='
/vol/gcc/src/hg/trunk/local/libcpp/init.c:61:3: error: type '<lambda>' with no
linkage used to declare function 'void<lambda>::operator()() const' with
linkage [-fpermissive]
/vol/gcc/src/hg/trunk/local/libcpp/init.c: In lambda function:
/vol/gcc/src/hg/trunk/local/libcpp/init.c:61:3: error: expected '{' before '='
token
/vol/gcc/src/hg/trunk/local/libcpp/init.c: At global scope:
/vol/gcc/src/hg/trunk/local/libcpp/init.c:61:3: error: lambda expressions only
available with -std=c++0x or -std=gnu++0x [-Werror]
/vol/gcc/src/hg/trunk/local/libcpp/init.c:61:3: error: no match for 'operator='
in '{} = '#''
/vol/gcc/src/hg/trunk/local/libcpp/init.c:61:3: note: candidate is:
/vol/gcc/src/hg/trunk/local/libcpp/init.c:61:3: note:
<lambda()>&<lambda()>::operator=(const<lambda()>&)
/vol/gcc/src/hg/trunk/local/libcpp/init.c:61:3: note:   no known conversion for
argument 1 from 'char' to 'const<lambda()>&'

And many more errors.  The relevant section in the -g3 -save-temps outputis

__extension__ const uchar _cpp_trigraph_map[(127 * 2 + 1) + 1] = {
  ['='] = '#', [')'] = ']', ['!'] = '|',
  ['('] = '[', ['\''] = '^', ['>'] = '}',
  ['/'] = '\\', ['<'] = '{', ['-'] = '~',
};


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-07-22  9:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-20 11:08 [Bug bootstrap/49794] New: [4.7 regression] Solaris 10/x86 bootstrap broken by C++ build ro at gcc dot gnu.org
2011-07-20 14:49 ` [Bug bootstrap/49794] " rguenth at gcc dot gnu.org
2011-07-20 16:43 ` ro at gcc dot gnu.org
2011-07-22  8:59 ` ro at gcc dot gnu.org
2011-07-22  9:01 ` ro at gcc dot gnu.org

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).