[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DDD-3.3.9-test1 is released
From: |
Arnaud Desitter |
Subject: |
Re: DDD-3.3.9-test1 is released |
Date: |
Mon, 10 May 2004 17:43:44 +0100 |
----- Original Message -----
From: "Tim Mooney" <address@hidden>
Newsgroups: gmane.comp.debugging.ddd.general
Sent: Monday, May 10, 2004 4:49 PM
Subject: Re: DDD-3.3.9-test1 is released
> In regard to: Re: DDD-3.3.9-test1 is released, Arnaud Desitter said
(at...:
>
> >From: "Tim Mooney" <address@hidden>
> >>
>
>cxx -DHAVE_CONFIG_H -I. -I. -I. -I./.. -I/local/include -I/local/gnu/inclu
d
> >e -DNDEBUG -std ansi -O3 -tune host -arch host -Olimit
> >3000 -readonly_strings -D__USE_STD_IOSTREAM -msg_display_tag -c -o
ddd.o
> >ddd.C
> >> cxx: Error: strclass.h, line 464: "string" is ambiguous (ambiguousname)
> >> const string& S; // The string I'm a constSubString of
> >> ----------^
> >> cxx: Error: strclass.h, line 468: "string" is ambiguous (ambiguousname)
> >> constSubString(const string& x, int p, int l);
> >> -------------------------^
> >> cxx: Error: strclass.h, line 481: "string" is ambiguous (ambiguousname)
> >> bool contains(const string& y) const;
> >> ------------------------^
> >>
> >> The compiler is apparently objecting because `string' is a typedef in
the
> >> Standard C++ library, for the templated basic_string class:
> >>
> >> typedef basic_string<char, char_traits<char>, allocator<char> >
> >> string;
> >>
> >
> >#include <string> imports std::string which is different from string
defined
> >by ddd. "cxx" must import all definitions of the namespace "std" into the
> >global namespace and consequently makes the compilation go wrong.
> >This is confirmed by http://h30097.www3.hp.com/cplus/cxx_ref.htm, see
> >"-using_std".
> >
> >Could you try again with "cxx -D__USE_STD_IOSTREAM -nousing_std" ?
> >Hopefully, it will make it work.
>
> I tried that, and the compile proceeded for quite a while, but
> unfortunately there's a new string-related error when we get to AgentM.C:
>
>
cxx -DHAVE_CONFIG_H -I. -I. -I. -I./.. -I/local/include -I/local/gnu/includ
e -DNDEBUG -std ansi -O3 -tune host -arch host -Olimit
3000 -readonly_strings -D__USE_STD_IOSTREAM -nousing_std -msg_display_tag
-c -o AgentM.o AgentM.C
> cxx: Error: /usr/lib/cmplrs/cxx/V6.5-041/include/cxx/locimpl, line 328:
> namespace "std" has no member "string" (notmember)
> locale_vector<_RW_STD::string> names_;
> -------------------------^
> cxx: Error: /usr/lib/cmplrs/cxx/V6.5-041/include/cxx/locimpl, line 333:
> namespace "std" has no member "string" (notmember)
> _RW_STD::string big_name_;
> -----------^
> cxx: Error: /usr/lib/cmplrs/cxx/V6.5-041/include/cxx/locimpl, line 351:
> namespace "std" has no member "string" (notmember)
> static bool parse_name (locale_vector<_RW_STD::string>&,const char*);
> -------------------------------------------------^
> cxx: Error: /usr/lib/cmplrs/cxx/V6.5-041/include/cxx/locimpl, line 353:
> namespace "std" has no member "string" (notmember)
> static bool build_name (_RW_STD::string&,const
locale_vector<_RW_STD::string>&);
> -----------------------------------^
>
>
> (there are subsequent errors that I've left out).
Most probably a bug in the Compaq compiler.
> BTW, based on my reading of the documentation, it looks like neither
> `-D__USE_STD_IOSTREAM' nor `-nousing_std' should be necessary if you're
> using `-std strict_ansi' (which I didn't know about until last night).
> Unfortunately, using just that option also doesn't work:
>
>
>
cxx -DHAVE_CONFIG_H -I. -I. -I. -I./.. -I/local/include -I/local/gnu/includ
e -DNDEBUG -std strict_ansi -D_OSF_SOURCE -msg_display_tag -c -o ddd.o
ddd.C
> cxx: Error: AgentM.h, line 83: identifier "SIGPIPE" is undefined
> (undeclared)
> old_pipe_handler(SignalProc(signal(SIGPIPE,
SignalProc(SIG_IGN)))),
> -------------------------------------------^
> cxx: Error: AgentM.h, line 85: identifier "SIGCHLD" is undefined
> (undeclared)
> old_chld_handler(SignalProc(signal(SIGCHLD, new_chld_handler)))
> -------------------------------------------^
> cxx: Error: Agent.h, line 342: identifier "SIGKILL" is undefined
> (undeclared)
> void _kill(int sig = SIGKILL); // send signal
> -------------------------^
> cxx: Error: Agent.h, line 269: identifier "fileno" is undefined
> (undeclared)
> return inputfp() != 0 && isatty(fileno(inputfp()));
> ----------------------------------------^
>
Not sure why you add "-I/local/include -I/local/gnu/include ".
I suppose you could try to add the magic "-Dxxx" to get these symbol
definitions.
"-D_OSF_SOURCE" does not do it.
>
> >As well could tell us if the information you reported in ddd/PROBLEMS,
> >section DEC (re. "-msg_disable nonstd_implicit_int") is still relevant ?
>
> I'm sure it's relevant for whatever old release of the OS I reported it
> for, but it's no longer needed for 5.x and the vendor C++ compiler. This
> may be because the option
>
> -SD/usr/include
>
> is one of the default options to the compiler. That apparently suppresses
> diagnostics for any headers under that path.
>
Ok. I suppose I will leave PROBLEMS as is.
> Tim
> --
> Tim Mooney address@hidden
> Information Technology Services (701) 231-1076 (Voice)
> Room 242-J6, IACC Building (701) 231-8541 (Fax)
> North Dakota State University, Fargo, ND 58105-5164
- Re: DDD-3.3.9-test1 is released, (continued)
Re: DDD-3.3.9-test1 is released, Tim Mooney, 2004/05/10