ddd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Build problems on Solaris 8


From: J.H.M. Dassen (Ray)
Subject: Re: Build problems on Solaris 8
Date: Fri, 16 Nov 2001 09:33:00 +0100
User-agent: Mutt/1.3.23i

On Tue, Nov 13, 2001 at 06:38:32 -0500, Dooferlad wrote:
> I am having build problems on Solaris 8 / Sparc. I am using gcc 3.0.2,
> all went well up to:
> 
> c++ -DHAVE_CONFIG_H -I. -I. -I. -I./.. -isystem /usr/openwin/include
> -DNDEBUG -O2 -g -W -Wall -trigraphs -c PannedGE.C
> PannedGE.C:145: cannot convert `void (*)(...)' to `void (*)()' in 
>    initialization
>    *** Error code 1

Hmm... this doesn't sound very familiar to me, but it just might be related
to other problems when building with gcc newer than 2.95.

In the Debian GNU/Linux package of DDD, I needed to apply the following
changes in order to get DDD built on architectures that use gcc 3 as their
default gcc version:
  * ddd/logplayer.C: include system header <fstream.h> before local
    includes.
  * ddd/rxscan.C: disabled declaration of isatty that's broken for g++ 3.0.
  * ddd/strclass.C: fixed type of new_state from int to ios::iostate so it
    works with g++ 3.0.

Can you try if applying the following patch makes a difference?

--- ddd-3.3.1.orig/ddd/logplayer.C
+++ ddd-3.3.1/ddd/logplayer.C
@@ -33,6 +33,8 @@
 #pragma implementation
 #endif
 
+#include <fstream.h>
+
 #include "logplayer.h"
 
 #include "assert.h"
@@ -43,7 +45,6 @@
 #include "streampos.h"
 
 #include <iostream.h>
-#include <fstream.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
--- ddd-3.3.1.orig/ddd/rxscan.C
+++ ddd-3.3.1/ddd/rxscan.C
@@ -9258,7 +9258,10 @@
 
 #ifndef YY_ALWAYS_INTERACTIVE
 #ifndef YY_NEVER_INTERACTIVE
+#if 0
+/* b0rked prototype */
 extern int isatty YY_PROTO(( int ));
+#endif
 #endif
 #endif
 
--- ddd-3.3.1.orig/ddd/strclass.C
+++ ddd-3.3.1/ddd/strclass.C
@@ -1434,7 +1434,7 @@
 #if HAVE_IOSTATE
     ios::iostate new_state = s.rdstate();
 #else
-    int new_state = s.rdstate();
+    ios::iostate new_state = s.rdstate();
 #endif
     if (i == 0)
        new_state |= ios::failbit;

> What do you need to know to take a reasonable guess at what is going
> wrong?

If the patch doesn't make a difference, your best bet is to do a binary
search for the offending line in the initialisation gcc complains about
using #if 0 ... #endif blocks and then report back to this list which line
is problematic.

HTH,
Ray
-- 
Linux is many, many years away from being an enterprise-ready operating
system that can compete with, and challenge, the Windows platform. There is
also no vision or driving force around it.
        Doug Miller, Microsoft Windows Server Group, january 2001



reply via email to

[Prev in Thread] Current Thread [Next in Thread]