[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: groff-1.17 and Compaq OSF/1 5.0
From: |
Werner LEMBERG |
Subject: |
Re: groff-1.17 and Compaq OSF/1 5.0 |
Date: |
Fri, 20 Jul 2001 17:00:00 +0200 (CEST) |
[I'm sending this to bug-autoconf also -- maybe this can be fixed in a
forthcoming release of autoconf.]
From: "Nelson H. F. Beebe" <address@hidden>
Subject: groff-1.17 and Compaq OSF/1 5.0
Date: Fri, 20 Jul 2001 08:32:58 -0600 (MDT)
> A build of groff-1.17 on Compaq OSF/1 5.0 with native C and C++
> compilers produced this failure:
>
> [...]
> cxx: Error: groff.cc, line 125: too many arguments in function call
> while ((opt = getopt_long(argc, argv,
> ----------------------------^
>
> Examination of the preprocessor output showed that getopt_long had
> this prototype:
>
> extern int getopt_long ();
>
> Thus, the lack of arguments led to the reject of the call at line 125.
> The declaration of getopt_long in src/include/getopt.h is controlled
> by the conditional
>
> #if defined __STDC__ && __STDC__
> ...
> #else
> ...
> #endif
>
> A simple test program shows how __STDC__ is defined by the Compaq C++
> compiler:
>
> % cat foo.cc
> #if defined(__STDC__)
> int stdc = __STDC__;
> #else
> int kandr = 1;
> #endif
>
> % cxx -E foo.cc
> #line 1 "foo.cc"
> int kandr = 1;
>
> On a Sun Solaris 2.7 system, I get this:
>
> % CC -E foo.cc
> #2 "foo.cc"
> int stdc = 0 ;
>
> % g++ -E foo.cc
> # 1 "foo.cc"
> int stdc = 1;
>
> Thus, on OSF/1 for C++ compilation with cxx, it is necessary to have
> -D__STDC__=1 in the compilation options. The C compiler, cc, does not
> permit this to be defined, so I changed the top-level Makefile to read
>
> CCC=cxx -D__STDC__=1
Isn't this something what autoconf should handle properly?
Werner