stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Created: (STDCXX-377) [HP aCC +nostl] libc headers not in preprocessor search path
Date Thu, 29 Mar 2007 21:48:25 GMT
[HP aCC +nostl] libc headers not in preprocessor search path
------------------------------------------------------------

                 Key: STDCXX-377
                 URL: https://issues.apache.org/jira/browse/STDCXX-377
             Project: C++ Standard Library
          Issue Type: Bug
          Components: External
         Environment: HP aCC +nostl
            Reporter: Martin Sebor
            Priority: Critical


In order to make it possible to link with third party implementations of the C++ Standard
Library (such as stdcxx) the HP aCC +nostl option removes -lstd_v2, the HP aCC C++ standard
library from the linker line. See http://www.docs.hp.com/en/7762/5991-4874/options.htm#opt+nostl
The option also removes the directories containing the native C++ Standard Library headers
from the compiler command line, presumably so as to prevent collisions between them and those
provided by third party implementations of the same.

However, the option also removes all other -I options from the compiler command line, including
/usr/include, making it impossible for the preprocessor to find even libc or system headers.
Add -I/usr/include is the only way to deal with it but doing so is typically frowned upon
by compiler vendors, including HP. In addition, some of the HP libc headers in /usr/include
make heavy use of preprocessor logic to disable the declarations of C functions that C++ replaces
with its own, such as memchr() et al, making it even more difficult to use these headers.

$ cat t.cpp && aCC -AA +nostl -V t.cpp || aCC -AA +nostl -I/usr/include t.cpp
#include <cstring>

int main ()
{
    memchr ("", 0, 0);
    strchr ("", 0);
    strpbrk ("", "");
    strrchr ("", 0);
    strstr ("", "");
}
aCC: HP ANSI C++ B3910B A.03.73
Error 112: "t.cpp", line 1 # Include file <cstring> not found.
    #include <cstring>
             ^^^^^^^^^
Error 328: "t.cpp", line 5 # Function 'memchr' has not been defined yet; cannot call.
        memchr ("", 0, 0);
        ^^^^^^            
Error 328: "t.cpp", line 6 # Function 'strchr' has not been defined yet; cannot call.
        strchr ("", 0);
        ^^^^^^         
Error 328: "t.cpp", line 7 # Function 'strpbrk' has not been defined yet; cannot call.
        strpbrk ("", "");
        ^^^^^^^          
Error 328: "t.cpp", line 8 # Function 'strrchr' has not been defined yet; cannot call.
        strrchr ("", 0);
        ^^^^^^^         
Error 328: "t.cpp", line 9 # Function 'strstr' has not been defined yet; cannot call.
        strstr ("", "");
        ^^^^^^          
Error 112: "t.cpp", line 1 # Include file <cstring> not found.
    #include <cstring>
             ^^^^^^^^^
Error 328: "t.cpp", line 5 # Function 'memchr' has not been defined yet; cannot call.
        memchr ("", 0, 0);
        ^^^^^^            
Error 328: "t.cpp", line 6 # Function 'strchr' has not been defined yet; cannot call.
        strchr ("", 0);
        ^^^^^^         
Error 328: "t.cpp", line 7 # Function 'strpbrk' has not been defined yet; cannot call.
        strpbrk ("", "");
        ^^^^^^^          
Error 328: "t.cpp", line 8 # Function 'strrchr' has not been defined yet; cannot call.
        strrchr ("", 0);
        ^^^^^^^         
Error 328: "t.cpp", line 9 # Function 'strstr' has not been defined yet; cannot call.
        strstr ("", "");
        ^^^^^^          


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message