gnu/67798: C++ can't compile anything with -ansi

Jack Lloyd lloyd at randombit.net
Thu Jun 10 15:40:28 GMT 2004


>Number:         67798
>Category:       gnu
>Synopsis:       C++ can't compile anything with -ansi
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jun 10 15:40:20 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Jack Lloyd
>Release:        5.1
>Organization:
>Environment:
FreeBSD synacklabs01 5.1-RELEASE FreeBSD 5.1-RELEASE #0: Mon Mar  8 17:52:43 CST 2004     root@:/usr/src/sys/i386/compile/GENERIC  i386
>Description:
Essentially using any C++ headers and compiling with the -ansi flag fails on FreeBSD 5.1, and probably most 5- releases (it was reported on the GCC list March 2003). I haven't tested 5.2/5.2.1, if this has been fixed please just close + let me know it's OK now.

There is a fairly complete analysis, including a proposed fix, in this thread from last year:
   http://gcc.gnu.org/ml/libstdc++/2003-03/msg00329.html

Including virtually any standard ISO C++ header (iostream, string, cstdlib) and compiling with -ansi causes compilation failure due to missing decls in libc's headers.

>How-To-Repeat:
synacklabs01% g++ -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.2.2 [FreeBSD] 20030205 (release)

synacklabs01% cat test.cpp 
#include <iostream>

int main()
{
  std::cout << "Hello world" << std::endl;
}

synacklabs01% g++ -ansi test.cpp
In file included from /usr/include/g++/bits/fpos.h:45,
                 from /usr/include/g++/iosfwd:46,
                 from /usr/include/g++/ios:44,
                 from /usr/include/g++/ostream:45,
                 from /usr/include/g++/iostream:45,
                 from test.cpp:1:
/usr/include/g++/cwchar:229: `wcstoll' not declared
/usr/include/g++/cwchar:230: `wcstoull' not declared
/usr/include/g++/cwchar:236: `wcstoll' not declared
/usr/include/g++/cwchar:237: `wcstoull' not declared
In file included from /usr/include/g++/bits/stl_algobase.h:67,
                 from /usr/include/g++/memory:54,
                 from /usr/include/g++/string:48,
                 from /usr/include/g++/bits/localefwd.h:49,
                 from /usr/include/g++/ios:48,
                 from /usr/include/g++/ostream:45,
                 from /usr/include/g++/iostream:45,
                 from test.cpp:1:
/usr/include/g++/cstdlib:138: `lldiv_t' not declared
/usr/include/g++/cstdlib:148: syntax error before `(' token
In file included from /usr/include/g++/bits/stl_algobase.h:67,
                 from /usr/include/g++/memory:54,
                 from /usr/include/g++/string:48,
                 from /usr/include/g++/bits/localefwd.h:49,
                 from /usr/include/g++/ios:48,
                 from /usr/include/g++/ostream:45,
                 from /usr/include/g++/iostream:45,
                 from test.cpp:1:
/usr/include/g++/cstdlib:125:1: unterminated #if
/usr/include/g++/cstdlib:44:1: unterminated #ifndef
In file included from /usr/include/g++/memory:54,
                 from /usr/include/g++/string:48,
                 from /usr/include/g++/bits/localefwd.h:49,
                 from /usr/include/g++/ios:48,
                 from /usr/include/g++/ostream:45,
                 from /usr/include/g++/iostream:45,
                 from test.cpp:1:
/usr/include/g++/bits/stl_algobase.h:61:1: unterminated #ifndef
In file included from /usr/include/g++/string:48,
                 from /usr/include/g++/bits/localefwd.h:49,
                 from /usr/include/g++/ios:48,
                 from /usr/include/g++/ostream:45,
                 from /usr/include/g++/iostream:45,
                 from test.cpp:1:
/usr/include/g++/memory:49:1: unterminated #ifndef
In file included from /usr/include/g++/bits/localefwd.h:49,
                 from /usr/include/g++/ios:48,
                 from /usr/include/g++/ostream:45,
                 from /usr/include/g++/iostream:45,
                 from test.cpp:1:
/usr/include/g++/string:40:1: unterminated #ifndef
In file included from /usr/include/g++/ios:48,
                 from /usr/include/g++/ostream:45,
                 from /usr/include/g++/iostream:45,
                 from test.cpp:1:
/usr/include/g++/bits/localefwd.h:40:1: unterminated #ifndef
In file included from /usr/include/g++/ostream:45,
                 from /usr/include/g++/iostream:45,
                 from test.cpp:1:
/usr/include/g++/ios:39:1: unterminated #ifndef
In file included from /usr/include/g++/iostream:45,
                 from test.cpp:1:
/usr/include/g++/ostream:40:1: unterminated #ifndef
In file included from test.cpp:1:
/usr/include/g++/iostream:39:1: unterminated #ifndef
>Fix:
      
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list