https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100731
Bug ID: 100731 Summary: GCC 11 fails to build using GCC 4.8 because of missing includes Product: gcc Version: 11.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: harald at gigawatt dot nl Target Milestone: --- When building GCC 11 with GCC 4.8 on a platform without _GLIBCXX_USE_C99, the build fails. The result is: ../../gcc-11.1.0/c++tools/server.cc: In function ‘void internal_error(const char*, ...)’: ../../gcc-11.1.0/c++tools/server.cc:199:10: error: ‘exit’ was not declared in this scope exit (2); ^ ../../gcc-11.1.0/c++tools/server.cc: In function ‘void error(const char*, ...)’: ../../gcc-11.1.0/c++tools/server.cc:233:10: error: ‘exit’ was not declared in this scope exit (1); ^ ../../gcc-11.1.0/c++tools/server.cc: In function ‘void print_usage(int)’: ../../gcc-11.1.0/c++tools/server.cc:284:15: error: ‘exit’ was not declared in this scope exit (status); ^ ../../gcc-11.1.0/c++tools/server.cc: In function ‘void print_version()’: ../../gcc-11.1.0/c++tools/server.cc:299:10: error: ‘exit’ was not declared in this scope exit (0); ^ ../../gcc-11.1.0/c++tools/server.cc: In function ‘int maybe_parse_socket(std::string&, module_resolver*)’: ../../gcc-11.1.0/c++tools/server.cc:828:48: error: ‘strtoul’ was not declared in this scope unsigned port = strtoul (cptr + 1, &endp, 10); ^ ../../gcc-11.1.0/c++tools/server.cc: In function ‘void internal_error(const char*, ...)’: ../../gcc-11.1.0/c++tools/server.cc:200:1: warning: ‘noreturn’ function does return [enabled by default] } ^ ../../gcc-11.1.0/c++tools/server.cc: In function ‘void print_version()’: ../../gcc-11.1.0/c++tools/server.cc:300:1: warning: ‘noreturn’ function does return [enabled by default] } ^ ../../gcc-11.1.0/c++tools/server.cc: In function ‘void print_usage(int)’: ../../gcc-11.1.0/c++tools/server.cc:285:1: warning: ‘noreturn’ function does return [enabled by default] } ^ ../../gcc-11.1.0/c++tools/server.cc: In function ‘void error(const char*, ...)’: ../../gcc-11.1.0/c++tools/server.cc:234:1: warning: ‘noreturn’ function does return [enabled by default] } ^ If the functions from <stdlib.h> are wanted, this file should just include <stdlib.h> directly rather than relying on C++ headers pulling it in. This happens for me on uclibc but is reproducible on glibc by locally modifying GCC 4.8's c++config.h to not define _GLIBCXX_USE_C99.