Uploaded image for project: 'C++ Standard Library'
  1. C++ Standard Library
  2. STDCXX-988

[gcc 4.3.0] /usr/include/limits.h has not been included from include/ansi/limits.h

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 4.2.1
    • Fix Version/s: 4.2.2
    • Component/s: Build and Installation
    • Labels:
      None
    • Environment:

      gcc 4.3.0 / Ubuntu 8.04

    • Severity:
      Compiler Error

      Description

      The regression tests of the asio library from boost are failed to compile due to undefined symbol IOV_MAX. According to POSIX this symbol should be defined in <limits.h> header. But when compiling with stdcxx the /usr/include/limits.h file has not been included at all.

      test.cpp
      #include <limits.h>
      
      $ gcc -E test.cpp -I/var/tmp/stdcxx/4.2.x/include -I/var/tmp/stdcxx/4.2.x/include/ansi -I/var/tmp/stdcxx/4.2.x/15D/include
      
      # 1 "test.cpp"
      # 1 "<built-in>"
      # 1 "<command-line>"
      # 1 "test.cpp"
      # 1 "/var/tmp/stdcxx/4.2.x/include/ansi/limits.h" 1
      # 33 "/var/tmp/stdcxx/4.2.x/include/ansi/limits.h"
      # 1 "/var/tmp/stdcxx/4.2.x/include/rw/_defs.h" 1
      # 36 "/var/tmp/stdcxx/4.2.x/include/rw/_defs.h"
      # 1 "/var/tmp/stdcxx/4.2.x/include/rw/_config.h" 1
      # 36 "/var/tmp/stdcxx/4.2.x/include/rw/_config.h"
      # 1 "/var/tmp/stdcxx/4.2.x/15D/include/config.h" 1
      # 37 "/var/tmp/stdcxx/4.2.x/include/rw/_config.h" 2
      # 206 "/var/tmp/stdcxx/4.2.x/include/rw/_config.h"
      # 1 "/var/tmp/stdcxx/4.2.x/include/rw/_config-gcc.h" 1
      # 207 "/var/tmp/stdcxx/4.2.x/include/rw/_config.h" 2
      # 37 "/var/tmp/stdcxx/4.2.x/include/rw/_defs.h" 2
      # 1140 "/var/tmp/stdcxx/4.2.x/include/rw/_defs.h"
      namespace __rw {
      
      
      extern "C++" {
      
      template <bool __b>
      struct __rw_compile_assert;
      
      template<>
      struct __rw_compile_assert<true> { enum { _C_ok }; };
      
      
      
      
      
      void
      __rw_assert_fail (const char*, const char*, int, const char*)
          __attribute__ ((noreturn));
      
      }
      
      }
      # 1549 "/var/tmp/stdcxx/4.2.x/include/rw/_defs.h"
      namespace std {
      }
      # 34 "/var/tmp/stdcxx/4.2.x/include/ansi/limits.h" 2
      # 106 "/var/tmp/stdcxx/4.2.x/include/ansi/limits.h"
                 
      # 107 "/var/tmp/stdcxx/4.2.x/include/ansi/limits.h" 3
      
      
      
      
      # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.3.0/include-fixed/limits.h" 1 3 4
      # 11 "/usr/lib/gcc/x86_64-linux-gnu/4.3.0/include-fixed/limits.h" 3 4
      # 1 "/usr/lib/gcc/x86_64-linux-gnu/4.3.0/include-fixed/syslimits.h" 1 3 4
      
      
      
      
      
      
      # 1 "/var/tmp/stdcxx/4.2.x/include/ansi/limits.h" 1 3 4   <------  Here should be /usr/include/limits.h
      # 8 "/usr/lib/gcc/x86_64-linux-gnu/4.3.0/include-fixed/syslimits.h" 2 3 4
      # 12 "/usr/lib/gcc/x86_64-linux-gnu/4.3.0/include-fixed/limits.h" 2 3 4
      # 112 "/var/tmp/stdcxx/4.2.x/include/ansi/limits.h" 2 3
      # 1 "test.cpp" 2
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                sebor Martin Sebor
                Reporter:
                farid Farid Zaripov
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: