Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Mar 2004 20:38:17 -0500
From:      Craig Rodrigues <rodrigc@crodrigues.org>
To:        David Gilbert <dgilbert@dclg.ca>
Cc:        freebsd-current@freebsd.org
Subject:   Re: GCC include files conundrum.
Message-ID:  <20040315013817.GA68381@crodrigues.org>
In-Reply-To: <16468.65270.123954.862565@canoe.dclg.ca>
References:  <16468.65270.123954.862565@canoe.dclg.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Mar 14, 2004 at 07:55:18PM -0500, David Gilbert wrote:
> I attempted to argue that audio/tclmidi wasn't broken... and the ports
> maintainer fired back with
> 
> http://bento.freebsd.org/errorlogs/i386-5-latest/tclmidi-3.1.log
> 
> Now... I started investigating this and found that this was all due to
> some differences in C++ over the years.
 
> So what's the solution?

Pick up a contemporary C++ book and learn about Standard C++ (which became
an ISO standard in 1998).  strstream is deprecated in Appendix D
of the standard.  I recommend a book such as "The C++ Programming
Language, 3rd ed." by Bjarne Stroustrup.

gcc 3.x supports Standard C++ more aggressively than earlier
gcc versions, which can be painful.  The GCC developers (more specifically
libstdc++ developers) are more interested in supporting Standard
C++, and are not too interested in maintaining backwards compatibility
with deprecated headers such as strstream.h.  This is a bit of a problem
for software that depends on these older libraries.

You have a few options:

(1)  Learn enough C++ so that you can apply the necessary patches
     to fix audio/tclmidi so that it compiles with
     Standard C++ headers (such as <sstream>).

(2)  gcc 3.3 has /usr/include/c++/3.3/backward/strstream, so you may
     want to try #include <backward/sstream> an see if that works,
     but chances are if it doesn't work, you will be out of luck,
     since it is a deprecated header that the GCC developers
     are not too interested in supporting.

(3)  In the Makefile for the audio/tclmidi port, mark it as broken
     on FreeBSD 5.x:

.if ${OSVERSION} > 500000
BROKEN=         "Does not build on 5.x"
.endif


-- 
Craig Rodrigues        
http://crodrigues.org
rodrigc@crodrigues.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040315013817.GA68381>